This is an old revision of the document!
Initial 3D Model - VIPER: ab initio 3D structure determination using Validation of Individual Parameter Reproducibility (VIPER). Designed to determine a validated initial model using a small set of class averages produced by ISAC2.
Usage in command line
sxviper.py stack directory --radius=outer_radius --sym=sym --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 --moon_elimination=moon_elimination --L2threshold=L2threshold --ref_a=ref_a --nruns=nruns --doga=doga --fl=fl --aa=aa --pwreference=pwreference --debug
sxrviper exists only in MPI version.
mpirun --npernode 16 -np 24 --host node1,node2 sxviper.py stack output_directory --fl=0.25 --radius=30 --xr=2 --moon_elimination=750,4.84
A fast track option, that can be used to choose parameters in the appropriate ranges (for example, obtaining adequate spatial frequency filtering --fl) is provided below. Since it employs extreme values for some parameters this command can be used only for parameter tuning for the VIPER algorithm.
mpirun --npernode 16 -np 16 --host node1 sxviper.py stack output_directory --fl=0.25 --radius=30 --xr=1 --nruns=2 --L2threshold=1.0e300 --doga=-1
The VIPER program needs MPI environment to work properly. Number of used MPI processes must be a multiple of --nruns (default = 6).
Since VIPER makes use of group of processors working together, it is important from a time efficiency point of view to have processors within a group being allocated on the same node. This way any data exchange within the group does not use network traffic. The --npernode option of mpirun is useful in accomplishing 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.
Pawel A. Penczek
Category 1:: APPLICATIONS
sparx/bin/sxviper.py
Beta:: Under evaluation and testing. Please let us know if there are any bugs.
There are no known bugs so far.