Differences between revisions 67 and 68
Revision 67 as of 2017-04-29 00:14:12
Size: 8522
Editor: penczek
Revision 68 as of 2017-05-07 11:53:32
Size: 8522
Editor: penczek
Deletions are marked like this. Additions are marked like this.
Line 49: Line 49:
  '''sxprocess.py''' mask2d.hdf powerspectrum.hdf mask2d.hdf --pw --wn=1024<<BR>>   '''sxprocess.py''' bdb:adata powerspectrum.hdf mask2d.hdf --pw --wn=1024<<BR>>

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 mic/outdir --makevstack=bdb:adata --filt=QT

    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

# To generate power spectrum window segments using ptcl-dst equal to half the window size used. To obtain better Layer Line pattern one may want to experiment with different box size and rmax value:

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

# shift alignment of windowed segments

  • 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)