IMP logo
IMP Reference Guide  2.5.0
The Integrative Modeling Platform
IMP Namespace Reference

Base functionality and abstract base classes for representation, scoring and sampling. More...

Detailed Description

Base functionality and abstract base classes for representation, scoring and sampling.

For backwards compatibility, the kernel can also be accessed as IMP::kernel.

Graphs

Graphs in IMP are represented in C++ using the Boost.Graph. All graphs used in IMP are VertexAndEdgeListGraphs, have vertex_name properties, are BidirectionalGraphs if they are directed.

The Boost.Graph interface cannot be easily exported to Python so we instead provide a simple wrapper IMP::PythonDirectedGraph. There are methods to translate the graphs into various common python and other formats (eg graphviz).

Values and Objects (C++ only)

As is conventional in C++, IMP classes are divided into broad, exclusive types

  • Object classes: They inherit from IMP::Object and are always passed by pointer. They are reference counted and so should only be stored using IMP::Pointer (in C++, in Python everything is reference counted). Never allocate these on the stack as very bad things can happen. Objects cannot be duplicated. Equality on objects is defined as identity (eg two different objects are different even if the data they contain is identical).
  • Value classes which are normal data types. They are passed by value (or const&), never by pointer. Equality is defined based on the data stored in the value. Most value types in IMP are always valid, but a few, mostly geometric types (IMP::algebra::Vector3D) are designed for fast, low-level use and are left in an uninitialized state by their default constructor
  • RAII classes control some particular resource. They grab control of a resource when created and then free it when they are destroyed. As a result, they cannot be copied. Non-IMP examples include things like files in python, which are automatically closed when the file object is deleted.

All types in IMP, with a few documented exceptions, can be

  • compared to other objects of the same type
  • output to a C++ stream or printed in python
  • meaningfully put into python dictionaries or C++ hash maps

Google Perf Tools

The google perf tools can be used for cpu and memory profiling of IMP. They can be controlled from the command line in many IMP executables.

Info

Author(s): Daniel Russel, Ben Webb

Maintainer: benmwebb

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:

See deprecation support.

Namespaces

 algebra
 General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP modules.
 
 atom
 Functionality for loading, creating, manipulating and scoring atomic structures.
 
 benchmark
 Support for developing and analyzing benchmarks of IMP code.
 
 cgal
 Make CGAL functionality available to IMP.
 
 cnmultifit
 Generate cyclic atomic structures using cryo-electron microscopy data.
 
 container
 Various classes to hold sets of particles.
 
 core
 Basic functionality that is expected to be used by a wide variety of IMP users.
 
 display
 Output IMP model data in various file formats.
 
 domino
 Divide-and-conquer inferential optimization in discrete space.
 
 em
 Basic utilities for handling cryo-electron microscopy 3D density maps.
 
 em2d
 Restraints using electron microscopy 2D images (class averages).
 
 EMageFit
 Build assembly models consistent with EM images (class averages).
 
 example
 Example module.
 
 foxs
 Determine small angle X-ray (SAXS) profiles.
 
 gsl
 Several general purpose optimizers from the GNU Scientific Library (GSL).
 
 integrative_docking
 Pairwise docking incorporating additional data.
 
 isd
 Inferential scoring building on methods developed as part of the Inferential Structure Determination software (ISD).
 
 kinematics
 Functionality for dealing with kinematic mechanical structures.
 
 kmeans
 Interface to the GPL k-means clustering library
 
 misc
 Miscellaneous functionality that is not expected to be used by many IMP users.
 
 modeller
 Interface to the Modeller comparative modeling package.
 
 mpi
 Code that uses the MPI parallel library.
 
 multi_state
 Functionality for handling multi-state models.
 
 multifit
 Fitting atomic structures into a cryo-electron microscopy density map.
 
 parallel
 Distribute IMP tasks to multiple processors or machines.
 
 pepdock
 Initial peptide docking.
 
 pmi
 Python classes to represent, score, sample and analyze models.
 
 rmf
 Support for the RMF file format for storing hierarchical molecular data and markup.
 
 rotamer
 Sampling of sidechain rotamers.
 
 saxs
 Support for small angle X-ray scattering (SAXS) data.
 
 saxs_merge
 A method for merging SAXS profiles using Gaussian processes.
 
 score_functor
 Composable functors to implement scores via compile-time composition.
 
 scratch
 A space to add temporary classes while experimenting without forcing you to create your own module.
 
 statistics
 Code to compute statistical measures.
 
 symmetry
 Support for basic symmetry, such as periodic boundary conditions (PBC).
 
 test
 Support for running tests of IMP functionality.
 

Classes

struct  AddBoolFlag
 
struct  AddFloatFlag
 
struct  AddIntFlag
 
struct  AddStringFlag
 
class  AdvancedFlag
 Use this to add an advanced flag to the program. More...
 
class  Array
 A class to store an fixed array of same-typed values. More...
 
class  AttributeOptimizer
 Base class for optimizers that act on individual attributes. More...
 
class  CommandDispatcher
 Allow command line tools to easily implement multiple commmands. More...
 
class  Configuration
 A class to store a configuration of a model. More...
 
class  ConfigurationSet
 A class to store a set of configurations of a model. More...
 
class  Constraint
 Implement a constraint on the Model. More...
 
class  ConstVector
 Store an array of values of the same type. More...
 
class  Container
 Abstract class for containers of particles. More...
 
class  CreateLogContext
 Create a new log context. More...
 
class  Decorator
 
class  DerivativeAccumulator
 Class for adding derivatives from restraints to the model. More...
 
struct  EvaluationState
 
class  EventException
 An exception that signifies some event occurred. More...
 
class  Exception
 The general base class for IMP exceptions. More...
 
class  Flag
 
struct  FloatIndex
 
class  Index
 A typed index. More...
 
class  IndexException
 An exception for a request for an invalid member of a container. More...
 
class  IndexVector
 
class  InputAdaptor
 
struct  InternalException
 A general exception for an internal error in IMP. More...
 
class  IOException
 An input/output exception. More...
 
class  Key
 A base class for Keys. More...
 
class  LRUCache
 
class  Memoizer
 
class  Model
 Class for storing model, its restraints, constraints, and particles. More...
 
class  ModelException
 An exception which is thrown when the Model has attributes with invalid values. More...
 
class  ModelObject
 
class  NonCopyable
 
class  Object
 Common base class for heavy weight IMP objects. More...
 
class  Optimizer
 Base class for all optimizers. More...
 
class  OptimizerState
 Shared optimizer state that is invoked upon commitment of new coordinates. More...
 
class  OptionParser
 IMP-specific subclass of optparse.OptionParser. More...
 
class  PairContainer
 A shared container for Pairs. More...
 
class  PairContainerAdaptor
 
class  PairModifier
 A base class for modifiers of ParticlePairsTemp. More...
 
class  PairPredicate
 Abstract predicate function. More...
 
class  PairScore
 Abstract class for scoring object(s) of type ParticleIndexPair. More...
 
class  Particle
 Class to handle individual model particles. More...
 
class  ParticleAdaptor
 
class  ParticleIndexAdaptor
 
class  ParticleIndexesAdaptor
 
class  ParticleIndexPairsAdaptor
 
class  ParticleInputs
 
class  ParticleOutputs
 
class  piecewise_linear_distribution
 
struct  Pointer
 A smart pointer to a reference counted object. More...
 
struct  PointerMember
 A smart pointer to a ref-counted Object that is a class member. More...
 
class  PythonDirectedGraph
 
class  QuadContainer
 A shared container for Quads. More...
 
class  QuadContainerAdaptor
 
class  QuadModifier
 A base class for modifiers of ParticleQuadsTemp. More...
 
class  QuadPredicate
 Abstract predicate function. More...
 
class  QuadScore
 Abstract class for scoring object(s) of type ParticleIndexQuad. More...
 
class  RAII
 Temporarily change something; undo the change when this object is destroyed. More...
 
class  Refiner
 Abstract class to implement hierarchical methods. More...
 
class  Restraint
 A restraint is a term in an IMP ScoringFunction. More...
 
class  RestraintsAdaptor
 Provide a consistent interface for things that take Restraints as arguments. More...
 
class  RestraintSet
 Object used to hold a set of restraints. More...
 
class  Sampler
 Base class for all samplers. More...
 
class  SaveToConfigurationSetOptimizerState
 
class  ScopedAddCacheAttribute
 
class  ScopedSetAttribute
 
class  ScoreAccumulator
 Class for adding up scores during ScoringFunction evaluation. More...
 
class  ScoreState
 ScoreStates maintain invariants in the Model. More...
 
class  ScoringFunction
 Represents a scoring function on the model. More...
 
class  ScoringFunctionAdaptor
 
class  SetCheckState
 A class to change and restore check state. More...
 
class  SetLogState
 A class to change and restore log state. More...
 
class  SetLogTarget
 
class  SetNumberOfThreads
 
class  Showable
 
class  SingletonContainer
 A shared container for Singletons. More...
 
class  SingletonContainerAdaptor
 
class  SingletonModifier
 A base class for modifiers of ParticlesTemp. More...
 
class  SingletonPredicate
 Abstract predicate function. More...
 
class  SingletonScore
 Abstract class for scoring object(s) of type ParticleIndex. More...
 
class  SparseSymmetricPairMemoizer
 
class  TextInput
 
class  TextOutput
 
class  Timer
 
class  TripletContainer
 A shared container for Triplets. More...
 
class  TripletContainerAdaptor
 
class  TripletModifier
 A base class for modifiers of ParticleTripletsTemp. More...
 
class  TripletPredicate
 Abstract predicate function. More...
 
class  TripletScore
 Abstract class for scoring object(s) of type ParticleIndexTriplet. More...
 
class  TypeException
 An exception for an invalid type being passed to IMP. More...
 
class  UnaryFunction
 Abstract single variable functor class for score functions. More...
 
struct  UncheckedWeakPointer
 A weak pointer to an Object or RefCountedObject. More...
 
class  Undecorator
 
class  UsageException
 An exception for an invalid usage of IMP. More...
 
class  Value
 Base for a simple primitive-like type. More...
 
class  ValueException
 An exception for an invalid value being passed to IMP. More...
 
class  Vector
 
class  VersionInfo
 Version and module information for Objects. More...
 
struct  WarningContext
 
struct  WeakPointer
 Smart pointer to Object-derived classes that does not refcount. More...
 

Typedefs

typedef IMP::Vector
< IMP::Pointer
< AttributeOptimizer > > 
AttributeOptimizers
 
typedef IMP::Vector
< IMP::WeakPointer
< AttributeOptimizer > > 
AttributeOptimizersTemp
 
typedef IMP::Vector
< IMP::Pointer< Configuration > > 
Configurations
 
typedef IMP::Vector
< IMP::Pointer
< ConfigurationSet > > 
ConfigurationSets
 
typedef IMP::Vector
< IMP::WeakPointer
< ConfigurationSet > > 
ConfigurationSetsTemp
 
typedef IMP::Vector
< IMP::WeakPointer
< Configuration > > 
ConfigurationsTemp
 
typedef IMP::Vector
< IMP::Pointer< Constraint > > 
Constraints
 
typedef IMP::Vector
< IMP::WeakPointer< Constraint > > 
ConstraintsTemp
 
typedef IMP::Vector
< IMP::Pointer< Container > > 
Containers
 
typedef IMP::Vector
< IMP::WeakPointer< Container > > 
ContainersTemp
 
typedef boost::graph DependencyGraph
 A directed graph on the interactions between the various objects in the model. More...
 
typedef
DependencyGraph::EdgeNameMap 
DependencyGraphConstEdgeName
 
typedef
DependencyGraph::VertexNameMap 
DependencyGraphConstVertexName
 
typedef
DependencyGraph::edge_descriptor 
DependencyGraphEdge
 
typedef boost::graph_traits
< DependencyGraph
DependencyGraphTraits
 
typedef
DependencyGraph::vertex_descriptor 
DependencyGraphVertex
 
typedef IMP::Vector
< DerivativeAccumulator
DerivativeAccumulators
 
typedef std::pair< double, double > DerivativePair
 A pair representing a function value with its first derivative. More...
 
typedef IMP::Vector
< DerivativePair
DerivativePairs
 
typedef IMP::Vector
< DerivativePairs
DerivativePairss
 
typedef IMP::Vector
< EvaluationState
EvaluationStates
 
typedef double Float
 Basic floating-point value (could be float, double...) More...
 
typedef IMP::Vector< FloatIndexFloatIndexes
 
typedef std::pair< double, double > FloatPair
 A generic pair of floats. More...
 
typedef IMP::Vector< FloatPairFloatPairs
 
typedef IMP::Vector< FloatPairsFloatPairss
 
typedef std::pair< Float, FloatFloatRange
 A pair representing the allowed range for a Float attribute. More...
 
typedef IMP::Vector< FloatRangeFloatRanges
 
typedef IMP::Vector< FloatRangesFloatRangess
 
typedef IMP::Vector< FloatFloats
 Standard way to pass a bunch of Float values. More...
 
typedef IMP::Vector< FloatsFloatsList
 Standard way to pass a bunch of Floats values. More...
 
typedef IMP::Vector< FloatsListFloatsLists
 
typedef IMP::Vector< FloatsFloatss
 
typedef int Int
 Basic integer value. More...
 
typedef std::pair< Int, IntIntPair
 
typedef IMP::Vector< IntPair > IntPairs
 
typedef IMP::Vector< IntPairsIntPairss
 
typedef std::pair< Int, IntIntRange
 
typedef IMP::Vector< IntRange > IntRanges
 
typedef IMP::Vector< IntRangesIntRangess
 
typedef IMP::Vector< IntInts
 Standard way to pass a bunch of Int values. More...
 
typedef IMP::Vector< IntsIntsList
 Standard way to pass a bunch of Ints values. More...
 
typedef IMP::Vector< IntsListIntsLists
 
typedef IMP::Vector< IntsIntss
 
typedef IMP::Vector
< IMP::Pointer< ModelObject > > 
ModelObjects
 
typedef IMP::Vector
< IMP::WeakPointer
< ModelObject > > 
ModelObjectsTemp
 
typedef Vector< ModelObjectsTempModelObjectsTemps
 
typedef IMP::Vector
< IMP::Pointer< Model > > 
Models
 
typedef IMP::Vector
< IMP::WeakPointer< Model > > 
ModelsTemp
 
typedef IMP::Vector
< IMP::Pointer< Object > > 
Objects
 A list of objects. More...
 
typedef IMP::Vector
< IMP::WeakPointer< Object > > 
ObjectsTemp
 
typedef IMP::Vector
< IMP::Pointer< Optimizer > > 
Optimizers
 
typedef IMP::Vector
< IMP::Pointer< OptimizerState > > 
OptimizerStates
 
typedef IMP::Vector
< IMP::WeakPointer
< OptimizerState > > 
OptimizerStatesTemp
 
typedef IMP::Vector
< IMP::WeakPointer< Optimizer > > 
OptimizersTemp
 
typedef IMP::Vector
< IMP::Pointer< PairContainer > > 
PairContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< PairContainer > > 
PairContainersTemp
 
typedef PairModifier PairDerivativeModifier
 
typedef IMP::Vector
< IMP::Pointer< PairModifier > > 
PairModifiers
 
typedef IMP::Vector
< IMP::WeakPointer
< PairModifier > > 
PairModifiersTemp
 
typedef IMP::Vector
< IMP::Pointer< PairPredicate > > 
PairPredicates
 
typedef IMP::Vector
< IMP::WeakPointer
< PairPredicate > > 
PairPredicatesTemp
 
typedef IMP::Vector
< IMP::Pointer< PairScore > > 
PairScores
 
typedef IMP::Vector
< IMP::WeakPointer< PairScore > > 
PairScoresTemp
 
typedef Index< ParticleIndexTag > ParticleIndex
 
typedef Vector< ParticleIndexParticleIndexes
 
typedef Array< 2, ParticleIndexParticleIndexPair
 
typedef IMP::Vector
< ParticleIndexPair
ParticleIndexPairs
 
typedef Array< 4, ParticleIndexParticleIndexQuad
 
typedef IMP::Vector
< ParticleIndexQuad
ParticleIndexQuads
 
typedef Array< 3, ParticleIndexParticleIndexTriplet
 
typedef IMP::Vector
< ParticleIndexTriplet
ParticleIndexTriplets
 
typedef Array< 2, WeakPointer
< Particle >, Particle * > 
ParticlePair
 
typedef IMP::Vector< ParticlePairParticlePairsTemp
 
typedef Array< 4, WeakPointer
< Particle >, Particle * > 
ParticleQuad
 
typedef IMP::Vector< ParticleQuadParticleQuadsTemp
 
typedef Vector< Pointer
< Particle > > 
Particles
 
typedef Vector< WeakPointer
< Particle > > 
ParticlesTemp
 
typedef Vector< ParticlesTempParticlesTemps
 
typedef Array< 3, WeakPointer
< Particle >, Particle * > 
ParticleTriplet
 
typedef IMP::Vector
< ParticleTriplet
ParticleTripletsTemp
 
typedef IMP::Vector
< IMP::Pointer< QuadContainer > > 
QuadContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadContainer > > 
QuadContainersTemp
 
typedef QuadModifier QuadDerivativeModifier
 
typedef IMP::Vector
< IMP::Pointer< QuadModifier > > 
QuadModifiers
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadModifier > > 
QuadModifiersTemp
 
typedef IMP::Vector
< IMP::Pointer< QuadPredicate > > 
QuadPredicates
 
typedef IMP::Vector
< IMP::WeakPointer
< QuadPredicate > > 
QuadPredicatesTemp
 
typedef IMP::Vector
< IMP::Pointer< QuadScore > > 
QuadScores
 
typedef IMP::Vector
< IMP::WeakPointer< QuadScore > > 
QuadScoresTemp
 
typedef ::boost::mt19937 RandomNumberGenerator
 
typedef IMP::Vector
< IMP::Pointer< Refiner > > 
Refiners
 a collection of Refiner objects More...
 
typedef IMP::Vector
< IMP::WeakPointer< Refiner > > 
RefinersTemp
 
typedef IMP::Vector
< IMP::Pointer< Restraint > > 
Restraints
 
typedef IMP::Vector
< IMP::Pointer< RestraintSet > > 
RestraintSets
 
typedef IMP::Vector
< IMP::WeakPointer
< RestraintSet > > 
RestraintSetsTemp
 
typedef IMP::Vector
< IMP::WeakPointer< Restraint > > 
RestraintsTemp
 
typedef IMP::Vector
< IMP::Pointer< Sampler > > 
Samplers
 
typedef IMP::Vector
< IMP::WeakPointer< Sampler > > 
SamplersTemp
 
typedef ScopedSetAttribute
< FloatKey, Float
ScopedSetFloatAttribute
 
typedef IMP::Vector
< ScoreAccumulator
ScoreAccumulators
 
typedef IMP::Vector
< IMP::Pointer< ScoreState > > 
ScoreStates
 
typedef IMP::Vector
< IMP::WeakPointer< ScoreState > > 
ScoreStatesTemp
 
typedef IMP::Vector
< IMP::Pointer
< ScoringFunction > > 
ScoringFunctions
 
typedef IMP::Vector
< IMP::WeakPointer
< ScoringFunction > > 
ScoringFunctionsTemp
 
typedef IMP::Vector
< SetCheckState
SetCheckStates
 
typedef IMP::Vector< SetLogStateSetLogStates
 
typedef IMP::Vector
< IMP::Pointer
< SingletonContainer > > 
SingletonContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonContainer > > 
SingletonContainersTemp
 
typedef SingletonModifier SingletonDerivativeModifier
 
typedef IMP::Vector
< IMP::Pointer
< SingletonModifier > > 
SingletonModifiers
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonModifier > > 
SingletonModifiersTemp
 
typedef IMP::Vector
< IMP::Pointer
< SingletonPredicate > > 
SingletonPredicates
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonPredicate > > 
SingletonPredicatesTemp
 
typedef IMP::Vector
< IMP::Pointer< SingletonScore > > 
SingletonScores
 
typedef IMP::Vector
< IMP::WeakPointer
< SingletonScore > > 
SingletonScoresTemp
 
typedef std::string String
 Basic string value. More...
 
typedef IMP::Vector< StringStrings
 Standard way to pass a bunch of String values. More...
 
typedef IMP::Vector< StringsStringsList
 Standard way to pass a bunch of Strings values. More...
 
typedef IMP::Vector< StringsListStringsLists
 
typedef IMP::Vector< StringsStringss
 
typedef IMP::Vector< TextInputTextInputs
 
typedef IMP::Vector< TextOutputTextOutputs
 
typedef IMP::Vector
< IMP::Pointer
< TripletContainer > > 
TripletContainers
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletContainer > > 
TripletContainersTemp
 
typedef TripletModifier TripletDerivativeModifier
 
typedef IMP::Vector
< IMP::Pointer
< TripletModifier > > 
TripletModifiers
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletModifier > > 
TripletModifiersTemp
 
typedef IMP::Vector
< IMP::Pointer
< TripletPredicate > > 
TripletPredicates
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletPredicate > > 
TripletPredicatesTemp
 
typedef IMP::Vector
< IMP::Pointer< TripletScore > > 
TripletScores
 
typedef IMP::Vector
< IMP::WeakPointer
< TripletScore > > 
TripletScoresTemp
 
typedef IMP::Vector
< IMP::Pointer< UnaryFunction > > 
UnaryFunctions
 
typedef IMP::Vector
< IMP::WeakPointer
< UnaryFunction > > 
UnaryFunctionsTemp
 
typedef IMP::Vector
< IMP::Pointer< Undecorator > > 
Undecorators
 
typedef IMP::Vector
< IMP::WeakPointer
< Undecorator > > 
UndecoratorsTemp
 
typedef IMP::Vector< VersionInfoVersionInfos
 

Enumerations

enum  CheckLevel { DEFAULT_CHECK = -1, NONE = 0, USAGE = 1, USAGE_AND_INTERNAL = 2 }
 Specify the level of runtime checks performed. More...
 
enum  LogLevel {
  DEFAULT = -1, SILENT = 0, WARNING = 0 + 1, PROGRESS = 2,
  TERSE = 3, VERBOSE = 4, MEMORY = 5
}
 The log levels supported by IMP. More...
 
enum  StatisticsLevel { NO_STATISTICS = 0, ALL_STATISTICS = 1 }
 Specify the level of statistics to record. More...
 

Functions

def allow_deprecated
 Context manager to temporarily allow (or disallow) deprecated code. More...
 
void clear_statistics ()
 
template<class Before , class After >
Constraintcreate_constraint (Before *b, After *a, const typename Before::Argument &t, std::string name=std::string())
 
ScoringFunctions create_decomposition (ScoringFunction *sf)
 
Restraints create_decomposition (const RestraintsTemp &rs)
 Return the decomposition of a list of restraints. More...
 
template<class Score >
Restraintcreate_restraint (Score *s, const typename Score::Argument &t, std::string name=std::string())
 
template<class Score >
Restraintcreate_restraint (const Score *s, const typename Score::Argument &t, std::string name=std::string())
 
template<class Score , class Container >
Restraintcreate_restraint (const Score *s, Container *t, std::string name=std::string())
 
template<class RestraintType >
ScoringFunctioncreate_scoring_function (RestraintType *rs, double weight=1.0, double max=NO_MAX, std::string name=std::string())
 
TextOutput create_temporary_file (std::string prefix="imp_temp", std::string suffix="")
 
std::string create_temporary_file_name (std::string prefix="imp_temp", std::string suffix="")
 Create a temporary file. More...
 
def deprecated_function
 Python decorator to mark a function as deprecated. More...
 
def deprecated_method
 Python decorator to mark a method as deprecated. More...
 
def deprecated_module
 Mark a Python module as deprecated. More...
 
def deprecated_object
 Python decorator to mark a class as deprecated. More...
 
template<class Tag >
unsigned int get_as_unsigned_int (Index< Tag > i)
 
DependencyGraph get_dependency_graph (Model *m)
 
ParticlesTemp get_dependent_particles (ModelObject *p, const ModelObjectsTemp &all, const DependencyGraph &dg, const DependencyGraphVertexIndex &index)
 
bool get_deprecation_exceptions ()
 Get whether an exception is thrown when a deprecated method is used. More...
 
ParticleIndexes get_indexes (const ParticlesTemp &ps)
 
ParticleIndexPairs get_indexes (const ParticlePairsTemp &ps)
 
template<class Tag >
Index< Tag > get_invalid_index ()
 
bool get_is_quick_test ()
 
Strings get_live_object_names ()
 Return the names of all live objects. More...
 
Objects get_live_objects ()
 Return pointers to all live objects. More...
 
TextOutput get_log_target ()
 
ParticlesTemp get_particles (Model *m, const ParticleIndexes &ps)
 
DependencyGraph get_pruned_dependency_graph (Model *m)
 
double get_random_double_uniform ()
 Return a uniformly distributed double number in range [0..1) More...
 
double get_random_double_uniform (double min, double max)
 Return a uniformly distributed double number in range [min..max) More...
 
float get_random_float_uniform ()
 Return a uniformly distributed float number in range [0..1) More...
 
float get_random_float_uniform (float min, float max)
 Return a uniformly distributed float number in range [min..max) More...
 
template<typename RealType >
void get_random_numbers_normal (Vector< RealType > &v, unsigned int n, RealType mean=0.0, RealType stddev=1.0)
 Fill the double array with random normally distributed values. More...
 
template<typename RealType >
void get_random_numbers_uniform (Vector< RealType > &v, unsigned int n)
 Fill the float array with random normally distributed values. More...
 
boost::uint64_t get_random_seed ()
 Return the initial random seed. More...
 
std::string get_relative_path (std::string base, std::string relative)
 Return a path to a file relative to another file. More...
 
ScoreStatesTemp get_required_score_states (const ModelObjectsTemp &mos, ScoreStatesTemp exclude=ScoreStatesTemp())
 
ScoreStatesTemp get_required_score_states (ModelObject *p, const ModelObjectsTemp &all, const DependencyGraph &dg, const DependencyGraphVertexIndex &index)
 
std::string get_unique_name (std::string templ)
 Return a unique name produced from the string. More...
 
ScoreStatesTemp get_update_order (ScoreStatesTemp input)
 
const algebra::Vector3D get_vector_geometry (Particle *p)
 
const algebra::Vector3D get_vector_geometry (Decorator d)
 
const algebra::Vector3D get_vector_geometry (WeakPointer< Particle > d)
 
const algebra::Vector3D get_vector_geometry (Pointer< Particle > d)
 
DependencyGraphVertexIndex get_vertex_index (const DependencyGraph &g)
 
void handle_use_deprecated (std::string message)
 
template<class T >
std::size_t hash_value (const T &t)
 
std::size_t hash_value (double d)
 
std::size_t hash_value (int d)
 
std::size_t hash_value (bool d)
 
std::size_t hash_value (const std::string &d)
 
template<class T >
std::size_t hash_value (const std::vector< T > &t)
 
template<class T >
std::size_t hash_value (const __gnu_debug::vector< T > &t)
 
template<class T >
bool isinf (const T &a)
 Return true if a number is infinite. More...
 
template<class T >
bool isnan (const T &a)
 Return true if a number is NaN. More...
 
template<class Pred >
internal::PredicateEquals
< Pred, true > 
make_predicate_equal (const Pred *p, Model *m, int value)
 Return a functor that returns true when the predicate has a certain value. More...
 
template<class Pred >
internal::PredicateEquals
< Pred, false > 
make_predicate_not_equal (const Pred *p, Model *m, int value)
 
template<class O >
O * object_cast (Object *o)
 
std::ostream & operator<< (std::ostream &out, const Showable &s)
 
template<class Tag , class Container , class T >
void resize_to_fit (Container &v, Index< Tag > i, const T &default_value=T())
 
void set_deprecation_exceptions (bool tf)
 Toggle whether an exception is thrown when a deprecated method is used. More...
 
void set_deprecation_warnings (bool tf)
 Toggle printing of warnings on using deprecated classes. More...
 
void set_log_target (TextOutput l)
 Set the target for the log. More...
 
void set_show_leaked_objects (bool tf)
 Set whether to complain about objects not being properly cleaned up. More...
 
void set_statistics_level (StatisticsLevel l)
 
void set_vector_geometry (Particle *p, const algebra::Vector3D &v)
 
void set_vector_geometry (Decorator d, const algebra::Vector3D &v)
 
void set_vector_geometry (WeakPointer< Particle > d, const algebra::Vector3D &v)
 
void set_vector_geometry (Pointer< Particle > d, const algebra::Vector3D &v)
 
void show_as_graphviz (const DependencyGraph &name, TextOutput out)
 
void show_restraint_hierarchy (ScoringFunctionAdaptor rs, std::ostream &out=std::cout)
 Print the hierarchy of restraints. More...
 
void show_timings (TextOutput out)
 
template<class A >
void swap (ConstVector< A > &a, ConstVector< A > &b)
 
void write_help (std::ostream &out=std::cerr)
 

Variables

const double BAD_SCORE
 
namespace base = IMP
 
const double NO_MAX
 Use this value when you want to turn off maximum for restraint evaluation. More...
 
const std::nullptr_t nullptr
 
RandomNumberGenerator random_number_generator
 A shared non-GPU random number generator. More...
 

Attribute Keys

Each type of attribute has an associated type of key. The keys can be constructed from a string. Such construction can be expensive and so the resulting keys should be cached.

typedef Key< 0, true > FloatKey
 The type used to identify float attributes in the Particles. More...
 
typedef IMP::Vector< FloatKeyFloatKeys
 
typedef Key< 1, true > IntKey
 The type used to identify int attributes in the Particles. More...
 
typedef IMP::Vector< IntKeyIntKeys
 
typedef Key< 2, true > StringKey
 The type used to identify string attributes in the Particles. More...
 
typedef IMP::Vector< StringKeyStringKeys
 
typedef Key< 3, true > ParticleIndexKey
 The type used to identify a particle attribute in the Particles. More...
 
typedef IMP::Vector
< ParticleIndexKey
ParticleIndexKeys
 
typedef Key< 4, true > ObjectKey
 The type used to identify an Object attribute. More...
 
typedef IMP::Vector< ObjectKeyObjectKeys
 
typedef Key< 9, true > WeakObjectKey
 The type used to identify a non-ref counted Object attribute. More...
 
typedef IMP::Vector
< WeakObjectKey
WeakObjectKeys
 
typedef Key< 5, true > IntsKey
 The type used to identify int attributes in the Particles. More...
 
typedef IMP::Vector< IntsKeyIntsKeys
 
typedef Key< 6, true > ParticleIndexesKey
 The type used to identify a particle attribute in the Particles. More...
 
typedef IMP::Vector
< ParticleIndexesKey
ParticleIndexesKeys
 
typedef Key< 7, true > ObjectsKey
 The type used to identify a particle attribute in the Particles. More...
 
typedef IMP::Vector< ObjectsKeyObjectsKeys
 
typedef Key< 8, true > ModelKey
 The type used to identify data stored directly in the model. More...
 
typedef IMP::Vector< ModelKeyModelKeys
 

Error checking and reporting

By default IMP performs a variety of runtime error checks. These can be controlled using the IMP::set_check_level function. Call IMP::set_check_level with IMP::NONE to disable all checks when you are performing your optimization as opposed to testing your code. Make sure you run your code with the level set to at least USAGE before running your final optimization to make sure that IMP is used correctly.

Error handling is provided by IMP/exception.h,

Use the gdbinit file provided in tools to automatically have gdb break when IMP errors are detected.

void set_check_level (CheckLevel tf)
 Control runtime checks in the code. More...
 
CheckLevel get_check_level ()
 Get the current audit mode. More...
 
void handle_error (const char *msg)
 

Flags

These methods add support for shared command line flags to IMP. Programs that use this have access to flags declared in modules which allow users to do things like control log level and turn on and off profiling to see what is going on. These functions are Python accessible.

In C++, you can also use the AddFloatFlag, AddStringFlag, AddBoolFlag and AddIntFlag classes to add flags statically.

std::string get_executable_name ()
 Return the name of the current executable. More...
 
void setup_from_argv (int argc, char **argv, std::string description)
 Parse the command line flags and return the positional arguments. More...
 
Strings setup_from_argv_allowing_unknown (int argc, char **argv, std::string description)
 
Strings setup_from_argv (int argc, char **argv, std::string description, std::string positional_description, int num_positional)
 
void setup_from_argv (const Strings &argv, std::string description)
 
Strings setup_from_argv (const Strings &argv, std::string description, std::string positional_description, int num_positional)
 
void add_string_flag (std::string name, std::string default_value, std::string description)
 
std::string get_string_flag (std::string name)
 
void add_int_flag (std::string name, size_t default_value, std::string description)
 
size_t get_int_flag (std::string name)
 
void add_bool_flag (std::string name, std::string description)
 
bool get_bool_flag (std::string name)
 
void add_float_flag (std::string name, double default_value, std::string description)
 
double get_float_flag (std::string name)
 

Inputs and outputs

These methods recursively find all inputs or outputs of a given type.

If you don't want recursive, use the non input/output variants.

ParticlesTemp get_input_particles (const ModelObjectsTemp &mos)
 Return all the input particles for a given ModelObject. More...
 
ContainersTemp get_input_containers (const ModelObjectsTemp &mos)
 Return all the input particles for a given ModelObject. More...
 
ParticlesTemp get_output_particles (const ModelObjectsTemp &mos)
 Return all the output particles for a given ModelObject. More...
 
ContainersTemp get_output_containers (const ModelObjectsTemp &mos)
 Return all the output particles for a given ModelObject. More...
 

Buffer I/O

Write/read the state of the particles to/from a buffer in memory.

Note
Not all particles need to have all the attributes, missing attributes will be skipped. However, the set of attributes must match on the write and read particles.
There is no handling of architectural issues. That is, this is only guaranteed to work if it is read and written on the same operating system and system bit length. We could probably fix this.
both these methods should be considered unstable.
Vector< char > write_particles_to_buffer (const ParticlesTemp &particles, const FloatKeys &keys)
 return a binary buffer with the data More...
 
void read_particles_from_buffer (const Vector< char > &buffer, const ParticlesTemp &particles, const FloatKeys &keys)
 load found attributes into the particles More...
 

Standard module functions

All IMP modules have a set of standard functions to help get information about the module and about files associated with the module.

std::string get_module_version ()
 
std::string get_module_name ()
 
std::string get_data_path (std::string file_name)
 Return the full path to one of this module's data files. More...
 
std::string get_example_path (std::string file_name)
 Return the full path to one of this module's example files. More...
 

Logging

IMP provides tools for controlling the amount of log output produced and directing it to the terminal or a file. Only log messages tagged with a lower level than the current LogLevel are emitted. In addition to a global log level (get_log_level(), set_log_level()), each IMP::Object has an internal log level (IMP::Object::get_log_level(), IMP::Object::set_log_level()) which is used when executing code on that object.

Logging is provided by IMP/log.h.

People implementing IMP::Object classes should also see IMP_OBJECT_LOG() and IMP::SetLogState.

All logging is disabled when IMP is built using build='fast'.

void add_to_log (LogLevel level, std::string to_write)
 Write a string to the log, for Python. More...
 
void set_log_level (LogLevel l)
 Set the current global log level. More...
 
void set_log_timer (bool tb)
 Set whether log messages are tagged with the current log time. More...
 
void reset_log_timer ()
 Reset the log timer. More...
 
LogLevel get_log_level ()
 Get the currently active global log level. More...
 

Create a progress bar in the terminal

void set_progress_display (std::string description, unsigned int steps)
 Set up the progress bar with the passed description. More...
 
void add_to_progress_display (unsigned int step=1)
 Set the current progress. More...
 

Python Only

The following functions are only available in Python.

void show_altgraph (Graph g)
 
networkx::DiGraph get_networkx_graph (Graph g)
 
std::string show_graphviz (Graph g)
 

Gathering restraints

It is sometimes useful to extract all the non-RestraintSet restraints from a hierarchy involving RestraintSets mixed with Restraints.

RestraintsTemp get_restraints (const RestraintsTemp &rs)
 
template<class It >
RestraintsTemp get_restraints (It b, It e)
 

Number of threads

Get and set the default number of threads to use in IMP.

unsigned int get_number_of_threads ()
 
void set_number_of_threads (unsigned int n)
 

Typedef Documentation

Store a set of objects.

Definition at line 100 of file AttributeOptimizer.h.

Pass a set of objects.

See Also
AttributeOptimizer

Definition at line 100 of file AttributeOptimizer.h.

Store a set of objects.

Definition at line 49 of file Configuration.h.

Store a set of objects.

Definition at line 46 of file ConfigurationSet.h.

Pass a set of objects.

See Also
ConfigurationSet

Definition at line 46 of file ConfigurationSet.h.

Pass a set of objects.

See Also
Configuration

Definition at line 49 of file Configuration.h.

Store a set of objects.

Definition at line 62 of file Constraint.h.

Pass a set of objects.

See Also
Constraint

Definition at line 62 of file Constraint.h.

Store a set of objects.

Definition at line 93 of file base_types.h.

Pass a set of objects.

See Also
Container

Definition at line 94 of file base_types.h.

typedef boost::graph IMP::DependencyGraph

A directed graph on the interactions between the various objects in the model.

The vertices are named by the associated Object*. There is an edge from a to b, if a is an input to b. For example, there is an edge from a particle to a restraint if the restraint directly reads the particle.

See Dependencies for more information about dependencies.See Graphs in IMP for more information.

Definition at line 37 of file dependency_graph.h.

Pass or store a set of DerivativeAccumulator .

Definition at line 49 of file DerivativeAccumulator.h.

typedef std::pair<double, double> IMP::DerivativePair

A pair representing a function value with its first derivative.

Definition at line 23 of file types.h.

Pass or store a set of DerivativePair .

Definition at line 24 of file types.h.

Pass or store a set of DerivativePairs .

Definition at line 24 of file types.h.

Pass or store a set of EvaluationState .

Definition at line 36 of file ScoreAccumulator.h.

typedef double IMP::Float

Basic floating-point value (could be float, double...)

Definition at line 20 of file types.h.

Pass or store a set of FloatIndex .

Definition at line 22 of file FloatIndex.h.

typedef Key<0, true> IMP::FloatKey

The type used to identify float attributes in the Particles.

Definition at line 32 of file base_types.h.

Pass or store a set of FloatKey .

Definition at line 33 of file base_types.h.

typedef std::pair<double, double> IMP::FloatPair

A generic pair of floats.

Definition at line 27 of file types.h.

Pass or store a set of FloatPair .

Definition at line 28 of file types.h.

Pass or store a set of FloatPairs .

Definition at line 28 of file types.h.

typedef std::pair<Float, Float> IMP::FloatRange

A pair representing the allowed range for a Float attribute.

Definition at line 31 of file types.h.

Pass or store a set of FloatRange .

Definition at line 32 of file types.h.

Pass or store a set of FloatRanges .

Definition at line 32 of file types.h.

Standard way to pass a bunch of Float values.

Pass or store a set of Float .

Definition at line 47 of file types.h.

Standard way to pass a bunch of Floats values.

Pass or store a set of Floats .

Definition at line 54 of file types.h.

Pass or store a set of FloatsList .

Definition at line 54 of file types.h.

Pass or store a set of Floats .

Definition at line 47 of file types.h.

typedef int IMP::Int

Basic integer value.

Definition at line 35 of file types.h.

typedef Key<1, true> IMP::IntKey

The type used to identify int attributes in the Particles.

Definition at line 36 of file base_types.h.

Pass or store a set of IntKey .

Definition at line 37 of file base_types.h.

typedef IMP::Vector< IntPair > IMP::IntPairs

Pass or store a set of IntPair .

Definition at line 41 of file types.h.

Pass or store a set of IntPairs .

Definition at line 41 of file types.h.

typedef IMP::Vector< IntRange > IMP::IntRanges

Pass or store a set of IntRange .

Definition at line 38 of file types.h.

Pass or store a set of IntRanges .

Definition at line 38 of file types.h.

Standard way to pass a bunch of Int values.

Pass or store a set of Int .

Definition at line 49 of file types.h.

typedef Key<5, true> IMP::IntsKey

The type used to identify int attributes in the Particles.

Definition at line 56 of file base_types.h.

Pass or store a set of IntsKey .

Definition at line 57 of file base_types.h.

Standard way to pass a bunch of Ints values.

Pass or store a set of Ints .

Definition at line 56 of file types.h.

Pass or store a set of IntsList .

Definition at line 56 of file types.h.

Pass or store a set of Ints .

Definition at line 49 of file types.h.

typedef Key<8, true> IMP::ModelKey

The type used to identify data stored directly in the model.

Definition at line 74 of file base_types.h.

Pass or store a set of ModelKey .

Definition at line 75 of file base_types.h.

Store a set of objects.

Definition at line 81 of file base_types.h.

Pass a set of objects.

See Also
ModelObject

Definition at line 82 of file base_types.h.

Store a set of objects.

Definition at line 85 of file base_types.h.

Pass a set of objects.

See Also
Model

Definition at line 86 of file base_types.h.

typedef Key<4, true> IMP::ObjectKey

The type used to identify an Object attribute.

Definition at line 48 of file base_types.h.

Pass or store a set of ObjectKey .

Definition at line 49 of file base_types.h.

A list of objects.

Store a set of objects.

Definition at line 60 of file types.h.

typedef Key<7, true> IMP::ObjectsKey

The type used to identify a particle attribute in the Particles.

Definition at line 70 of file base_types.h.

Pass or store a set of ObjectsKey .

Definition at line 71 of file base_types.h.

Pass a set of objects.

See Also
Object

Definition at line 62 of file types.h.

Store a set of objects.

Definition at line 137 of file Optimizer.h.

Store a set of objects.

Definition at line 99 of file base_types.h.

Pass a set of objects.

See Also
OptimizerState

Definition at line 100 of file base_types.h.

Pass a set of objects.

See Also
Optimizer

Definition at line 137 of file Optimizer.h.

Store a set of objects.

Definition at line 103 of file base_types.h.

Pass a set of objects.

See Also
PairContainer

Definition at line 104 of file base_types.h.

Store a set of objects.

Definition at line 130 of file base_types.h.

Pass a set of objects.

See Also
PairModifier

Definition at line 131 of file base_types.h.

Store a set of objects.

Definition at line 121 of file base_types.h.

Pass a set of objects.

See Also
PairPredicate

Definition at line 122 of file base_types.h.

Store a set of objects.

Definition at line 112 of file base_types.h.

Pass a set of objects.

See Also
PairScore

Definition at line 113 of file base_types.h.

typedef Index<ParticleIndexTag> IMP::ParticleIndex

A unique identifier for a particle within a Model. Use it to identify particles when getting and setting attributes and constructing decorators.

See for example, Model attributes, Decorator, and Model::get_particle().

Definition at line 154 of file base_types.h.

typedef Key<6, true> IMP::ParticleIndexesKey

The type used to identify a particle attribute in the Particles.

Definition at line 60 of file base_types.h.

Pass or store a set of ParticleIndexesKey .

Definition at line 61 of file base_types.h.

typedef Key<3, true> IMP::ParticleIndexKey

The type used to identify a particle attribute in the Particles.

Definition at line 44 of file base_types.h.

Pass or store a set of ParticleIndexKey .

Definition at line 45 of file base_types.h.

Pass or store a set of ParticleIndexPair .

Definition at line 161 of file base_types.h.

Pass or store a set of ParticleIndexQuad .

Definition at line 163 of file base_types.h.

Pass or store a set of ParticleIndexTriplet .

Definition at line 162 of file base_types.h.

An ordered pair of particles.

Definition at line 135 of file base_types.h.

Pass or store a set of ParticlePair .

Definition at line 139 of file base_types.h.

An ordered quad of particles.

Definition at line 144 of file base_types.h.

Pass or store a set of ParticleQuad .

Definition at line 145 of file base_types.h.

An ordered triplet of particles.

Definition at line 141 of file base_types.h.

Pass or store a set of ParticleTriplet .

Definition at line 142 of file base_types.h.

Store a set of objects.

Definition at line 107 of file base_types.h.

Pass a set of objects.

See Also
QuadContainer

Definition at line 108 of file base_types.h.

Store a set of objects.

Definition at line 134 of file base_types.h.

Pass a set of objects.

See Also
QuadModifier

Definition at line 135 of file base_types.h.

Store a set of objects.

Definition at line 125 of file base_types.h.

Pass a set of objects.

See Also
QuadPredicate

Definition at line 126 of file base_types.h.

Store a set of objects.

Definition at line 116 of file base_types.h.

Pass a set of objects.

See Also
QuadScore

Definition at line 117 of file base_types.h.

a collection of Refiner objects

Store a set of objects.

Definition at line 122 of file Refiner.h.

Pass a set of objects.

See Also
Refiner

Definition at line 122 of file Refiner.h.

Store a set of objects.

Definition at line 79 of file base_types.h.

Store a set of objects.

Definition at line 87 of file base_types.h.

Pass a set of objects.

See Also
RestraintSet

Definition at line 88 of file base_types.h.

Pass a set of objects.

See Also
Restraint

Definition at line 80 of file base_types.h.

Store a set of objects.

Definition at line 69 of file Sampler.h.

Pass a set of objects.

See Also
Sampler

Definition at line 69 of file Sampler.h.

Pass or store a set of ScoreAccumulator .

Definition at line 137 of file ScoreAccumulator.h.

Store a set of objects.

Definition at line 89 of file base_types.h.

Pass a set of objects.

See Also
ScoreState

Definition at line 90 of file base_types.h.

Store a set of objects.

Definition at line 91 of file base_types.h.

Pass a set of objects.

See Also
ScoringFunction

Definition at line 92 of file base_types.h.

Pass or store a set of SetCheckState .

Definition at line 54 of file SetCheckState.h.

Pass or store a set of SetLogState .

Definition at line 50 of file SetLogState.h.

Store a set of objects.

Definition at line 101 of file base_types.h.

Pass a set of objects.

See Also
SingletonContainer

Definition at line 102 of file base_types.h.

Store a set of objects.

Definition at line 128 of file base_types.h.

Pass a set of objects.

See Also
SingletonModifier

Definition at line 129 of file base_types.h.

Store a set of objects.

Definition at line 119 of file base_types.h.

Pass a set of objects.

See Also
SingletonPredicate

Definition at line 120 of file base_types.h.

Store a set of objects.

Definition at line 110 of file base_types.h.

Pass a set of objects.

See Also
SingletonScore

Definition at line 111 of file base_types.h.

typedef std::string IMP::String

Basic string value.

Definition at line 44 of file types.h.

typedef Key<2, true> IMP::StringKey

The type used to identify string attributes in the Particles.

Definition at line 40 of file base_types.h.

Pass or store a set of StringKey .

Definition at line 41 of file base_types.h.

Standard way to pass a bunch of String values.

Pass or store a set of String .

Definition at line 51 of file types.h.

Standard way to pass a bunch of Strings values.

Pass or store a set of Strings .

Definition at line 58 of file types.h.

Pass or store a set of StringsList .

Definition at line 58 of file types.h.

Pass or store a set of Strings .

Definition at line 51 of file types.h.

Pass or store a set of TextInput .

Definition at line 150 of file file.h.

Pass or store a set of TextOutput .

Definition at line 151 of file file.h.

Store a set of objects.

Definition at line 105 of file base_types.h.

Pass a set of objects.

See Also
TripletContainer

Definition at line 106 of file base_types.h.

Store a set of objects.

Definition at line 132 of file base_types.h.

Pass a set of objects.

See Also
TripletModifier

Definition at line 133 of file base_types.h.

Store a set of objects.

Definition at line 123 of file base_types.h.

Pass a set of objects.

See Also
TripletPredicate

Definition at line 124 of file base_types.h.

Store a set of objects.

Definition at line 114 of file base_types.h.

Pass a set of objects.

See Also
TripletScore

Definition at line 115 of file base_types.h.

Store a set of objects.

Definition at line 56 of file UnaryFunction.h.

Pass a set of objects.

See Also
UnaryFunction

Definition at line 56 of file UnaryFunction.h.

Store a set of objects.

Definition at line 33 of file Undecorator.h.

Pass a set of objects.

See Also
Undecorator

Definition at line 33 of file Undecorator.h.

Pass or store a set of VersionInfo .

Definition at line 48 of file VersionInfo.h.

typedef Key<9, true> IMP::WeakObjectKey

The type used to identify a non-ref counted Object attribute.

Definition at line 52 of file base_types.h.

Pass or store a set of WeakObjectKey .

Definition at line 53 of file base_types.h.

Enumeration Type Documentation

Specify the level of runtime checks performed.

Enumerator
DEFAULT_CHECK 

Use the default check level (eg IMP::Object::set_check_level()).

NONE 

Perform no runtime checks.

USAGE 

Perform checks that IMP is being called correctly.

USAGE_AND_INTERNAL 

Check internal IMP invariants. This is to be used for debugging IMP.

Definition at line 53 of file enums.h.

The log levels supported by IMP.

Enumerator
DEFAULT 

Use to specify that the global log level should be used (eg in IMP::Object::set_log_level())

SILENT 

Do not output any text.

WARNING 

Output only warnings.

PROGRESS 

Output only progress meter style displays and occasional printouts when switching phases of work.

TERSE 

Output a line or two per evaluation call.

VERBOSE 

Produce copious output to allow someone to trace through the computation.

MEMORY 

Log memory allocations and frees.

Definition at line 19 of file enums.h.

Specify the level of statistics to record.

See Also
show_timings().

Definition at line 72 of file enums.h.

Function Documentation

void IMP::add_bool_flag ( std::string  name,
std::string  description 
)

For Python use. Default is always false.

void IMP::add_float_flag ( std::string  name,
double  default_value,
std::string  description 
)

For Python use.

void IMP::add_int_flag ( std::string  name,
size_t  default_value,
std::string  description 
)

For Python use.

void IMP::add_string_flag ( std::string  name,
std::string  default_value,
std::string  description 
)

For Python use.

void IMP::add_to_log ( LogLevel  level,
std::string  to_write 
)

Write a string to the log, for Python.

void IMP::add_to_progress_display ( unsigned int  step = 1)

Set the current progress.

When it equals the number of steps, the bar is done.

def IMP.allow_deprecated (   allow = True)

Context manager to temporarily allow (or disallow) deprecated code.

See Also
deprecation support.
Note
This function is only available in Python.

Definition at line 9407 of file __init__.py.

void IMP::clear_statistics ( )

Reset all the statistics for IMP.

template<class Before , class After >
Constraint* IMP::create_constraint ( Before *  b,
After *  a,
const typename Before::Argument &  t,
std::string  name = std::string() 
)

When programming in C++, you can use generic constraint instead of a SingletonConstraint, PairConstraint, etc. The result is somewhat faster (20% or so).

Definition at line 63 of file generic.h.

ScoringFunctions IMP::create_decomposition ( ScoringFunction *  sf)

Return a list of ScoringFunction objects where each is as simple as possible and evaluating the sum (and anding the good score bits) is exactly like evaluating the one ScoringFunction.

Restraints IMP::create_decomposition ( const RestraintsTemp &  rs)

Return the decomposition of a list of restraints.

template<class Score >
Restraint* IMP::create_restraint ( Score *  s,
const typename Score::Argument &  t,
std::string  name = std::string() 
)

When programming in C++, you can use generic restraint instead of a SingletonRestraint, PairRestraint, etc. The result is somewhat faster (20% or so).

Definition at line 36 of file generic.h.

+ Here is the call graph for this function:

template<class RestraintType >
ScoringFunction* IMP::create_scoring_function ( RestraintType *  rs,
double  weight = 1.0,
double  max = NO_MAX,
std::string  name = std::string() 
)

Create a ScoringFunction on a single restraints. This can be faster than using a RestraintsScoringFunction.

Definition at line 23 of file generic.h.

TextOutput IMP::create_temporary_file ( std::string  prefix = "imp_temp",
std::string  suffix = "" 
)

Create a temporary file. The path can be extracted from the TextOutput.

If suffix is non-empty, there is some small chance of a collision on non-BSD systems as a unique temporary file is first created, and then a file with that suffix appended is created.

std::string IMP::create_temporary_file_name ( std::string  prefix = "imp_temp",
std::string  suffix = "" 
)

Create a temporary file.

If suffix is non-empty, there is some small chance of a collision on non-BSD systems as a unique temporary file is first created, and then a file with that suffix appended is created.

def IMP.deprecated_function (   version,
  help_message 
)

Python decorator to mark a function as deprecated.

See Also
deprecation support.
Note
This function is only available in Python.

Definition at line 9395 of file __init__.py.

def IMP.deprecated_method (   version,
  help_message 
)

Python decorator to mark a method as deprecated.

See Also
deprecation support.
Note
This function is only available in Python.

Definition at line 9383 of file __init__.py.

def IMP.deprecated_module (   version,
  module,
  help_message 
)

Mark a Python module as deprecated.

Note
The module argument would normally be __name__.
See Also
deprecation support.
Note
This function is only available in Python.

Definition at line 9360 of file __init__.py.

def IMP.deprecated_object (   version,
  help_message 
)

Python decorator to mark a class as deprecated.

See Also
deprecation support.
Note
This function is only available in Python.

Definition at line 9367 of file __init__.py.

bool IMP::get_bool_flag ( std::string  name)

For Python use.

CheckLevel IMP::get_check_level ( )

Get the current audit mode.

Definition at line 81 of file exception.h.

std::string IMP::get_data_path ( std::string  file_name)

Return the full path to one of this module's data files.

To read the data file "data_library" that was placed in the data directory of this module, do something like

std::ifstream in(IMP::get_data_path("data_library"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own data directory, so be sure to use this function from the correct module.
DependencyGraph IMP::get_dependency_graph ( Model *  m)

The dependency graph captures the interactions between Restraint, ScoreState and Particle objects. The graph has a directed edge if the source of the edge is an input for the target of the edge or the target of the edge is an output for the source. eg, there is an edge connecting a Container to the Restraint which gets its particles from the Container.

See Also
get_pruned_dependency_graph()
ParticlesTemp IMP::get_dependent_particles ( ModelObject *  p,
const ModelObjectsTemp &  all,
const DependencyGraph &  dg,
const DependencyGraphVertexIndex &  index 
)
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. You should act directly on the ModelObjects instead.
bool IMP::get_deprecation_exceptions ( )

Get whether an exception is thrown when a deprecated method is used.

std::string IMP::get_example_path ( std::string  file_name)

Return the full path to one of this module's example files.

To read the example file "example_protein.pdb" that was placed in the examples directory of this module, do something like

std::ifstream in(IMP::get_example_path("example_protein.pdb"));

This will ensure that the code works both when IMP is installed or if used via the setup_environment.sh script.

Note
Each module has its own example directory, so be sure to use this function from the correct module.
std::string IMP::get_executable_name ( )

Return the name of the current executable.

double IMP::get_float_flag ( std::string  name)

For Python use.

ParticleIndexes IMP::get_indexes ( const ParticlesTemp &  ps)

Get the indexes from a list of particles.

ParticleIndexPairs IMP::get_indexes ( const ParticlePairsTemp &  ps)

Get the indexes from a list of particle pairs.

ContainersTemp IMP::get_input_containers ( const ModelObjectsTemp &  mos)

Return all the input particles for a given ModelObject.

ParticlesTemp IMP::get_input_particles ( const ModelObjectsTemp &  mos)

Return all the input particles for a given ModelObject.

size_t IMP::get_int_flag ( std::string  name)

For Python use.

bool IMP::get_is_quick_test ( )

Executables can inspect this flag and when it is true, run a shorter, simpler version of their code to just make sure things work.

Definition at line 178 of file flags.h.

Strings IMP::get_live_object_names ( )

Return the names of all live objects.

Use this to check for memory leaks.

Objects IMP::get_live_objects ( )

Return pointers to all live objects.

Use this to check for memory leaks.

LogLevel IMP::get_log_level ( )

Get the currently active global log level.

Get the currently active global log level

Note
This may not always match the value passed to set_log_level() as objects can temporarily override the global level while they are evaluating.
See Also
set_log_level()
IMP::Object::set_log_level()

Definition at line 94 of file log.h.

networkx::DiGraph IMP::get_networkx_graph ( Graph  g)

Export an IMP graph to a networkx graph. The resulting graph can be analyzed and displayed, although the graph layout algorithms in networkx seem to be quite poor compared to graphviz.

On a Mac, such graphs can be displayed by

import matplotlib
# the engine to be used must be selected before pyplot is imported
matplotlib.use("macosx")
import matplotlib.pyplot as plt
import networkx
networkx.draw_spring(xg)
plt.show()
unsigned int IMP::get_number_of_threads ( )

Get the current number of threads requested. The default is the number of cores/hardware threads in the machine if there is OpenMP support, or 1 otherwise.

ContainersTemp IMP::get_output_containers ( const ModelObjectsTemp &  mos)

Return all the output particles for a given ModelObject.

ParticlesTemp IMP::get_output_particles ( const ModelObjectsTemp &  mos)

Return all the output particles for a given ModelObject.

ParticlesTemp IMP::get_particles ( Model *  m,
const ParticleIndexes &  ps 
)

Get the particles from a list of indexes.

DependencyGraph IMP::get_pruned_dependency_graph ( Model *  m)

The pruned dependency graph merges all particles which have the same dependencies to produce a simpler graph.

double IMP::get_random_double_uniform ( )

Return a uniformly distributed double number in range [0..1)

Note
the random number is retrieved from a cache of random numbers generated using GPU if compiled with CUDA, or from boost without a cache otherwise.

Definition at line 149 of file random_utils.h.

+ Here is the call graph for this function:

double IMP::get_random_double_uniform ( double  min,
double  max 
)

Return a uniformly distributed double number in range [min..max)

Note
the random number is retrieved from a cache of random numbers generated using GPU if compiled with CUDA, or from boost without a cache otherwise.

Definition at line 167 of file random_utils.h.

float IMP::get_random_float_uniform ( )

Return a uniformly distributed float number in range [0..1)

Note
the random number is retrieved from a cache of random numbers generated using GPU if compiled with CUDA, or from boost without a cache otherwise.

Definition at line 117 of file random_utils.h.

+ Here is the call graph for this function:

float IMP::get_random_float_uniform ( float  min,
float  max 
)

Return a uniformly distributed float number in range [min..max)

Note
the random number is retrieved from a cache of random numbers generated using GPU if compiled with CUDA, or from boost without a cache otherwise.

Definition at line 136 of file random_utils.h.

template<typename RealType >
void IMP::get_random_numbers_normal ( Vector< RealType > &  v,
unsigned int  n,
RealType  mean = 0.0,
RealType  stddev = 1.0 
)

Fill the double array with random normally distributed values.

The pre-allocated array is filled with n double numbers with random normally distributed values with specified mean and standard deviation.

Parameters
vvector array that will be resized to n
nsize of array
meanmean of normal distribution
stddevstandard deviation
Note
Implementation relies on random_number_generator (a boost random number generator), or on the CUDA random number generator if kernel is built with IMP_KERNEL_CUDA_LIB cmake flag. Either is initially seeded with get_random_seed().

Definition at line 44 of file random_utils.h.

+ Here is the call graph for this function:

template<typename RealType >
void IMP::get_random_numbers_uniform ( Vector< RealType > &  v,
unsigned int  n 
)

Fill the float array with random normally distributed values.

Fill a pre-allocated array of n float numbers with random normally distributed values with specified mean and standard deviation.

Parameters
vvector array that will be resized to n
nsize of array
Note
Implementation relies on random_number_generator (a boost random number generator), or on the CUDA random number generator if kernel is built with CUDA flag. Either is initially seeded with get_random_seed().

Definition at line 73 of file random_utils.h.

+ Here is the call graph for this function:

boost::uint64_t IMP::get_random_seed ( )

Return the initial random seed.

std::string IMP::get_relative_path ( std::string  base,
std::string  relative 
)

Return a path to a file relative to another file.

For example if base is path/to/config.file and relative is data/image0.jpg then the return value would be path/to/data/image0.jpg. This function should be used when processing configuration files so that the meaning of the configuration file does not change if current working directory changes.

ScoreStatesTemp IMP::get_required_score_states ( const ModelObjectsTemp &  mos,
ScoreStatesTemp  exclude = ScoreStatesTemp() 
)

Compute the set of score states required by the passed list of ModelObjects. This will compute dependencies if needed.

ScoreStatesTemp IMP::get_required_score_states ( ModelObject *  p,
const ModelObjectsTemp &  all,
const DependencyGraph &  dg,
const DependencyGraphVertexIndex &  index 
)
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. You should act directly on the ModelObjects instead.
std::string IMP::get_string_flag ( std::string  name)

For Python use.

std::string IMP::get_unique_name ( std::string  templ)

Return a unique name produced from the string.

This is done by replacing %1% with a sequential number.

ScoreStatesTemp IMP::get_update_order ( ScoreStatesTemp  input)

Return an appropriate (topologically sorted) order to update the score states in.

const algebra::Vector3D IMP::get_vector_geometry ( Particle *  p)

See generic geometry for more information.

Definition at line 145 of file XYZ.h.

+ Here is the call graph for this function:

void IMP::handle_error ( const char *  msg)

This function is called whenever IMP detects an error. It can be useful to add a breakpoint in the function when using a debugger.

void IMP::handle_use_deprecated ( std::string  message)

Break in this method in gdb to find deprecated uses at runtime.

template<class T >
bool IMP::isinf ( const T &  a)

Return true if a number is infinite.

Definition at line 35 of file math.h.

template<class T >
bool IMP::isnan ( const T &  a)

Return true if a number is NaN.

With certain compiler settings the compiler can optimize out a!=a (and certain Intel chips had issues with it too).

Definition at line 24 of file math.h.

template<class Pred >
internal::PredicateEquals<Pred, true> IMP::make_predicate_equal ( const Pred *  p,
Model *  m,
int  value 
)

Return a functor that returns true when the predicate has a certain value.

Definition at line 19 of file functor.h.

template<class Pred >
internal::PredicateEquals<Pred, false> IMP::make_predicate_not_equal ( const Pred *  p,
Model *  m,
int  value 
)

Return a functor that returns true when the predicate doesn't have a certain value.

Definition at line 28 of file functor.h.

template<class O >
O* IMP::object_cast ( Object *  o)

Up (or down) cast an IMP Object-derived class. If the cast does not succeed a ValueException will be thrown. Use a dynamic_cast if you prefer to have a nullptr returned.

Definition at line 24 of file object_cast.h.

void IMP::read_particles_from_buffer ( const Vector< char > &  buffer,
const ParticlesTemp &  particles,
const FloatKeys &  keys 
)

load found attributes into the particles

void IMP::reset_log_timer ( )

Reset the log timer.

void IMP::set_check_level ( CheckLevel  tf)

Control runtime checks in the code.

The default level of checks is USAGE for release builds and USAGE_AND_INTERNAL for debug builds.

Definition at line 73 of file exception.h.

void IMP::set_deprecation_exceptions ( bool  tf)

Toggle whether an exception is thrown when a deprecated method is used.

void IMP::set_deprecation_warnings ( bool  tf)

Toggle printing of warnings on using deprecated classes.

If set to true (the default) a warning is printed every time a class marked as deprecated is used.

void IMP::set_log_level ( LogLevel  l)

Set the current global log level.

Note
may be overridden by set_log_level of specific objects that inherit from IMP::Object
this global method should not, currently, be used directly during Model::evaluate() calls.
See Also
get_log_level()
IMP::Object::set_log_level()
void IMP::set_log_target ( TextOutput  l)

Set the target for the log.

See TextOutput for options. Python users should use SetLogTarget instead.

void IMP::set_log_timer ( bool  tb)

Set whether log messages are tagged with the current log time.

void IMP::set_number_of_threads ( unsigned int  n)

Set the current number of threads to a number greater or equal to 1. Setting it to 1 disables multithreaded evaluation.

void IMP::set_progress_display ( std::string  description,
unsigned int  steps 
)

Set up the progress bar with the passed description.

See Also
IMP_PROGRESS_DISPLAY().
void IMP::set_show_leaked_objects ( bool  tf)

Set whether to complain about objects not being properly cleaned up.

void IMP::set_statistics_level ( StatisticsLevel  l)

Set the level of statistics to be gathered.

void IMP::set_vector_geometry ( Particle *  p,
const algebra::Vector3D &  v 
)

See generic geometry for more information.

Definition at line 149 of file XYZ.h.

+ Here is the call graph for this function:

void IMP::set_vector_geometry ( Decorator  d,
const algebra::Vector3D &  v 
)

See generic geometry for more information.

Definition at line 157 of file XYZ.h.

+ Here is the call graph for this function:

void IMP::set_vector_geometry ( WeakPointer< Particle >  d,
const algebra::Vector3D &  v 
)

See generic geometry for more information.

Definition at line 166 of file XYZ.h.

+ Here is the call graph for this function:

void IMP::set_vector_geometry ( Pointer< Particle >  d,
const algebra::Vector3D &  v 
)

See generic geometry for more information.

Definition at line 175 of file XYZ.h.

+ Here is the call graph for this function:

void IMP::setup_from_argv ( int  argc,
char **  argv,
std::string  description 
)

Parse the command line flags and return the positional arguments.

Parameters
[in]argcargc
[in]argvargv
[in]descriptionA message describing what the program does.
Examples:
atom/dope_and_excluded_volume.cpp, core/simple.cpp, flags.cpp, and grid.cpp.
Strings IMP::setup_from_argv ( int  argc,
char **  argv,
std::string  description,
std::string  positional_description,
int  num_positional 
)

Parse the command line flags and return the positional arguments.

Parameters
[in]argcargc
[in]argvargv
[in]descriptionA message describing what the program does.
[in]positional_descriptionA message describing the the positional arguments
[in]num_positionalA positive integer to require that many positional arguments, or a negative integer to require at least that many.
void IMP::setup_from_argv ( const Strings &  argv,
std::string  description 
)

Parse the command line flags and return the positional arguments. For Python.

Parameters
[in]argvsys.argv
[in]descriptionA message describing what the program does.
Strings IMP::setup_from_argv ( const Strings &  argv,
std::string  description,
std::string  positional_description,
int  num_positional 
)

Parse the command line flags and return the positional arguments. For Python.

Parameters
[in]argvsys.argv
[in]descriptionA message describing what the program does.
[in]positional_descriptionA message describing the positional arguments, eg "input.pdb output.pdb"
[in]num_positionalA positive integer to require that many positional arguments, or a negative integer to require at least that many.
Strings IMP::setup_from_argv_allowing_unknown ( int  argc,
char **  argv,
std::string  description 
)

Parse the command line flags and return the positional arguments returning unknown flags in a list. Use this version if some arguments are to be parsed by a different system.

Parameters
[in]argcargc
[in]argvargv
[in]descriptionA message describing what the program does.
void IMP::show_altgraph ( Graph  g)

Use the Python altgraph package to graphically display a graph. Note that is requires X11 to be running (you can find it in your Utilities folder in MacOS) and the window produced is shockingly retro.

An alterntative is to write the graph to a dot file

g.show_graphviz(open("graph.dot", "w"));

then turn it to pdf with dot

dot -Tpdf graph.dot > graph.pdf

and finally view the pdf.

std::string IMP::show_graphviz ( Graph  g)

Generate a nice pdf of the graph and attempt to open the pdf. The name of the pdf will be returned in case the attempt to open it fails.

void IMP::show_restraint_hierarchy ( ScoringFunctionAdaptor  rs,
std::ostream &  out = std::cout 
)

Print the hierarchy of restraints.

The maximum accepted score (Restraint::get_maximum_score()) and the weight (Restraint::get_weight()) are printed for each restraint.

void IMP::show_timings ( TextOutput  out)

Show all captured timings.

void IMP::write_help ( std::ostream &  out = std::cerr)

Prints out the help message, useful if you have extra error checking and the flags don't pass it.

Vector<char> IMP::write_particles_to_buffer ( const ParticlesTemp &  particles,
const FloatKeys &  keys 
)

return a binary buffer with the data

Variable Documentation

const double IMP::BAD_SCORE

Evaluation can return this value if limits are exceeded and it is a ScoringFunction::evaluate_if_below() or ScoringFunction::evaluate_if_good

const double IMP::NO_MAX

Use this value when you want to turn off maximum for restraint evaluation.

const std::nullptr_t IMP::nullptr

The C++0x standard adds the nullptr keyword to get around a variety of problems with NULL. We provide an emulation within the IMP namespace when it is not available.

Use "nullptr" in code; the compiler will use our IMP::nullptr emulation automatically on systems that don't provide a native nullptr implementation.

If you are not in the IMP namespace, use the IMP_NULLPTR macro rather than asking for "IMP::nullptr". The latter does not work with some compilers (e.g. MSVC, which gets confused because nullptr is a keyword).

Definition at line 27 of file nullptr.h.

RandomNumberGenerator IMP::random_number_generator

A shared non-GPU random number generator.

The random number generator is seeded based on command line specified flag. Otherwise, the default seed is retrieved from among either boost::random_device, /dev/urandom, or the system clock, based on which method is available in this priority order.

This generator can be used by the Boost.Random distributions.