IMP  2.2.1
The Integrative Modeling Platform
Fine2DRegistrationRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/em2d/Fine2DRegistrationRestraint.h
3  * \brief Alignment of 2D projections of a 3D volume
4  * Copyright 2007-2014 IMP Inventors. All rights reserved.
5 */
6 
7 #ifndef IMPEM2D_FINE_2DREGISTRATION_RESTRAINT_H
8 #define IMPEM2D_FINE_2DREGISTRATION_RESTRAINT_H
9 
10 #include "IMP/em2d/em2d_config.h"
11 #include "IMP/em2d/project.h"
15 #include "IMP/em2d/Image.h"
16 #include "IMP/em2d/scores2D.h"
17 #include "IMP/algebra/Vector2D.h"
18 #include "IMP/atom/Atom.h"
19 #include "IMP/base/Pointer.h"
20 #include "IMP/macros.h"
21 
22 IMPEM2D_BEGIN_NAMESPACE
23 
24 //! Performs the fine search for the registration values in order to register
25 //! a model projection with an image
26 class IMPEM2DEXPORT Fine2DRegistrationRestraint : public kernel::Restraint {
27  public:
28  /**
29  * Constructs the restraint. Use the setup() function after construction
30  */
32 
33  /**
34  * Initialization function. To be called after setting the model for the
35  * restraint
36  * @param ps The particles used for the registration
37  * @param params The parameters used to project the images
38  * @param scoring_model The model that is projected.
39  * @param score_function The function that is used to score the similarity
40  * between a projection of the model and the EM image
41  * @param masks A manager containing the masks used for projecting.
42  */
43  void setup(kernel::ParticlesTemp &ps, const ProjectingParameters &params,
44  kernel::Model *scoring_model, ScoreFunction *score_function,
45  MasksManagerPtr masks = MasksManagerPtr());
46 
47  /**
48  * Sets the image to use by the restraint to perform the fine search of
49  * the projection registration parameters
50  * @param subject The subject image
51  */
52  void set_subject_image(em2d::Image *subject);
53 
54  /**
55  * Get the final values for the parameters after the optimization performed
56  * by this restraint
57  * @return The registration result
58  */
59  RegistrationResult get_final_registration() const;
60 
61  virtual double unprotected_evaluate(IMP::kernel::DerivativeAccumulator *accum)
62  const IMP_OVERRIDE;
63  virtual IMP::kernel::ModelObjectsTemp do_get_inputs() const IMP_OVERRIDE;
65 
66  /**
67  * Get the number of times that the function was called
68  * @return The number of calls
69  */
70  unsigned int get_calls() const { return calls_; }
71 
72  private:
73  base::Pointer<Image> subject_;
74  mutable base::Pointer<Image> projection_;
75  // Subject particle (it is going to be the parameters for the subject)
76  mutable base::Pointer<kernel::Particle> subj_params_particle_;
77  // Decorator for the subject particle
79  // Access point for the particles
81  // Projection masks for the particles
82  MasksManagerPtr masks_;
83  double resolution_, pixelsize_;
84  base::Pointer<ScoreFunction> score_function_;
85  ProjectingParameters params_;
86 
87  mutable unsigned int calls_;
88 };
89 
91 
92 IMPEM2D_END_NAMESPACE
93 
94 #endif /* IMPEM2D_FINE_2DREGISTRATION_RESTRAINT_H */
Generation of projections from models or density maps Copyright 2007-2014 IMP Inventors. All rights reserved.
Class for adding derivatives from restraints to the model.
projection masks Copyright 2007-2014 IMP Inventors. All rights reserved.
Decorator for projection parameters Copyright 2007-2014 IMP Inventors. All rights reserved...
A nullptr-initialized pointer to an IMP Object.
Simple 2D vector class.
Simple atom decorator.
A smart pointer to a reference counted object.
Definition: base/Pointer.h:87
Import IMP/kernel/macros.h in the namespace.
IMP images for Electron Microscopy using openCV matrices Copyright 2007-2014 IMP Inventors. All rights reserved.
Scoring functions for 2D Copyright 2007-2014 IMP Inventors. All rights reserved.
A restraint is a term in an IMP ScoringFunction.
Base class for all scoring functions related to em2d.
Definition: scores2D.h:55
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing sets of objects.
Parameters needed for the core projection routine.
Definition: project.h:30
virtual ModelObjectsTemp do_get_inputs() const =0
Class to manage registration results.
Registration results class Copyright 2007-2014 IMP Inventors. All rights reserved.
2D Electron Microscopy images in IMP
Definition: Image.h:27
Class for storing model, its restraints, constraints, and particles.
Definition: kernel/Model.h:72