Revision 21 as of 2012-12-17 18:14:40

Clear message

Geometrically Consistent IHRSR

The below describes the sequence of steps for carrying out helical refinement based on geometrical considerations arising from helical symmetry.

1. Predict projection parameters based on geometrical consistency using helical symmetry parameters rise and azimuthal rotation.

2. Perform alignment of filament-based reconstructions and x-shift determination.

Below is an example script carrying out the steps described above:

set echo on

# Predict parameters
sxihrsr.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --predict_helical='predictedparams_bigstack7.txt' --dp=27.6 --dphi=166.5 --apix=1.84

COUNTER0=0
COUNTER1=1

MAXIT=1

mkdir  RTR2
mkdir  RTR2/shift0

sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=active --one
cp consavg3.hdf RTR2/shift0/volfshift.hdf
sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection --import='predictedparams_bigstack7.txt'

while [  $COUNTER0 -lt 10 ]; do
        mpirun -np 56 -hostfile nodelist -wdir `pwd` sxihrsr.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 RTR2/shift$COUNTER0/volfshift.hdf  RTR2/rotation$COUNTER1 cyl70mask.hdf --vol_ali --function="[.,helical_userfuncs,helical_act_elmar_mask]" --dp=27.6 --dphi=166.5 --apix=1.84 --rmin=0 --rmax=128.8 --fract=0.66 --maxit=$MAXIT --MPI --CTF --sym=c1 || exit
        sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection --export=RTR2/rotation$COUNTER1/params_disks$COUNTER1.txt

        mpirun -np 56 -hostfile nodelist -wdir `pwd` sxihrsr.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 RTR2/rotation$COUNTER1/fvheli.hdf RTR2/shift$COUNTER1 cyl70mask.hdf --maxit=1 --dp=27.6 --dphi=166.5 --apix=1.84  --rmin=0 --rmax=128.8  --fract=0.66 --searchxshift=36.8 --MPI --function="[.,helical_userfuncs,helical_act_elmar_mask]" --npad=2 --CTF --sym=c1 || exit
        sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection --export=RTR2/shift$COUNTER1/params_shifts$COUNTER1.txt

        let COUNTER1=COUNTER1+1
        let COUNTER0=COUNTER0+1
done

3. Perform local helical refinement with and without out-plane-tilt using as starting structure the output volume of the last iteration of alignment/x-shift determination.

set echo on

rm -rf fine_bigstack7
sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection  --import=RTR2/shift10/params_shifts10.txt
mpirun -np 56 -hostfile nodelist -wdir `pwd` sxihrsr.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 RTR2/shift10/volfshift.hdf fine_bigstack7 cyl70mask.hdf --function="[.,helical_userfuncs,helical_act_elmar_mask]" --ou=165.6 --xr="3.68 3.68 1.84" --y_restrict="1.84 1.84 1.84" --txs="1.84 1.84 1.84" --ynumber="80 80 80" --delta="1 1 1" --an="12.5 12.5 12.5" --psi_max=7 --initial_theta=90.0 --delta_theta=1.0 --maxit=3 --snr=1.0 --MPI --nise=200 --ndp=12 --dp_step=0.1 --ndphi=12 --dphi_step=0.1 --apix=1.84 --dp=27.6 --dphi=166.5 --rmin=0 --rmax=128.8 --fract=0.67 --datasym=symdoc.dat  --npad=2 --sym=c1 --CTF --WRAP=0
sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection  --export=fine_bigstack7/paramsout.txt

# do local refinement with out of plane tilt
sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 --params=xform.projection  --import=fine_bigstack7/paramsout.txt
mpirun -np 56 -hostfile nodelist -wdir `pwd` sxihrsr.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7 fine_bigstack7/volf0009.hdf fine2_bigstack7 cyl70mask.hdf --function="[.,helical_userfuncs,helical_act_elmar_mask]"  --ou=165.6 --xr="3.68" --txs="1.84" --y_restrict=1.84 --ynumber="80" --delta="1" --an="12.5" --psi_max=7 --initial_theta=85.0 --delta_theta=1 --maxit=5 --snr=1.0 --MPI --nise=200 --ndp=12 --dp_step=0.1 --ndphi=12 --dphi_step=0.1 --apix=1.84 --dp=27.6 --dphi=166.5 --rmin=0 --rmax=128.8 --fract=0.67 --datasym=symdoc.dat  --npad=2 --sym=c1 --CTF --WRAP=0
sxheader.py bdb:/exports/home/pawel/elmar_small2_repeat/rerun/big_stack7  --params=xform.projection  --export=fine2_bigstack7/paramsout.txt

Input arguments to sxihrsr for geometrically consistent IHRSR

stack

set of 2-D images in a stack file (format hdf), images have to be squares (nx=ny, nx, ny denotes the image size)

ref_vol
initial reference volume
outdir
directory name into which the results will be written (if it does not exist, it will be created, if it does exist, the program will stop and return an error)
maskfile
filename of the file containing 3D mask. If not provided, a 3D hollow cylindrical mask will be created with outer radius rmax and inner radius rain.
searchxshift
+/- searchxshift is the translational search range along x direction in Angstroms. When searchxshift is specified, x-shift determination will be performed.
diskali
If this flag is set, then alignment of 3D reconstructions of segments belonging to the same filament will be performed.
dp
axial rise in Angstroms.
dphi
azimuthal rotation per subunit in degrees
apix
pixel size in Angstroms. fract::fraction of the volume used for helical search (reasonable number is 0.67)
rmin

minimal radius for the helical symmetry search (in Angstroms) and for imposing helical symmetry. The volume will be set to zero outside of the hollow cylinder rmin<r<rmax.

rmax

maximal radius for the helical symmetry search (in Angstroms) and for imposing helical symmetry. The volume will be set to zero outside of the hollow cylinder rmin<r<rmax.

maxit
maximum number of iterations the program will perform (default is 10)
predict_helical
name of file under which to save predicted projection orientation parameters. When predict_helical is specified, the program will generate projection parameters consistent with helical symmetry.
hfsc
generate two list of image indices used to split segment stack into two for helical fsc calculation. The two lists will be stored in two text files named using file_prefix (--hfsc=file_prefix) with '_even' and '_odd' suffixes respectively.
gendisk
Name of file under which generated disks will be saved to
ref_nx
disks generated using --gendisk option will have dimensions ref_nx by ref_nx by one rise. The full sized reconstruction from which disks are windowed will have dimensions ref_nx by ref_nx by ref_nz.
ref_nz
the full sized reconstruction from which disks (generated by --gendisk option) will be windowed will have dimensions ref_nx by ref_nx by ref_nz. stackdisk: Generate volume with specified helical symmetry parameters from input disk. Output volume will be saved to file name specified by stackdisk (--stackdisk=filename). The dimensions of the volume are specified by options --ref_nx, --ref_ny and --ref_nz.

Typical Usage

1. Generate two list of image indices used to split segment stack into two for helical fsc calculation and save the two lists in text files with prefix 'stackhfsc' with '_even' and '_odd' suffixes respectively:

2. Predict projection orientation parameters based on helical symmetry and save to text file 'predparams.txt':

3. Three iterations of volume alignment, where volumes are reconstructions obtained from segments windowed from the same 2D projection of a filament:

4. One iteration of translational alignment along the x-direction.

5. Generate disks with dimensions ref_nx by ref_nx by one rise and save disks to bdb:disks (ref_nz is dimension of the square segments in the input stack):

6. Generate volume with dimensions ref_nx by ref_ny by ref_nz with helical symmetry parameters rise dp=27.6 and azimuthal rotation dphi=166.5 from input disk which has height one rise in pixels.

Description

* The input image stack is assumed to be a stack of overlapping segments windowed from boxed 2D projections of helices. The program [http://blake.bcm.edu/emanwiki/EMAN2/Programs/e2helixboxer e2helixboxer] can be used to box the 2D projections of helices, and subsequently extract overlapping segments from the boxed regions. BRBR * For the program to work, the attribute 'ptcl_source_coord' denoting coordinates of the center of the image must be set in the header of each image in the input stack. This attribute is set automatically if the input stack was obtained using [http://blake.bcm.edu/emanwiki/EMAN2/Programs/e2helixboxer e2helixboxer]. BRBR * The attribute 'filament' (an identifier denoting the 2D projection of a helix the input image was extracted or windowed from) must also be set in each image in the input stack such that images extracted from the same 2D projection of a helix should have the same 'filament' attribute.