This module contains basic functionality that is expected to be used by a wide variety of IMP users.
This module contains basic functionality that is expected to be used by a wide variety of IMP users. The classes in it should not directly incorporate experimental data and instead should provide basic building blocks for making restraints and manipulating Particle objects. Typical classes are IMP::core::Harmonic, IMP::DistancePairScore, IMP::VolumeRestraint etc.
Examples:
Author(s): Daniel Russel, Ben Webb
Version: SVN.r12662 with cgal
License: LGPL. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Publications:
IMP and how to apply them to biological problems.Classes | |
| class | AngleRestraint |
| Angle restraint between three particles. More... | |
| class | AngleTripletScore |
| Apply a function to the angle between three particles. More... | |
| class | AttributeSingletonPredicate |
| class | BallMover |
| Modify a set of continuous variables by perturbing them within a ball. More... | |
| class | BoxSweepClosePairsFinder |
| Find all nearby pairs by sweeping the bounding boxes. More... | |
| class | Centroid |
| A particle that is the centroid of other particles. More... | |
| class | CentroidOfRefined |
| Set the coordinates of the particle to be the centoid of the particles. More... | |
| class | ChecksScoreState |
| class | ChildrenRefiner |
| Return the hierarchy children of a particle. More... | |
| class | ClosedCubicSpline |
| Closed cubic spline function. More... | |
| class | ClosePairsFinder |
| A base class for algorithms to find spatial proximities. More... | |
| class | ClosePairsPairScore |
| class | ConjugateGradients |
| Simple conjugate gradients optimizer. More... | |
| class | ConnectivityRestraint |
| Ensure that a set of particles remains connected with one another. More... | |
| class | ConstantPairPredicate |
| class | ConstantQuadPredicate |
| class | ConstantRestraint |
| Return a constant value. More... | |
| class | ConstantSingletonPredicate |
| class | ConstantTripletPredicate |
| class | Cosine |
| Cosine function. More... | |
| class | Cover |
| A particle which covers a set of other particles. More... | |
| class | CoverRefined |
| This class sets the position and radius of each particle to enclose the refined. More... | |
| class | DataObject |
| class | DerivativesFromRefined |
| Accumulate the derivatives of the refined particles. More... | |
| class | DerivativesToRefined |
| Copy the derivatives from the particle to its refined particles. More... | |
| class | DiameterRestraint |
| Restrain the diameter of a set of points. More... | |
| class | DihedralRestraint |
| Dihedral restraint between four particles. More... | |
| class | DistancePairScore |
| Apply a function to the distance between two particles. More... | |
| class | DistanceRestraint |
| Distance restraint between two particles. More... | |
| class | EdgePairGeometry |
| Display an IMP::atom::Bond particle as a segment. More... | |
| class | EdgePairsGeometry |
| Display an IMP::SingletonContainer of IMP::atom::Bond particles as segments. More... | |
| class | ExcludedVolumeRestraint |
| Prevent a set of particles and rigid bodies from inter-penetrating. More... | |
| class | FixedRefiner |
| The refiner can refine any particle by returning a fixed set. More... | |
| class | GenericAttributeSingletonScore |
| Apply a function to an attribute. More... | |
| class | GenericBoundingBox3DSingletonScore |
| Score particles based on how far outside a box they are. More... | |
| class | GenericDistanceToSingletonScore |
| Apply a function to the distance to a fixed point. More... | |
| class | GenericHierarchies |
| class | GridClosePairsFinder |
| Find all nearby pairs by testing all pairs. More... | |
| class | Harmonic |
| Harmonic function (symmetric about the mean) More... | |
| class | HarmonicDistancePairScore |
| class | HarmonicLowerBound |
| Lower bound harmonic function (non-zero when feature < mean) More... | |
| class | HarmonicSphereDistancePairScore |
| A harmonic score on the distance between two spheres. More... | |
| class | HarmonicUpperBound |
| Upper bound harmonic function (non-zero when feature > mean) More... | |
| class | HarmonicUpperBoundSphereDiameterPairScore |
| A harmonic upper bound on the diameter of the span of two spheres. More... | |
| class | HarmonicUpperBoundSphereDistancePairScore |
| A harmonic upper bound on the distance between two spheres. More... | |
| class | HarmonicWell |
| A well with harmonic barriers. More... | |
| class | Hierarchy |
| A decorator for helping deal with a hierarchy. More... | |
| struct | HierarchyCounter |
| A simple functor to count the number of particles in a hierarchy. More... | |
| class | HierarchyTraits |
| Define the type for a type of hierarchy. More... | |
| class | HierarchyVisitor |
| A visitor for traversal of a hierarchy. More... | |
| class | InBoundingBox3DSingletonPredicate |
| class | KClosePairsPairScore |
| class | LeavesRefiner |
| Return the hierarchy leaves under a particle. More... | |
| class | Linear |
| Linear function More... | |
| class | MCCGSampler |
| A simple sampler. More... | |
| class | MinimumRestraint |
| Score based on the minimum scoring members of a set of restraints. More... | |
| class | ModifierVisitor |
| A which applies a singleton modifier to each Particle in a hierarchy. More... | |
| class | MonteCarlo |
| A Monte Carlo optimizer. More... | |
| class | MonteCarloWithBasinHopping |
| This variant of Monte Carlo uses basis hopping. More... | |
| class | MonteCarloWithLocalOptimization |
| This variant of Monte Carlo that relaxes after each move. More... | |
| class | Mover |
| A base class for classes which perturb particles. More... | |
| class | MoverBase |
| A class to help implement movers. More... | |
| class | MoveStatisticsScoreState |
| Keep track of statistics about how particles move. More... | |
| class | MSConnectivityRestraint |
| Ensure that a set of particles remains connected with one another. More... | |
| class | NearestNeighborsClosePairsFinder |
| Find all nearby pairs using the algebra::NearestNeighbor code. More... | |
| class | NormalizedSphereDistancePairScore |
| A score on the normalized distance between the surfaces of two spheres. More... | |
| class | NormalMover |
| Modify a set of continuous variables using a normal distribution. More... | |
| class | OpenCubicSpline |
| Open cubic spline function. More... | |
| class | OrderedTypePairPredicate |
| class | OrderedTypeQuadPredicate |
| class | OrderedTypeSingletonPredicate |
| class | OrderedTypeTripletPredicate |
| class | PairConstraint |
| Apply a PairFunction to a Pair. More... | |
| class | PairRestraint |
| Applies a PairScore to a Pair. More... | |
| class | PredicateSingletonScore |
| class | QuadConstraint |
| Apply a QuadFunction to a Quad. More... | |
| class | QuadraticClosePairsFinder |
| Find all nearby pairs by testing all pairs. More... | |
| class | QuadRestraint |
| Applies a QuadScore to a Quad. More... | |
| class | Reference |
| A a decorator for a particle with an associated reference particle. More... | |
| class | RefinedPairsPairScore |
| Generate pairs to score by applying a Refiner. More... | |
| class | RigidBody |
| A decorator for a rigid body. More... | |
| class | RigidBodyDistancePairScore |
| Accelerated computation of the distance between two rigid bodies. More... | |
| class | RigidBodyHierarchyGeometry |
| class | RigidBodyMover |
| Modify the transformation of a rigid body. More... | |
| class | RigidClosePairsFinder |
| Peform more efficient close pair finding when rigid bodies are involved. More... | |
| class | RigidMember |
| A decorator for a particle that is part of a rigid body. More... | |
| class | SerialMover |
| Apply a list of movers one at a time. More... | |
| class | SingletonConstraint |
| Apply a SingletonFunction to a Singleton. More... | |
| class | SingletonRestraint |
| Applies a SingletonScore to a Singleton. More... | |
| class | SoftSpherePairScore |
| class | SphereDistancePairScore |
| A score on the distance between the surfaces of two spheres. More... | |
| class | SphereDistanceToSingletonScore |
| Apply a function to the distance to a fixed point. More... | |
| class | StatisticalPairScore |
| class | SteepestDescent |
| A simple steepest descent optimizer. More... | |
| class | TableRefiner |
| A lookup based particle refiner. More... | |
| class | Transform |
| Apply a transformation to a passed particle. More... | |
| class | TransformationAndReflectionSymmetry |
| Set the coordinates of a particle to be a transformed version of a reference. More... | |
| class | TransformationSymmetry |
| Set the coordinates of a particle to be a transformed version of a reference. More... | |
| class | TransformedDistancePairScore |
| Apply a function to the distance between two particles after transforming the first. More... | |
| class | TripletConstraint |
| Apply a TripletFunction to a Triplet. More... | |
| class | TripletRestraint |
| Applies a TripletScore to a Triplet. More... | |
| class | TruncatedHarmonic |
| A function that is harmonic over an interval. More... | |
| class | Typed |
| A decorator for classifying particles in your system. More... | |
| class | TypedPairScore |
| Delegate to another PairScore depending on particle types. More... | |
| class | UnorderedTypePairPredicate |
| class | UnorderedTypeQuadPredicate |
| class | UnorderedTypeSingletonPredicate |
| class | UnorderedTypeTripletPredicate |
| class | VolumeRestraint |
| Restraint the volume of a set of spheres. More... | |
| class | WeightedSphereDistancePairScore |
| A score on a weighted distance between the surfaces of two spheres. More... | |
| class | WriteRestraintScoresOptimizerState |
| class | XYZ |
| A a decorator for a particle with x,y,z coordinates. More... | |
| class | XYZDerivativeGeometry |
| class | XYZR |
| A decorator for a particle with x,y,z coordinates and a radius. More... | |
| class | XYZRGeometry |
| Display an IMP::core::XYZR particle as a ball. More... | |
| class | XYZRsGeometry |
| Display an IMP::SingletonContainer of IMP::core::XYZR particles as balls. More... | |
Python Only | |
The following functions are only availale in Python as the equivalent C++ functionality is provided via template functions or in other ways that don't directly map to python. | |
| algebra::Transformation3D | get_transformation_aligning_first_to_second (XYZsOrVector3ds a, XYZsOrVector3ds b) |
Typedefs | |
| typedef GenericAttributeSingletonScore < UnaryFunction > | AttributeSingletonScore |
|
typedef GenericBoundingBox3DSingletonScore < UnaryFunction > | BoundingBox3DSingletonScore |
|
typedef GenericDistanceToSingletonScore < UnaryFunction > | DistanceToSingletonScore |
| typedef Key< 34897493, true > | ParticleType |
| typedef TruncatedHarmonic< BOTH > | TruncatedHarmonicBound |
| A specialization. | |
| typedef TruncatedHarmonic< LOWER > | TruncatedHarmonicLowerBound |
| A specialization for the lower bound. | |
| typedef TruncatedHarmonic< UPPER > | TruncatedHarmonicUpperBound |
| A specialization for the upper bound. | |
Enumerations | |
| enum | BoundDirection { LOWER, BOTH, UPPER } |
Functions | |
| void | add_rigid_body_cache_key (ObjectKey k) |
| template<class UF > | |
| GenericAttributeSingletonScore < UF > * | create_attribute_singleton_score (UF *uf, FloatKey k) |
| template<class UnaryFunction > | |
| GenericBoundingBox3DSingletonScore < UnaryFunction > * | create_bounding_box_3d_singleton_score (UnaryFunction *f, const algebra::BoundingBoxD< 3 > &bb) |
| template<class UnaryFunction > | |
| GenericDistanceToSingletonScore < UnaryFunction > * | create_distance_to_singleton_score (UnaryFunction *f, const algebra::Vector3D &pt) |
| template<class Predicate , class Score > | |
| PredicateSingletonScore < Predicate, Score > * | create_predicates_singleton_score (Predicate *pred, int val, Score *score) |
| ParticlesTemp | create_rigid_bodies (Model *m, unsigned int n, bool no_members=false) |
| XYZRs | create_xyzr_particles (Model *m, unsigned int num, Float radius, Float box_side=10) |
| Create a set of particles which random coordinates. | |
| template<class HD , class F > | |
| HD | find_breadth_first (HD h, F f) |
| Find the first node which matches some criteria. | |
| template<class H , class Out , class F > | |
| Out | gather (H h, F f, Out out) |
| Gather all the particles in the hierarchy which meet some criteria. | |
| template<class H , class Out , class K , class V > | |
| Out | gather_by_attribute (H h, K k, V v, Out out) |
| Gather all the particles in the hierarchy which match on an attribute. | |
| template<class H , class Out , class K0 , class V0 , class K1 , class V1 > | |
| Out | gather_by_attributes (H h, K0 k0, V0 v0, K1 k1, V1 v1, Out out) |
| Gather all the particles in the hierarchy which match on two attributes. | |
| template<class H , class Out , class F > | |
| Out | gather_slice (H h, F f, Out out) |
| Gather all the particles in the hierarchy which meet some criteria. | |
| GenericHierarchies | get_all_descendants (Hierarchy mhd) |
| Get all the particles in the subtree. | |
| algebra::BoundingBoxD< 3 > | get_bounding_box (const XYZRs &ps) |
| Get the bounding box. | |
| algebra::Vector3D | get_centroid (const XYZs &ps) |
| Get the centroid. | |
| double | get_dihedral (XYZ a, XYZ b, XYZ c, XYZ d) |
| Compute the dihedral angle (in radians) between the four particles. | |
| double | get_distance (XYZR a, XYZR b) |
| Compute the distance between a pair of particles. | |
| double | get_distance (XYZ a, XYZ b) |
| Compute the distance between a pair of particles. | |
| algebra::Sphere3D | get_enclosing_sphere (const XYZs &v) |
| Get a sphere enclosing the set of XYZRs. | |
| algebra::ReferenceFrame3D | get_initial_reference_frame (const ParticlesTemp &ps) |
| GenericHierarchies | get_internal (Hierarchy mhd) |
| Get all the non-leaves of the bit of hierarchy. | |
| GenericHierarchies | get_leaves (Hierarchy mhd) |
| Get all the leaves of the bit of hierarchy. | |
| Hierarchy | get_root (Hierarchy h) |
| Return the root of the hierarchy. | |
| const algebra::Sphere3D | get_sphere_d_geometry (XYZR d) |
| const algebra::Vector3D | get_vector_d_geometry (XYZ d) |
| void | set_enclosing_radius (XYZR b, const XYZs &v) |
| Set the radius of the first to enclose the list. | |
| void | set_enclosing_sphere (XYZR b, const XYZs &v, double slack=0) |
| Set the coordinates and radius of the first to enclose the list. | |
| void | set_sphere_d_geometry (XYZR d, const algebra::Sphere3D &v) |
| void | set_vector_d_geometry (XYZ d, const algebra::Vector3D &v) |
| template<class ND > | |
| std::ostream & | show (Hierarchy h, std::ostream &out=std::cout) |
| Print the hierarchy using a given decorator as to display each node. | |
| void | transform (XYZ a, const algebra::Transformation3D &tr) |
| Apply a transformation to the particle. | |
| void | transform (RigidBody a, const algebra::Transformation3D &tr) |
| Transform a rigid body. | |
| template<class HD , class F > | |
| F | visit_breadth_first (HD d, F f) |
| Apply the visitor to each particle, breadth first. | |
| template<class HD , class F > | |
| F | visit_breadth_first_with_data (HD d, F f, typename F::result_type i) |
| Apply functor F to each particle, traversing the hierarchy breadth first. | |
| template<class HD , class F > | |
| F | visit_depth_first (HD d, F f) |
| Apply functor F to each particle, traversing the hierarchy depth first. | |
| template<class HD , class F > | |
| F | visit_depth_first_with_data (HD d, F f, typename F::result_type i) |
| Apply functor F to each particle, traversing the hierarchy depth first. | |
For python users. C++ users should use create_attribute_singleton_score().
| typedef TruncatedHarmonic<BOTH> IMP::core::TruncatedHarmonicBound |
A specialization.
| typedef TruncatedHarmonic<LOWER> IMP::core::TruncatedHarmonicLowerBound |
A specialization for the lower bound.
| typedef TruncatedHarmonic<UPPER> IMP::core::TruncatedHarmonicUpperBound |
A specialization for the upper bound.
| void IMP::core::add_rigid_body_cache_key | ( | ObjectKey | k | ) |
It is often useful to store precalculated properties of the rigid body for later use. These need to be cleared out when the rigid body changes. To make sure this happens, register the key here.
| GenericAttributeSingletonScore<UF>* IMP::core::create_attribute_singleton_score | ( | UF * | uf, |
| FloatKey | k | ||
| ) |
Provide a compile time binding version of AttributeSingletonScore, which runs faster than the runtime bound version. UF should be a subclass of UnaryFunction (and not pointer to a generic UnaryFunction).
| PredicateSingletonScore<Predicate, Score>* IMP::core::create_predicates_singleton_score | ( | Predicate * | pred, |
| int | val, | ||
| Score * | score | ||
| ) |
Other overloads can be created as needed.
| ParticlesTemp IMP::core::create_rigid_bodies | ( | Model * | m, |
| unsigned int | n, | ||
| bool | no_members = false |
||
| ) |
Create a set of rigid bodies that are bound together for efficiency. These rigid bodies cannot nest or have other dependencies amongst them.
All rigid bodies have the default reference frame.
| XYZRs create_xyzr_particles | ( | Model * | m, |
| unsigned int | num, | ||
| Float | radius, | ||
| Float | box_side = 10 |
||
| ) |
Create a set of particles which random coordinates.
This function is mostly to be used to keep demo code brief.
| [in] | m | The model to add them to. |
| [in] | num | The number of particles to create. |
| [in] | radius | The radius to give them. |
| [in] | box_side | The particles have coordinates from -box_side to box_side. |
The particles coordinates are optimized.
| GenericHierarchies get_all_descendants | ( | Hierarchy | mhd | ) |
Get all the particles in the subtree.
| algebra::BoundingBoxD<3> IMP::core::get_bounding_box | ( | const XYZRs & | ps | ) |
Get the bounding box.
Compute the boudning box of a set of particles
| algebra::Vector3D IMP::core::get_centroid | ( | const XYZs & | ps | ) |
Get the centroid.
Compute the centroid (mean) of a set of particles.
| double get_dihedral | ( | XYZ | a, |
| XYZ | b, | ||
| XYZ | c, | ||
| XYZ | d | ||
| ) |
Compute the dihedral angle (in radians) between the four particles.
| double get_distance | ( | XYZR | a, |
| XYZR | b | ||
| ) |
Compute the distance between a pair of particles.
| double get_distance | ( | XYZ | a, |
| XYZ | b | ||
| ) |
Compute the distance between a pair of particles.
| algebra::Sphere3D get_enclosing_sphere | ( | const XYZs & | v | ) |
Get a sphere enclosing the set of XYZRs.
| [in] | v | The one whose radius should be set Any particle which does not have the attribute b.get_radius() is assumed to have a radius of 0. |
| algebra::ReferenceFrame3D IMP::core::get_initial_reference_frame | ( | const ParticlesTemp & | ps | ) |
Compute the rigid body reference frame given a set of input particles.
| GenericHierarchies get_internal | ( | Hierarchy | mhd | ) |
Get all the non-leaves of the bit of hierarchy.
| GenericHierarchies get_leaves | ( | Hierarchy | mhd | ) |
Get all the leaves of the bit of hierarchy.
The leaves are returned in the obvious order (first child before second child).
| Hierarchy get_root | ( | Hierarchy | h | ) |
Return the root of the hierarchy.
| const algebra::Sphere3D IMP::core::get_sphere_d_geometry | ( | XYZR | d | ) |
| algebra::Transformation3D IMP::core::get_transformation_aligning_first_to_second | ( | XYZsOrVector3ds | a, |
| XYZsOrVector3ds | b | ||
| ) |
| const algebra::Vector3D IMP::core::get_vector_d_geometry | ( | XYZ | d | ) |
| void set_enclosing_radius | ( | XYZR | b, |
| const XYZs & | v | ||
| ) |
| void set_enclosing_sphere | ( | XYZR | b, |
| const XYZs & | v, | ||
| double | slack = 0 |
||
| ) |
Set the coordinates and radius of the first to enclose the list.
| [in] | v | The vector of XYZ or XYZR particles to enclose |
| [out] | b | The one whose values should be set |
| [in] | slack | An amount to add to the radius. Any particle which does not have the attribute b.get_radius() is assumed to have a radius of 0. |
| void IMP::core::set_sphere_d_geometry | ( | XYZR | d, |
| const algebra::Sphere3D & | v | ||
| ) |
| void IMP::core::set_vector_d_geometry | ( | XYZ | d, |
| const algebra::Vector3D & | v | ||
| ) |
| void IMP::core::transform | ( | XYZ | a, |
| const algebra::Transformation3D & | tr | ||
| ) |
Apply a transformation to the particle.
| void transform | ( | RigidBody | a, |
| const algebra::Transformation3D & | tr | ||
| ) |
Transform a rigid body.
The transformation is applied current conformation of the rigid body, as opposed to replacing the current conformation, as in RigidBody::set_transformation().