Differences between revisions 54 and 55
Revision 54 as of 2013-12-28 20:16:35
Size: 8101
Editor: esther
Comment:
Revision 55 as of 2014-07-01 21:15:51
Size: 8037
Editor: penczek
Comment:
Deletions are marked like this. Additions are marked like this.
Line 57: Line 57:
  '''cat''' ctfestimates/partres* > ctfestimates/ctfs.txt<<BR>>
  '''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/ctfs.txt --astigmatismerror=0.0 --invert_contrast

  '''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.0 --invert_contrast

Run-through example for helical structure using simulated data 8/06/2013

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

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.

blue_small.png

New Approach

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 e2helixboxer.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 cxcter.py, with or without the GUI

When windowing segments using e2helixboxer.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.0 --invert_contrast

    • Astigmatismerror not implemented yet, so must use 0.0

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

    e2bdb.py mic/outdir --makevstack=bdb:adata --filt=QT
    sxheader.py bdb:adata --params=active --one
    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
    sxheader.py bdb:data --params=active --one

# 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
    sxheader.py bdb:data --params=active --one
    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

Author / Maintainer

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

Runthrough_helical_example (last edited 2014-07-01 21:15:51 by penczek)