User Tools

Site Tools


pipeline:viper:sxviper

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
pipeline:viper:sxviper [2018/06/20 13:12]
127.0.0.1 external edit
pipeline:viper:sxviper [2019/04/02 10:52]
lusnig [sp_viper]
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-===== sxviper ===== +===== sp_viper ===== 
-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 [[pipeline:isac:sxisac2|ISAC2]].+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 [[pipeline:isac:sxisac2|ISAC2]].
  
 \\ \\
Line 9: Line 9:
 Usage in command line 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+  sp_viper.py 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 ===== ===== Typical usage =====
  
-sxrviper exists only in MPI version.+sp_rviper 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+  mpirun --npernode 16 -np 24 --host node1,node2 sp_viper.py  stack output_directory --fl=0.25 --radius=30 --xr=2 --moon_elimination=750,4.84
  
-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+faster version using restricted ranges of parameters.
  
-  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+  mpirun --npernode 16 -np 16 --host node1 sp_viper.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). +The VIPER program exists only in MPI version Number of 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.+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.
  
 {{viper:npernode_rank.png?600}} {{viper:npernode_rank.png?600}}
Line 30: Line 30:
 \\ \\
 ===== Input ===== ===== Input =====
 +
 === Main Parameters === === Main Parameters ===
-  ; stack : Input images stack: A small set of class averages produced by ISAC2. (default required string) +  ; stack : Input images stack: A small subset of class averages produced by ISAC2. (default required string) 
-  ; directory : Output directory: The directory will be automatically created and the results will be written here. If the directory already exists, results will be written there, possibly overwriting previous runs. (default required string)+  ; directory : 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)
  
-  ; %%--%%radius : Target particle radius [Pixels]: Use the same value as in ISAC2. It has to be less than half the box size. (default 29) +  ; %%--%%radius : Particle radius [Pixels]: Use the same value as in ISAC2. It has to be less than half the box size. (default 29) 
-  ; %%--%%sym : Point-group symmetry: Point-group symmetry of the target particle. (default c1) +  ; %%--%%sym : Point-group symmetry: Point-group symmetry of the particle. (default c1) 
-  ; %%--%%moon_elimination : Eliminate disconnected regions: Used to removed disconnected pieces from the model. It requires as argument a comma separated string with the mass in KDa and the pixel size. (default none)+  ; %%--%%moon_elimination : 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)
  
 \\ \\
Line 42: Line 43:
   ; %%--%%ir : Inner rotational search radius [Pixels]: Inner rotational search radius [Pixels]. (default 1)   ; %%--%%ir : Inner rotational search radius [Pixels]: Inner rotational search radius [Pixels]. (default 1)
   ; %%--%%rs : Ring step size [Pixels]: Step between rings used for the rotational search. (default 1)   ; %%--%%rs : Ring step size [Pixels]: Step between rings used for the rotational search. (default 1)
-  ; %%--%%xr : X search range [Pixels]: The translational search range in the x direction will take place in a +/xr range. (default '0')+  ; %%--%%xr : X search range [Pixels]: The translational search range in the x direction. Search will +/-xr range in steps of ts. (default '0')
   ; %%--%%yr : Y search range [Pixels]: The translational search range in the y direction. If omitted it will be xr. (default '0')   ; %%--%%yr : Y search range [Pixels]: The translational search range in the y direction. If omitted it will be xr. (default '0')
   ; %%--%%ts : Translational search step [Pixels]: The search will be performed in -xr, -xr+ts, 0, xr-ts, xr, can be fractional. (default '1.0')   ; %%--%%ts : Translational search step [Pixels]: The search will be performed in -xr, -xr+ts, 0, xr-ts, xr, can be fractional. (default '1.0')
   ; %%--%%delta :  Projection angular step [Degrees]: Projection angular step. (default '2.0')   ; %%--%%delta :  Projection angular step [Degrees]: Projection angular step. (default '2.0')
-  ; %%--%%center : Center 3D template: 0: no centering; 1: center of gravity (default -1.0) +  ; %%--%%center : Center 3D template: -1: center of coordinates, 0: no centering; 1: center of gravity (default -1.0) 
-  ; %%--%%maxit1 : Maximum iterations - GA step: Maximum iterations for GA step. (default 400) +  ; %%--%%maxit1 : Maximum iterations - GA step: Maximum number of iterations for GA step. (default 400) 
-  ; %%--%%maxit2 : Maximum iterations - Finish step: Maximum iterations for Finish step. (default 50)+  ; %%--%%maxit2 : Maximum iterations - Finish step: Maximum iterations number of for Finish step. (default 50)
   ; %%--%%mask3D : 3D mask: Path to 3D mask file. (default sphere)   ; %%--%%mask3D : 3D mask: Path to 3D mask file. (default sphere)
-  ; %%--%%L2threshold : GA stop threshold: Defines the maximum relative dispersion of volumes' L2 norms. (default 0.03)+  ; %%--%%L2threshold : GA stop threshold: Defines the maximum relative dispersion of structures' L2 norms. (default 0.03)
   ; %%--%%ref_a : Projection generation method: Method for generating the quasi-uniformly distributed projection directions. S - Saff algorithm, or P - Penczek 1994 algorithm. (default S)   ; %%--%%ref_a : Projection generation method: Method for generating the quasi-uniformly distributed projection directions. S - Saff algorithm, or P - Penczek 1994 algorithm. (default S)
-  ; %%--%%nruns : GA population size: This defines the number of quasi-independent volumes generated. (default 6)+  ; %%--%%nruns : GA population size: This defines the number of quasi-independent structures generated. (default 6)
   ; %%--%%doga : 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)   ; %%--%%doga : 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)
   ; %%--%%fl : Low-pass filter frequency [1/Pixels]: Using a hyperbolic tangent low-pass filter. Specify with absolute frequency. (default 0.25)   ; %%--%%fl : Low-pass filter frequency [1/Pixels]: Using a hyperbolic tangent low-pass filter. Specify with absolute frequency. (default 0.25)
Line 64: Line 65:
 \\ \\
 ===== Description ===== ===== Description =====
-  * This program uses a user-defined projection angle and translation shift to perform 3D reconstructionThe translation shifts, and step are not limited to integer numberFor a given deltathe program will perform maxit round refinement. So the final refinement iteration is maxit*(number of delta values). +  * This program uses a Genetic Algorithm (GA) strategy to deliver a validated 3D ab initio structure It will first compute simultaneously ab initio structures 
-  * For the program to workattributes xform.projection (Transform object containing three Euler angles and two in-plane shifts) have to be set in the header of each file.  If their values are not known, all should be set to zero+  * whose number will be equal to the population size Nextit will compare solutions and apply evolutionary operators (merge some of the solutions
-  * The program will start alignment from the current alignment parameters xform.projection stored in file headers.  +  * to produce their offspringswhich subsequently are used as initial structures for the next generation of GA processing. 
-  * The program only change the alignment parameters in their header. The images in stack keep untouched. (Neither rotated nor shifted.)+  * 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.)
  
 \\ \\
Line 88: Line 91:
 \\ \\
 ==== Files ==== ==== Files ====
-sparx/bin/sxviper.py+sparx/bin/sp_viper.py
  
 \\ \\
 ==== See also ==== ==== See also ====
-[[pipeline:isac:sxisac2|sxisac2]] and [[pipeline:viper:sxrviper|sxrviper]]+[[pipeline:isac:sp_isac2|sp_isac2]] and [[pipeline:viper:sp_rviper|sp_rviper]]
  
 \\ \\
pipeline/viper/sxviper.txt · Last modified: 2019/04/02 10:52 by lusnig