Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members

#include <angular_estimate_tilt_axis.h>

Inheritance diagram for ProgAngularEstimateTiltAxis:
Inheritance graph
[legend]
Collaboration diagram for ProgAngularEstimateTiltAxis:
Collaboration graph
[legend]

Public Member Functions

void defineParams ()
 Define parameters in the command line. More...
 
void readParams ()
 Read parameters from the command line. More...
 
void run ()
 Run over the whole input metadata. More...
 
- 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

FileName fnUntilted
 
FileName fnTilted
 
FileName fnOut
 
- 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

Centilt parameters.

Definition at line 37 of file angular_estimate_tilt_axis.h.

Member Function Documentation

◆ defineParams()

void ProgAngularEstimateTiltAxis::defineParams ( )
virtual

Define parameters in the command line.

Reimplemented from XmippProgram.

Definition at line 33 of file angular_estimate_tilt_axis.cpp.

34 {
35  //Usage
36  addUsageLine("Estimate the tilt axis from a set of corresponding particles");
37 
38  // Params
39  addParamsLine(" --untilted <posfile> : Input coordinates in the untilted micrograph");
40  addParamsLine(" --tilted <posfile> : Input coordinates in the tilted micrograph");
41  addParamsLine(" -o <metadata> : Output metadata file with tilt axis angles");
42 }
void addUsageLine(const char *line, bool verbatim=false)
void addParamsLine(const String &line)

◆ readParams()

void ProgAngularEstimateTiltAxis::readParams ( )
virtual

Read parameters from the command line.

Reimplemented from XmippProgram.

Definition at line 45 of file angular_estimate_tilt_axis.cpp.

46 {
47  fnUntilted = getParam("--untilted");
48  fnTilted = getParam("--tilted");
49  fnOut = getParam("-o");
50 }
const char * getParam(const char *param, int arg=0)

◆ run()

void ProgAngularEstimateTiltAxis::run ( )
virtual

Run over the whole input metadata.

Reimplemented from XmippProgram.

Definition at line 53 of file angular_estimate_tilt_axis.cpp.

54 {
55  MetaDataVec mdU, mdT;
56  mdU.read(fnUntilted);
57  mdT.read(fnTilted);
58  TiltPairAligner aligner;
59  MetaDataVec mdOut;
60  size_t id;
61  double alphaU, alphaT, gamma;
62 
63  if (mdU.size()==0)
64  {
65  id=mdOut.addObject();
66  mdOut.setValue(MDL_ANGLE_Y,id);
67  mdOut.setValue(MDL_ANGLE_Y2,id);
68  mdOut.setValue(MDL_ANGLE_TILT,id);
69  mdOut.write(fnOut);
70  return;
71  }
72 
73  auto idItU = mdU.ids().begin();
74  auto idItT = mdT.ids().begin();
75  const auto totalSize = mdU.ids().end();
76  for (; idItU != totalSize; ++idItU, ++idItT)
77  {
78  int xu, yu, xt, yt;
79  mdU.getValue(MDL_XCOOR,xu,*idItU);
80  mdU.getValue(MDL_YCOOR,yu,*idItU);
81  mdT.getValue(MDL_XCOOR,xt,*idItT);
82  mdT.getValue(MDL_YCOOR,yt,*idItT);
83 
84  aligner.addCoordinatePair(xu,yu,xt,yt);
85  }
86  aligner.calculatePassingMatrix();
87  aligner.computeGamma();
88 
89  gamma=aligner.gamma;
90  aligner.computeAngles(alphaU, alphaT, gamma);
91 
92  if (fnOut.exists())
93  mdOut.read(fnOut);
94 
95  MDRowVec row;
96  row.setValue(MDL_ANGLE_Y, alphaU);
97  row.setValue(MDL_ANGLE_Y2, alphaT);
98  row.setValue(MDL_ANGLE_TILT, gamma);
99  mdOut.addRow(row);
100 
101  mdOut.write(fnOut);
102 
103 
104 }
void addCoordinatePair(int _muX, int _muY, int _mtX, int _mtY)
Add coordinates pair.
Definition: micrograph.cpp:612
void calculatePassingMatrix()
Calculate passing matrix.
Definition: micrograph.cpp:665
void read(const FileName &inFile, const std::vector< MDLabel > *desiredLabels=nullptr, bool decomposeStack=true) override
Tilting angle of an image (double,degrees)
void setValue(const MDObject &object) override
doublereal * xu
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const
virtual IdIteratorProxy< false > ids()
double * gamma
Angle between y-axis and tilt-axis (double, degrees) for tilted micrographs.
size_t size() const override
size_t addRow(const MDRow &row) override
void computeAngles(double &ualpha, double &talpha, double &ogamma)
Definition: micrograph.cpp:802
bool setValue(const MDObject &mdValueIn, size_t id)
size_t addObject() override
Angle between y-axis and tilt-axis (double, degrees) for untilted micrographs.
X component (int)
bool exists() const
bool getValue(MDObject &mdValueOut, size_t id) const override
Y component (int)
void computeGamma()
Compute gamma.
Definition: micrograph.cpp:717

Member Data Documentation

◆ fnOut

FileName ProgAngularEstimateTiltAxis::fnOut

Filename output document file

Definition at line 45 of file angular_estimate_tilt_axis.h.

◆ fnTilted

FileName ProgAngularEstimateTiltAxis::fnTilted

Filename input tilted coords

Definition at line 43 of file angular_estimate_tilt_axis.h.

◆ fnUntilted

FileName ProgAngularEstimateTiltAxis::fnUntilted

Filename input untilted coords

Definition at line 41 of file angular_estimate_tilt_axis.h.


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