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/quad_macros.h
Go to the documentation of this file.
1
/**
2
* \file IMP/kernel/quad_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_QUAD_MACROS_H
12
#define IMPKERNEL_QUAD_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 QuadScore
22
/** In addition to the methods done by IMP_INTERACTON, it declares
23
- IMP::QuadScore::evaluate(IMP::Particle*,
24
IMP::DerivativeAccumulator*)
25
- IMP::QuadScore::get_input_particles()
26
- IMP::QuadScore::get_output_particles()
27
28
See IMP_SIMPLE_QUAD_SCORE() for a way of providing an
29
implementation of that method.
30
*/
31
#define IMP_QUAD_SCORE(Name) \
32
IMP_IMPLEMENT(double evaluate(const ParticleQuad& p,\
33
DerivativeAccumulator *da) const); \
34
IMP_IMPLEMENT_INLINE(double evaluate_index(Model *m, \
35
const ParticleIndexQuad& 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 ParticleIndexQuad& 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 QuadScore
50
/** In addition to the methods declared and defined by IMP_QUAD_SCORE,
51
the macro provides an implementation of
52
- IMP::QuadScore::get_input_particles()
53
- IMP::QuadScore::get_input_containers()
54
which assume that only the passed particle serves as input to the
55
score.
56
*/
57
#define IMP_SIMPLE_QUAD_SCORE(Name) \
58
IMP_IMPLEMENT(double evaluate(const ParticleQuad& 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 ParticleIndexQuad& 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 QuadScore
78
/** In addition to the methods done by IMP_OBJECT(), it declares
79
- IMP::QuadScore::evaluate_index()
80
- IMP::QuadScore::do_get_inputs()
81
- IMP::QuadScore::evaluate_if_good_index()
82
*/
83
#define IMP_COMPOSITE_QUAD_SCORE(Name) \
84
IMP_IMPLEMENT_INLINE(double evaluate(const ParticleQuad& 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 ParticleIndexQuad& p,\
90
DerivativeAccumulator *da) const); \
91
IMP_IMPLEMENT(double evaluate_if_good_index(Model *m, \
92
const ParticleIndexQuad& p, \
93
DerivativeAccumulator *da, \
94
double max) const); \
95
IMP_IMPLEMENT_INLINE(double evaluate_indexes(Model *m, \
96
const ParticleIndexQuads &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 ParticleIndexQuads &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 QuadScore
127
/** In addition to the methods done by IMP_OBJECT(), it declares
128
- IMP::QuadScore::evaluate()
129
- IMP::QuadScore::get_input_particles()
130
- IMP::QuadScore::get_output_particles()
131
- IMP::QuadScore::evaluate_if_good
132
*/
133
#define IMP_INDEX_QUAD_SCORE(Name) \
134
IMP_IMPLEMENT_INLINE(double evaluate(const ParticleQuad& 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 ParticleIndexQuad& p,\
141
DerivativeAccumulator *da) \
142
const IMP_FINAL); \
143
IMP_IMPLEMENT_INLINE(double evaluate_if_good_index(Model *m, \
144
const ParticleIndexQuad& 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 ParticleIndexQuads &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 ParticleIndexQuads &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 QuadPredicate
185
/** In addition to the methods done by IMP_OBJECT, it declares
186
- IMP::QuadPredicate::get_value()
187
- IMP::QuadPredicate::get_input_particles()
188
- IMP::QuadPredicate::get_output_particles()
189
*/
190
#define IMP_QUAD_PREDICATE(Name) \
191
IMP_IMPLEMENT(int get_value(const ParticleQuad& a) const); \
192
IMP_IMPLEMENT_INLINE(Ints get_value(const \
193
ParticleQuadsTemp &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 ParticleIndexQuad& 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 ParticleIndexQuads &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 QuadPredicate
218
/** In addition to the methods done by IMP_OBJECT, it defines
219
- IMP::QuadPredicate::get_value_index() based on the return_value
220
parameter
221
- IMP::QuadPredicate::do_get_inputs() based on the return_inputs
222
parameter
223
*/
224
#define IMP_INDEX_QUAD_PREDICATE(Name, return_value, return_inputs) \
225
IMP_IMPLEMENT_INLINE(int get_value(const ParticleQuad& 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
ParticleQuadsTemp &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 ParticleIndexQuad& pi)\
239
const, { \
240
return_value; \
241
}) \
242
IMP_IMPLEMENT_INLINE(Ints get_value_index(Model *m, \
243
const ParticleIndexQuads &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
ParticleIndexQuads& 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
ParticleIndexQuads& 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 QuadModifier
275
/** In addition to the methods done by IMP_OBJECT, it declares
276
- IMP::QuadModifier::apply(IMP::Particle*)
277
- IMP::QuadModifier::get_input_particles()
278
- IMP::QuadModifier::get_output_particles()
279
*/
280
#define IMP_QUAD_MODIFIER(Name) \
281
IMP_IMPLEMENT(void apply(const ParticleQuad& a) const); \
282
IMP_IMPLEMENT_INLINE(void apply_index(Model *m, \
283
const ParticleIndexQuad& 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_QUAD_MODIFIER() instead
291
#define IMP_QUAD_DERIVATIVE_MODIFIER(Name) \
292
IMP_QUAD_MODIFIER(Name)
293
294
295
//! Declare the functions needed for a QuadModifier
296
/** In addition to the methods done by IMP_OBJECT, it declares
297
- IMP::QuadModifier::apply(IMP::Particle*)
298
- IMP::QuadModifier::get_inputs()
299
- IMP::QuadModifier::get_outputs()
300
*/
301
#define IMP_INDEX_QUAD_MODIFIER(Name) \
302
IMP_IMPLEMENT_INLINE(void apply(const ParticleQuad& 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 ParticleIndexQuad& a)\
308
const IMP_FINAL); \
309
IMP_IMPLEMENT_INLINE(void apply_indexes(Model *m, \
310
const ParticleIndexQuads &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_QUAD_MODIFIER instead
326
#define IMP_INDEX_QUAD_DERIVATIVE_MODIFIER(Name) \
327
IMP_INDEX_QUAD_MODIFIER(Name)
328
329
330
331
332
#ifndef IMP_DOXYGEN
333
#define IMP_IMPLEMENT_QUAD_CONTAINER(Name) \
334
IMP_IMPLEMENT_INLINE(void do_apply(const QuadModifier *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 QuadContainer
346
/** In addition to the methods of IMP_OBJECT, it declares
347
- IMP::QuadContainer::get_number_of_particle_particle_quads()
348
- IMP::QuadContainer::get_particle_particle_quad()
349
- IMP::QuadContainer::apply()
350
- IMP::QuadContainer::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_QUAD_CONTAINER(Name) \
361
IMP_IMPLEMENT(ParticleIndexQuads get_indexes() const); \
362
IMP_IMPLEMENT(ParticleIndexQuads 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_QUAD_CONTAINER(Name)
373
374
375
//! Declare the needed functions for an active QuadContainer
376
/** In addition to the methods of IMP_QUAD_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_QUAD_CONTAINER(Name) \
382
IMP_QUAD_CONTAINER(name)
383
384
/** Use IMP_CONTAINER_FOREACH() instead.
385
*/
386
#define IMP_FOREACH_QUAD(sequence, operation) do { \
387
IMP::kernel::ParticleQuadsTemp imp_all=sequence->get(); \
388
for (unsigned int _2=0; \
389
_2 != imp_all.size(); \
390
++_2) { \
391
IMP::kernel::ParticleQuad _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_QUAD_INDEX(sequence, operation) \
403
IMP_CONTAINER_FOREACH(QuadContainer, sequence, operation)
404
405
#endif
/* IMPKERNEL_QUAD_MACROS_H */