Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
ProgVolumeFindSymmetry Class Reference
Inheritance diagram for ProgVolumeFindSymmetry:
Inheritance graph
[legend]
Collaboration diagram for ProgVolumeFindSymmetry:
Collaboration graph
[legend]

Public Member Functions

void defineParams ()
 
void readParams ()
 
void threadEvaluateSymmetry (int thrId)
 
void run ()
 
double evaluateSymmetry (double *p)
 
- Public Member Functions inherited from XmippProgram
const char * getParam (const char *param, int arg=0)
 
const char * getParam (const char *param, const char *subparam, int arg=0)
 
int getIntParam (const char *param, int arg=0)
 
int getIntParam (const char *param, const char *subparam, int arg=0)
 
double getDoubleParam (const char *param, int arg=0)
 
double getDoubleParam (const char *param, const char *subparam, int arg=0)
 
float getFloatParam (const char *param, int arg=0)
 
float getFloatParam (const char *param, const char *subparam, int arg=0)
 
void getListParam (const char *param, StringVector &list)
 
int getCountParam (const char *param)
 
bool checkParam (const char *param)
 
bool existsParam (const char *param)
 
void addParamsLine (const String &line)
 
void addParamsLine (const char *line)
 
ParamDefgetParamDef (const char *param) const
 
virtual void quit (int exit_code=0) const
 
virtual int tryRun ()
 
void initProgress (size_t total, size_t stepBin=60)
 
void setProgress (size_t value=0)
 
void endProgress ()
 
void processDefaultComment (const char *param, const char *left)
 
void setDefaultComment (const char *param, const char *comment)
 
virtual void initComments ()
 
void setProgramName (const char *name)
 
void addUsageLine (const char *line, bool verbatim=false)
 
void clearUsage ()
 
void addExampleLine (const char *example, bool verbatim=true)
 
void addSeeAlsoLine (const char *seeAlso)
 
void addKeywords (const char *keywords)
 
const char * name () const
 
virtual void usage (int verb=0) const
 
virtual void usage (const String &param, int verb=2)
 
int version () const
 
virtual void show () const
 
virtual void read (int argc, const char **argv, bool reportErrors=true)
 
virtual void read (int argc, char **argv, bool reportErrors=true)
 
void read (const String &argumentsLine)
 
 XmippProgram ()
 
 XmippProgram (int argc, const char **argv)
 
virtual ~XmippProgram ()
 

Public Attributes

int rot_sym
 
bool useSplines
 
FileName fn_input
 
FileName fn_output
 
String sym2
 
double rot0
 
double rotF
 
double step_rot
 
double rotLocal
 
double tilt0
 
double tiltF
 
double step_tilt
 
double z0
 
double zF
 
double step_z
 
double zLocal
 
double Ts
 
double heightFraction
 
bool local
 
bool helical
 
bool helicalDihedral
 
Mask mask_prm
 
int numberOfThreads
 
int Cn
 
Image< double > volume
 
std::vector< double > rotVector
 
std::vector< double > tiltVector
 
std::vector< double > zVector
 
ThreadTaskDistributortd
 
MultidimArray< double > vbest_corr
 
MultidimArray< double > vbest_rot
 
MultidimArray< double > vbest_tilt
 
MultidimArray< double > vbest_z
 
Image< double > helicalCorrelation
 
- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 

Additional Inherited Members

- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 
- Protected Attributes inherited from XmippProgram
int errorCode
 
ProgramDefprogDef
 Program definition and arguments parser. More...
 
std::map< String, CommentListdefaultComments
 
int argc
 Original command line arguments. More...
 
const char ** argv
 

Detailed Description

Definition at line 41 of file volume_find_symmetry.cpp.

Member Function Documentation

◆ defineParams()

void ProgVolumeFindSymmetry::defineParams ( )
inlinevirtual

Function in which the param of each Program are defined.

Reimplemented from XmippProgram.

Definition at line 58 of file volume_find_symmetry.cpp.

59  {
60  addUsageLine("Find a symmetry rotational axis.");
61  addUsageLine("+The output is of the form");
62  addUsageLine("+Symmetry axis (rot,tilt)= 10 20 --> 0.33682 0.059391 0.93969",true);
63  addUsageLine("+The angles represent the rot and tilt angles of the symmetry axis ");
64  addUsageLine("+see [[http://xmipp.cnb.csic.es/twiki/bin/view/Xmipp/Conventions#Euler_Angles][the note on Euler angles]] ");
65  addUsageLine("+convention in Xmipp). The rest of the numbers is the axis itself in X, Y, Z ");
66  addUsageLine("+coordinates. In this way, the symmetry axis is a line that passes through the ");
67  addUsageLine("+center of the volume and whose direction is this vector.");
68  addUsageLine("+It is important that the volume is correctly centered.");
69  addSeeAlsoLine("volume_center, transform_geometry");
70  addParamsLine(" -i <volumeFile> : Volume to process");
71  addParamsLine("[-o+ <file=\"\">] : Metadata with the orientation of the symmetry axis");
72  addParamsLine(" : In helical mode, there is a file called output.xmp ");
73  addParamsLine(" : with the correlation map (vertical axis is the rotation, ");
74  addParamsLine(" : horizontal axis is the translation)");
75  addParamsLine("[--thr <N=1>] : Number of threads");
76  addParamsLine("--sym <mode> : Symmetry mode");
77  addParamsLine(" where <mode>");
78  addParamsLine(" rot <n> : Order of the rotational axis");
79  addParamsLine(" helical : Helical symmetry.");
80  addParamsLine(" helicalDihedral : Helical-Dihedral symmetry.");
81  addParamsLine("[--sym2 <Cn=C1>] : Additional Cn symmetry. Only for helical and helicalDihedral");
82  addParamsLine("==Locate rotational axis==");
83  addParamsLine("[--rot <rot0=0> <rotF=355> <step=5>]: Limits for rotational angle search");
84  addParamsLine("[--tilt <tilt0=0> <tiltF=90> <step=5>]: Limits for tilt angle search");
85  addParamsLine("[--localRot <rot0> <tilt0>] : Perform a local search around this angle");
86  addParamsLine("[--useSplines+] : Use cubic B-Splines for the interpolations");
87  addParamsLine("==Locate helical parameters==");
88  addParamsLine("[-z <z0=1> <zF=10> <zstep=0.5>] : Search space for the shift in Z (in Angstroms)");
89  addParamsLine("[--sampling <T=1>] : Sampling rate in A/pix");
90  addParamsLine("[--rotHelical <rot0=-357> <rotF=357> <step=3>]: Search space for rotation around Z");
91  addParamsLine("[--localHelical <z> <rot>] : Perform a local search around this angle and shift");
92  addParamsLine("[--heightFraction <f=1>] : Use this fraction of the volume");
93  mask_prm.defineParams(this,INT_MASK,nullptr,"Restrict the comparison to the mask area.",true);
94  addExampleLine("A typical application for a rotational symmetry axis is ",false);
95  addExampleLine("xmipp_volume_center -i volume.vol");
96  addExampleLine("xmipp_volume_find_symmetry -i volume.vol --sym rot 3");
97  addExampleLine("Presume the symmetry axis is in rot=20, tilt=10. To align vertically the axis use",false);
98  addExampleLine("xmipp_transform_geometry -i volume.vol --rotate_volume euler 20 10 0");
99  addExampleLine("For locating the helical parameters use",false);
100  addExampleLine("xmipp_volume_find_symmetry -i volume --sym helical -z 0 6 1 --mask circular -32 --thr 2 -o parameters.xmd");
101  }
void addSeeAlsoLine(const char *seeAlso)
static void defineParams(XmippProgram *program, int allowed_data_types=ALL_KINDS, const char *prefix=nullptr, const char *comment=nullptr, bool moreOptions=false)
Definition: mask.cpp:1203
void addExampleLine(const char *example, bool verbatim=true)
#define INT_MASK
Definition: mask.h:385
void addUsageLine(const char *line, bool verbatim=false)
void addParamsLine(const String &line)

◆ evaluateSymmetry()

double ProgVolumeFindSymmetry::evaluateSymmetry ( double *  p)
inline

Definition at line 359 of file volume_find_symmetry.cpp.

360  {
361  MultidimArray<double> volume_sym, volume_aux;
362  const MultidimArray<double> &mVolume=volume();
363  Matrix2D<double> sym_matrix;
364  if (!helical && !helicalDihedral)
365  {
367  Matrix1D<double> sym_axis;
368 
369  double rot=p[1];
370  double tilt=p[2];
371 
372  // Compute symmetry axis
373  Euler_angles2matrix(rot, tilt, 0., Euler);
374  Euler.getRow(2, sym_axis);
375  sym_axis.selfTranspose();
376 
377  // Symmetrize along this axis
378  volume_sym = volume();
379  for (int n = 1; n < rot_sym; n++)
380  {
381  rotation3DMatrix(360.0 / rot_sym * n, sym_axis, sym_matrix);
382  if (useSplines)
383  applyGeometry(xmipp_transformation::BSPLINE3, volume_aux, mVolume, sym_matrix,
384  xmipp_transformation::IS_NOT_INV, xmipp_transformation::DONT_WRAP);
385  else
386  applyGeometry(xmipp_transformation::LINEAR, volume_aux, mVolume, sym_matrix,
387  xmipp_transformation::IS_NOT_INV, xmipp_transformation::DONT_WRAP);
388  volume_sym += volume_aux;
389  }
390  return -correlationIndex(mVolume, volume_sym, &mask_prm.get_binary_mask());
391  }
392  else
393  {
394  double rotHelical=p[1];
395  double zHelical=p[2];
396  if (zHelical<0 || zHelical>ZSIZE(mVolume)*0.4)
397  return 1e38;
398  if (zHelical<z0 || zHelical>zF || rotHelical<rot0 || rotHelical>rotF)
399  return 1e38;
400  symmetry_Helical(volume_sym, mVolume, zHelical, DEG2RAD(rotHelical), 0, &mask_prm.get_binary_mask(), helicalDihedral, heightFraction,Cn);
401  double corr=correlationIndex(mVolume, volume_sym, &mask_prm.get_binary_mask());
402 //#define DEBUG
403 #ifdef DEBUG
404 
405  Image<double> save;
406  save()=mVolume;
407  save.write("PPPvol.vol");
408  save()=volume_sym;
409  save.write("PPPvolsym.vol");
411  save.write("PPPmask.vol");
412  std::cout << p[1] << " " << p[2] << " " << p[3] << " -> " << corr << std::endl;
413  char c;
414  std::cin >> c;
415 #endif
416  return -corr;
417  }
418  }
void Euler_angles2matrix(T alpha, T beta, T gamma, Matrix2D< T > &A, bool homogeneous)
Definition: geometry.cpp:624
doublereal * c
#define DEG2RAD(d)
Definition: xmipp_macros.h:312
void applyGeometry(int SplineDegree, MultidimArray< std::complex< double > > &V2, const MultidimArray< std::complex< double > > &V1, const Matrix2D< double > &A, bool inv, bool wrap, std::complex< double > outside, MultidimArray< double > *BcoeffsPtr)
double correlationIndex(const MultidimArray< T > &x, const MultidimArray< T > &y, const MultidimArray< int > *mask=NULL, MultidimArray< double > *Contributions=NULL)
void selfTranspose()
Definition: matrix1d.h:944
void rotation3DMatrix(double ang, char axis, Matrix2D< double > &result, bool homogeneous)
void symmetry_Helical(MultidimArray< double > &Vout, const MultidimArray< double > &Vin, double zHelical, double rotHelical, double rot0, MultidimArray< int > *mask, bool dihedral, double heightFraction, int Cn)
void write(const FileName &fn) const
Definition: euler.h:39
#define ZSIZE(v)
void typeCast(const Matrix1D< T1 > &v1, Matrix1D< T2 > &v2)
Definition: matrix1d.h:1227
const MultidimArray< int > & get_binary_mask() const
Definition: mask.h:707
void getRow(size_t i, Matrix1D< T > &v) const
Definition: matrix2d.cpp:871
int * n

◆ readParams()

void ProgVolumeFindSymmetry::readParams ( )
inlinevirtual

Function in which each program will read parameters that it need. If some error occurs the usage will be printed out.

Reimplemented from XmippProgram.

Definition at line 104 of file volume_find_symmetry.cpp.

105  {
106  fn_input = getParam("-i");
107  fn_output = getParam("-o");
108  String mode;
109  mode=getParam("--sym");
110  if (mode=="helical")
111  helical=true;
112  else if (mode=="helicalDihedral")
113  helicalDihedral=true;
114  else
115  {
116  helical=false;
117  helicalDihedral=false;
118  rot_sym = getIntParam("--sym",1);
119  }
120  useSplines = checkParam("--useSplines");
121  if (helical || helicalDihedral)
122  {
123  Ts=getDoubleParam("--sampling");
124  heightFraction=getDoubleParam("--heightFraction");
125  local=checkParam("--localHelical");
126  if (local)
127  {
128  zLocal=getDoubleParam("--localHelical",0)/Ts;
129  rotLocal=getDoubleParam("--localHelical",1);
130  }
131  z0=getDoubleParam("-z",0)/Ts;
132  zF=getDoubleParam("-z",1)/Ts;
133  step_z=getDoubleParam("-z",2)/Ts;
134  rot0=getDoubleParam("--rotHelical",0);
135  rotF=getDoubleParam("--rotHelical",1);
136  step_rot=getDoubleParam("--rotHelical",2);
137  sym2 = getParam("--sym2");
138  Cn=std::stoi(sym2.substr(1));
139  }
140  else
141  {
142  local=checkParam("--localRot");
143  if (local)
144  {
145  rot0=getDoubleParam("--localRot",0);
146  tilt0=getDoubleParam("--localRot",1);
147  }
148  else
149  {
150  rot0=getDoubleParam("--rot",0);
151  rotF=getDoubleParam("--rot",1);
152  step_rot=getDoubleParam("--rot",2);
153  tilt0=getDoubleParam("--tilt",0);
154  tiltF=getDoubleParam("--tilt",1);
155  step_tilt=getDoubleParam("--tilt",2);
156  }
157  }
159  if (checkParam("--mask"))
160  mask_prm.readParams(this);
161  numberOfThreads=getIntParam("--thr");
162  }
double getDoubleParam(const char *param, int arg=0)
int allowed_data_types
Definition: mask.h:495
const char * getParam(const char *param, int arg=0)
void readParams(XmippProgram *program)
Definition: mask.cpp:1284
void mode
std::string String
Definition: xmipp_strings.h:34
#define INT_MASK
Definition: mask.h:385
bool checkParam(const char *param)
int getIntParam(const char *param, int arg=0)

◆ run()

void ProgVolumeFindSymmetry::run ( )
inlinevirtual

This function will be start running the program. it also should be implemented by derived classes.

Reimplemented from XmippProgram.

Definition at line 205 of file volume_find_symmetry.cpp.

206  {
207  // Read input volume
209  volume().setXmippOrigin();
211  double best_corr, best_rot, best_tilt, best_z;
212  td=nullptr;
213 
214  if (!helical && !helicalDihedral)
215  {
216  // Look for the rotational symmetry axis
217  if (!local)
218  {
219  if (verbose>0)
220  std::cerr << "Searching symmetry axis ...\n";
221  for (double rot = rot0; rot <= rotF; rot += step_rot)
222  for (double tilt = tilt0; tilt <= tiltF; tilt += step_tilt) {
223  rotVector.push_back(rot);
224  tiltVector.push_back(tilt);
225  }
227  vbest_corr.initConstant(-1e38);
230  td = new ThreadTaskDistributor(rotVector.size(), 5);
233  best_corr=-1e38;
235  if (vbest_corr(i)>best_corr)
236  {
237  best_corr=vbest_corr(i);
238  best_rot=vbest_rot(i);
239  best_tilt=vbest_tilt(i);
240  }
241  }
242  else
243  {
244  Matrix1D<double> p(2), steps(2);
245  p(0)=rot0;
246  p(1)=tilt0;
247  double fitness;
248  int iter;
249  steps.initConstant(1);
250  powellOptimizer(p,1,2,&evaluateSymmetryWrapper,this,0.01,
251  fitness,iter,steps,true);
252  best_rot=p(0);
253  best_tilt=p(1);
254  }
256  Matrix1D<double> sym_axis;
257  Euler_angles2matrix(best_rot, best_tilt, 0., Euler);
258  Euler.getRow(2, sym_axis);
259  if (verbose!=0)
260  std::cout << "Symmetry axis (rot,tilt)= " << best_rot << " "
261  << best_tilt << " --> " << sym_axis << std::endl;
262  if (fn_output!="")
263  {
264  std::vector<double> direction;
265  direction.push_back(XX(sym_axis));
266  direction.push_back(YY(sym_axis));
267  direction.push_back(ZZ(sym_axis));
268 
269  MetaDataVec MD;
270  size_t id=MD.addObject();
271  MD.setValue(MDL_ANGLE_ROT,best_rot,id);
272  MD.setValue(MDL_ANGLE_TILT,best_tilt,id);
273  MD.setValue(MDL_DIRECTION,direction,id);
274  MD.write(fn_output);
275  }
276  }
277  else
278  {
279  // If helical or helical dihedral
280  if (heightFraction<=1.0)
281  {
286  if (k<zFirst || k>zLast)
287  A3D_ELEM(mask,k,i,j)=0;
288  }
289 
290  if (!local)
291  {
292  int ydim=0, xdim=0;
293  for (double rot = rot0; rot <= rotF; rot += step_rot)
294  {
295  ydim++;
296  for (double z = z0; z <= zF; z += step_z)
297  {
298  if (ydim==1)
299  xdim++;
300  rotVector.push_back(rot);
301  zVector.push_back(z);
302  }
303  }
305  vbest_corr.initConstant(-1e38);
308  helicalCorrelation().initZeros(ydim,xdim);
309  td = new ThreadTaskDistributor(rotVector.size(), 5);
312  best_corr=-1e38;
314  if (vbest_corr(i)>best_corr)
315  {
316  best_corr=vbest_corr(i);
317  best_rot=vbest_rot(i);
318  best_z=vbest_z(i);
319  }
320  }
321  else
322  {
323  Matrix1D<double> p(2), steps(2);
324  p(0)=rotLocal;
325  p(1)=zLocal;
326  double fitness;
327  int iter;
328  steps.initConstant(1);
329  powellOptimizer(p,1,2,&evaluateSymmetryWrapper,this,0.01,
330  fitness,iter,steps,true);
331  best_rot=p(0);
332  best_z=p(1);
333  best_corr=-fitness;
334 
335  }
336  if (verbose!=0)
337  std::cout << "Symmetry parameters (z,rot)= " << best_z*Ts << " " << best_rot << " correlation=" << best_corr << std::endl;
338  if (fn_output!="")
339  {
340  MetaDataVec MD;
341  size_t id=MD.addObject();
342  MD.setValue(MDL_ANGLE_ROT,best_rot,id);
343  MD.setValue(MDL_SHIFT_Z,best_z*Ts,id);
344  MD.write(fn_output);
345  if (!local)
347  }
348  }
349  delete td;
350  }
void run(ThreadFunction function, void *data=NULL)
std::vector< double > zVector
Rotation angle of an image (double,degrees)
void Euler_angles2matrix(T alpha, T beta, T gamma, Matrix2D< T > &A, bool homogeneous)
Definition: geometry.cpp:624
ThreadManager * thMgr
MultidimArray< double > vbest_z
void resizeNoCopy(const MultidimArray< T1 > &v)
Tilting angle of an image (double,degrees)
void write(const FileName &name="", size_t select_img=ALL_IMAGES, bool isStack=false, int mode=WRITE_OVERWRITE, CastWriteMode castMode=CW_CAST, int _swapWrite=0)
MultidimArray< double > vbest_rot
void initConstant(T val)
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const
void powellOptimizer(Matrix1D< double > &p, int i0, int n, double(*f)(double *x, void *), void *prm, double ftol, double &fret, int &iter, const Matrix1D< double > &steps, bool show)
FileName removeAllExtensions() const
glob_prnt iter
std::vector< double > rotVector
MultidimArray< double > vbest_tilt
#define i
double evaluateSymmetryWrapper(double *p, void *prm)
ql0001_ & k(htemp+1),(cvec+1),(atemp+1),(bj+1),(bl+1),(bu+1),(x+1),(clamda+1), &iout, infoqp, &zero,(w+1), &lenw,(iw+1), &leniw, &glob_grd.epsmac
#define A3D_ELEM(V, k, i, j)
#define FOR_ALL_ELEMENTS_IN_ARRAY3D(V)
std::vector< double > tiltVector
#define XX(v)
Definition: matrix1d.h:85
bool setValue(const MDObject &mdValueIn, size_t id)
size_t addObject() override
Definition: euler.h:39
#define ZSIZE(v)
double z
ThreadTaskDistributor * td
MultidimArray< double > vbest_corr
void direction(const MultidimArray< double > &orMap, MultidimArray< double > &qualityMap, double lambda, int size, MultidimArray< double > &dirMap, int x, int y)
int verbose
Verbosity level.
#define j
double steps
#define YY(v)
Definition: matrix1d.h:93
#define FOR_ALL_ELEMENTS_IN_ARRAY1D(v)
void generate_mask(bool apply_geo=false)
Definition: mask.cpp:1577
int round(double x)
Definition: ap.cpp:7245
#define FIRST_XMIPP_INDEX(size)
Definition: xmipp_macros.h:439
void globalThreadEvaluateSymmetry(ThreadArgument &thArg)
Shift for the image in the Z axis (double)
int read(const FileName &name, DataMode datamode=DATA, size_t select_img=ALL_IMAGES, bool mapData=false, int mode=WRITE_READONLY)
Direction in 3D.
void initZeros(const MultidimArray< T1 > &op)
#define LAST_XMIPP_INDEX(size)
Definition: xmipp_macros.h:448
const MultidimArray< int > & get_binary_mask() const
Definition: mask.h:707
void getRow(size_t i, Matrix1D< T > &v) const
Definition: matrix2d.cpp:871
double fitness(double *p)
#define ZZ(v)
Definition: matrix1d.h:101

◆ threadEvaluateSymmetry()

void ProgVolumeFindSymmetry::threadEvaluateSymmetry ( int  thrId)
inline

Definition at line 164 of file volume_find_symmetry.cpp.

165  {
166  Matrix1D<double> p(2);
167  DIRECT_A1D_ELEM(vbest_corr,thrId) = 0;
168  DIRECT_A1D_ELEM(vbest_rot,thrId) = 0;
169  if (helical || helicalDihedral)
170  DIRECT_A1D_ELEM(vbest_z,thrId) = 0;
171  else
172  DIRECT_A1D_ELEM(vbest_tilt,thrId) = 0;
173  size_t first, last;
174  if (thrId==0)
176  while (td->getTasks(first, last))
177  {
178  for (size_t i=first; i<=last; i++)
179  {
180  XX(p)=rotVector[i];
181  if (helical || helicalDihedral)
182  YY(p)=zVector[i];
183  else
184  YY(p)=tiltVector[i];
185  double corr=-evaluateSymmetry(MATRIX1D_ARRAY(p)-1);
186  if (helical || helicalDihedral)
188  if (corr > DIRECT_A1D_ELEM(vbest_corr,thrId))
189  {
190  DIRECT_A1D_ELEM(vbest_corr,thrId) = corr;
191  DIRECT_A1D_ELEM(vbest_rot,thrId) = XX(p);
192  if (helical || helicalDihedral)
193  DIRECT_A1D_ELEM(vbest_z,thrId) = YY(p);
194  else
195  DIRECT_A1D_ELEM(vbest_tilt,thrId) = YY(p);
196  }
197  }
198  if (thrId==0)
199  progress_bar(last);
200  }
201  if (thrId==0)
202  progress_bar(rotVector.size());
203  }
std::vector< double > zVector
void init_progress_bar(long total)
MultidimArray< double > vbest_z
bool getTasks(size_t &first, size_t &last)
MultidimArray< double > vbest_rot
std::vector< double > rotVector
MultidimArray< double > vbest_tilt
#define i
glob_log first
#define DIRECT_A1D_ELEM(v, i)
std::vector< double > tiltVector
double evaluateSymmetry(double *p)
#define XX(v)
Definition: matrix1d.h:85
void progress_bar(long rlen)
#define DIRECT_MULTIDIM_ELEM(v, n)
ThreadTaskDistributor * td
MultidimArray< double > vbest_corr
#define YY(v)
Definition: matrix1d.h:93
#define MATRIX1D_ARRAY(v)
Definition: matrix1d.h:58

Member Data Documentation

◆ Cn

int ProgVolumeFindSymmetry::Cn

Definition at line 55 of file volume_find_symmetry.cpp.

◆ fn_input

FileName ProgVolumeFindSymmetry::fn_input

Definition at line 46 of file volume_find_symmetry.cpp.

◆ fn_output

FileName ProgVolumeFindSymmetry::fn_output

Definition at line 46 of file volume_find_symmetry.cpp.

◆ heightFraction

double ProgVolumeFindSymmetry::heightFraction

Definition at line 50 of file volume_find_symmetry.cpp.

◆ helical

bool ProgVolumeFindSymmetry::helical

Definition at line 52 of file volume_find_symmetry.cpp.

◆ helicalCorrelation

Image<double> ProgVolumeFindSymmetry::helicalCorrelation

Definition at line 356 of file volume_find_symmetry.cpp.

◆ helicalDihedral

bool ProgVolumeFindSymmetry::helicalDihedral

Definition at line 52 of file volume_find_symmetry.cpp.

◆ local

bool ProgVolumeFindSymmetry::local

Definition at line 51 of file volume_find_symmetry.cpp.

◆ mask_prm

Mask ProgVolumeFindSymmetry::mask_prm

Definition at line 53 of file volume_find_symmetry.cpp.

◆ numberOfThreads

int ProgVolumeFindSymmetry::numberOfThreads

Definition at line 54 of file volume_find_symmetry.cpp.

◆ rot0

double ProgVolumeFindSymmetry::rot0

Definition at line 48 of file volume_find_symmetry.cpp.

◆ rot_sym

int ProgVolumeFindSymmetry::rot_sym

Definition at line 44 of file volume_find_symmetry.cpp.

◆ rotF

double ProgVolumeFindSymmetry::rotF

Definition at line 48 of file volume_find_symmetry.cpp.

◆ rotLocal

double ProgVolumeFindSymmetry::rotLocal

Definition at line 48 of file volume_find_symmetry.cpp.

◆ rotVector

std::vector<double> ProgVolumeFindSymmetry::rotVector

Definition at line 353 of file volume_find_symmetry.cpp.

◆ step_rot

double ProgVolumeFindSymmetry::step_rot

Definition at line 48 of file volume_find_symmetry.cpp.

◆ step_tilt

double ProgVolumeFindSymmetry::step_tilt

Definition at line 49 of file volume_find_symmetry.cpp.

◆ step_z

double ProgVolumeFindSymmetry::step_z

Definition at line 50 of file volume_find_symmetry.cpp.

◆ sym2

String ProgVolumeFindSymmetry::sym2

Definition at line 47 of file volume_find_symmetry.cpp.

◆ td

ThreadTaskDistributor* ProgVolumeFindSymmetry::td

Definition at line 354 of file volume_find_symmetry.cpp.

◆ tilt0

double ProgVolumeFindSymmetry::tilt0

Definition at line 49 of file volume_find_symmetry.cpp.

◆ tiltF

double ProgVolumeFindSymmetry::tiltF

Definition at line 49 of file volume_find_symmetry.cpp.

◆ tiltVector

std::vector<double> ProgVolumeFindSymmetry::tiltVector

Definition at line 353 of file volume_find_symmetry.cpp.

◆ Ts

double ProgVolumeFindSymmetry::Ts

Definition at line 50 of file volume_find_symmetry.cpp.

◆ useSplines

bool ProgVolumeFindSymmetry::useSplines

Definition at line 45 of file volume_find_symmetry.cpp.

◆ vbest_corr

MultidimArray<double> ProgVolumeFindSymmetry::vbest_corr

Definition at line 355 of file volume_find_symmetry.cpp.

◆ vbest_rot

MultidimArray<double> ProgVolumeFindSymmetry::vbest_rot

Definition at line 355 of file volume_find_symmetry.cpp.

◆ vbest_tilt

MultidimArray<double> ProgVolumeFindSymmetry::vbest_tilt

Definition at line 355 of file volume_find_symmetry.cpp.

◆ vbest_z

MultidimArray<double> ProgVolumeFindSymmetry::vbest_z

Definition at line 355 of file volume_find_symmetry.cpp.

◆ volume

Image<double> ProgVolumeFindSymmetry::volume

Definition at line 352 of file volume_find_symmetry.cpp.

◆ z0

double ProgVolumeFindSymmetry::z0

Definition at line 50 of file volume_find_symmetry.cpp.

◆ zF

double ProgVolumeFindSymmetry::zF

Definition at line 50 of file volume_find_symmetry.cpp.

◆ zLocal

double ProgVolumeFindSymmetry::zLocal

Definition at line 50 of file volume_find_symmetry.cpp.

◆ zVector

std::vector<double> ProgVolumeFindSymmetry::zVector

Definition at line 353 of file volume_find_symmetry.cpp.


The documentation for this class was generated from the following file: