Skip to content

CreateProjectionLibrary

Adrian Quintana edited this page Dec 11, 2017 · 1 revision

!Angular_Project_Library ( xmipp version 2.3)

Purpose

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.

Usage

$ 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 [default5]= Distance in degrees between sampling points.
  • -psi_sampling [default360]= Sampling in psi, 360 -> no sampling in psi
  • -max_tilt_angle [default91]= 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 [default20]= 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 [default0.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

About sampling rate (this is rather technical so you are welcome to skip it)

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.

Examples and Notes

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 isscaled_vol.vol
  • all output files will start withimg
  • The sampling rate is1 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 filekk.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 symmetryi2 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 fileimg_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

NOTE about -compute_neighbors

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 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 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
...

USER's COMMENTS

--Main.RobertoMarabini - 10 Mar 2008

Clone this wiki locally