Differences between revisions 64 and 65
Revision 64 as of 2016-02-10 13:16:21
Size: 8238
Editor: penczek
Revision 65 as of 2016-02-10 13:16:42
Size: 8242
Editor: penczek
Deletions are marked like this. Additions are marked like this.
Line 80: Line 80:
= IHRSR - Old Approach, no longer supported 8/06/2013 = === IHRSR - Old Approach, no longer supported 8/06/2013 ===

Run-through example for helical structure using simulated data

This is a demo to show the workflow of helical refinement.


Notes to help get started

  • Install a current version of EMAN2 before you begin

If you have trouble getting MPI running on your machine, edit install_mpi.py so that

  • def get_mpiroot(options):

returns 'False' no matter what, and then type the command

  • install_mpi.py --force

This will create a version of mpi in your own area, that has everything needed.

Micrographs should be in a subdirectory called 'mic' with filenames like micxxx.hdf (where xxx is a number)
After running sxhelixboxer.py , the 'mic' directory will have files called 'micxxx_boxes.txt'

  • These files have the start and stop positions of each filament from micrograph xxx

Before creating boxed images (segments) from these filaments

  • determine the CTF using sxcter.py, with or without the GUI

When windowing segments using sxhelixboxer.py ,

  • make sure that you only include filaments with more than 3 segments, using --minseg=4 (or larger)

Segments (boxed filaments) will be stored in the directory mic/outdir (which will be created)

  • What is in the mic/outdir directory:

    • micxxx_abox_y.hdf is a stack of boxed segments from a single filament; in this case, the y th filament from micrograph xxx micxxx_helix_ptcl_coords.txt is a list of x-y coordinates to create stacks of particles from all filaments in a single micrograph xxx

Along the way, new directories will be created, result_a and result_b; if you try to re-run some programs they will fail because these directories exist, so re-name or delete the directory to start over.

Example commands:

  • mpirun -np 3 sxcter.py rotationalpowerspectra ctfestimates --indir=mic --nameroot=mic --micsuffix=hdf --wn=512 --apix=1.81 --Cs=2 --voltage=200 --ac=10 --MPI

    sxhelixboxer.py outdir --window --dirid='mic' --micid='mic' --micsuffix='hdf' --apix=1.81 --boxsize=128 --hcoords_suffix="_boxes.txt" --ptcl-dst=5 --rmax=45.0 --importctf=ctfestimates/partres --astigmatismerror=0.5 --invert_contrast

    • Astigmatismerror is implemented.

    • Protein must be white, so since cryo data, contrast is inverted

# To window selected helices (long-boxes) do the following:
sxhelixboxer.py testmic/mic0.hdf --db-set-hcoords=testmic/mic0_boxes.txt --helix-width=300
sxhelixboxer.py testmic/mic0.hdf --helix-images=heli0.hdf

  • e2bdb.py bdb:mic/outdir --makevstack=bdb:adata --filt=QT

sxprocess.py bdb:adata pw.hdf --pw --wn=1024

  • sxheader.py bdb:adata --params=xform.align2d --zero

# Make a 2D mask to use (filename mask2d.hdf):

  • sxhelical_demo.py mask2d.hdf --generate_mask --masksize="128,128" --maskwidth=50

    mpirun -np 16 sxshiftali.py bdb:adata mask2d.hdf --oneDx --search_rng=10 --maxit=20 --MPI

When done,

  • e2display.py tavg.hdf

    • to see the average filament

    sxtransform2d.py bdb:adata bdb:data

    sxheader.py bdb:data --params=xform.projection --zero

# Output: A noisy cylinder written to the output file name (inivol.hdf).

  • sxhelical_demo.py inivol.hdf --generate_noisycyl --boxsize="128,128,128" --rad=35

# Ab initio determination of the structure. Note parameters are mainly in Angstroms. Use help (sxhelicon.py -h) for details
# Notice that wobble is constrained to be zero, since it likely does not need to vary

  • mpirun -np 128 sxhelicon.py bdb:data inivol.hdf result_a --apix=1.81 --searchxshift=3.62 --xwobble=0.0 --ywobble=0 --phiwobble=1.40 --delta=2.80 --maxit=10 --dp=8.88 --dphi=112.3 --psi_max=7 --rmin=3.62 --rmax=45. --fract=0.085 --function="[.,nofunc,helical3c]" --CTF --seg_ny=128

    sxheader.py bdb:data --import=result_a/parameters0010.txt --params=xform.projection
    mpirun -np 16 sxheliconlocal.py bdb:data result_a/volf010.hdf result_b --CTF --seg_ny=128 --ou=45. --fract=0.085 --psi_max=7.0 --delta=1.4 --maxit=10 --function="[.,nofunc,helical3c]" --xr=3.68 --txs=1.81 --an=7 --ynumber=16 --dp=8.88 --dphi=112.3 --apix=1.81 --rmin=3.62 --rmax=45.0 --initial_theta=85.0 --delta_theta=2.0 --y_restrict=4.44
    sxhelicon_utils.py bdb:data --hfsc='imglist' --filament_attr=filament
    mpirun -np 16 sxrecons3d_n.py bdb:data result_b/volodd.hdf --CTF --list=imglist_odd.txt --MPI
    mpirun -np 16 sxrecons3d_n.py bdb:data result_b/voleven.hdf --CTF --list=imglist_even.txt --MPI

# Helicise volumes

  • sxhelicon_utils.py result_b/volodd.hdf result_b/voloddh.hdf --helicise --dp=8.88 --dphi=112.3 --fract=0.2 --rmax=45.0 --rmin=3.62 --apix=1.81
    sxhelicon_utils.py result_b/voleven.hdf result_b/volevenh.hdf --helicise --dp=8.88 --dphi=112.3 --fract=0.2 --rmax=45.0 --rmin=3.62 --apix=1.81


IHRSR - Old Approach, no longer supported 8/06/2013

Download file helical_mpi.tar and unpack it using the following command:

tar -xvf helical_mpi.tar

  • Or see below for a New Approach

You need to copy the commands from run_through_example and paste them on your terminal to run them. For helical refinement, we only provide an MPI version. Depending on your computational environment, you need to change the mpirun command.

To generate the script for 3D structure determination of helical filaments with helical symmetry based constraints (sxhelicon), use the following command:

  • sxhelical_demo.py --generate_script --filename=runhelicon --seg_ny=180 --ptcl_dist=15 --fract=0.35

This will generate a script called runhelicon containing the commands for windowing a stack of 200 by 200 segments with a distance of 15 pixels between adjacent segments windowed from the same 2D projection of a helical filament, and where the y-dimension of the segment size used in refinement is 180 pixels, with 0.35 of the volume used for applying helical symmetry during the refinement process. For additional details see sxhelicon

In addition to documentation on sxhelicon , parameters are documented for programs used in the example, including (alphabetically) sxcter , sxheader , sxhelical_demo , sxhelixboxer , sxihrsr , sxpdb2em , sxprocess , sxshiftali

There are six files in this directory. The function of some of the files are explained below:

  • 3MFP_1SU.tar.gz contains the pdb file for one unit of helical structure.

  • saved_pos.tar.gz contains the coordinate file of helix box. Based on its information, we can cut the filament from the micrograph and rotate the filament to a nearly vertical position. We provide this file to help you to run the demo faster by skipping the manual boxing step. However, you still need GUI enviroment to run the pre-processing steps.

  • answer.tar.gz contains the result of our previous run. reuslt_a is the first run without considering the out-of-plane angle. result_b is the continuous run based on result_a but with out-of-plane angle. The logifle, parameter files and pixer file are stored in both folders.

To learn how to interactively mark filaments in micrographs and store the coordinates using sxhelixboxer.py, please watch the movie E2helixboxer.mov.

The preprocessing steps can be completed within ten minutes on a Mac workstation. The first run of helical refinement without out-of-plane angle may take half an hour on 3 or 4 CPUs. The second run that includes the out-of-plane tilt angle will take much longer time on 3 or 4 CPUs. tmp.hdf is the ideal volume generated from pdb file, but is much longer than the volume produced by our program. For comparison, you will need window and pad tmp.hdf to the same size with the volume generated by our program.

Author / Maintainer

Pawel Penczek, email: Pawel.A.Penczek@uth.tmc.edu

Runthrough_helical_example (last edited 2017-05-07 11:53:32 by penczek)