ISAC2 - 2D Clustering: Iterative Stable Alignment and Clustering (ISAC) of a 2D image stack.
Usage in command line
sp_isac2.py stack_file output_directory --radius=particle_radius --img_per_grp=img_per_grp --CTF --filament_width=filament_width --xr=xr --thld_err=thld_err --target_radius=target_radius --target_nx=target_nx --VPP --ir=ir --rs=rs --yr=yr --ts=ts --maxit=maxit --center_method=center_method --dst=dst --FL=FL --FH=FH --FF=FF --init_iter=init_iter --iter_reali=iter_reali --stab_ali=stab_ali --minimum_grp_size --rand_seed=rand_seed --skip_prealignment --restart --filament_mask_ignore
sp_isac2 exists only in MPI version.
1. Conventional TEM dataset:
mpirun -np 96 sp_isac2.py bdb:stack isac2_outdir --radius=120 --CTF
Note: ISAC2 will change the size of input data such that they fit into box size 76×76 by default (see Description below).
2. Phase Plate TEM dataset:
mpirun -np 96 sp_isac2.py bdb:stack isac2_outdir --radius=120 --VPP
Note: CTF and VPP options cannot be used together.
For each generation of running the program, there are two phases. The first phase is an exploratory phase. In this phase, we set the criteria to be very loose and try to find as much candidate class averages as possible. The candidate class averages are stored in class_averages_candidate_generation_n.hdf.
The second phase is where the actual class averages are generated. The candidate groups are tested for their stability by repeated randomly initialized reference-free alignment and those deemed stable as set aside as output and member images of those that did not pass the test are returned to the overall pool of data and processed again starting from the first phase.
|class_averages_generation_n.hdf||class averages generated in this generation, there are two attributes associated with each class average which are important. One is members, which stores the particle IDs that are assigned to this class average; the other is n_objects, which stores the number of particles that are assigned to this class average.|
|class_averages.hdf||class averages file that contains all class averages from all generations.|
|generation_n_accounted.txt||IDs of accounted particles in this generation.|
|generation_n_unaccounted.txt||IDs of unaccounted particles in this generation.|
The program will perform the following steps (to save computation time, in case of inadvertent termination, i.e. power failure or other causes, the program can be restarted from any saved step location, see options) :
shrink_ratio = target_radius / original_radius_size new_pixel_size = original_pixel_size / shrink_ratio new_box_size = original_box_size * shrink_ratio IF shrink_ratio =/= 1.0 THEN: resample images using shrink_ratio IF new_box_size > target_nx THEN: CUT image to be target_nx in size IF new_box_size < target_nx THEN: PAD image to be target_nx in size
Also see the reference below.
ISAC2 is very time- and memory-consuming. For example, it may take 15 hours to process 50,000 particles using 256 processors. Therefore, before embarking on the big dataset, it is recommended to run a test dataset (about 20,000 particles) first to get a rough idea of timing.
The same steps can be performed on files containing candidate class averages.
Let us assume we would want to generate a RCT reconstruction using as a basis group number 12 from ISAC2 generation number 3. We have to do the following steps:
Yang, Z., Fang, J., Chittuluru, F., Asturias, F. and Penczek, P. A.: Iterative Stable Alignment and Clustering of 2D Transmission Electron Microscope Images,
Structure 20, 237-247, February 8, 2012.
Horatiu Voicu, Zhengfan Yang, Jia Fang, Francisco Asturias, and Pawel A. Penczek
Category 1:: APPLICATIONS
sparx/bin/sp_isac2.py, sparx/bin/sp_isac.py, sparx/bin/isac.py
Beta:: Under evaluation and testing. Please let us know if there are any bugs.
None right now.