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

Public Member Functions

void defineParams ()
 
void readParams ()
 
void read (int argc, char **argv, bool reportErrors=true)
 
void showProgress ()
 
void preProcess ()
 
void startProcessing ()
 
virtual bool getImageToProcess (size_t &objId, size_t &objIndex) override
 
void finishProcessing ()
 
void checkPoint ()
 For very long programs, it may be needed to write checkpoints. More...
 
void wait ()
 Wait for the distributor to finish. More...
 
- Public Member Functions inherited from ProgForwardZernikeSubtomos
 ProgForwardZernikeSubtomos ()
 Empty constructor. More...
 
 ~ProgForwardZernikeSubtomos ()
 Destructor. More...
 
void readParams ()
 Read argument from command line. More...
 
void show ()
 Show. More...
 
void defineParams ()
 Define parameters. More...
 
void preProcess ()
 
void processImage (const FileName &fnImg, const FileName &fnImgOut, const MDRow &rowIn, MDRow &rowOut)
 
void numCoefficients (int l1, int l2, int &vecSize)
 Length of coefficients vector. More...
 
void minimizepos (int L1, int l2, Matrix1D< double > &steps)
 Determine the positions to be minimize of a vector containing spherical harmonic coefficients. More...
 
void fillVectorTerms (int l1, int l2, Matrix1D< int > &vL1, Matrix1D< int > &vN, Matrix1D< int > &vL2, Matrix1D< int > &vM)
 Zernike and SPH coefficients allocation. More...
 
void deformVol (MultidimArray< double > &mVD, const MultidimArray< double > &mV, double &def, double rot, double tilt, double psi)
 Deform a volumen using Zernike-Spherical harmonic basis. More...
 
void updateCTFImage (double defocusU, double defocusV, double angle)
 
double transformImageSph (double *pclnm)
 
template<Direction DIRECTION>
void rotateCoefficients ()
 
virtual void writeImageParameters (MDRow &row)
 
Matrix1D< double > weightsInterpolation3D (double x, double y, double z)
 
void splattingAtPos (std::array< double, 3 > r, double weight, MultidimArray< double > &mP, const MultidimArray< double > &mV)
 
void rotatePositions (double rot, double tilt, double psi)
 
void preComputeDF ()
 
- 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 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
 
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)
 
void read (const String &argumentsLine)
 
 XmippProgram ()
 
 XmippProgram (int argc, const char **argv)
 
virtual ~XmippProgram ()
 
- Public Member Functions inherited from MpiMetadataProgram
 MpiMetadataProgram ()
 
 MpiMetadataProgram (const MpiMetadataProgram &)=delete
 
 MpiMetadataProgram (const MpiMetadataProgram &&)=delete
 
 ~MpiMetadataProgram ()
 
MpiMetadataProgramoperator= (const MpiMetadataProgram &)=delete
 
MpiMetadataProgramoperator= (const MpiMetadataProgram &&)=delete
 
void read (int argc, char **argv)
 
void defineParams ()
 
void readParams ()
 
void createTaskDistributor (MetaData &mdIn, size_t blockSize=0)
 
bool getTaskToProcess (size_t &objId, size_t &objIndex)
 
- Public Member Functions inherited from XmippMpiProgram
void read (int argc, char **argv)
 
virtual int tryRun ()
 

Additional Inherited Members

- Public Types inherited from ProgForwardZernikeSubtomos
enum  Direction { Direction::ROTATE, Direction::UNROTATE }
 
- Public Attributes inherited from ProgForwardZernikeSubtomos
FileName fnVolR
 
FileName fnMaskR
 
FileName fnOutDir
 Output directory. More...
 
int L1
 
int L2
 
Matrix1D< int > vL1
 
Matrix1D< int > vN
 
Matrix1D< int > vL2
 
Matrix1D< int > vM
 
double maxShift
 
double maxAngularChange
 
double maxResol
 
double Ts
 
int Rmax
 
bool optimizeAlignment
 
bool optimizeDeformation
 
bool optimizeDefocus
 
bool ignoreCTF
 
bool optimizeRadius
 
bool phaseFlipped
 
double lambda
 
int RmaxDef
 
int num_images
 
int algn_params
 
int ctf_params
 
Matrix1D< double > p
 
int flagEnabled
 
bool useCTF
 
double t1
 
double t2
 
bool resume
 
MultidimArray< int > mask3D
 
MultidimArray< int > V_mask
 
size_t Xdim
 
FileName fnImage
 
Image< double > V
 
Image< double > Vdeformed
 
Image< double > I
 
Image< double > Ifiltered
 
Image< double > Ifilteredp
 
Image< double > P
 
FourierFilter filter
 
FourierFilter filterMW
 
Matrix2D< double > A
 
double old_rot
 
double old_tilt
 
double old_psi
 
double deltaRot
 
double deltaTilt
 
double deltaPsi
 
double old_shiftX
 
double old_shiftY
 
double old_shiftZ
 
double deltaX
 
double deltaY
 
double deltaZ
 
bool old_flip
 
bool hasCTF
 
double old_defocusU
 
double old_defocusV
 
double old_defocusAngle
 
double deltaDefocusU
 
double deltaDefocusV
 
double deltaDefocusAngle
 
double currentDefocusU
 
double currentDefocusV
 
double currentAngle
 
FourierFilter FilterCTF
 
int vecSize
 
Matrix1D< double > clnm
 
Matrix1D< double > prev_clnm
 
Matrix1D< double > steps_cp
 
double totalDeformation
 
double prior_deformation
 
int sumV
 
bool showOptimization
 
double correlation
 
int loop_step
 
struct blobtype blob
 
double blob_r
 
double sigma4
 
Matrix1D< double > gaussianProjectionTable
 
Matrix1D< double > gaussianProjectionTable2
 
MultidimArray< double > vpos
 
MultidimArray< double > df
 
std::vector< size_t > idx_z_clnm
 
std::vector< double > z_clnm_diff
 
Matrix2D< double > R
 
- 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 inherited from ProgForwardZernikeSubtomos
void createWorkFiles ()
 
- Protected Member Functions inherited from XmippMetadataProgram
virtual void initComments ()
 
virtual void postProcess ()
 
void show () const override
 
virtual void writeOutput ()
 
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)
 
- Protected Member Functions inherited from XmippMpiProgram
void setNode (const std::shared_ptr< MpiNode > &node)
 
- 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
 
- Protected Attributes inherited from MpiMetadataProgram
int blockSize
 
std::vector< size_t > imgsId
 
MpiTaskDistributordistributor =nullptr
 
size_t first
 
size_t last
 
- Protected Attributes inherited from XmippMpiProgram
std::shared_ptr< MpiNodenode
 
size_t nProcs
 
size_t numberOfJobs
 
MPI_Status status
 

Detailed Description

Definition at line 31 of file mpi_forward_zernike_subtomos.cpp.

Member Function Documentation

◆ checkPoint()

void MpiProgForwardZernikeSubtomos::checkPoint ( )
inlinevirtual

For very long programs, it may be needed to write checkpoints.

Reimplemented from ProgForwardZernikeSubtomos.

Definition at line 116 of file mpi_forward_zernike_subtomos.cpp.

117  {
118  fileMutex->lock();
120  fileMutex->unlock();
121  }
void unlock()
Definition: xmipp_mpi.cpp:125
virtual void checkPoint()
For very long programs, it may be needed to write checkpoints.

◆ defineParams()

void MpiProgForwardZernikeSubtomos::defineParams ( )
inlinevirtual

Function in which the param of each Program are defined.

Reimplemented from XmippMetadataProgram.

Definition at line 40 of file mpi_forward_zernike_subtomos.cpp.

◆ finishProcessing()

void MpiProgForwardZernikeSubtomos::finishProcessing ( )
inlinevirtual

finishProcessing

Reimplemented from MpiMetadataProgram.

Definition at line 105 of file mpi_forward_zernike_subtomos.cpp.

106  {
107  distributor->wait();
108 
109  //All nodes wait for each other
110  node->barrierWait();
111  if (node->isMaster())
113  node->barrierWait();
114  }
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

◆ getImageToProcess()

virtual bool MpiProgForwardZernikeSubtomos::getImageToProcess ( size_t &  objId,
size_t &  objIndex 
)
inlineoverridevirtual

Reimplemented from XmippMetadataProgram.

Definition at line 88 of file mpi_forward_zernike_subtomos.cpp.

89  {
90  size_t first, last;
91  bool moreTasks = distributor->getTasks(first, last);
92 
93  if (moreTasks)
94  {
95  time_bar_done = first + 1;
96  objIndex = first;
97  objId = imgsId[first];
98  return true;
99  }
101  objId = BAD_OBJID;
102  objIndex = BAD_INDEX;
103  return false;
104  }
#define BAD_INDEX
Definition: metadata_base.h:56
bool getTasks(size_t &first, size_t &last)
virtual size_t size() const =0
std::vector< size_t > imgsId
Definition: xmipp_mpi.h:189
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190
#define BAD_OBJID
Definition: metadata_base.h:55

◆ preProcess()

void MpiProgForwardZernikeSubtomos::preProcess ( )
inlinevirtual

Preprocess

Reimplemented from MpiMetadataProgram.

Definition at line 65 of file mpi_forward_zernike_subtomos.cpp.

66  {
67  //Master node should prepare some stuff before start working
68  MetaData &mdIn = *getInputMd(); //get a reference to input metadata
69 
70  if (node->isMaster())
71  {
73  }
74  node->barrierWait();//Sync all before start working
76  mdIn.findObjects(imgsId);//get objects ids
77  distributor = new MpiTaskDistributor(mdIn.size(), 1, node);
78  }
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164
virtual void findObjects(std::vector< size_t > &objectsOut, const MDQuery &query) const =0
virtual size_t size() const =0
std::vector< size_t > imgsId
Definition: xmipp_mpi.h:189
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

◆ read()

void MpiProgForwardZernikeSubtomos::read ( int  argc,
char **  argv,
bool  reportErrors = true 
)
inlinevirtual

Read the command line arguments A convenience wrapper

Reimplemented from XmippProgram.

Definition at line 50 of file mpi_forward_zernike_subtomos.cpp.

51  {
52  //AJ new
53  fileMutex = new MpiFileMutex(node);
54  //END AJ
56  }
int argc
Original command line arguments.
Definition: xmipp_program.h:86
void read(int argc, char **argv)
Definition: xmipp_mpi.cpp:284
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164
const char ** argv
Definition: xmipp_program.h:87

◆ readParams()

void MpiProgForwardZernikeSubtomos::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 XmippMetadataProgram.

Definition at line 45 of file mpi_forward_zernike_subtomos.cpp.

46  {
49  }
void readParams()
Read argument from command line.

◆ showProgress()

void MpiProgForwardZernikeSubtomos::showProgress ( )
inlinevirtual

Reimplemented from XmippMetadataProgram.

Definition at line 57 of file mpi_forward_zernike_subtomos.cpp.

58  {
59  if (node->isMaster())
60  {
63  }
64  }
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164

◆ startProcessing()

void MpiProgForwardZernikeSubtomos::startProcessing ( )
inlinevirtual

Do some stuff before starting processing in a parallel environment usually this only be executed by master.

Reimplemented from XmippMetadataProgram.

Definition at line 79 of file mpi_forward_zernike_subtomos.cpp.

80  {
81  if (node->rank==1)
82  {
83  verbose=1;
85  }
86  node->barrierWait();
87  }
std::shared_ptr< MpiNode > node
Definition: xmipp_mpi.h:164
int verbose
Verbosity level.

◆ wait()

void MpiProgForwardZernikeSubtomos::wait ( )
inlinevirtual

Wait for the distributor to finish.

Reimplemented from XmippMetadataProgram.

Definition at line 123 of file mpi_forward_zernike_subtomos.cpp.

124  {
125  distributor->wait();
126  }
MpiTaskDistributor * distributor
Definition: xmipp_mpi.h:190

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