Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
ProgVolumeSetAlign Class Reference

#include <volumeset_align.h>

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

Public Member Functions

 ProgVolumeSetAlign ()
 Empty constructor. More...
 
void defineParams ()
 Define params. More...
 
void readParams ()
 Read arguments from command line. More...
 
virtual void preProcess ()
 
void processImage (const FileName &fnImg, const FileName &, const MDRow &, MDRow &)
 
virtual void finishProcessing ()
 
virtual void writeVolumeParameters (const FileName &fnImg)
 
- Public Member Functions inherited from XmippMetadataProgram
MetaDatagetInputMd ()
 
MetaDataVecgetOutputMd ()
 
 XmippMetadataProgram ()
 Empty constructor. More...
 
virtual int tryRead (int argc, const char **argv, bool reportErrors=true)
 
virtual void init ()
 
virtual void setup (MetaData *md, const FileName &o="", const FileName &oroot="", bool applyGeo=false, MDLabel label=MDL_IMAGE)
 
virtual ~XmippMetadataProgram ()
 
void setMode (WriteModeMetaData _mode)
 
void setupRowOut (const FileName &fnImgIn, const MDRow &rowIn, const FileName &fnImgOut, MDRow &rowOut) const
 Prepare rowout. More...
 
virtual void wait ()
 Wait for the distributor to finish. More...
 
virtual void checkPoint ()
 For very long programs, it may be needed to write checkpoints. More...
 
virtual void run ()
 Run over all images. 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)
 
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 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

bool resume = false
 
FileName fnREF
 Reference volume structure. More...
 
FileName fnOutDir
 Output directory. More...
 
bool alignVolumes
 Align volumes. More...
 
int tilt0
 
int tiltF
 
double frm_freq
 
int frm_shift
 
FileName fnMask
 
FILE * fnAnglesAndShifts
 
float Matrix_Angles_Shifts [6]
 
float fitness
 
bool flipped = false
 
int rangen = 0
 
Matrix1D< double > parameters
 
FileName currentVolName = ""
 
char nameTemplate [256]
 
- Public Attributes inherited from XmippMetadataProgram
FileName fn_in
 Filenames of input and output Metadata. More...
 
FileName fn_out
 
FileName baseName
 
FileName pathBaseName
 
FileName oextBaseName
 
bool apply_geo
 Apply geo. More...
 
size_t ndimOut
 Output dimensions. More...
 
size_t zdimOut
 
size_t ydimOut
 
size_t xdimOut
 
DataType datatypeOut
 
size_t mdInSize
 Number of input elements. More...
 
- Public Attributes inherited from XmippProgram
bool doRun
 
bool runWithoutArgs
 
int verbose
 Verbosity level. More...
 
int debug
 

Protected Member Functions

virtual void createWorkFiles ()
 
- Protected Member Functions inherited from XmippMetadataProgram
virtual void initComments ()
 
virtual void postProcess ()
 
virtual bool getImageToProcess (size_t &objId, size_t &objIndex)
 
void show () const override
 
virtual void startProcessing ()
 
virtual void writeOutput ()
 
virtual void showProgress ()
 
virtual void defineLabelParam ()
 
- Protected Member Functions inherited from XmippProgram
void defineCommons ()
 
- Protected Member Functions inherited from Rerunable
 Rerunable (const FileName &fn)
 
virtual void createWorkFiles (bool resume, MetaData *md)
 
const FileNamegetFileName () const
 
void setFileName (const FileName &fn)
 

Additional Inherited Members

- Protected Attributes inherited from XmippMetadataProgram
WriteModeMetaData mode
 Metadata writing mode: OVERWRITE, APPEND. More...
 
FileName oext
 Output extension and root. More...
 
FileName oroot
 
MDLabel image_label
 MDLabel to be used to read/write images, usually will be MDL_IMAGE. More...
 
bool produces_an_output
 Indicate that a unique final output is produced. More...
 
bool produces_a_metadata
 Indicate that the unique final output file is a Metadata. More...
 
bool each_image_produces_an_output
 Indicate that an output is produced for each image in the input. More...
 
bool allow_apply_geo
 
bool decompose_stacks
 Input Metadata will treat a stack file as a set of images instead of a unique file. More...
 
bool delete_output_stack
 Delete previous output stack file prior to process images. More...
 
bool get_image_info
 Get the input image file dimensions to further operations. More...
 
bool save_metadata_stack
 Save the associated output metadata when output file is a stack. More...
 
bool track_origin
 Include the original input image filename in the output stack. More...
 
bool keep_input_columns
 Keep input metadata columns. More...
 
bool remove_disabled
 Remove disabled images from the input selfile. More...
 
bool allow_time_bar
 Show process time bar. More...
 
bool input_is_metadata
 Input is a metadata. More...
 
bool single_image
 Input is a single image. More...
 
bool input_is_stack
 Input is a stack. More...
 
bool output_is_stack
 Output is a stack. More...
 
bool create_empty_stackfile
 
bool delete_mdIn
 
size_t time_bar_step
 Some time bar related counters. More...
 
size_t time_bar_size
 
size_t time_bar_done
 
- 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 35 of file volumeset_align.h.

Constructor & Destructor Documentation

◆ ProgVolumeSetAlign()

ProgVolumeSetAlign::ProgVolumeSetAlign ( )

Empty constructor.

Definition at line 31 of file volumeset_align.cpp.

31  : Rerunable("") {
33  produces_an_output = true;
34 }
bool produces_an_output
Indicate that a unique final output is produced.
bool each_image_produces_an_output
Indicate that an output is produced for each image in the input.
Rerunable(const FileName &fn)

Member Function Documentation

◆ createWorkFiles()

virtual void ProgVolumeSetAlign::createWorkFiles ( )
inlineprotectedvirtual

Definition at line 105 of file volumeset_align.h.

105  {
107  }
virtual void createWorkFiles(bool resume, MetaData *md)

◆ defineParams()

void ProgVolumeSetAlign::defineParams ( )
virtual

Define params.

Reimplemented from XmippMetadataProgram.

Definition at line 37 of file volumeset_align.cpp.

37  {
38  addUsageLine("Align a set of volumes with a reference volume");
39  defaultComments["-i"].clear();
40  defaultComments["-i"].addComment("Metadata with volume filenames");
41  defaultComments["-o"].clear();
42  defaultComments["-o"].addComment("Metadata with output Euler angles and shifts");
44  addParamsLine(" --ref <VOL_filename> : Reference volume");
45  addParamsLine(" [--odir <outputDir=\".\">] : Output directory");
46  addParamsLine(" [--resume] : Resume processing");
47  addParamsLine(" [--frm_parameters <frm_freq=0.25> <frm_shift=10>] : This is using frm method for volume alignment with frm_freq and frm_shift as parameters");
48  addParamsLine(" [--tilt_values <tilt0=-90> <tiltF=90>] : Optional compensation for the missing wedge. Tested extensively with tilt between [-60 60]");
49  addParamsLine(" [--mask <mask_filename=\"\">] : Optional mask during the alignment");
50  addExampleLine("xmipp_volumeset_align -i volumes.xmd --ref reference.vol -o output.xmd --resume");
51 }
void addExampleLine(const char *example, bool verbatim=true)
void addUsageLine(const char *line, bool verbatim=false)
void addParamsLine(const String &line)
std::map< String, CommentList > defaultComments
Definition: xmipp_program.h:83

◆ finishProcessing()

void ProgVolumeSetAlign::finishProcessing ( )
virtual

Write the final parameters.

Reimplemented from XmippMetadataProgram.

Definition at line 74 of file volumeset_align.cpp.

74  {
76  const char* aligneddata = "/AlignedSoFar.xmd";
77  rename((fnOutDir+aligneddata).c_str(), fn_out.c_str());
78 }
FileName fnOutDir
Output directory.

◆ preProcess()

void ProgVolumeSetAlign::preProcess ( )
virtual

Produce side info. An exception is thrown if any of the files is not found

Reimplemented from XmippMetadataProgram.

Definition at line 69 of file volumeset_align.cpp.

69  {
70  // Set the pointer of the program to this object
72 }
virtual void createWorkFiles()

◆ processImage()

void ProgVolumeSetAlign::processImage ( const FileName fnImg,
const FileName ,
const MDRow ,
MDRow  
)
virtual

Assign NMA and Alignment parameters to a volume

Implements XmippMetadataProgram.

Definition at line 132 of file volumeset_align.cpp.

133  {
134  static size_t imageCounter = 0;
135  ++imageCounter;
136  currentVolName = fnImg;
137  snprintf(nameTemplate, 255 ,"_node%d_img%lu_XXXXXX", rangen, (long unsigned int)imageCounter);
138  computeFitness();
139  writeVolumeParameters(fnImg);
140 }
virtual void writeVolumeParameters(const FileName &fnImg)

◆ readParams()

void ProgVolumeSetAlign::readParams ( )
virtual

Read arguments from command line.

Reimplemented from XmippMetadataProgram.

Definition at line 54 of file volumeset_align.cpp.

54  {
56  fnREF = getParam("--ref");
57  fnOutDir = getParam("--odir");
58  Rerunable::setFileName(fnOutDir+"/AlignedSoFar.xmd");
59  resume = checkParam("--resume");
60  frm_freq = getDoubleParam("--frm_parameters",0);
61  frm_shift= getIntParam("--frm_parameters",1);
62  tilt0=getIntParam("--tilt_values",0);
63  tiltF=getIntParam("--tilt_values",1);
64  fnMask = getParam("--mask");
65 }
double getDoubleParam(const char *param, int arg=0)
void setFileName(const FileName &fn)
const char * getParam(const char *param, int arg=0)
FileName fnREF
Reference volume structure.
FileName fnOutDir
Output directory.
bool checkParam(const char *param)
int getIntParam(const char *param, int arg=0)

◆ writeVolumeParameters()

void ProgVolumeSetAlign::writeVolumeParameters ( const FileName fnImg)
virtual

Write the parameters found for one image

Definition at line 142 of file volumeset_align.cpp.

142  {
143  MetaDataVec md;
144  size_t objId = md.addObject();
145  md.setValue(MDL_IMAGE, fnImg, objId);
146  md.setValue(MDL_ENABLED, 1, objId);
147  md.setValue(MDL_ANGLE_ROT, (double)this->Matrix_Angles_Shifts[0], objId);
148  md.setValue(MDL_ANGLE_TILT, (double)this->Matrix_Angles_Shifts[1], objId);
149  md.setValue(MDL_ANGLE_PSI, (double)this->Matrix_Angles_Shifts[2], objId);
150  md.setValue(MDL_SHIFT_X, (double)this->Matrix_Angles_Shifts[3], objId);
151  md.setValue(MDL_SHIFT_Y, (double)this->Matrix_Angles_Shifts[4], objId);
152  md.setValue(MDL_SHIFT_Z, (double)this->Matrix_Angles_Shifts[5], objId);
153  md.setValue(MDL_MAXCC, -(double)this->fitness, objId);
154  if (this->flipped){
155  md.setValue(MDL_ANGLE_Y, 90.0 , objId);
156  }
157  else{
158  md.setValue(MDL_ANGLE_Y, 0.0 , objId);
159  }
161 }
Rotation angle of an image (double,degrees)
Tilting angle of an image (double,degrees)
float Matrix_Angles_Shifts[6]
Shift for the image in the X axis (double)
Special label to be used when gathering MDs in MpiMetadataPrograms.
Is this image enabled? (int [-1 or 1])
const FileName & getFileName() const
bool setValue(const MDObject &mdValueIn, size_t id)
size_t addObject() override
Angle between y-axis and tilt-axis (double, degrees) for untilted micrographs.
Maximum cross-correlation for the image (double)
void append(const FileName &outFile) const
Shift for the image in the Z axis (double)
Shift for the image in the Y axis (double)
Name of an image (std::string)

Member Data Documentation

◆ alignVolumes

bool ProgVolumeSetAlign::alignVolumes

Align volumes.

Definition at line 49 of file volumeset_align.h.

◆ currentVolName

FileName ProgVolumeSetAlign::currentVolName = ""

Definition at line 77 of file volumeset_align.h.

◆ fitness

float ProgVolumeSetAlign::fitness

Definition at line 65 of file volumeset_align.h.

◆ flipped

bool ProgVolumeSetAlign::flipped = false

Definition at line 68 of file volumeset_align.h.

◆ fnAnglesAndShifts

FILE* ProgVolumeSetAlign::fnAnglesAndShifts

Definition at line 63 of file volumeset_align.h.

◆ fnMask

FileName ProgVolumeSetAlign::fnMask

Definition at line 60 of file volumeset_align.h.

◆ fnOutDir

FileName ProgVolumeSetAlign::fnOutDir

Output directory.

Definition at line 46 of file volumeset_align.h.

◆ fnREF

FileName ProgVolumeSetAlign::fnREF

Reference volume structure.

Definition at line 43 of file volumeset_align.h.

◆ frm_freq

double ProgVolumeSetAlign::frm_freq

Definition at line 56 of file volumeset_align.h.

◆ frm_shift

int ProgVolumeSetAlign::frm_shift

Definition at line 57 of file volumeset_align.h.

◆ Matrix_Angles_Shifts

float ProgVolumeSetAlign::Matrix_Angles_Shifts[6]

Definition at line 64 of file volumeset_align.h.

◆ nameTemplate

char ProgVolumeSetAlign::nameTemplate[256]

Definition at line 80 of file volumeset_align.h.

◆ parameters

Matrix1D<double> ProgVolumeSetAlign::parameters

Definition at line 74 of file volumeset_align.h.

◆ rangen

int ProgVolumeSetAlign::rangen = 0

Definition at line 71 of file volumeset_align.h.

◆ resume

bool ProgVolumeSetAlign::resume = false

Resume computations

Definition at line 40 of file volumeset_align.h.

◆ tilt0

int ProgVolumeSetAlign::tilt0

Definition at line 52 of file volumeset_align.h.

◆ tiltF

int ProgVolumeSetAlign::tiltF

Definition at line 53 of file volumeset_align.h.


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