Xmipp

xmipp_angular_project_library (v3.0)

Usage

Create a gallery of projections from a volume

Parameters

-i <input_volume_file>
Input Volume
-o <output_file_name>
stack with output files
--sym <symmetry=c1>
Symmetry to define sampling One of the 17 possible symmetries in single particle electron microscopy
--sampling_rate <Ts=5>
Distance in degrees between sampling points

Extra parameters

--sym_neigh <symmetry>
symmetry used to define neighbors, by default same as sym
--psi_sampling <psi=360>
sampling in psi, 360 -> no sampling in psi
--max_tilt_angle <tmax=91>
maximum tilt angle in degrees
--min_tilt_angle <tmin=-91>
minimum tilt angle in degrees
--experimental_images <docfile=>
doc file with experimental data
--angular_distance <ang=20> ( requires --experimental_images )
Do not search a distance larger than...
--closer_sampling_points ( requires --experimental_images )
create doc file with closest sampling points
--near_exp_data ( requires --experimental_images )
remove points far away from experimental data
--compute_neighbors ( requires --angular_distance )
create doc file with sampling point neighbors
--shears
use projection shears to generate projections
--perturb <sigma=0.0>
gaussian noise projection unit vectors a value=sin(sampling_rate)/4 may be a good starting point
--groups <selfile=>
selfile with groups
--only_winner
if set each experimental point will have a unique neighbor

Examples

Sample at 2 degrees and use c6 symmetry:
   xmipp_angular_project_library -i in.vol -o out.stk --sym c6 --sampling_rate 2

About --sampling_rate

sampling_rate recommended value for perturb
20 0.09
10 0.043
5 0.02
2.5 0.01
1 0.0044
0.5 0.0022

The sampling is made using a triangular grid based on an icosahedron. The approach implementation used here is based on the work of Baumgardner (1995). http://www.wmo.ch/pages/prog/www/WMOCodes/Operational/GRIB2/IcosahedronGrid.doc A local copy of this paper is available: here

More or less we map an hexagonal (2D) onto the surface of the angular sphere.

About --compute_neighbors

Since search for neighboring sampling points is very expensive, neighbors of all the valid sampling points are computed and stored in a file when --compute_neighbors is enabled. This values only depend on the sampling (if --perturb is not used). The format of this file is (projection_matching is able to read it):

      [vnum]
      [size1]
      [vec1_neighbors]
      [vec1_psi]
      [size2]
      [vec2_neighbors]
      [vec2_psi]
      ...
      [sizen]
      [vecn_neighbors]
      [vecn_psi]
      
      for the neighbors and
      X1_angle  Y1_angle  Z1_angle
      X1_vector Y1_vector Z1_vector
      X2_angle  Y2_angle  Z2_angle
      X2_vector Y2_vector Z2_vector
      ...
      Xn_angle  Yn_angle  Zn_angle
      Xn_vector Yn_vector Zn_vector
      for the sampling points
where vnum is the number of vectors, sizen is the number of elements (sampling points) and vecn is the number of neighbors of that particular sampling point. An example of this file is as follow:
266   <-- number of vector (projection directions)
63     <-- number of neighbors for sampling point 0 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <-- sampling point 0 has 1,2,....,n as neighbors (total number 63)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   <-- psi value
63 <-- number of neighbors for sampling point 1
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 <-- sampling point 1 has 0,2,....,n as neighbors (total number 63)
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <-- psi value
...
...
0.858477 -0.512792 0.00781575 <-- sampling point 0 as vector
-30.851 89.5522 0 <-- sampling point 0 as euler angles
0.868546 -0.495547 0.00780013 <-- sampling point 1 as vector
-29.7068 89.5531 0 <-- sampling point 1 as Euler angles
...

User's comments

%COMMENT{type="tableappend"}%