Xmipp
v3.23.11-Nereus
|
#include <ml_align2d.h>
Public Member Functions | |
void | readParams () |
Read arguments from command line. More... | |
void | defineParams () |
Params definition. More... | |
ProgML2D () | |
virtual void | show () |
Show info at starting program. More... | |
virtual void | produceSideInfo () |
Try to merge produceSideInfo1 and 2. More... | |
virtual void | produceSideInfo2 () |
Try to merge produceSideInfo1 and 2. More... | |
void | calculatePdfInplane () |
Calculate probability density distribution for in-plane transformations. More... | |
void | rotateReference () |
Fill vector of matrices with all rotations of reference. More... | |
void | reverseRotateReference () |
Apply reverse rotations to all matrices in vector and fill new matrix with their sum. More... | |
void | preselectLimitedDirections (double &phi, double &theta) |
void | preselectFastSignificant () |
void | expectationSingleImage (Matrix1D< double > &opt_offsets) |
ML-integration over all (or -fast) translations. More... | |
void | createThreads () |
Create working threads. More... | |
void | destroyThreads () |
Exit threads and free memory. More... | |
int | getThreadRefnoJob (int &refno) |
Assign refno jobs to threads. More... | |
void | awakeThreads (ThreadTask task, int start_refno, int load=1) |
Awake threads for different tasks. More... | |
void | doThreadRotateReferenceRefno () |
Thread code to parallelize refno loop in rotateReference. More... | |
void | doThreadReverseRotateReferenceRefno () |
Thread code to parallelize refno loop in reverseRotateReference. More... | |
void | doThreadPreselectFastSignificantRefno () |
Thread code to parallelize refno loop in preselectFastSignificant. More... | |
void | doThreadExpectationSingleImageRefno () |
Thread code to parallelize refno loop in expectationSingleImage. More... | |
void | doThreadESIUpdateRefno () |
Thread code to parallelize update loop in ESI. More... | |
virtual void | iteration () |
Perform an iteration. More... | |
virtual void | expectation () |
Integrate over all experimental images. More... | |
void | maximizeModel (ModelML2D &model) |
Update all model parameters. More... | |
virtual void | maximization () |
Update all model parameters, adapted for IEM blocks use. More... | |
void | correctScaleAverage () |
Correct references scale. More... | |
virtual void | addPartialDocfileData (const MultidimArray< double > &data, size_t first, size_t last) |
Add docfiledata to docfile. More... | |
virtual void | writeOutputFiles (const ModelML2D &model, OutputType outputType=OUT_FINAL) |
Write model parameters. More... | |
virtual void | readModel (ModelML2D &model, int block) |
Read model from file. More... | |
FileName | getBaseName (String suffix="", int number=-1) |
Get base name based on fn_root and some number. More... | |
virtual void | printModel (const String &msg, const ModelML2D &model) |
Public Member Functions inherited from ML2DBaseProgram | |
void | initSamplingStuff () |
ML2DBaseProgram () | |
virtual void | endIteration () |
Do some task at the end of iteration. More... | |
virtual void | setNumberOfLocalImages () |
Set the number of images, this function is useful only for MPI. More... | |
virtual void | randomizeImagesOrder () |
Randomize initial images order, only once. More... | |
virtual bool | checkConvergence () |
virtual void | run () |
Main function of the program. More... | |
virtual void | defineBasicParams (XmippProgram *prog) |
virtual void | defineAdditionalParams (XmippProgram *prog, const char *sectionLine) |
virtual void | defineHiddenParams (XmippProgram *prog) |
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) |
ParamDef * | getParamDef (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 ¶m, 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 () |
Additional Inherited Members | |
Protected Member Functions inherited from XmippProgram | |
void | defineCommons () |
Protected Attributes inherited from XmippProgram | |
int | errorCode |
ProgramDef * | progDef |
Program definition and arguments parser. More... | |
std::map< String, CommentList > | defaultComments |
int | argc |
Original command line arguments. More... | |
const char ** | argv |
MLalign2D parameters.
Definition at line 59 of file ml_align2d.h.
ProgML2D::ProgML2D | ( | ) |
Definition at line 38 of file ml_align2d.cpp.
|
virtual |
Add docfiledata to docfile.
Implements ML2DBaseProgram.
Definition at line 2120 of file ml_align2d.cpp.
void ProgML2D::awakeThreads | ( | ThreadTask | task, |
int | start_refno, | ||
int | load = 1 |
||
) |
Awake threads for different tasks.
Function for awake threads for different tasks.
Definition at line 1046 of file ml_align2d.cpp.
void ProgML2D::calculatePdfInplane | ( | ) |
Calculate probability density distribution for in-plane transformations.
Definition at line 553 of file ml_align2d.cpp.
void ProgML2D::correctScaleAverage | ( | ) |
|
virtual |
Create working threads.
Function to create threads that will work later
Reimplemented from ML2DBaseProgram.
Definition at line 929 of file ml_align2d.cpp.
|
virtual |
Params definition.
Reimplemented from XmippProgram.
Definition at line 45 of file ml_align2d.cpp.
|
virtual |
Exit threads and free memory.
Free threads memory and exit
Reimplemented from ML2DBaseProgram.
Definition at line 958 of file ml_align2d.cpp.
void ProgML2D::doThreadESIUpdateRefno | ( | ) |
Thread code to parallelize update loop in ESI.
Definition at line 1624 of file ml_align2d.cpp.
void ProgML2D::doThreadExpectationSingleImageRefno | ( | ) |
Thread code to parallelize refno loop in expectationSingleImage.
Definition at line 1287 of file ml_align2d.cpp.
void ProgML2D::doThreadPreselectFastSignificantRefno | ( | ) |
Thread code to parallelize refno loop in preselectFastSignificant.
Update the real mindiff
Wait for all threads update mindiff
Calculate max_weight for this refno-mirror combination
Now we have max_weight, set Msignificant values
Definition at line 1166 of file ml_align2d.cpp.
void ProgML2D::doThreadReverseRotateReferenceRefno | ( | ) |
Thread code to parallelize refno loop in reverseRotateReference.
Definition at line 1119 of file ml_align2d.cpp.
void ProgML2D::doThreadRotateReferenceRefno | ( | ) |
Thread code to parallelize refno loop in rotateReference.
Definition at line 1058 of file ml_align2d.cpp.
|
virtual |
Integrate over all experimental images.
Implements ML2DBaseProgram.
Reimplemented in MpiProgML2D.
Definition at line 1713 of file ml_align2d.cpp.
void ProgML2D::expectationSingleImage | ( | Matrix1D< double > & | opt_offsets | ) |
ML-integration over all (or -fast) translations.
Definition at line 700 of file ml_align2d.cpp.
Get base name based on fn_root and some number.
Definition at line 2378 of file ml_align2d.cpp.
int ProgML2D::getThreadRefnoJob | ( | int & | refno | ) |
Assign refno jobs to threads.
Function to assign refno jobs to threads the starting refno is passed through the out refno parameter and is returned the number of refno's to do, 0 if no more refno's.
Definition at line 1026 of file ml_align2d.cpp.
|
virtual |
Perform an iteration.
Implements ML2DBaseProgram.
Definition at line 1701 of file ml_align2d.cpp.
|
virtual |
Update all model parameters, adapted for IEM blocks use.
Implements ML2DBaseProgram.
Definition at line 2023 of file ml_align2d.cpp.
void ProgML2D::maximizeModel | ( | ModelML2D & | model | ) |
Update all model parameters.
Definition at line 1933 of file ml_align2d.cpp.
void ProgML2D::preselectFastSignificant | ( | ) |
Pre-calculate which model and phi have significant probabilities without taking translations into account!
Definition at line 674 of file ml_align2d.cpp.
void ProgML2D::preselectLimitedDirections | ( | double & | phi, |
double & | theta | ||
) |
Calculate which references have projection directions close to phi and theta
Definition at line 634 of file ml_align2d.cpp.
|
virtual |
Try to merge produceSideInfo1 and 2.
Implements ML2DBaseProgram.
Definition at line 290 of file ml_align2d.cpp.
|
virtual |
Try to merge produceSideInfo1 and 2.
Implements ML2DBaseProgram.
Reimplemented in MpiProgML2D.
Definition at line 357 of file ml_align2d.cpp.
|
virtual |
Read model from file.
Definition at line 2336 of file ml_align2d.cpp.
|
virtual |
Read arguments from command line.
Reimplemented from XmippProgram.
Definition at line 75 of file ml_align2d.cpp.
void ProgML2D::reverseRotateReference | ( | ) |
Apply reverse rotations to all matrices in vector and fill new matrix with their sum.
Definition at line 618 of file ml_align2d.cpp.
void ProgML2D::rotateReference | ( | ) |
Fill vector of matrices with all rotations of reference.
Definition at line 603 of file ml_align2d.cpp.
|
virtual |
Show info at starting program.
Definition at line 196 of file ml_align2d.cpp.
|
virtual |
Write model parameters.
Implements ML2DBaseProgram.
Reimplemented in MpiProgML2D.
Definition at line 2171 of file ml_align2d.cpp.
std::vector<double> ProgML2D::A2 |
Sum of squared amplitudes of the references
Definition at line 105 of file ml_align2d.h.
std::vector<double> ProgML2D::allref_offsets |
Definition at line 79 of file ml_align2d.h.
barrier_t ProgML2D::barrier |
Definition at line 68 of file ml_align2d.h.
barrier_t ProgML2D::barrier2 |
Definition at line 68 of file ml_align2d.h.
barrier_t ProgML2D::barrier3 |
Definition at line 68 of file ml_align2d.h.
double ProgML2D::bgmean |
Definition at line 85 of file ml_align2d.h.
double ProgML2D::dLL |
Definition at line 86 of file ml_align2d.h.
std::vector<MultidimArray<std::complex<double> > > ProgML2D::Fimg_flip |
Taken from expectationSingleImage
Definition at line 90 of file ml_align2d.h.
double ProgML2D::fracweight |
Definition at line 86 of file ml_align2d.h.
std::vector<MultidimArray<std::complex<double> > > ProgML2D::fref |
Definition at line 82 of file ml_align2d.h.
int ProgML2D::iopt_flip |
Definition at line 84 of file ml_align2d.h.
int ProgML2D::iopt_psi |
Definition at line 84 of file ml_align2d.h.
std::vector<int> ProgML2D::ioptflip_ref |
Definition at line 97 of file ml_align2d.h.
int ProgML2D::ioptx |
Definition at line 96 of file ml_align2d.h.
std::vector<int> ProgML2D::ioptx_ref |
Definition at line 97 of file ml_align2d.h.
int ProgML2D::iopty |
Definition at line 96 of file ml_align2d.h.
std::vector<int> ProgML2D::iopty_ref |
Definition at line 97 of file ml_align2d.h.
double ProgML2D::LL |
New class variables, taken from old MAIN
Definition at line 73 of file ml_align2d.h.
MultidimArray<int> ProgML2D::mask |
Definition at line 65 of file ml_align2d.h.
double ProgML2D::maxweight |
Definition at line 92 of file ml_align2d.h.
double ProgML2D::maxweight2 |
Definition at line 86 of file ml_align2d.h.
MultidimArray<double> ProgML2D::Mimg |
Definition at line 78 of file ml_align2d.h.
double ProgML2D::mindiff |
Definition at line 94 of file ml_align2d.h.
std::vector<MultidimArray<double> > ProgML2D::mref |
Definition at line 81 of file ml_align2d.h.
MultidimArray<int> ProgML2D::Msignificant |
Definition at line 77 of file ml_align2d.h.
int ProgML2D::mygroup |
Definition at line 113 of file ml_align2d.h.
std::vector<MultidimArray<std::complex<double> > > ProgML2D::mysumimgs |
Definition at line 90 of file ml_align2d.h.
bool ProgML2D::no_iem |
Definition at line 63 of file ml_align2d.h.
double ProgML2D::old_bgmean |
Definition at line 93 of file ml_align2d.h.
MultidimArray<int> ProgML2D::omask |
Definition at line 65 of file ml_align2d.h.
double ProgML2D::opt_psi |
Definition at line 85 of file ml_align2d.h.
int ProgML2D::opt_refno |
Definition at line 84 of file ml_align2d.h.
double ProgML2D::opt_scale |
Definition at line 85 of file ml_align2d.h.
std::vector<double> ProgML2D::pdf_directions |
Definition at line 80 of file ml_align2d.h.
int ProgML2D::pfs_count |
Definition at line 102 of file ml_align2d.h.
MultidimArray<double> ProgML2D::pfs_maxweight |
Definition at line 100 of file ml_align2d.h.
double ProgML2D::pfs_mindiff |
Taken from PreselectFastSignificant.
Definition at line 99 of file ml_align2d.h.
MultidimArray<double> ProgML2D::pfs_weight |
Definition at line 101 of file ml_align2d.h.
int ProgML2D::refno_count |
Definition at line 111 of file ml_align2d.h.
size_t ProgML2D::refno_index |
Definition at line 110 of file ml_align2d.h.
int ProgML2D::refno_load |
Definition at line 111 of file ml_align2d.h.
size_t ProgML2D::refno_load_param |
Definition at line 110 of file ml_align2d.h.
std::vector<double> ProgML2D::refw |
Definition at line 91 of file ml_align2d.h.
std::vector<double> ProgML2D::refw2 |
Definition at line 91 of file ml_align2d.h.
std::vector<double> ProgML2D::refw_mirror |
Definition at line 91 of file ml_align2d.h.
std::vector<double> ProgML2D::refwsc2 |
Definition at line 91 of file ml_align2d.h.
size_t ProgML2D::sigdim |
Definition at line 95 of file ml_align2d.h.
double ProgML2D::sum_refw |
Definition at line 92 of file ml_align2d.h.
double ProgML2D::sum_refw2 |
Definition at line 92 of file ml_align2d.h.
double ProgML2D::sumfracweight |
Definition at line 73 of file ml_align2d.h.
std::vector<double> ProgML2D::sumw |
Definition at line 75 of file ml_align2d.h.
std::vector<double> ProgML2D::sumw2 |
Definition at line 75 of file ml_align2d.h.
double ProgML2D::sumw_allrefs |
Definition at line 74 of file ml_align2d.h.
std::vector<double> ProgML2D::sumw_mirror |
Definition at line 75 of file ml_align2d.h.
std::vector<double> ProgML2D::sumw_refpsi |
Definition at line 91 of file ml_align2d.h.
std::vector<double> ProgML2D::sumwsc |
Definition at line 75 of file ml_align2d.h.
std::vector<double> ProgML2D::sumwsc2 |
Definition at line 75 of file ml_align2d.h.
pthread_t* ProgML2D::th_ids |
Definition at line 69 of file ml_align2d.h.
structThreadTasks* ProgML2D::threads_d |
Definition at line 70 of file ml_align2d.h.
int ProgML2D::threadTask |
Thread stuff
Definition at line 67 of file ml_align2d.h.
double ProgML2D::trymindiff |
Definition at line 85 of file ml_align2d.h.
double ProgML2D::wsum_corr |
Definition at line 92 of file ml_align2d.h.
std::vector<MultidimArray<double > > ProgML2D::wsum_Mref |
Definition at line 76 of file ml_align2d.h.
double ProgML2D::wsum_offset |
Definition at line 93 of file ml_align2d.h.
double ProgML2D::wsum_sc |
Definition at line 93 of file ml_align2d.h.
double ProgML2D::wsum_sc2 |
Definition at line 93 of file ml_align2d.h.
double ProgML2D::wsum_sigma_noise |
Definition at line 74 of file ml_align2d.h.
double ProgML2D::wsum_sigma_offset |
Definition at line 74 of file ml_align2d.h.
std::vector<MultidimArray<std::complex<double > > > ProgML2D::wsumimgs |
Definition at line 83 of file ml_align2d.h.
double ProgML2D::Xi2 |
Sum of squared amplitudes of the experimental image
Definition at line 107 of file ml_align2d.h.