IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
IMP
IMP Documentation
Application Index
Argument Index
Class Examples
Modeling of GroEL with cnmultifit
Modeling of 3sfd with EMageFit
EMageFit protocol
EMageFit scripts and tools
Factory Index
Determination of a Nup133 structure with FoXS
Function Examples
Example design discussion
Developer Guide
Change History
Installation
Introduction
Mailing lists
Multithreaded evaluation using OpenMP
Integrative docking utility programs
Docking of PCSK9 with idock
Dependencies between objects
Module Index
Modeling of 3sfd with multifit
Deprecated List
Modules
Namespaces
Classes
Files
File List
__init__.py
algebra/__init__.py
atom/__init__.py
base/__init__.py
benchmark/__init__.py
cgal/__init__.py
cnmultifit/__init__.py
container/__init__.py
core/__init__.py
display/__init__.py
domino/__init__.py
em/__init__.py
em2d/__init__.py
example/__init__.py
gsl/__init__.py
isd/__init__.py
kernel/__init__.py
kmeans/__init__.py
misc/__init__.py
modeller/__init__.py
multifit/__init__.py
parallel/__init__.py
pepdock/__init__.py
restrainer/__init__.py
rmf/__init__.py
rotamer/__init__.py
saxs/__init__.py
score_functor/__init__.py
scratch/__init__.py
statistics/__init__.py
system/__init__.py
test/__init__.py
_display.py
_graph_show.py
_histogram.py
_interaction_graph.py
_main.py
_optimization.py
_pivy.py
_randomize.py
_representation.py
_restraint.py
algebra/_version_check.py
atom/_version_check.py
base/_version_check.py
benchmark/_version_check.py
cgal/_version_check.py
cnmultifit/_version_check.py
container/_version_check.py
core/_version_check.py
display/_version_check.py
domino/_version_check.py
em/_version_check.py
em2d/_version_check.py
example/_version_check.py
gsl/_version_check.py
isd/_version_check.py
kernel/_version_check.py
kmeans/_version_check.py
misc/_version_check.py
modeller/_version_check.py
multifit/_version_check.py
parallel/_version_check.py
pepdock/_version_check.py
restrainer/_version_check.py
rmf/_version_check.py
rotamer/_version_check.py
saxs/_version_check.py
score_functor/_version_check.py
scratch/_version_check.py
statistics/_version_check.py
system/_version_check.py
test/_version_check.py
_xml_parser.py
AbstractGrid.py
add_fit_rmsd.py
AddScores.h
algebra.h
algebra_config.h
algebra_macros.h
align.py
align2D.h
AlignmentParams.h
AlignSymmetric.h
AllBipartitePairContainer.h
AllPairContainer.h
AmbiguousNOERestraint.h
AmbiguousRestraint.h
analysis.h
Analysis.py
analyze_convergence.py
anchor_graph.h
anchor_utilities.h
anchors.py
anchors_reader.h
angle_decorators.h
AngleRestraint.h
AngleSingletonScore.h
AngleTripletScore.h
argminmax.py
Array.h
assess_dope.py
Assignment.h
assignment_containers.h
assignment_tables.h
associations.h
atom/Atom.h
Atom.h
atom_config.h
atom_io.h
atom_links.h
atom_macros.h
atomicDomino.py
atomicDominoUtilities.py
AttributeSingletonScore.h
BallMover.h
base.h
base_config.h
base_macros.h
base_types.h
kernel/base_types.h
basic_display.py
basic_geometry.py
basic_optimization.py
basic_setup.py
benchmark.h
benchmark_config.h
benchmark_macros.h
BerendsenThermostatOptimizerState.h
BildWriter.h
bipartite_nonbonded_interactions.py
bivariate_functions.h
blame.h
bond_decorators.h
bond_graph.h
BondedPairFilter.h
BondEndpointsRefiner.h
BondPairContainer.h
BondSingletonScore.h
BoundingBox3DSingletonScore.h
BoundingBoxD.h
BoxSweepClosePairsFinder.h
bracket_macros.h
BranchAndBoundSampler.h
brownian_statistics.py
BrownianDynamics.h
build.py
buildxlinks.py
cache.h
CenteredMat.h
CentroidOfRefined.h
cg_pdb.py
cgal.h
cgal_config.h
Chain.h
chain.py
Charged.h
charmm_forcefield.py
charmm_forcefield_verbose.py
charmm_segment_topology.h
charmm_topology.h
CHARMMAtom.h
CHARMMParameters.h
CHARMMStereochemistryRestraint.h
check_macros.h
ChecksScoreState.h
ChildrenRefiner.h
chimera_models.py
ChimeraWriter.h
ChiScore.h
ChiScoreLog.h
close_pairs_finder_macros.h
CloseBipartitePairContainer.h
ClosedCubicSpline.h
ClosePairContainer.h
ClosePairsFinder.h
ClosePairsPairScore.h
cluster.py
cluster_coarse.py
clustering_macros.h
clustering_of_pdb_models.py
CMMWriter.h
cn_rmsd.h
cnmultifit.h
cnmultifit.py
cnmultifit_config.h
CnSymmAxisDetector.h
coarse_molecule.h
CoarseCC.h
CoarseCCatIntervals.h
CoarseConvolution.h
collision_cross_section.py
CollisionCrossSection.h
Color.h
Colored.h
CommonEndpointPairFilter.h
comparison_macros.h
compat_subprocess.py
compatibility.h
compiler_macros.h
ComplementarityRestraint.h
complex_assembly.h
complex_to_anchor_graph.py
compute_chi.cpp
Cone3D.h
Configuration.h
kernel/Configuration.h
ConfigurationSet.h
kernel/ConfigurationSet.h
core/ConjugateGradients.h
gsl/ConjugateGradients.h
ConnectingPairContainer.h
connectivity.py
connectivity_restraint.py
ConnectivityRestraint.h
connolly_surface.h
ConsecutivePairContainer.h
ConstantRestraint.h
algebra/constants.h
atom/constants.h
constants.h
kernel/constants.h
Constraint.h
kernel/Constraint.h
ConstVector.h
container.h
container_base.h
kernel/container_base.h
container_config.h
container_macros.h
kernel/container_macros.h
convert_spider_to_jpg.py
converters.h
Copy.h
core.h
core_config.h
core_macros.h
Cosine.h
CoulombPairScore.h
counting.h
cover_particles.py
CoverBond.h
CoverRefined.h
CreateLogContext.h
creating_restraints.h
csv_related.py
cube.py
custom_filter.py
custom_hierarchy.py
CustomXYZR.h
Cylinder3D.h
Database.py
DataObject.h
DataPointsAssignment.h
decay.py
DecayPairContainerOptimizerState.h
declare_Geometry.h
declare_Model.h
kernel/declare_Model.h
declare_Object.h
declare_PairContainer.h
kernel/declare_PairContainer.h
declare_Particle.h
kernel/declare_Particle.h
declare_QuadContainer.h
kernel/declare_QuadContainer.h
declare_Restraint.h
kernel/declare_Restraint.h
declare_RestraintSet.h
kernel/declare_RestraintSet.h
declare_ScoringFunction.h
kernel/declare_ScoringFunction.h
declare_SingletonContainer.h
kernel/declare_SingletonContainer.h
declare_TripletContainer.h
kernel/declare_TripletContainer.h
Decorator.h
kernel/Decorator.h
decorator_macros.h
kernel/decorator_macros.h
def.h
density_analysis.h
density_map_volumetrics.h
density_utilities.h
density_utils.h
DensityDataPoints.h
DensityFillingRestraint.h
DensityHeader.h
DensityMap.h
cnmultifit_tools/dependencies.py
em_tools/dependencies.py
EMageFit/dependencies.py
example_app/dependencies.py
foxs/dependencies.py
integrative_docking/dependencies.py
ligand_score/dependencies.py
multifit_tools/dependencies.py
pdb_tools/dependencies.py
rmf_tools/dependencies.py
saxs_merge/dependencies.py
saxs_tools/dependencies.py
dependency_graph.h
kernel/dependency_graph.h
dependency_graph.py
DependencyScoreState.h
deprecation.h
deprecation_macros.h
DerivativeAccumulator.h
kernel/DerivativeAccumulator.h
DerivativeCalculator.h
DerivativesFromRefined.h
DerivativesToRefined.h
DiameterRestraint.h
Diffusion.h
DihedralRestraint.h
dihedrals.h
DihedralSingletonScore.h
DiscreteSampler.h
display.h
display_config.h
display_log.py
display_macros.h
displaying_ensembles.py
distance.h
distance_pair_score_macros.h
core/DistancePairScore.h
score_functor/DistancePairScore.h
DistanceRestraint.h
DistanceToSingletonScore.h
DistributePairsScoreState.h
DistributeQuadsScoreState.h
DistributeSingletonsScoreState.h
DistributeTripletsScoreState.h
Distribution.h
dock_with_crosslinks.py
Domain.h
domino.h
domino_approach.py
domino_config.h
domino_filter_tables.h
domino_filters.h
domino_macros.h
domino_particle_states.h
DominoModel.py
DominoSampler.h
Dope.h
dope_and_excluded_volume.cpp
DopePairScore.h
doxygen.h
kernel/doxygen.h
doxygen_macros.h
DummyRestraint.h
DynamicListPairContainer.h
DynamicListQuadContainer.h
DynamicListSingletonContainer.h
DynamicListTripletContainer.h
eigen_analysis.h
element.h
Ellipsoid3D.h
em.h
em2d.h
em2d_config.h
Em2DRestraint.h
em_config.h
em_images_conversion.py
em_restraint.py
emagefit.py
emagefit_cluster.py
emagefit_dock.py
emagefit_score.py
em/embedding.h
statistics/embedding.h
embedding_macros.h
embeddings.h
EMReaderWriter.h
endian.h
ensemble_analysis.h
Entry.py
enums.h
envelope_penetration.h
EnvelopeFitRestraint.h
EnvelopePenetrationRestraint.h
EnvelopeScore.h
estimate_threshold_from_molecular_mass.py
estimates.h
EventPairsOptimizerState.h
EventQuadsOptimizerState.h
EventSingletonsOptimizerState.h
EventTripletsOptimizerState.h
example.h
example_config.h
ExampleComplexRestraint.h
ExampleConstraint.h
ExampleDecorator.h
ExamplePairScore.h
ExampleRefCounted.h
ExampleRestraint.h
ExampleSingletonModifier.h
ExampleSubsetFilterTable.h
ExampleTemplateClass.h
ExampleUnaryFunction.h
base/exception.h
exception.h
kernel/exception.h
excluded_volume.py
ExcludedVolumeRestraint.h
exp.h
fft_based_rigid_fitting.h
FFToperations.h
fifobased_loader.py
FIFOBasedGrid.py
base/file.h
file.h
kernel/file.h
filebased_loader.py
FileBasedGrid.py
filenames_manipulation.h
filter_close_pairs.py
FilterGeometry.h
Fine2DRegistrationRestraint.h
fit_fft.py
fit_restraint.py
FitParameters.h
FitRestraint.h
fitting_clustering.h
fitting_solutions_reader_writer.h
fitting_states.h
fitting_tools.h
fitting_utils.h
FittingSolutionRecord.h
FixedRefiner.h
flags.h
FloatIndex.h
kernel/FloatIndex.h
FNormal.h
force_fields.h
ForceFieldParameters.h
FormFactorTable.h
foxs.cpp
Fragment.h
frames.h
functor.h
kernel/functor.h
GaussianProcessInterpolation.h
GaussianProcessInterpolationRestraint.h
GaussianProcessInterpolationRestraintSparse.h
GaussianProcessInterpolationSparse.h
GaussianRestraint.h
generate_density_map_of_fixed_dimension.py
container/generic.h
core/generic.h
generic.h
kernel/generic.h
geometric_alignment.h
geometric_primitive_macros.h
GeometricHash.h
GeometricPrimitiveD.h
geometry.h
algebra/geometry.py
rmf/geometry.py
geometry_io.h
geometry_macros.h
GeometryProcessor.h
GeometrySet.h
graph.py
graph_macros.h
grid_embeddings.h
grid_indexes.h
grid_ranges.h
grid_space.py
grid_storages.h
grid_utility.h
GridClosePairsFinder.h
GridD.h
gsl.h
gsl_config.h
GSLOptimizer.h
core/Harmonic.h
score_functor/Harmonic.h
core/HarmonicLowerBound.h
score_functor/HarmonicLowerBound.h
core/HarmonicUpperBound.h
score_functor/HarmonicUpperBound.h
HarmonicWell.h
hash.h
hash_macros.h
header_converters.h
hierarchical_clustering.h
atom/Hierarchy.h
core/Hierarchy.h
hierarchy_tools.h
Histogram.h
HistogramD.h
History.py
hosts.py
HybridMonteCarlo.h
idock.py
Image.h
image_processing.h
ImageHeader.h
ImageReaderWriter.h
IMP.h
imp_example_app.cpp
imp_restraints_in_modeller.py
ImproperSingletonScore.h
InContainerPairFilter.h
InContainerQuadFilter.h
InContainerSingletonFilter.h
InContainerTripletFilter.h
incremental_mc.py
IncrementalScoringFunction.h
Index.h
indexes.py
input_output.h
kernel/input_output.h
input_output_macros.h
kernel/input_output_macros.h
InputAdaptor.h
interactive.h
interactive.py
interactive_with_containers.py
algebra/io.h
io.h
kernel/io.h
isd.h
isd_config.h
ISDRestraint.h
JeffreysRestraint.h
JPGImageReaderWriter.h
kernel.h
kernel_config.h
KernelParameters.h
kernel/Key.h
Key.h
kernel/key_macros.h
key_macros.h
kmeans/KMeans.h
KMeans.h
kmeans.py
kmeans_config.h
kmeans_example.py
LangevinThermostatOptimizerState.h
LeavesRefiner.h
LennardJones.h
LennardJonesPairScore.h
ligand_score.cpp
Linear.h
LinearFit.h
LinearLowerBound.h
link.py
link_macros.h
links.h
ListPairContainer.h
ListQuadContainer.h
ListSingletonContainer.h
ListTripletContainer.h
live_objects.h
load_modeller_model.py
load_protein_restrain_bonds.py
local_distance.py
local_fitting.py
base/log.h
kernel/log.h
log.h
log.py
log_macros.h
logfile.py
LogicalORRestraint.h
LognormalRestraint.h
LogOptimizerState.h
LogPairScore.h
LowestRefinedPairScore.h
kernel/macros.h
macros.h
MaintainScaleOrderConstraint.h
map.h
map2pca.py
MapDistanceTransform.h
MapReaderWriter.h
MarginalHBondRestraint.h
MarginalNOERestraint.h
marina_party.py
markers.py
masking.h
Mass.h
master_communicator.py
math.h
MCCGSampler.h
doc/examples/domino/merge_tree.py
lib/IMP/multifit/merge_tree.py
merge_tree_utils.h
Metric.h
metric_clustering.h
metric_macros.h
metrics.h
MinimumPairRestraint.h
MinimumPairScore.h
MinimumQuadRestraint.h
MinimumQuadScore.h
MinimumRestraint.h
MinimumSingletonRestraint.h
MinimumSingletonScore.h
MinimumTripletRestraint.h
MinimumTripletScore.h
misc.h
misc_config.h
kernel/Model.h
Model.h
model_interaction.h
model_statistics.h
modeller.h
modeller_config.h
modeller_restraints_in_imp.py
kernel/ModelObject.h
ModelObject.h
models.py
mol2.h
mol2pca.py
MolCnSymmAxisDetector.h
molecular_hierarchy.py
atom/MolecularDynamics.h
isd/MolecularDynamics.h
MolecularDynamicsMover.h
Molecule.h
monte_carlo_macros.h
MonteCarlo.h
MonteCarloMover.h
MonteCarloRelativeMoves.py
Mover.h
mover_macros.h
MoverBase.h
MoveStatisticsScoreState.h
MRCReaderWriter.h
ms_connectivity_restraint.py
MSConnectivityRestraint.h
multifit.h
multifit.py
multifit_config.h
MultipleBinormalRestraint.h
multiresolution.py
multiscale.py
MultivariateFNormalSufficient.h
MultivariateFNormalSufficientSparse.h
NearestNeighborsClosePairsFinder.h
NOERestraint.h
nonbonded_interactions.py
NonCopyable.h
NormalMover.h
Nuisance.h
NuisanceRangeModifier.h
nullptr.h
nullptr_macros.h
nup84.py
nup84_complex_in_bead_representation.py
base/Object.h
kernel/Object.h
Object.h
object_cast.h
object_macros.h
core/OpenCubicSpline.h
score_functor/OpenCubicSpline.h
opencv_interface.h
optimize_balls.py
optimize_em2d_with_montecarlo.py
kernel/Optimizer.h
Optimizer.h
kernel/optimizer_macros.h
optimizer_macros.h
kernel/optimizer_state_macros.h
optimizer_state_macros.h
kernel/OptimizerState.h
OptimizerState.h
optimizing.h
Order.h
OrderedDict.py
osPeptideDocker.py
kernel/pair_macros.h
pair_macros.h
pair_predicates.h
pair_restraint.py
PairConstraint.h
kernel/PairContainer.h
PairContainer.h
PairContainerSet.h
PairContainerStatistics.h
kernel/PairDerivativeModifier.h
PairDerivativeModifier.h
kernel/PairModifier.h
PairModifier.h
kernel/PairPredicate.h
PairPredicate.h
PairRestraint.h
PairsConstraint.h
kernel/PairScore.h
PairScore.h
PairsOptimizerState.h
PairsRestraint.h
ParabolicFit.h
parallel.h
parallel_config.h
cnmultifit/param.py
multifit/param.py
kernel/Particle.h
Particle.h
particle_geometry.h
kernel/particle_index.h
particle_index.h
particle_io.h
particle_states.h
kernel/ParticleTuple.h
ParticleTuple.h
partitional_clustering_macros.h
PartitionalClustering.h
PartitionalClusteringWithCenter.h
path_reader_writer.h
pca_based_rigid_fitting.h
PCAAligner.h
PCAFitRestraint.h
pdb.h
pdb.py
pdb2density.py
pdb_check.cpp
pdb_rmf.cpp
pepdock.h
pepdock_config.h
peptideDocker.py
periodic_optimizer_state_macros.h
PeriodicOptimizerState.h
piecewise_linear_distribution.h
Plane3D.h
point_clustering.h
base/Pointer.h
kernel/Pointer.h
Pointer.h
PolarResamplingParameters.h
PredicatePairsRestraint.h
PredicateQuadsRestraint.h
predicates.h
PredicateSingletonsRestraint.h
PredicateTripletsRestraint.h
primitive_geometries.h
Profile.h
profile.py
profile_fit.py
ProfileFitter.h
Profiler.h
project.h
ProjectionFinder.h
ProjectionMask.h
ProjectionParameters.h
protein_anchors_mapping_reader.h
protein_ligand_score.h
proteomics.py
proteomics_em_alignment_atomic.h
proteomics_reader.h
PymolWriter.h
PyroGrid.py
PyroHandlerLoader.py
PyroUtils.py
algebra/python_only.h
atom/python_only.h
core/python_only.h
display/python_only.h
kernel/python_only.h
python_only.h
statistics/python_only.h
kernel/quad_macros.h
quad_macros.h
quad_predicates.h
QuadConstraint.h
kernel/QuadContainer.h
QuadContainer.h
QuadContainerSet.h
QuadContainerStatistics.h
kernel/QuadDerivativeModifier.h
QuadDerivativeModifier.h
kernel/QuadModifier.h
QuadModifier.h
kernel/QuadPredicate.h
QuadPredicate.h
QuadraticClosePairsFinder.h
QuadRestraint.h
QuadsConstraint.h
kernel/QuadScore.h
QuadScore.h
QuadsOptimizerState.h
QuadsRestraint.h
QuasiNewton.h
multifit/RadiusOfGyrationRestraint.h
saxs/RadiusOfGyrationRestraint.h
RAII.h
raii_macros.h
base/random.h
kernel/random.h
random.h
randomize_rigid_body.py
randomizing.h
range_restriction.py
RecursivePartitionalClusteringEmbedding.h
RecursivePartitionalClusteringMetric.h
ref_counted_macros.h
base/RefCounted.h
kernel/RefCounted.h
RefCounted.h
reference.py
ReferenceFrame3D.h
refine_fft.py
RefinedPairsPairScore.h
kernel/Refiner.h
Refiner.h
kernel/refiner_macros.h
refiner_macros.h
Reflection3D.h
RegistrationResult.h
RelativePositionMover.h
RemoveRigidMotionOptimizerState.h
RemoveTranslationOptimizerState.h
Replica.py
RepulsiveDistancePairScore.h
resample_density.py
Residue.h
restrain_diameter.py
restrain_in_sphere.py
restrain_minimum_distance.py
restrainer.h
restrainer_config.h
kernel/Restraint.h
Restraint.h
saxs/Restraint.h
restraint_cache.py
restraint_geometry.h
restraint_io.h
kernel/restraint_macros.h
restraint_macros.h
restraints.py
kernel/RestraintSet.h
RestraintSet.h
RestraintsScoringFunction.h
rg.cpp
rigid_bodies.h
rigid_bodies.py
rigid_body_and_excluded_volume_restraint.py
rigid_body_excluded_volume.py
rigid_body_geometries.h
rigid_brownian_dynamics.py
rigid_collisions.py
rigid_fitting.h
RigidBodiesImageFitRestraint.h
RigidBodyDistancePairScore.h
RigidBodyMover.h
RigidClosePairsFinder.h
rmf.h
rmf_color.cpp
rmf_config.h
rmf_display.cpp
RMFWriter.h
rmsd.py
RMSDClustering.h
ro.py
rotamer.h
rotamer_config.h
rotamer_pdb.py
rotamer_pdb2.py
RotamerCalculator.h
RotamerLibrary.h
Rotation2D.h
Rotation3D.h
SameResiduePairFilter.h
SampledDensityMap.h
kernel/Sampler.h
Sampler.h
kernel/sampler_macros.h
sampler_macros.h
sampling.py
save_assignments.py
SaveOptimizerState.h
saxs.h
saxs_config.h
saxs_merge.py
saxs_restraint.py
Scale.h
kernel/scoped.h
scoped.h
Score.h
score.py
score_functor.h
score_functor_config.h
score_protein_with_ligand.py
kernel/score_state_macros.h
score_state_macros.h
kernel/ScoreAccumulator.h
ScoreAccumulator.h
scores2D.h
kernel/ScoreState.h
ScoreState.h
ScoreUnaryFunction.h
kernel/scoring_function_macros.h
scoring_function_macros.h
kernel/ScoringFunction.h
ScoringFunction.h
scratch.h
scratch_config.h
secondary_structure_reader.h
SecondaryStructureResidue.h
Segment3D.h
Selection.h
SerialMover.h
serialPeptideDocker.py
set.h
SetCheckState.h
SetLogState.h
SettingsData.h
setup.py
shared_functions.py
Shift.h
shortest_segment.h
show_particles_as_spheres.py
Showable.h
showable_macros.h
simple_connectivity_on_molecules.py
simple_connectivity_on_rigid_bodies.py
simple_diameter.py
simple_distance.py
simple_em_fit.py
simple_excluded_volume.py
simple_links.h
Simplex.h
simplex.py
simplify_restraint.h
simulate_density_from_pdb.py
simulation.py
Simulator.h
kernel/singleton_macros.h
singleton_macros.h
singleton_predicates.h
SingletonConstraint.h
kernel/SingletonContainer.h
SingletonContainer.h
SingletonContainerSet.h
SingletonContainerStatistics.h
kernel/SingletonDerivativeModifier.h
SingletonDerivativeModifier.h
kernel/SingletonModifier.h
SingletonModifier.h
kernel/SingletonPredicate.h
SingletonPredicate.h
SingletonRestraint.h
SingletonsConstraint.h
kernel/SingletonScore.h
SingletonScore.h
SingletonsOptimizerState.h
SingletonsRestraint.h
six_particles_optimization.py
slave_handler.py
slavestate.py
Slice.h
SlidingPriorRestraint.h
smoothing_functions.h
SoftCylinderPairScore.h
solutions_io.py
SolventAccessibleSurface.h
Sphere3D.h
SphereD.h
SphereDistance.h
SphereDistancePairScore.h
SpherePatch3D.h
SphericalVector3D.h
SpiderHeader.h
SpiderImageReaderWriter.h
SpiderReaderWriter.h
standard_grids.h
StateAdaptor.h
Statistical.h
StatisticalPairScore.h
statistics.h
Statistics.py
statistics_config.h
SteepestDescent.h
StereochemistryPairFilter.h
structure_from_sequence.py
subproc.py
Subset.h
subset_filters.h
subset_graphs.h
subset_scores.h
surface.py
SurfaceShellDensityMap.h
swap_macros.h
swig_macros.h
Switching.h
symmetric_multifit.h
symmetry.h
symmetry.py
symmetry_utils.h
system.h
system_config.h
TableRefiner.h
TALOSReader.py
TALOSRestraint.h
tasks.py
TBLReader.py
test.h
thread_macros.h
threads.h
TIFFImageReaderWriter.h
tracking.h
Transform.h
Transformation2D.h
Transformation3D.h
TransformationClustering.h
TransformedDistancePairScore.h
transforms.py
Triangle3D.h
kernel/triplet_macros.h
triplet_macros.h
triplet_predicates.h
TripletConstraint.h
kernel/TripletContainer.h
TripletContainer.h
TripletContainerSet.h
TripletContainerStatistics.h
kernel/TripletDerivativeModifier.h
TripletDerivativeModifier.h
kernel/TripletModifier.h
TripletModifier.h
kernel/TripletPredicate.h
TripletPredicate.h
TripletRestraint.h
TripletsConstraint.h
kernel/TripletScore.h
TripletScore.h
TripletsOptimizerState.h
TripletsRestraint.h
TruncatedHarmonic.h
TuneRex.py
tuple_macros.h
Typed.h
TypedPairScore.h
types.h
kernel/unary_function_macros.h
unary_function_macros.h
kernel/UnaryFunction.h
UnaryFunction.h
UnaryFunctionEvaluate.h
kernel/Undecorator.h
Undecorator.h
univariate_functions.h
util.py
algebra/utility.h
base/utility.h
benchmark/utility.h
core/utility.h
domino/utility.h
kernel/utility.h
saxs/utility.h
statistics/utility.h
utility.h
utility.py
utility_macros.h
utils.py
validate_profile.cpp
Value.h
value_macros.h
Vector.h
Vector2D.h
Vector3D.h
vector_generators.h
vector_metrics.h
vector_property_map.h
vector_search.h
VectorD.h
VelocityScalingOptimizerState.h
base/VersionInfo.h
kernel/VersionInfo.h
VersionInfo.h
view_density_header.py
VolumeRestraint.h
vonMises.h
vonMisesKappaConjugateRestraint.h
vonMisesKappaJeffreysRestraint.h
vonMisesSufficient.h
Voxel.h
warning_macros.h
WarningContext.h
base/WeakPointer.h
kernel/WeakPointer.h
WeakPointer.h
weighted_excluded_volume.h
WeightedExcludedVolumeRestraint.h
WeightScore.h
WormLikeChain.h
write_a_metric.py
write_a_restraint.py
write_an_optimizer_state.py
Writer.h
writer_macros.h
XplorReaderWriter.h
XYZ.h
XYZ_Decorator.py
XYZR.h
XYZR_Decorator.py
File Members
Examples
kernel/pair_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/kernel/pair_macros.h
3
* \brief Macros for various classes.
4
*
5
* This file is generated by a script (core/tools/make-containers).
6
* Do not edit directly.
7
*
8
* Copyright 2007-2013 IMP Inventors. All rights reserved.
9
*/
10
11
#ifndef IMPKERNEL_PAIR_MACROS_H
12
#define IMPKERNEL_PAIR_MACROS_H
13
14
#include "internal/TupleRestraint.h"
15
#include "internal/functors.h"
16
#include "
container_macros.h
"
17
#include "
input_output_macros.h
"
18
#include <algorithm>
19
20
21
//! Declare the functions needed for a PairScore
22
/** In addition to the methods done by IMP_INTERACTON, it declares
23
- IMP::PairScore::evaluate(IMP::Particle*,
24
IMP::DerivativeAccumulator*)
25
- IMP::PairScore::get_input_particles()
26
- IMP::PairScore::get_output_particles()
27
28
See IMP_SIMPLE_PAIR_SCORE() for a way of providing an
29
implementation of that method.
30
*/
31
#define IMP_PAIR_SCORE(Name) \
32
IMP_IMPLEMENT(double evaluate(const ParticlePair& p,\
33
DerivativeAccumulator *da) const); \
34
IMP_IMPLEMENT_INLINE(double evaluate_index(Model *m, \
35
const ParticleIndexPair& p, \
36
DerivativeAccumulator *da) const, { \
37
return evaluate(IMP::kernel::internal::get_particle(m,p), da); \
38
}); \
39
IMP_IMPLEMENT_INLINE(double evaluate_if_good_index(Model *m, \
40
const ParticleIndexPair& p, \
41
DerivativeAccumulator *da, \
42
double max) const, { \
43
IMP_UNUSED(max); \
44
return evaluate_index(m, p, da); \
45
}); \
46
IMP_BACKWARDS_MACRO_INPUTS; \
47
IMP_OBJECT(Name)
48
49
//! Declare the functions needed for a PairScore
50
/** In addition to the methods declared and defined by IMP_PAIR_SCORE,
51
the macro provides an implementation of
52
- IMP::PairScore::get_input_particles()
53
- IMP::PairScore::get_input_containers()
54
which assume that only the passed particle serves as input to the
55
score.
56
*/
57
#define IMP_SIMPLE_PAIR_SCORE(Name) \
58
IMP_IMPLEMENT(double evaluate(const ParticlePair& p, \
59
DerivativeAccumulator *da) const); \
60
IMP_IMPLEMENT_INLINE(ModelObjectsTemp \
61
do_get_inputs(Model *m, \
62
const ParticleIndexes &pis) const, { \
63
ModelObjectsTemp ret; \
64
ret+=IMP::kernel::get_particles(m, pis); \
65
return ret; \
66
}); \
67
IMP_IMPLEMENT_INLINE(Restraints do_create_current_decomposition \
68
(Model *m, \
69
const ParticleIndexPair& vt) const, { \
70
return IMP::kernel::internal \
71
::create_score_current_decomposition(this, m, vt); \
72
}); \
73
IMP_OBJECT(Name)
74
75
76
77
//! Declare the functions needed for a complex PairScore
78
/** In addition to the methods done by IMP_OBJECT(), it declares
79
- IMP::PairScore::evaluate_index()
80
- IMP::PairScore::do_get_inputs()
81
- IMP::PairScore::evaluate_if_good_index()
82
*/
83
#define IMP_COMPOSITE_PAIR_SCORE(Name) \
84
IMP_IMPLEMENT_INLINE(double evaluate(const ParticlePair& p, \
85
DerivativeAccumulator *da) const, { \
86
return evaluate_index(IMP::kernel::internal::get_model(p), \
87
IMP::kernel::internal::get_index(p), da); \
88
}); \
89
IMP_IMPLEMENT(double evaluate_index(Model *m, const ParticleIndexPair& p,\
90
DerivativeAccumulator *da) const); \
91
IMP_IMPLEMENT(double evaluate_if_good_index(Model *m, \
92
const ParticleIndexPair& p, \
93
DerivativeAccumulator *da, \
94
double max) const); \
95
IMP_IMPLEMENT_INLINE(double evaluate_indexes(Model *m, \
96
const ParticleIndexPairs &p, \
97
DerivativeAccumulator *da, \
98
unsigned int lower_bound, \
99
unsigned int upper_bound) const,\
100
{ \
101
double ret=0; \
102
for (unsigned int i=lower_bound; i < upper_bound; ++i) { \
103
ret+= evaluate_index(m, p[i], da); \
104
} \
105
return ret; \
106
}); \
107
IMP_IMPLEMENT_INLINE(double \
108
evaluate_if_good_indexes(Model *m, \
109
const ParticleIndexPairs &p, \
110
DerivativeAccumulator *da, \
111
double max, \
112
unsigned int lower_bound, \
113
unsigned int upper_bound) const, { \
114
double ret=0; \
115
for (unsigned int i=lower_bound; i < upper_bound; ++i) { \
116
ret+= evaluate_if_good_index(m, p[i], da, max-ret); \
117
if (ret>max) return std::numeric_limits<double>::max(); \
118
} \
119
return ret; \
120
}); \
121
IMP_IMPLEMENT(ModelObjectsTemp \
122
do_get_inputs(Model *m, \
123
const ParticleIndexes &pis) const ); \
124
IMP_OBJECT(Name)
125
126
//! Declare the functions needed for a complex PairScore
127
/** In addition to the methods done by IMP_OBJECT(), it declares
128
- IMP::PairScore::evaluate()
129
- IMP::PairScore::get_input_particles()
130
- IMP::PairScore::get_output_particles()
131
- IMP::PairScore::evaluate_if_good
132
*/
133
#define IMP_INDEX_PAIR_SCORE(Name) \
134
IMP_IMPLEMENT_INLINE(double evaluate(const ParticlePair& p,\
135
DerivativeAccumulator *da) const, { \
136
return evaluate_index(IMP::kernel::internal::get_model(p), \
137
IMP::kernel::internal::get_index(p), \
138
da); \
139
}); \
140
IMP_IMPLEMENT(double evaluate_index(Model *m, const ParticleIndexPair& p,\
141
DerivativeAccumulator *da) \
142
const IMP_FINAL); \
143
IMP_IMPLEMENT_INLINE(double evaluate_if_good_index(Model *m, \
144
const ParticleIndexPair& p, \
145
DerivativeAccumulator *da, \
146
double max) const, { \
147
IMP_UNUSED(max); \
148
return evaluate_index(m, p, da); \
149
}); \
150
IMP_IMPLEMENT_INLINE(double \
151
evaluate_indexes(Model *m, \
152
const ParticleIndexPairs &p, \
153
DerivativeAccumulator *da, \
154
unsigned int lower_bound, \
155
unsigned int upper_bound) const IMP_FINAL, \
156
{ \
157
double ret=0; \
158
for (unsigned int i=lower_bound; i < upper_bound; ++i) { \
159
ret+= evaluate_index(m, p[i], da); \
160
} \
161
return ret; \
162
}); \
163
IMP_IMPLEMENT_INLINE(double \
164
evaluate_if_good_indexes(Model *m, \
165
const ParticleIndexPairs &p, \
166
DerivativeAccumulator *da, \
167
double max, \
168
unsigned int lower_bound, \
169
unsigned int upper_bound) const, { \
170
double ret=0; \
171
for (unsigned int i=lower_bound; i < upper_bound; ++i) { \
172
ret+= evaluate_if_good_index(m, p[i], da, max-ret); \
173
if (ret>max) return std::numeric_limits<double>::max(); \
174
} \
175
return ret; \
176
}); \
177
IMP_IMPLEMENT(ModelObjectsTemp \
178
do_get_inputs(Model *m, \
179
const ParticleIndexes &pis) const); \
180
IMP_OBJECT(Name)
181
182
183
184
//! Declare the functions needed for a PairPredicate
185
/** In addition to the methods done by IMP_OBJECT, it declares
186
- IMP::PairPredicate::get_value()
187
- IMP::PairPredicate::get_input_particles()
188
- IMP::PairPredicate::get_output_particles()
189
*/
190
#define IMP_PAIR_PREDICATE(Name) \
191
IMP_IMPLEMENT(int get_value(const ParticlePair& a) const); \
192
IMP_IMPLEMENT_INLINE(Ints get_value(const \
193
ParticlePairsTemp &o) const, { \
194
Ints ret(o.size()); \
195
for (unsigned int i=0; i< o.size(); ++i) { \
196
ret[i]+= Name::get_value(o[i]); \
197
} \
198
return ret; \
199
}); \
200
IMP_IMPLEMENT_INLINE(int get_value_index(Model *m, \
201
const ParticleIndexPair& vt)\
202
const, { \
203
return Name::get_value(IMP::kernel::internal::get_particle(m, vt)); \
204
}); \
205
IMP_IMPLEMENT_INLINE(Ints get_value_index(Model *m, \
206
const ParticleIndexPairs &o) const, { \
207
Ints ret(o.size()); \
208
for (unsigned int i=0; i< o.size(); ++i) { \
209
ret[i]+= Name::get_value_index(m, o[i]); \
210
} \
211
return ret; \
212
}); \
213
IMP_BACKWARDS_MACRO_INPUTS; \
214
IMP_OBJECT(Name)
215
216
217
//! Declare the functions needed for a PairPredicate
218
/** In addition to the methods done by IMP_OBJECT, it defines
219
- IMP::PairPredicate::get_value_index() based on the return_value
220
parameter
221
- IMP::PairPredicate::do_get_inputs() based on the return_inputs
222
parameter
223
*/
224
#define IMP_INDEX_PAIR_PREDICATE(Name, return_value, return_inputs) \
225
IMP_IMPLEMENT_INLINE(int get_value(const ParticlePair& a) const, { \
226
return get_value_index(IMP::kernel::internal::get_model(a), \
227
IMP::kernel::internal::get_index(a)); \
228
}); \
229
IMP_IMPLEMENT_INLINE(Ints get_value(const \
230
ParticlePairsTemp &o) const, { \
231
Ints ret(o.size()); \
232
for (unsigned int i=0; i< o.size(); ++i) { \
233
ret[i]+= Name::get_value(o[i]); \
234
} \
235
return ret; \
236
}) \
237
IMP_IMPLEMENT_INLINE(int get_value_index(Model *m, \
238
const ParticleIndexPair& pi)\
239
const, { \
240
return_value; \
241
}) \
242
IMP_IMPLEMENT_INLINE(Ints get_value_index(Model *m, \
243
const ParticleIndexPairs &o) const, { \
244
Ints ret(o.size()); \
245
for (unsigned int i=0; i< o.size(); ++i) { \
246
ret[i]+= Name::get_value_index(m, o[i]); \
247
} \
248
return ret; \
249
}); \
250
IMP_IMPLEMENT_INLINE_NO_SWIG(void remove_if_equal(Model *m, \
251
ParticleIndexPairs& ps, \
252
int value) const, { \
253
ps.erase(std::remove_if(ps.begin(), ps.end(), \
254
IMP::kernel::internal::PredicateEquals<Name, true>(this, \
255
m, value)), \
256
ps.end()); \
257
}); \
258
IMP_IMPLEMENT_INLINE_NO_SWIG(void remove_if_not_equal(Model *m, \
259
ParticleIndexPairs& ps, \
260
int value) const, { \
261
ps.erase(std::remove_if(ps.begin(), ps.end(), \
262
IMP::kernel::internal::PredicateEquals<Name, false>(this, \
263
m, value)), \
264
ps.end()); \
265
}); \
266
IMP_IMPLEMENT_INLINE(ModelObjectsTemp \
267
do_get_inputs(Model *m, \
268
const ParticleIndexes &pi) const, { \
269
return_inputs; \
270
}); \
271
IMP_OBJECT_INLINE(Name,IMP_UNUSED(out),)
272
273
274
//! Declare the functions needed for a PairModifier
275
/** In addition to the methods done by IMP_OBJECT, it declares
276
- IMP::PairModifier::apply(IMP::Particle*)
277
- IMP::PairModifier::get_input_particles()
278
- IMP::PairModifier::get_output_particles()
279
*/
280
#define IMP_PAIR_MODIFIER(Name) \
281
IMP_IMPLEMENT(void apply(const ParticlePair& a) const); \
282
IMP_IMPLEMENT_INLINE(void apply_index(Model *m, \
283
const ParticleIndexPair& a) const, {\
284
return Name::apply(IMP::kernel::internal::get_particle(m,a)); \
285
}) \
286
IMP_BACKWARDS_MACRO_INPUTS; \
287
IMP_BACKWARDS_MACRO_OUTPUTS; \
288
IMP_OBJECT(Name)
289
290
//! Use IMP_PAIR_MODIFIER() instead
291
#define IMP_PAIR_DERIVATIVE_MODIFIER(Name) \
292
IMP_PAIR_MODIFIER(Name)
293
294
295
//! Declare the functions needed for a PairModifier
296
/** In addition to the methods done by IMP_OBJECT, it declares
297
- IMP::PairModifier::apply(IMP::Particle*)
298
- IMP::PairModifier::get_inputs()
299
- IMP::PairModifier::get_outputs()
300
*/
301
#define IMP_INDEX_PAIR_MODIFIER(Name) \
302
IMP_IMPLEMENT_INLINE(void apply(const ParticlePair& a) const, { \
303
apply_index(IMP::kernel::internal::get_model(a), \
304
IMP::kernel::internal::get_index(a)); \
305
}); \
306
IMP_IMPLEMENT(void apply_index(Model *m, \
307
const ParticleIndexPair& a)\
308
const IMP_FINAL); \
309
IMP_IMPLEMENT_INLINE(void apply_indexes(Model *m, \
310
const ParticleIndexPairs &o, \
311
unsigned int lower_bound, \
312
unsigned int upper_bound)\
313
const IMP_FINAL, \
314
{ \
315
for (unsigned int i=lower_bound; i < upper_bound; ++i) { \
316
apply_index(m, o[i]); \
317
} \
318
}); \
319
IMP_IMPLEMENT(ModelObjectsTemp do_get_inputs(Model *m, \
320
const ParticleIndexes &pis) const); \
321
IMP_IMPLEMENT(ModelObjectsTemp do_get_outputs(Model *m, \
322
const ParticleIndexes &pis) const); \
323
IMP_OBJECT(Name)
324
325
//! Use IMP_INDEX_PAIR_MODIFIER instead
326
#define IMP_INDEX_PAIR_DERIVATIVE_MODIFIER(Name) \
327
IMP_INDEX_PAIR_MODIFIER(Name)
328
329
330
331
332
#ifndef IMP_DOXYGEN
333
#define IMP_IMPLEMENT_PAIR_CONTAINER(Name) \
334
IMP_IMPLEMENT_INLINE(void do_apply(const PairModifier *sm) const, {\
335
apply_generic(sm); \
336
}); \
337
IMP_IMPLEMENT(ParticleIndexes get_all_possible_indexes() const); \
338
IMP_OBJECT(Name)
339
#endif
340
341
342
343
344
345
//! Declare the needed functions for a PairContainer
346
/** In addition to the methods of IMP_OBJECT, it declares
347
- IMP::PairContainer::get_number_of_particle_particle_pairs()
348
- IMP::PairContainer::get_particle_particle_pair()
349
- IMP::PairContainer::apply()
350
- IMP::PairContainer::evaluate()
351
- IMP::Interaction::get_input_objects()
352
353
You need to define a template method with the signature
354
\code
355
template <class Functor>
356
Functor for_each(Functor f);
357
\endcode
358
that applied the functor to each thing in the container.
359
*/
360
#define IMP_PAIR_CONTAINER(Name) \
361
IMP_IMPLEMENT(ParticleIndexPairs get_indexes() const); \
362
IMP_IMPLEMENT(ParticleIndexPairs get_range_indexes() const); \
363
IMP_IMPLEMENT(void do_before_evaluate()); \
364
IMP_IMPLEMENT(ParticlesTemp get_input_particles() const); \
365
IMP_IMPLEMENT(ContainersTemp get_input_containers() const); \
366
IMP_IMPLEMENT_INLINE(ModelObjectsTemp do_get_inputs() const, { \
367
ModelObjects ret; \
368
ret+=get_input_containers(); \
369
ret+=get_input_particles(); \
370
return ret; \
371
}); \
372
IMP_IMPLEMENT_PAIR_CONTAINER(Name)
373
374
375
//! Declare the needed functions for an active PairContainer
376
/** In addition to the methods of IMP_PAIR_CONTAINER(), it declares
377
- IMP::ScoreState::get_input_particles()
378
- IMP::ScoreState::get_input_containers()
379
- IMP::ScoreState::do_before_evaluate()
380
*/
381
#define IMP_ACTIVE_PAIR_CONTAINER(Name) \
382
IMP_PAIR_CONTAINER(name)
383
384
/** Use IMP_CONTAINER_FOREACH() instead.
385
*/
386
#define IMP_FOREACH_PAIR(sequence, operation) do { \
387
IMP::kernel::ParticlePairsTemp imp_all=sequence->get(); \
388
for (unsigned int _2=0; \
389
_2 != imp_all.size(); \
390
++_2) { \
391
IMP::kernel::ParticlePair _1= imp_all[_2]; \
392
bool imp_foreach_break=false; \
393
operation \
394
if (imp_foreach_break) break; \
395
} \
396
} while (false)
397
398
399
400
/** Use IMP_CONTAINER_FOREACH() instead.
401
*/
402
#define IMP_FOREACH_PAIR_INDEX(sequence, operation) \
403
IMP_CONTAINER_FOREACH(PairContainer, sequence, operation)
404
405
#endif
/* IMPKERNEL_PAIR_MACROS_H */