-
Notifications
You must be signed in to change notification settings - Fork 1
CreateProjectionLibrary
This program allows you to generate projections from a 3D Xmipp volume. It has been designed to create the reference galleries needed by projection matching. Projections for other purpose may be obtained using Project. There is a parallel version called MPICreateProjectionLibrary.
$ angular_project_library -i ...__Parameters__
- ``
- `` Root for output files
- `` If this option is provided, only the non redundant projections are generated. A valid acronym is one of the 17 possible symmetries in single particle electronmicroscopy i.e. ci, cs, cn, cnv, cnh, sn, dn, dnv, dnh, t, td, th, o, oh, i1, i2, i3, i4, i1h, i2h, i3h, i4h : where n may change from 1 to 99. Details are available atSymmetry. IMPORTANT: no symmetry files are allowed only acronym. DEFAULT c1. If you plan to use the flip option in projection matching use the h symmetry that is, c1h instead of c1 or i3h
instead of i3.
-
-sampling_rate [default
5]= Distance in degrees between sampling points. -
-psi_sampling [default
360]= Sampling in psi, 360 -> no sampling in psi -
-max_tilt_angle [default
91]= Maximum tilt angle in degrees -
-min_tilt_angle [default
-91]= Minimum tilt angle in degrees (use symmetry c1h for half sphere) - `` doc file with experimental data (see next two options)
- `` Look for sampling points close to experimental data
-
-angular_distance [default
20]= define neighborhood radius. A negative value means cover all the Evald sphere - `` Look for the closers sampling point to each experimental data.
- `` create doc file with sampling point neighbors
- `` verbose mode off
- `` Use shears in real space as projection method (more exact, and quicker)
-
-perturb [default
0.0]= : gaussian noise projection unit vectors a value=sin(sampling_rate)/4 may be a good starting point. Good option to avoid local minima
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:/IcosahedronGrid.doc
More or less we map an hexagonal (2D) onto the surface of the angular sphere.
xmipp_angular_project_library -i scaled_vol.vol -o img -sampling_rate 1 -experimental_images kk.doc -closer_sampling_points -angular_distance 10 -sym i2 -compute_neighbors -near_exp_data
The above command will create a gallery of images which satisfy:
- the input volume is
scaled_vol.vol
- all output files will start with
img
- The sampling rate is
1
degree (the distance between projection directions is about sin(1), the actual distance between sampling points is not constant but varies by 20 % at most) - The doc file
kk.doc
will be read. This file contains a collection of experimental images. Only sampling points closer than10
degrees to these experimental images will be taken into account - only the non redundant set of directions for symmetry
i2
will be used. That is, 1/60 the whole angular sphere - For all sampling points, a list with its neighbors will be computed and saved in the file
img_sampling.txt
- a sel filled (
img.sel
) and all the projections (img00001,...
) will be created
The following three commands allow you to visualize the projection directions:
xmipp_header_extract -i img.sel -o img.doc xmipp_angular_distribution_show -ang img.doc -bild img.bild chimera img.bild
Since search for neighboring sampling points is very expensive, neighbors of all the valid sampling pointa 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 pointswhere 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 follows:
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 ...
--Main.RobertoMarabini - 10 Mar 2008