IMP Reference Guide
develop.714915d50b,2024/12/07
The Integrative Modeling Platform
|
#include <IMP/core/BoundingBox3DSingletonScore.h>
A generic C++ template for scoring particles based on how far outside a box they are using unary function UF. The bounding box score is evaluated by applying a function f of class UF to a particle based on the distance of its center from the bounding box walls. The radius of the particle is ignored. If the particle is within the bounding box, the score is always 0. Logically, it is expected that f(0) = 0 and f(x) > 0 if x>0.
In Python, use the templated BoundingBox3DSingletonScore class as in the following example. In the example, 10 particles of radius 1.0 are generated in a 10 A x 10 A x 10 A bounding box. The particles are restrained in the bounding box by applying an upper-bounded harmonic potential. It is upper bounded because it is active only outside the bounding box.
Definition at line 64 of file BoundingBox3DSingletonScore.h.
Public Member Functions | |
GenericBoundingBox3DSingletonScore (UF *f, const algebra::BoundingBoxD< 3 > &bb) | |
virtual ModelObjectsTemp | do_get_inputs (Model *m, const ParticleIndexes &pis) const override |
Overload this method to specify the inputs. More... | |
double | evaluate_if_good_indexes (Model *m, const ParticleIndexes &p, DerivativeAccumulator *da, double max, unsigned int lower_bound, unsigned int upper_bound) const override |
virtual double | evaluate_index (Model *m, ParticleIndex p, DerivativeAccumulator *da) const override |
double | evaluate_indexes (Model *m, const ParticleIndexes &p, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound) const overridefinal |
Compute the score and the derivative if needed over a set. More... | |
double | evaluate_indexes_delta (Model *m, const ParticleIndexes &p, DerivativeAccumulator *da, const std::vector< unsigned > &indexes, std::vector< double > &score) const overridefinal |
Compute the change in score and the derivative if needed over a set. More... | |
double | evaluate_indexes_scores (Model *m, const ParticleIndexes &p, DerivativeAccumulator *da, unsigned int lower_bound, unsigned int upper_bound, std::vector< double > &score) const overridefinal |
Compute the score and the derivative if needed over a set. More... | |
virtual std::string | get_type_name () const override |
virtual ::IMP::VersionInfo | get_version_info () const override |
Get information about the module and version of the object. More... | |
Public Member Functions inherited from IMP::SingletonScore | |
SingletonScore (std::string name="SingletonScore %1%") | |
Restraints | create_current_decomposition (Model *m, ParticleIndex vt) const |
virtual double | evaluate_if_good_index (Model *m, ParticleIndex vt, DerivativeAccumulator *da, double max) const |
Compute the score and the derivative if needed, only if "good". More... | |
Public Member Functions inherited from IMP::ParticleInputs | |
ModelObjectsTemp | get_inputs (Model *m, const ParticleIndexes &pis) const |
Get the ModelObjects read when the given list of particles is used. More... | |
Public Member Functions inherited from IMP::Object | |
virtual void | clear_caches () |
CheckLevel | get_check_level () const |
LogLevel | get_log_level () const |
void | set_check_level (CheckLevel l) |
void | set_log_level (LogLevel l) |
Set the logging level used in this object. More... | |
void | set_was_used (bool tf) const |
void | show (std::ostream &out=std::cout) const |
const std::string & | get_name () const |
void | set_name (std::string name) |
Additional Inherited Members | |
Public Types inherited from IMP::SingletonScore | |
typedef Particle * | Argument |
typedef ParticleIndex | IndexArgument |
typedef SingletonModifier | Modifier |
typedef Particle * | PassArgument |
typedef ParticleIndex | PassIndexArgument |
Protected Member Functions inherited from IMP::SingletonScore | |
virtual Restraints | do_create_current_decomposition (Model *m, ParticleIndex vt) const |
Override this to return your own decomposition. More... | |
Protected Member Functions inherited from IMP::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
IMP::core::GenericBoundingBox3DSingletonScore< UF >::GenericBoundingBox3DSingletonScore | ( | UF * | f, |
const algebra::BoundingBoxD< 3 > & | bb | ||
) |
f | an unary function applied to particles that are outside the box. f is passed the distance of the particle center from the bounding box walls, ignoring the particle radius. Logically, it is expected to satisfy f(0) = 0 and f(x) > 0 if x>0. |
bb | the bounding box to which f is applied |
|
overridevirtual |
Overload this method to specify the inputs.
Implements IMP::ParticleInputs.
Definition at line 87 of file BoundingBox3DSingletonScore.h.
|
overridevirtual |
Compute the score and the derivative if needed over a set, only if "good". This functions similarly to evaluate_indexes(), but may terminate the computation early if the total score is higher than max.
Reimplemented from IMP::SingletonScore.
Definition at line 91 of file BoundingBox3DSingletonScore.h.
|
overridevirtual |
return 0 if the p is within the bounding box or f(d) if it is outside the bounding box, where f is the unary function provided during construction and d is the distance of the center of p from the bounding box walls. Update derivatives as needed, weighted using da.
Implements IMP::SingletonScore.
|
finaloverridevirtual |
Compute the score and the derivative if needed over a set.
m | the model of o |
o | objects of type Particle, specified by index |
da | a derivative accumulator that weights computed derivatives. If nullptr, derivatives will not be computed. |
lower_bound | index of first item in o to evaluate |
upper_bound | index one past last item in o to evaluate |
Reimplemented from IMP::SingletonScore.
Definition at line 91 of file BoundingBox3DSingletonScore.h.
|
finaloverridevirtual |
Compute the change in score and the derivative if needed over a set.
The score for each o[indexes[x]] is updated in score[indexes[x]] and the total difference between the old and new score values (over the set) is returned.
Reimplemented from IMP::SingletonScore.
Definition at line 91 of file BoundingBox3DSingletonScore.h.
|
finaloverridevirtual |
Compute the score and the derivative if needed over a set.
Like regular evaluate_indexes(), but the score for each o[x] is also returned as score[x].
Reimplemented from IMP::SingletonScore.
Definition at line 91 of file BoundingBox3DSingletonScore.h.
|
overridevirtual |
Get information about the module and version of the object.
Reimplemented from IMP::Object.
Definition at line 92 of file BoundingBox3DSingletonScore.h.