IMP
2.0.1
The Integrative Modeling Platform
|
Return all close unordered pairs of particles taken from the SingletonContainer. More...
#include <IMP/container/ClosePairContainer.h>
Public Member Functions | |
ClosePairContainer (SingletonContainerAdaptor c, double distance_cutoff, double slack=1) | |
Get the individual particles from the passed SingletonContainer. | |
ClosePairContainer (SingletonContainerAdaptor c, double distance_cutoff, core::ClosePairsFinder *cpf, double slack=1) | |
Get the individual particles from the passed SingletonContainer. | |
double | get_slack () const |
IMP_PAIR_CONTAINER (ClosePairContainer) | |
void | set_slack (double s) |
Public Member Functions inherited from IMP::kernel::PairContainer | |
void | apply (const PairModifier *sm) const |
Apply a SingletonModifier to the contents. | |
void | apply_generic (const PairModifier *m) const |
Just use apply() in the base class. | |
bool | get_contains_particle_pair (ParticlePair v) const |
This function is very slow and you should think hard about using it. More... | |
virtual ParticleIndexPairs | get_indexes () const =0 |
unsigned int | get_number_of_particle_pairs () const |
ParticlePair | get_particle_pair (unsigned int i) const |
ParticlePairsTemp | get_particle_pairs () const |
virtual ParticleIndexPairs | get_range_indexes () const =0 |
Public Member Functions inherited from IMP::kernel::Container | |
virtual void | do_after_evaluate (DerivativeAccumulator *accpt) |
Reset changed status. | |
ModelObjectsTemp | do_get_outputs () const |
containers don't have outputs | |
virtual ParticleIndexes | get_all_possible_indexes () const =0 |
Get contained particles. More... | |
ParticlesTemp | get_all_possible_particles () const |
bool | get_is_changed () const |
virtual bool | get_is_decomposable () const |
Public Member Functions inherited from IMP::kernel::ScoreState | |
ScoreState (Model *m, std::string name="ScoreState %1%") | |
void | after_evaluate (DerivativeAccumulator *accpt) |
Do post evaluation work if needed. | |
void | before_evaluate () |
Force update of the structure. | |
ContainersTemp | get_input_containers () const |
ParticlesTemp | get_input_particles () const |
ContainersTemp | get_output_containers () const |
ParticlesTemp | get_output_particles () const |
Public Member Functions inherited from IMP::kernel::ModelObject | |
ModelObject (Model *m, std::string name) | |
ModelObjectsTemp | get_inputs () const |
ModelObjectsTemps | get_interactions () const |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
virtual IMP::base::VersionInfo | get_version_info () const =0 |
Get information about the module and version of the object. | |
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) |
Related Functions | |
(Note that these are not member functions.) | |
typedef IMP::base::Vector < IMP::base::WeakPointer < ClosePairContainer > > | ClosePairContainersTemp |
Related Functions inherited from IMP::kernel::PairContainer | |
typedef IMP::base::Vector < IMP::base::WeakPointer < PairContainer > > | PairContainersTemp |
Related Functions inherited from IMP::kernel::Container | |
typedef IMP::base::Vector < IMP::base::WeakPointer < Container > > | ContainersTemp |
Related Functions inherited from IMP::kernel::ScoreState | |
typedef IMP::base::Vector < IMP::base::WeakPointer < ScoreState > > | ScoreStatesTemp |
Related Functions inherited from IMP::kernel::ModelObject | |
typedef IMP::base::Vector < IMP::base::WeakPointer < ModelObject > > | ModelObjectsTemp |
Related Functions inherited from IMP::base::Object | |
typedef IMP::base::Vector < IMP::base::WeakPointer < Object > > | ObjectsTemp |
Methods to control the set of filters | |
PairPredicate objects can be used as filters to prevent the addition of pairs to the container output list. Pairs for which the predicates evaluate to a non-zero value are excluded from the list. | |
void | remove_pair_filter (PairPredicate *d) |
void | remove_pair_filters (const PairPredicates &d) |
void | set_pair_filters (const PairPredicates &ps) |
void | set_pair_filters_order (const PairPredicates &objs) |
unsigned int | add_pair_filter (PairPredicate *obj) |
void | add_pair_filters (const PairPredicates &objs) |
void | clear_pair_filters () |
unsigned int | get_number_of_pair_filters () const |
bool | get_has_pair_filters () |
PairPredicate * | get_pair_filter (unsigned int i) const |
PairPredicates | get_pair_filters () const |
void | reserve_pair_filters (unsigned int sz) |
Additional Inherited Members | |
Public Types inherited from IMP::kernel::PairContainer | |
typedef ParticleIndexPair | ContainedIndexType |
typedef ParticleIndexPairs | ContainedIndexTypes |
typedef ParticlePair | ContainedType |
typedef ParticlePairsTemp | ContainedTypes |
Protected Member Functions inherited from IMP::kernel::PairContainer | |
PairContainer (Model *m, std::string name="PairContainer %1%") | |
virtual void | do_apply (const PairModifier *sm) const =0 |
virtual bool | do_get_provides_access () const |
The ClosePairContainer class maintains a list of particle pairs whose distance (opportunely defined by the decorator, eg., sphere surface distance for XYZR, and center-to-center distance for XYZ) is smaller than the distance_cutoff
parameter. It is generally used to construct the non-bonded list for the excluded volume score, as well as electrostatic and van der Waals potential terms.
To increase the efficiency, the stored list actually includes all pairs that are closer than distance_cutoff + slack
. This allows us to reuse the list and only recompute it when a particle moves more than slack
. The class keeps track internally of how far the particles have moved using a score state, and is also updated via a score state. A too small a slack
value can slow things down because the non-bonded list will be updated frequently. Also, a too large a slack value generates many particle pairs whose score is zero, thereby unnecessarily slowing down the score calculation. As a result, it may be useful to experiment with the parameter. You may wish to use the get_slack_estimate() function to help with this experimentation.
distance_cutoff
apart. If you use an IMP::PairScore with the generated list of pairs, make sure the IMP::PairScore is 0 for distances beyond the distance_cutoff
.IMP
, the contents of the container will only be value during restraint evaluation, or immediately following a call to Model::update(). Here is a simple example of using this for a nonbonded list
## \example container/nonbonded_interactions.py ## This example shows how to set up an excluded volume restraint for a set of XYZRDecorator-style particles. import IMP import IMP.core import IMP.atom import IMP.container # This example addes a restraint on nonbonded interactions # after excluding a set of bonded interactions. m= IMP.Model() # The set of particles ps = IMP.container.ListSingletonContainer(IMP.core.create_xyzr_particles(m, 20, 1.0)) # create a bond between two particles bd0= IMP.atom.Bonded.setup_particle(ps.get_particle(0)) bd1= IMP.atom.Bonded.setup_particle(ps.get_particle(1)) IMP.atom.create_custom_bond(bd0, bd1, 2.0) # Set up the nonbonded list for all pairs at are touching # and let things move 3 before updating the list nbl= IMP.container.ClosePairContainer(ps, 0.0, 3.0) nbl.add_pair_filter(IMP.atom.BondedPairFilter()) # Set up excluded volume sdps= IMP.core.SoftSpherePairScore(1) evr= IMP.container.PairsRestraint(sdps, nbl) m.add_restraint(evr) # Set up optimizer o= IMP.core.ConjugateGradients() o.set_model(m) o.optimize(1000)
Definition at line 60 of file ClosePairContainer.h.
|
related |
Pass a set of objects.
Definition at line 98 of file ClosePairContainer.h.