User Tools

Site Tools

This version (2019/04/02 10:52) is a draft.
Approvals: 0/1


Initial 3D Model - VIPER: ab initio 3D structure determination using Validation of Individual Parameter Reproducibility (VIPER). Determines a validated initial model using a small set of class averages produced by ISAC2.


Usage in command line stack  directory  --radius=outer_radius  --sym=sym  --moon_elimination=moon_elimination  --ir=inner_radius  --rs=ring_step  --xr=x_range  --yr=y_range  --ts=translational_search_step  --delta=angular_step  --center=center_type  --maxit1=max_iter1  --maxit2=max_iter2  --mask3D=mask3D  --L2threshold=L2threshold  --ref_a=ref_a  --nruns=nruns  --doga=doga  --fl=fl  --aa=aa  --pwreference=pwreference  --debug

Typical usage

sp_rviper exists only in MPI version.

mpirun --npernode 16 -np 24 --host node1,node2  stack output_directory --fl=0.25 --radius=30 --xr=2 --moon_elimination=750,4.84

A faster version using restricted ranges of parameters.

mpirun --npernode 16 -np 16 --host node1  stack output_directory --fl=0.25 --radius=30 --xr=1 --nruns=2   --L2threshold=1.0e300  --doga=-1

The VIPER program exists only in MPI version. Number of MPI processes must be a multiple of --nruns (default = 6).

Since VIPER uses group of processors working together, it is important for efficient execution to have processors within a group allocated to the same node. This way any data exchange within the group does not involve network traffic. The --npernode option of mpirun accomplishes this goal. As shown in the example below when --npernode is used MPI allocates the ranks of the processors sequentially, not moving to the next node until the current one is filled. If --npernode is not used then processors are allocated in a round robin fashion (i.e. jumping to the next node with each allocation). Since in VIPER, groups contain consecutively ranked processors, it is important to provide “--npernode XX”, where XX is the number of processors per node.


Main Parameters

Input images stack: A small subset of class averages produced by ISAC2. (default required string)
Output directory: The automatically-created output directory will contain results. If the directory already exists, results will be written there, possibly overwriting previous runs. (default required string)
Particle radius [Pixels]: Use the same value as in ISAC2. It has to be less than half the box size. (default 29)
Point-group symmetry: Point-group symmetry of the particle. (default c1)
Eliminate disconnected regions: Used to removed disconnected pieces from the model. As an argument it requires a comma-separated string with the mass in KDa and the pixel size in [A]. (default none)

Advanced Parameters

Inner rotational search radius [Pixels]: Inner rotational search radius [Pixels]. (default 1)
Ring step size [Pixels]: Step between rings used for the rotational search. (default 1)
X search range [Pixels]: The translational search range in the x direction. Search will +/-xr range in steps of ts. (default '0')
Y search range [Pixels]: The translational search range in the y direction. If omitted it will be xr. (default '0')
Translational search step [Pixels]: The search will be performed in -xr, -xr+ts, 0, xr-ts, xr, can be fractional. (default '1.0')
Projection angular step [Degrees]: Projection angular step. (default '2.0')
Center 3D template: -1: center of coordinates, 0: no centering; 1: center of gravity (default -1.0)
Maximum iterations - GA step: Maximum number of iterations for GA step. (default 400)
Maximum iterations - Finish step: Maximum iterations number of for Finish step. (default 50)
3D mask: Path to 3D mask file. (default sphere)
GA stop threshold: Defines the maximum relative dispersion of structures' L2 norms. (default 0.03)
Projection generation method: Method for generating the quasi-uniformly distributed projection directions. S - Saff algorithm, or P - Penczek 1994 algorithm. (default S)
GA population size: This defines the number of quasi-independent structures generated. (default 6)
Threshold to start GA: Do GA when the fraction of orientation that changes less than 1.0 degrees is at least this fraction. (default 0.1)
Low-pass filter frequency [1/Pixels]: Using a hyperbolic tangent low-pass filter. Specify with absolute frequency. (default 0.25)
Low-pass filter fall-off [1/Pixels]: Fall-off of for the hyperbolic tangent low-pass filter. Specify with absolute frequency. (default 0.1)
Power spectrum reference: Text file containing a 1D reference power spectrum. (default none)
Verbose: Print debug info. (default False)



  • This program uses a Genetic Algorithm (GA) strategy to deliver a validated 3D ab initio structure. It will first compute simultaneously ab initio structures
  • whose number will be equal to the population size. Next, it will compare solutions and apply evolutionary operators (merge some of the solutions)
  • to produce their offsprings, which subsequently are used as initial structures for the next generation of GA processing.
  • By default, structures in the first generation are initialized randomly.
  • However, the program will start alignment from the alignment parameters xform.projection stored in file headers, if provided.
  • The program only change the alignment parameters in header. The images in stack are untouched. (Neither rotated nor shifted.)



Developer Notes

Author / Maintainer

Pawel A. Penczek





See also


Beta:: Under evaluation and testing. Please let us know if there are any bugs.


There are no known bugs so far.

pipeline/viper/sxviper.txt · Last modified: 2019/04/02 10:52 by lusnig