IMP logo
Classes | Typedefs | Enumerations | Functions
IMP::core Namespace Reference

Detailed Description

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:

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 >
visit_breadth_first (HD d, F f)
 Apply the visitor to each particle, breadth first.
template<class HD , class 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 >
visit_depth_first (HD d, F f)
 Apply functor F to each particle, traversing the hierarchy depth first.
template<class HD , class 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.

Typedef Documentation

For python users. C++ users should use create_attribute_singleton_score().

A specialization.

A specialization for the lower bound.

A specialization for the upper bound.


Function Documentation

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.

template<class UF >
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).

template<class Predicate , class Score >
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.

Parameters:
[in]mThe model to add them to.
[in]numThe number of particles to create.
[in]radiusThe radius to give them.
[in]box_sideThe 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.

Parameters:
[in]vThe 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 
)

Align any combination of XYZ objects and algebra::Vector3D objects to one another.

Note:
each of the two lists must all have the same type. That is, list "a" cannot be a mix of algebra::Vector3D objects and XYZ objects.
const algebra::Vector3D IMP::core::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.

Parameters:
[in]vThe vector of XYZ or XYZR particles to enclose
[out]bThe 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.
void set_enclosing_sphere ( XYZR  b,
const XYZs &  v,
double  slack = 0 
)

Set the coordinates and radius of the first to enclose the list.

Parameters:
[in]vThe vector of XYZ or XYZR particles to enclose
[out]bThe one whose values should be set
[in]slackAn 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.
Note:
This function produces tighter bounds if the CGAL library is available.
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().

algebra::Transformation3D


Generated on Fri Feb 10 2012 23:36:25 for IMP by doxygen 1.7.5.1