Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Source code to accompany the CVPR 2015 paper "Building Proteins in a Day"
Fetching latest commit…
Cannot retrieve the latest commit at this time.
README ------ This codebase implements Stochastic Average Gradient Descent for minimizing the negative log probability of a protein density given a set of picked particles from electron micrographs. This code is provided "as-is" with no warranty or explicit support. It is made available for personal and academic use ONLY. Any commercial use of this code without explicit written consent of the authors is strictly prohibited. Use of this in academic publications should cite: "Building Proteins in a Day: Efficient 3D Molecular Reconstruction" by Marcus A. Brubaker, Ali Punjani and David J. Fleet. In proceedings of IEEE Conference on Computer Vision and Pattern Recognition, CVPR 2015. This code is copyright Marcus A. Brubaker and Ali Punjani, 2015. Questions or comments regarding this code should be directed to Marcus Brubaker (firstname.lastname@example.org). Getting Started --------------- To generate data, use the genphantomdata.py script. Running the command: $ ./genphantomdata.py 40000 1AON.mrc examplectfs.par Data/1AON will generate a stack of 40,000 randomly distributed views of the density in 1AON.mrc using the CTF parameters specified in the (supplied) par file. Once data has been generated, you can run the reconstruction with the command: $ ./runexp.py exp/1AON_sagd_is and follow it's progress with: $ tail -f exp/1AON_sagd_is/stdout Plots showing the current state of the reconstruction can be seen by using IPython: $ ipython --pylab=qt Python 2.7.8 (default, Apr 15 2015, 09:26:43) Type "copyright", "credits" or "license" for more information. IPython 2.4.1 -- An enhanced Interactive Python. ? -> Introduction and overview of IPython's features. %quickref -> Quick reference. help -> Python's own help system. object? -> Details about 'object', use 'object??' for extra details. In : import visualizer In : vis = visualizer.Visualizer('exp/1AON_sagd_is',extra_plots=True) To update the displays, call vis.dowork(): In : vis.dowork() Running other data ------------------ Currently the code can only handle specific forms of input. Images must be in MRC stack files, CTF parameters must be estimated and provided in the form of a defocus.txt or .par file. The bfactor and other microscope parameters must be set by hand in the exp/*/*.params files.