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

#include <nma_alignment.h>

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

Public Member Functions

 ObjFunc_nma_alignment (int _t, int _n=0)
 
 ~ObjFunc_nma_alignment ()
 
double eval (Vector v, int *nerror=nullptr)
 
- Public Member Functions inherited from UnconstrainedObjectiveFunction
 UnconstrainedObjectiveFunction ()
 
 ~UnconstrainedObjectiveFunction ()
 
virtual double evalNLConstraint (int j, Vector v, int *nerror=NULL)
 
virtual Vector evalGradNLConstraint (int j, Vector v, int *nerror=NULL)
 
virtual void evalGradNLConstraint (int j, Vector v, Vector result, int *nerror=NULL)
 
- Public Member Functions inherited from ObjectiveFunction
 ObjectiveFunction ()
 
virtual ~ObjectiveFunction ()
 
int dim ()
 
void initData ()
 
virtual void saveValue (Vector tmp, double valueOF, int nerror)
 
virtual void printStats (char cc=1)
 
void saveStats (char *filename, Vector vG, Matrix mH, Vector vLambda)
 
virtual void finalize (Vector vG, Matrix mH, Vector vLambda)
 
void setName (char *s)
 
void setSaveFile (char *b=NULL)
 
void updateCounter (double df, Vector vX, int nerror=0)
 
char isFeasible (Vector vx, double *d=NULL)
 
void initBounds ()
 
void endInit ()
 
void initTolLC (Vector vX)
 
void initTolNLC (Vector c, double delta)
 
virtual int getNFE ()
 
virtual int getNFE2 ()
 

Additional Inherited Members

- Public Attributes inherited from ObjectiveFunction
char name [9]
 
char startPointIsGiven
 
Vector xStart
 
Vector xBest
 
Vector xOptimal
 
double valueOptimal
 
double valueBest
 
double noiseAbsolute
 
double noiseRelative
 
double objectiveConst
 
Matrix data
 
int t
 
int nNLConstraints
 
int isConstrained
 
Vector bl
 
Vector bu
 
Matrix A
 
Vector b
 
double tolRelFeasibilityForNLC
 
double tolNLC
 
double tolRelFeasibilityForLC
 
double tolLC
 
- Protected Attributes inherited from ObjectiveFunction
int nfe
 
int nfe2
 

Detailed Description

Definition at line 201 of file nma_alignment.h.

Constructor & Destructor Documentation

◆ ObjFunc_nma_alignment()

ObjFunc_nma_alignment::ObjFunc_nma_alignment ( int  _t,
int  _n = 0 
)

Definition at line 377 of file nma_alignment.cpp.

377  {
378 }

◆ ~ObjFunc_nma_alignment()

ObjFunc_nma_alignment::~ObjFunc_nma_alignment ( )
inline

Definition at line 205 of file nma_alignment.h.

205 {};

Member Function Documentation

◆ eval()

double ObjFunc_nma_alignment::eval ( Vector  v,
int *  nerror = nullptr 
)
virtual

Implements ObjectiveFunction.

Definition at line 325 of file nma_alignment.cpp.

325  {
327 
328  for (int i = 0; i < dim; i++) {
329  global_nma_prog->trial(i) = X[i];
330  }
331 
332  int pyramidLevelDisc = 1;
333  int pyramidLevelCont = (global_nma_prog->currentStage == 1) ? 1 : 0;
334 
335  FileName fnRandom = global_nma_prog->createDeformedPDB(pyramidLevelCont);
336  const char * randStr = fnRandom.c_str();
337 
338  if (global_nma_prog->currentStage == 1) {
339  global_nma_prog->performCompleteSearch(fnRandom, pyramidLevelDisc);
340  } else {
341  double rot, tilt, psi, xshift, yshift;
342  MetaDataVec DF;
343 
346  tilt = global_nma_prog->bestStage1(
350  xshift = global_nma_prog->bestStage1(
352  yshift = global_nma_prog->bestStage1(
354 
355  size_t objId = DF.addObject();
356  FileName fnDown = formatString("%s_downimg.xmp", randStr);
357  DF.setValue(MDL_IMAGE, fnDown, objId);
358  DF.setValue(MDL_ENABLED, 1, objId);
359  DF.setValue(MDL_ANGLE_ROT, rot, objId);
360  DF.setValue(MDL_ANGLE_TILT, tilt, objId);
361  DF.setValue(MDL_ANGLE_PSI, psi, objId);
362  DF.setValue(MDL_SHIFT_X, xshift, objId);
363  DF.setValue(MDL_SHIFT_Y, yshift, objId);
364 
365  DF.write(formatString("%s_angledisc.xmd", randStr));
366  copyImage(global_nma_prog->currentImgName.c_str(), fnDown.c_str());
367  }
369  pyramidLevelCont);
370 
371  runSystem("rm", formatString("-rf %s* &", randStr));
372 
373  global_nma_prog->updateBestFit(fitness);
374  return fitness;
375 }
Rotation angle of an image (double,degrees)
#define VEC_XSIZE(m)
Definition: matrix1d.h:77
void copyImage(const FileName &source, const FileName &target)
Tilting angle of an image (double,degrees)
Shift for the image in the X axis (double)
int X
X position.
Definition: micrograph.h:60
Special label to be used when gathering MDs in MpiMetadataPrograms.
void write(const FileName &outFile, WriteModeMetaData mode=MD_OVERWRITE) const
void runSystem(const String &program, const String &arguments, bool useSystem)
FileName createDeformedPDB(int pyramidLevel) const
#define i
Is this image enabled? (int [-1 or 1])
Matrix1D< double > trial
Matrix1D< double > bestStage1
bool setValue(const MDObject &mdValueIn, size_t id)
size_t addObject() override
double performContinuousAssignment(const FileName &fnRandom, int pyramidLevel) const
double psi(const double x)
FileName currentImgName
String formatString(const char *format,...)
void updateBestFit(double fitness)
Shift for the image in the Y axis (double)
ProgNmaAlignment * global_nma_prog
Name of an image (std::string)
double fitness(double *p)
void performCompleteSearch(const FileName &fnRandom, int pyramidLevel) const

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