IMP Reference Guide  develop.cd20b1e321,2019/12/14 The Integrative Modeling Platform
IMP::atom Namespace Reference

## Detailed Description

Molecules and collections of molecules are represented using Hierarchy particles. Whenever possible, one should prefer to use IMP::atom::Selection and related helper functions to manipulate molecules as that provides a simple and biologically relevant way of describing parts of molecules of interest.

The name "residue index" is used to refer to the index of the residue in the conventional description of the protein, as opposed to its index among the set of residues which are found in the current molecule. The same concept is known as the "residue number" in PDB files. This index is not necessarily unique within a Chain; however, the combination of the residue index and insertion code should be.

Several helper programs are also provided. They all take the name of the PDB file as the first argument:

# pdb_check

Check a PDB file for problems.

# ligand_score

Score ligand poses. To score the poses, use the ligand_score command line tool.

Two different scoring files are provided:

• protein_ligand_pose_score.lib for use when one wants to find the most near-native poses of a ligand from many geometry decoys of the same ligand
• protein_ligand_rank_score.lib for use when screening a compound database against a single protein to choose putative binders.

The rank score is used by default.

They are both located in the IMP.atom data directory. This directory is available within IMP python scripts via the IMP::atom::get_data_path() function. From the command line, the files can be found at build/data/atom if IMP is not installed or something like /usr/share/imp/data/atom if it is installed.

# ligand_score_multiple

Score ligand poses from docking output. Like the ligand_score tool, this scores ligand poses, but unlike that tool, it does not score the current pose; instead, it scores each pose corresponding to a transformation in a docking program output file. The transformation file has a simple format (it is a subset of the PatchDock output); the 7 space-separated columns should be the transformation number followed by the ligand translation and rotation.

# Info

Author(s): Daniel Russel, Ben Webb, Dina Schneidman, Javier Velázquez-Muriel, Hao Fan

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:

## Classes

class  AllMol2Selector

class  AllPDBSelector
Defines a selector that will pick every ATOM and HETATM record. More...

class  AndPDBSelector
Select atoms which are selected by both selectors. More...

class  Angle
A particle that describes an angle between three particles. More...

class  AngleSingletonScore
Score the angle based on a UnaryFunction,. More...

class  AngularVelocity
A particle with angular velocity. More...

class  Atom
A decorator for a particle representing an atom. More...

class  ATOMPDBSelector
Select all non-alternative ATOM records. More...

class  AtomType
The type of an atom. More...

class  AtomTypePDBSelector
Select all atoms of the given types. More...

class  BackbonePDBSelector
Select all backbone (N,CA,C,O) ATOM records. More...

class  BerendsenThermostatOptimizerState
Maintains temperature during molecular dynamics. More...

class  Bond
A decorator for wrapping a particle representing a molecular bond. More...

class  Bonded
A decorator for a particle which has bonds. More...

class  BondedPairFilter
A filter for bonds. More...

class  BondEndpointsRefiner
Return the endpoints of a bond. More...

class  BondGeometry
Display a Bond particle as a segment. More...

class  BondGraph
Represent a bond graph as a boost graph. More...

class  BondPairContainer
A container that returns pairs of the endpoints of the bonds. More...

class  BondsGeometry
Display an IMP::SingletonContainer of Bond particles as segments. More...

class  BondSingletonScore
Score the bond based on a UnaryFunction,. More...

class  BrownianDynamics
Simple Brownian dynamics simulator. More...

class  BrownianDynamicsTAMD
Simple Brownian dynamics simulator. More...

class  CAAngleRestraint
Angle restraint between three residues in CA-only representation. More...

Dihedral restraint between five residues in CA-only representation. More...

class  CAlphaPDBSelector
Select all CA ATOM records. More...

class  CBetaPDBSelector
Select all CB ATOM records. More...

class  CenterOfMass
A particle that is the center of mass of other particles. More...

class  Chain
Store info for a chain of a protein. More...

class  ChainPDBSelector
Select all ATOM and HETATM records with the given chain ids. More...

class  ChainType
The type for a chain. More...

class  Charged
A decorator for a point particle that has an electrostatic charge. More...

class  CHARMMAtom
A decorator for an atom that has a defined CHARMM type. More...

class  CHARMMAtomTopology
A single atom in a CHARMM topology. More...

class  CHARMMBondEndpoint
The end of a bond, angle, dihedral, improper, or internal coordinate. More...

struct  CHARMMBondParameters
The parameters for a CHARMM bond or angle. More...

class  CHARMMConnection
A connection (bond, angle, dihedral) between some number of endpoints. More...

struct  CHARMMDihedralParameters
The parameters for a CHARMM dihedral or improper. More...

class  CHARMMIdealResidueTopology
The ideal topology of a single residue. More...

class  CHARMMInternalCoordinate
A geometric relationship between four atoms. More...

class  CHARMMParameters
CHARMM force field parameters. More...

class  CHARMMPatch
A CHARMM patch residue. More...

class  CHARMMResidueTopology
The topology of a single residue in a model. More...

class  CHARMMResidueTopologyBase
Base class for all CHARMM residue-based topology. More...

class  CHARMMSegmentTopology
The topology of a single CHARMM segment in a model. More...

class  CHARMMStereochemistryRestraint
Enforce CHARMM stereochemistry on the given Hierarchy. More...

class  CHARMMTopology
The topology of a complete CHARMM model. More...

class  Copy
A decorator for keeping track of copies of a molecule. More...

class  CoulombPairScore
Coulomb (electrostatic) score between a pair of particles. More...

class  CoverBond
Cover a bond with a sphere. More...

class  CPDBSelector
Select all C (not CA or CB) ATOM records. More...

class  Diffusion
A decorator for a diffusing particle with a diffusion coefficient. More...

class  Dihedral
A particle that describes a dihedral angle between four particles. More...

class  DihedralSingletonScore
Score the dihedral angle. More...

class  Domain
A decorator to associate a particle with a part of a protein. More...

class  DopePairScore

class  ElementTable

class  EzRestraint
Ez Potential restraint. More...

class  ForceFieldParameters

class  ForceSwitch
Smooth interaction scores by switching the derivatives (force switch). More...

class  Fragment
A decorator to associate a particle with a part of a protein/DNA/RNA. More...

class  HelixRestraint
Restraint a set of residues to use ideal helix dihedrals and bonds. More...

class  HierarchiesGeometry
Display an IMP::SingletonContainer of IMP::atom::Hierarchy particles as balls. More...

class  Hierarchy
The standard decorator for manipulating molecular structures. More...

class  HierarchyGeometry
Display an IMP::atom::Hierarchy particle as balls. More...

class  HydrogenPDBSelector
Select all hydrogen ATOM and HETATM records. More...

class  ImproperSingletonScore
Score the improper dihedral based on a UnaryFunction,. More...

class  LangevinThermostatOptimizerState
Maintains temperature during molecular dynamics. More...

class  LennardJones
A decorator for a particle that has a Lennard-Jones potential well. More...

class  LennardJonesPairScore
Lennard-Jones score between a pair of particles. More...

class  LinearVelocity
A particle with linear (XYZ) velocity. More...

class  Mass
Add mass to a particle. More...

class  Mol2Selector
A base class for choosing which Mol2 atoms to read. More...

class  MolecularDynamics
Simple molecular dynamics optimizer. More...

class  Molecule
A decorator for a molecule. More...

class  NonAlternativePDBSelector
Select all ATOM and HETATM records which are not alternatives. More...

class  NonHydrogenMol2Selector
Defines a selector that will pick only non-hydrogen atoms. More...

class  NonHydrogenPDBSelector
Select non hydrogen atoms. More...

class  NonWaterNonHydrogenPDBSelector
Select non water and non hydrogen atoms. More...

class  NonWaterPDBSelector
Select all non-water non-alternative ATOM and HETATM records. More...

class  NotPDBSelector
Select atoms which are not selected by a given selector. More...

class  NPDBSelector
Select all N ATOM records. More...

class  OrientedSoapPairScore
Score a pair of atoms using an orientation-dependent SOAP score. More...

class  OrPDBSelector
Select atoms which are selected by either or both selectors. More...

class  PDBSelector
Select which atoms to read from a PDB file. More...

class  PPDBSelector
Select all P (= phosphate) ATOM records. More...

class  ProteinLigandAtomPairScore

class  ProteinLigandRestraint
Score a pair of molecules. More...

class  RemoveRigidMotionOptimizerState
Removes rigid translation and rotation from the particles. More...

class  RemoveTranslationOptimizerState
Removes rigid translation from the particles. More...

class  Representation
A decorator for a representation. More...

class  Residue
A decorator for a residue. More...

class  ResidueType
The type for a residue. More...

class  ResidueTypePDBSelector
Select all atoms in residues of the given types. More...

class  RigidBodyDiffusion

class  SameResiduePairFilter

class  SecondaryStructureResidue
A decorator for a residue with probability of secondary structure. More...

class  Selection
Select hierarchy particles identified by the biological name. More...

class  SelectionGeometry
Display a Selection. More...

class  Simulator
The base class for simulators. More...

class  SmoothingFunction
Base class for smoothing nonbonded interactions as a function of distance. More...

class  SoapPairFilter
Filter atom pairs for SOAP. More...

class  State
Associate an integer "state" index with a hierarchy node. More...

class  StereochemistryPairFilter
A filter that excludes bonds, angles and dihedrals. More...

class  StructureSource
Store strings describing the source of this structure fragment. More...

class  TAMDCentroid

class  TAMDParticle

class  VelocityScalingOptimizerState
Maintains temperature during molecular dynamics by velocity scaling. More...

class  WaterPDBSelector
Select all non-water ATOM and HETATM records. More...

class  WritePDBOptimizerState

class  XorPDBSelector
Select atoms which are selected by either selector but not both. More...

## Typedefs

typedef IMP::Vector< AngleAngles

typedef IMP::Vector
< IMP::Pointer
< AngleSingletonScore > >
AngleSingletonScores

typedef IMP::Vector
< IMP::WeakPointer
< AngleSingletonScore > >
AngleSingletonScoresTemp

typedef IMP::Vector< AtomAtoms

typedef Key< 8974343 > AtomType

typedef IMP::Vector< AtomTypeAtomTypes

typedef IMP::Vector
< IMP::Pointer
< BerendsenThermostatOptimizerState > >
BerendsenThermostatOptimizerStates

typedef IMP::Vector
< IMP::WeakPointer
< BerendsenThermostatOptimizerState > >
BerendsenThermostatOptimizerStatesTemp

typedef IMP::Vector
< IMP::Pointer
< BondedPairFilter > >
BondedPairFilters

typedef IMP::Vector
< IMP::WeakPointer
< BondedPairFilter > >
BondedPairFiltersTemp

typedef IMP::Vector< BondedBondeds

typedef IMP::Vector
< IMP::Pointer
< BondEndpointsRefiner > >
BondEndpointsRefiners

typedef IMP::Vector
< IMP::WeakPointer
< BondEndpointsRefiner > >
BondEndpointsRefinersTemp

typedef IMP::Vector
< IMP::Pointer
< BondPairContainer > >
BondPairContainers

typedef IMP::Vector
< IMP::WeakPointer
< BondPairContainer > >
BondPairContainersTemp

typedef IMP::Vector< BondBonds

typedef IMP::Vector
< IMP::Pointer
< BondSingletonScore > >
BondSingletonScores

typedef IMP::Vector
< IMP::WeakPointer
< BondSingletonScore > >
BondSingletonScoresTemp

typedef IMP::Vector< CenterOfMassCenterOfMasses

typedef IMP::Vector< ChainChains

typedef Key< 90784336 > ChainType

typedef IMP::Vector< ChainTypeChainTypes

typedef IMP::Vector< ChargedChargeds

typedef CHARMMConnection< 3 > CHARMMAngle

typedef IMP::Vector< CHARMMAngleCHARMMAngles

typedef IMP::Vector
< CHARMMAtomTopology
CHARMMAtomTopologies

typedef CHARMMConnection< 2 > CHARMMBond

typedef IMP::Vector
< CHARMMBondEndpoint
CHARMMBondEndpoints

typedef IMP::Vector
< CHARMMBondParameters
CHARMMBondParametersList

typedef IMP::Vector< CHARMMBondCHARMMBonds

typedef CHARMMConnection< 4 > CHARMMDihedral

typedef IMP::Vector
< CHARMMDihedralParameters
CHARMMDihedralParametersList

typedef IMP::Vector
< CHARMMDihedral
CHARMMDihedrals

typedef IMP::Vector
< IMP::Pointer
< CHARMMIdealResidueTopology > >
CHARMMIdealResidueTopologies

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMIdealResidueTopology > >
CHARMMIdealResidueTopologiesTemp

typedef IMP::Vector
< CHARMMInternalCoordinate
CHARMMInternalCoordinates

typedef IMP::Vector
< IMP::Pointer
< CHARMMParameters > >
CHARMMParametersList

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMParameters > >
CHARMMParametersListTemp

typedef IMP::Vector
< IMP::Pointer< CHARMMPatch > >
CHARMMPatches

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMPatch > >
CHARMMPatchesTemp

typedef IMP::Vector
< IMP::Pointer
< CHARMMResidueTopology > >
CHARMMResidueTopologies

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMResidueTopology > >
CHARMMResidueTopologiesTemp

typedef IMP::Vector
< IMP::Pointer
< CHARMMResidueTopologyBase > >
CHARMMResidueTopologyBases

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMResidueTopologyBase > >
CHARMMResidueTopologyBasesTemp

typedef IMP::Vector
< IMP::Pointer
< CHARMMSegmentTopology > >
CHARMMSegmentTopologies

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMSegmentTopology > >
CHARMMSegmentTopologiesTemp

typedef IMP::Vector
< IMP::Pointer< CHARMMTopology > >
CHARMMTopologies

typedef IMP::Vector
< IMP::WeakPointer
< CHARMMTopology > >
CHARMMTopologiesTemp

typedef IMP::Vector< CopyCopies

typedef IMP::Vector
< IMP::Pointer
< CoulombPairScore > >
CoulombPairScores

typedef IMP::Vector
< IMP::WeakPointer
< CoulombPairScore > >
CoulombPairScoresTemp

typedef IMP::Vector
< IMP::Pointer< CoverBond > >
CoverBonds

typedef IMP::Vector
< IMP::WeakPointer< CoverBond > >
CoverBondsTemp

typedef IMP::Vector< DiffusionDiffusions

typedef IMP::Vector< DihedralDihedrals

typedef IMP::Vector
< IMP::Pointer
< DihedralSingletonScore > >
DihedralSingletonScores

typedef IMP::Vector
< IMP::WeakPointer
< DihedralSingletonScore > >
DihedralSingletonScoresTemp

typedef IMP::Vector< DomainDomains

typedef IMP::Vector< FragmentFragments

typedef IMP::Vector< HierarchyHierarchies

typedef boost::graph HierarchyTree
A graph for representing a Hierarchy so you can view it nicely. More...

typedef HierarchyTree::EdgeNameMap HierarchyTreeConstEdgeName

typedef
HierarchyTree::VertexNameMap
HierarchyTreeConstVertexName

typedef
HierarchyTree::edge_descriptor
HierarchyTreeEdge

typedef boost::graph_traits
< HierarchyTree
HierarchyTreeTraits

typedef
HierarchyTree::vertex_descriptor
HierarchyTreeVertex

typedef IMP::Vector
< IMP::Pointer
< ImproperSingletonScore > >
ImproperSingletonScores

typedef IMP::Vector
< IMP::WeakPointer
< ImproperSingletonScore > >
ImproperSingletonScoresTemp

typedef IMP::Vector
< IMP::Pointer
< LangevinThermostatOptimizerState > >
LangevinThermostatOptimizerStates

typedef IMP::Vector
< IMP::WeakPointer
< LangevinThermostatOptimizerState > >
LangevinThermostatOptimizerStatesTemp

typedef IMP::Vector< LennardJonesLennardJonesList

typedef IMP::Vector
< IMP::Pointer
< LennardJonesPairScore > >
LennardJonesPairScores

typedef IMP::Vector
< IMP::WeakPointer
< LennardJonesPairScore > >
LennardJonesPairScoresTemp

typedef IMP::Vector< MoleculeMolecules

typedef IMP::Vector
< IMP::Pointer< PDBSelector > >
PDBSelectors

typedef IMP::Vector
< IMP::WeakPointer
< PDBSelector > >
PDBSelectorsTemp

typedef IMP::Vector
< IMP::Pointer
< RemoveRigidMotionOptimizerState > >
RemoveRigidMotionOptimizerStates

typedef IMP::Vector
< IMP::WeakPointer
< RemoveRigidMotionOptimizerState > >
RemoveRigidMotionOptimizerStatesTemp

typedef IMP::Vector
< IMP::Pointer
< RemoveTranslationOptimizerState > >
RemoveTranslationOptimizerStates

typedef IMP::Vector
< IMP::WeakPointer
< RemoveTranslationOptimizerState > >
RemoveTranslationOptimizerStatesTemp

typedef IMP::Vector
< Representation
Representations

typedef IMP::Vector< ResidueResidues

typedef Key< 90784334 > ResidueType

typedef IMP::Vector< ResidueTypeResidueTypes

typedef IMP::Vector
< RigidBodyDiffusion
RigidBodyDiffusions

typedef IMP::Vector
< SecondaryStructureResidue
SecondaryStructureResidues

typedef IMP::Vector< SelectionSelections

typedef IMP::Vector
< IMP::Pointer< Simulator > >
Simulators

typedef IMP::Vector
< IMP::WeakPointer< Simulator > >
SimulatorsTemp

typedef IMP::Vector< StateStates

typedef IMP::Vector
< StructureSource
StructureSources

typedef IMP::Vector< TAMDCentroidTAMDCentroids

typedef IMP::Vector< TAMDParticleTAMDParticles

typedef IMP::Vector
< IMP::Pointer
< VelocityScalingOptimizerState > >
VelocityScalingOptimizerStates

typedef IMP::Vector
< IMP::WeakPointer
< VelocityScalingOptimizerState > >
VelocityScalingOptimizerStatesTemp

## Enumerations

enum  Element {
UNKNOWN_ELEMENT = 0, H = 1, He = 2, Li = 3,
Be = 4, B = 5, C = 6, N = 7,
O = 8, F = 9, Ne = 10, Na = 11,
Mg = 12, Al = 13, Si = 14, P = 15,
S = 16, Cl = 17, Ar = 18, K = 19,
Ca = 20, Sc = 21, Ti = 22, V = 23,
Cr = 24, Mn = 25, Fe = 26, Co = 27,
Ni = 28, Cu = 29, Zn = 30, Ga = 31,
Ge = 32, As = 33, Se = 34, Br = 35,
Kr = 36, Rb = 37, Sr = 38, Y = 39,
Zr = 40, Nb = 41, Mo = 42, Tc = 43,
Ru = 44, Rh = 45, Pd = 46, Ag = 47,
Cd = 48, In = 49, Sn = 50, Sb = 51,
Te = 52, I = 53, Xe = 54, Cs = 55,
Ba = 56, La = 57, Ce = 58, Pr = 59,
Nd = 60, Pm = 61, Sm = 62, Eu = 63,
Gd = 64, Tb = 65, Dy = 66, Ho = 67,
Er = 68, Tm = 69, Yb = 70, Lu = 71,
Hf = 72, Ta = 73, W = 74, Re = 75,
Os = 76, Ir = 77, Pt = 78, Au = 79,
Hg = 80, Tl = 81, Pb = 82, Bi = 83,
Po = 84, At = 85, Rn = 86, Fr = 87,
Ra = 88, Ac = 89, Th = 90, Pa = 91,
U = 92, Np = 93, Pu = 94, Am = 95,
Cm = 96, Bk = 97, Cf = 98, Es = 99,
Fm = 100, Md = 101, No = 102, Lr = 103,
Db = 104, Jl = 105, Rf = 106
}
The various elements currently supported/known. More...

enum  GetByType {
ATOM_TYPE, RESIDUE_TYPE, CHAIN_TYPE, MOLECULE_TYPE,
DOMAIN_TYPE, FRAGMENT_TYPE, XYZ_TYPE, XYZR_TYPE,
MASS_TYPE, STATE_TYPE
}
The different types which can be passed to get_by_type() More...

enum  RepresentationType { BALLS = 0, DENSITIES = 1 }

## Functions

AtomType add_atom_type (std::string name, Element e)
Create a new AtomType. More...

void add_bonds (Hierarchy d, const ForceFieldParameters *ffp=get_all_atom_CHARMM_parameters())

Bond create_bond (Bonded a, Bonded b, Int t)
Connect the two wrapped particles by a bond. More...

Bond create_bond (Bonded a, Bonded b, Bond o)
Connect the two wrapped particles by a custom bond. More...

IMP::core::RigidBody create_compatible_rigid_body (Hierarchy h, Hierarchy reference)
Rigidify a molecule or collection of molecules. More...

Restraintcreate_connectivity_restraint (const Selections &s, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selections. More...

Restraintcreate_connectivity_restraint (const Selections &s, double x0, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selections. More...

core::XYZR create_cover (const Selection &s, std::string name=std::string())

Bond create_custom_bond (Bonded a, Bonded b, Float length, Float stiffness=-1)
Connect the two wrapped particles by a custom bond. More...

Restraintcreate_distance_restraint (const Selection &n0, const Selection &n1, double x0, double k, std::string name="Distance%1%")

Restraintcreate_excluded_volume_restraint (const Hierarchies &hs, double resolution=-1)

Restraintcreate_excluded_volume_restraint (const Selections &s)
Create an excluded volume restraint for a list of selections. More...

Restraintcreate_internal_connectivity_restraint (const Selection &s, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selection. More...

Restraintcreate_internal_connectivity_restraint (const Selection &s, double x0, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selection. More...

Hierarchy create_protein (Model *m, std::string name, double target_radius, int number_of_residues, int first_residue_index=0, double volume=-1)
Create a coarse grained molecule. More...

Hierarchy create_protein (Model *m, std::string name, double target_radius, const Ints domain_boundaries)

IMP::core::RigidBody create_rigid_body (const Hierarchies &h, std::string name=std::string("created rigid body"))
Rigidify a molecule or collection of molecules. More...

IMP::core::RigidBody create_rigid_body (Hierarchy h)

Hierarchy create_simplified_assembly_from_volume (Hierarchy h, double resolution)

Hierarchy create_simplified_from_volume (Hierarchy h, double resolution)

void destroy_bond (Bond b)
Destroy the bond connecting two particles. More...

CHARMMParametersget_all_atom_CHARMM_parameters ()

Atom get_atom (Residue rd, AtomType at)
Return a particle atom from the residue. More...

bool get_atom_type_exists (std::string name)
Return true if that atom type already exists. More...

Bond get_bond (Bonded a, Bonded b)
Get the bond between two particles. More...

Chain get_chain (Hierarchy h)
Get the containing chain or Chain() if there is none. More...

std::string get_chain_id (Hierarchy h)
Walk up the hierarchy to determine the chain id. More...

Atoms get_charmm_untyped_atoms (Hierarchy hierarchy)
Get all atoms in the Hierarchy that do not have CHARMM types. More...

FloatPair get_component_placement_score (const core::XYZs &ref1, const core::XYZs &ref2, const core::XYZs &mdl1, const core::XYZs &mdl2)
Measure the difference between two placements of the same set of points. More...

int get_copy_index (Hierarchy h)
Walk up the hierarchy to find the current copy index. More...

double get_diffusion_angle (double D, double dtfs)

double get_diffusion_coefficient (const algebra::Vector3Ds &displacements, double dt)

double get_diffusion_coefficient (const algebra::Vector3Ds &displacements, const Floats &dts)

double get_diffusion_coefficient_from_cm2_per_second (double din)

double get_diffusion_length (double D, double t)

double get_diffusion_length (double D, double force, double t, double temp=-1)

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
double get_drms (const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2)

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
double get_drmsd (const Vector3DsOrXYZs0 &m0, const Vector3DsOrXYZs1 &m1)
Calculate distance the root mean square deviation between two sets of 3D points. More...

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
double get_drmsd_Q (const Vector3DsOrXYZs0 &m0, const Vector3DsOrXYZs1 &m1, double threshold)

double get_einstein_diffusion_coefficient (double r, double temp=-1)

double get_einstein_rotational_diffusion_coefficient (double r, double temp=-1)

Element get_element_for_atom_type (AtomType at)

ElementTableget_element_table ()

CHARMMParametersget_heavy_atom_CHARMM_parameters ()

HierarchyTree get_hierarchy_tree (Hierarchy h)
Get a graph for the passed Hierarchy. More...

double get_kd (double na, double nb, double nab, double volume)

double get_kt (double T)
Return kT for a given temperature in units of [kcal/mol]. More...

Hierarchies get_leaves (const Selection &h)

double get_mass (ResidueType c)
Get the mass from the residue type. More...

double get_mass (const Selection &s)
Get the total mass of a hierarchy, in Daltons. More...

double get_maximum_time_step_estimate (BrownianDynamics *bd)

double get_molarity (double n, double volume)

std::string get_molecule_name (Hierarchy h)

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
double get_native_overlap (const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2, double threshold)
Computes the native overlap between two sets of 3D points. More...

Hierarchy get_next_residue (Residue rd)
Return the residue from the same chain with one higher index. More...

char get_one_letter_code (ResidueType c)
Get the 1-letter amino acid code from the residue type. More...

double get_pairwise_rmsd_score (const core::XYZs &ref1, const core::XYZs &ref2, const core::XYZs &mdl1, const core::XYZs &mdl2)
Measure the RMSD between two placements of the same set of points. More...

Atoms get_phi_dihedral_atoms (Residue rd)
Return the atoms comprising the phi dihedral. More...

FloatPair get_placement_score (const core::XYZs &source, const core::XYZs &target)
Measure the difference between two placements of the same set of points. More...

Hierarchy get_previous_residue (Residue rd)
Return the residue from the same chain with one lower index. More...

Atoms get_psi_dihedral_atoms (Residue rd)
Return the atoms comprising the psi dihedral. More...

double get_radius_of_gyration (const ParticlesTemp &ps, bool weighted=true)

Representation get_representation (Hierarchy h, bool nothrow=false)
Return the Representation object containing this hierarchy. More...

Residue get_residue (Atom d, bool nothrow=false)
Return the Residue containing this atom. More...

ResidueType get_residue_type (char c)
Get the residue type from the 1-letter amino acid code. More...

double get_resolution (Model *m, ParticleIndex pi)
Estimate the resolution of the hierarchy as used by Representation. More...

double get_resolution (Hierarchy h)

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
double get_rigid_bodies_drms (const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2, const IMP::IntRanges &ranges)
DRMS between two sets of rigid bodies. More...

double get_rmsd (const core::XYZs &s0, const core::XYZs &s1)

double get_rmsd (const Selection &s0, const Selection &s1)

double get_rmsd_transforming_first (const IMP::algebra::Transformation3D &tr, const core::XYZs &s0, const core::XYZs &s1)

double get_rmsd_transforming_first (const algebra::Transformation3D &tr, const Selection &s0, const Selection &s1)

double get_rotational_diffusion_coefficient (const algebra::Rotation3Ds &orientations, double dt)

Float get_secondary_structure_match_score (SecondaryStructureResidue ssr1, SecondaryStructureResidue ssr2)
Compares the secondary structure probabilities of two residues. More...

int get_state_index (Hierarchy h)
Walk up the hierarchy to find the current state. More...

double get_surface_area (const Selection &s)
Get the total surface area of a hierarchy, in square angstroms. More...

algebra::Transformation3D get_transformation_aligning_first_to_second (const Selection &s1, const Selection &s2)
Get the transformation to align two selections. More...

HierarchyTreeVertexIndex get_vertex_index (const HierarchyTree &g)

double get_volume (const Selection &s)
Get the total volume of a hierarchy, in cubic angstroms. More...

Hierarchy read_mmcif (TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Read all the molecules in the first model of the mmCIF file. More...

Hierarchies read_multimodel_mmcif (TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())
Read all models from the mmCIF file. More...

void remove_charmm_untyped_atoms (Hierarchy hierarchy)
Remove any atom from the Hierarchy that does not have a CHARMM type. More...

void setup_as_approximation (Particle *h, const ParticlesTemp &other)

void setup_as_approximation (Hierarchy h)

SecondaryStructureResidue setup_coarse_secondary_structure_residue (const Particles &ssr_ps, Model *mdl, bool winner_takes_all_per_res=false)
Coarsen some SecondaryStructureResidues. More...

SecondaryStructureResidues setup_coarse_secondary_structure_residues (const Particles &ssr_ps, Model *mdl, int coarse_factor, int start_res_num, bool winner_takes_all_per_res=false)

void show_as_graphviz (const HierarchyTree &name, TextOutput out)

void show_with_representations (Hierarchy h, std::ostream &out=std::cout)
Traverse through the tree and show atom info, including representations. More...

void transform (Hierarchy h, const algebra::Transformation3D &tr)
Transform a hierarchy. This is aware of rigid bodies. More...

## Variables

const double ALL_RESOLUTIONS

const AtomType AT_CA

const AtomType AT_N

const AtomType AT_UNKNOWN

const ChainType DNA
Shorthand for IMP::atom::Polydeoxyribonucleotide. More...

const ChainType DPolypeptide
Polypeptide(D) More...

const ChainType DPolysaccharide
Polysaccharide(D) More...

const ResidueType GLY

const ChainType LPolypeptide
Polypeptide(L) More...

const ChainType LPolysaccharide
Polysaccharide(L) More...

const ChainType Polydeoxyribonucleotide
DNA. More...

const ChainType Polyribonucleotide
RNA. More...

const ChainType Protein
Shorthand for IMP::atom::LPolypeptide. More...

const ChainType RNA
Shorthand for IMP::atom::Polyribonucleotide. More...

const ResidueType UNK
Unknown residue. More...

const ChainType UnknownChainType
Unknown chain type. 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...

## Dope scoring

IMP provides the DOPE scoring function for scoring proteins.

Note
These are quite large objects as they store the whole DOPE lookup table. It is much better to share them between restraints than to create separate instances.
typedef score_functor::DopeType DopeType

## Estimator Functions

These functions allow you to estimate physical quantities relating to biomolecules.

enum  ProteinDensityReference {
QUILLIN, SQUIRE
}

double get_protein_density_from_reference (ProteinDensityReference densityReference)

double get_volume_from_mass (double m, ProteinDensityReference ref=ALBER)
Estimate the volume of a protein from its mass. More...

double get_mass_from_volume (double v, ProteinDensityReference ref=ALBER)
Estimate the mass of a protein from its volume. More...

double get_mass_from_number_of_residues (unsigned int num_aa)
Estimate the mass of a protein from the number of amino acids. More...

double get_volume_from_residue_type (ResidueType rt)
Return an estimate for the volume of a given residue. More...

## Energy conversions

Convert energy from kcal/mol to femtojoules

double get_energy_in_femto_joules (double energy_in_kcal_per_mol)

double get_force_in_femto_newtons (double force_in_kcal_per_mol_per_angstrom)
Convert force from kcal/mol/A to femtonewtons. More...

double get_spring_constant_in_femto_newtons_per_angstrom (double k_in_kcal_per_mol_per_angstrom_square)
Convert spring constant from kcal/mol/A^2 to femtonewton/A. More...

## Simplification along backbone

These two methods create a simplified version of a molecule by merging residues sequentially. In one case every n residues are merged, in the other, the intervals are passed manually. The resulting molecule is not optimized by default and has no restraints automatically created.

At the moment, the calls only support unmodified hierarchies loaded by read_pdb() which have only protein or DNA members.

They return Hierarchy() if the input chain is empty.

If keep_detailed is true, then the original high resolution structure particles are added as children of the simplified structure.

Hierarchy create_simplified_along_backbone (Hierarchy input, int num_res, bool keep_detailed=false)

Hierarchy create_simplified_along_backbone (Chain input, const IntRanges &residue_segments, bool keep_detailed=false)

## Finding information

Get the attribute of the given particle or throw a ValueException if it is not applicable. The particle with the given information must be above the passed node.

Ints get_residue_indexes (Hierarchy h)

ResidueType get_residue_type (Hierarchy h)

AtomType get_atom_type (Hierarchy h)

std::string get_domain_name (Hierarchy h)

## Mol2 IO

IMP can also read and write Mol2 files. As with read_pdb(), selector objects are used to determine which atoms are read.

The read function produces a hierarchy containing the molecule. The write hierarchy writes all the Residue types in the hierarchy to the file.

Hierarchy read_mol2 (TextInput mol2_file, Model *model, Mol2Selector *mol2sel=nullptr)
Create a hierarchy from a Mol2 file. More...

void write_mol2 (Hierarchy rhd, TextOutput file_name)
Write a ligand hierarchy as a mol2 file. More...

The read PDB methods produce a hierarchy that looks as follows:

• One Atom per ATOM or HETATM record in the PDB.
• All Atom particles have a parent which is a Residue.
• All Residue particles have a parent which is a Chain.

Waters are currently dropped if they are ATOM records. This can be fixed.

The read_pdb() functions should successfully parse all valid PDB files. It can produce warnings on files which are not valid. It will attempt to read such files, but all bets are off.

In order to track the provenance of IMP-generated models, the provenance of any PDB files read in here - for example, the PDB id, or detail about a comparative model - needs to also be tracked. This is done using the PDB headers:

• Structures stored in the PDB database should keep the standard HEADER record stating their PDB ID.
• Comparative models generated using MODELLER should include the MODELLER-generated EXPDTA and REMARK records.
• Structures that are trivial modifications of an existing PDB structure or comparative model should use the TITLE record to describe the nature of the modification (e.g. rotation and translation) and one of the two following custom EXPDTA record formats to point to the original structure:
• EXPDTA DERIVED FROM PDB:1XYZ
• EXPDTA DERIVED FROM COMPARATIVE MODEL, DOI:x.y/z
• Structures generated from multiple sources (e.g. two structures that have been docked and then concatenated into a single PDB file) are not allowed. Store each constituent structure in its own file and annotate each one with a suitable EXPDTA record, as above. Note that while provenance of PDB files is not currently enforced, it likely will be in future IMP releases.

When reading PDBs, PDBSelector objects can be used to choose to only process certain record types. See the class documentation for more information. When no PDB selector is supplied for reading, the NonWaterPDBSelector is used.

Set the IMP::LogLevel to VERBOSE to see details of parse errors.

PDBSelectorget_default_pdb_selector ()

Hierarchy read_pdb (TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector(), bool select_first_model=true)
Read all the molecules in the first model of the PDB file. More...

void read_pdb (TextInput input, int model, Hierarchy h)

Hierarchies read_multimodel_pdb (TextInput input, Model *model, PDBSelector *selector=get_default_pdb_selector())

## PDB Writing

The methods to write a PDB expects a Hierarchy that looks as follows:

• all leaves are Atom particles
• all Atom particles have Residue particles as parents

All Residue particles that have a Chain particle as an ancestor are considered part of a protein, DNA or RNA, ones without are considered heterogens.

The functions produce files that are not valid PDB files, eg only ATOM/HETATM lines are printed for all Atom particles in the hierarchy. Complain if your favorite program can't read them and we might fix it.

void write_pdb (const Selection &mhd, TextOutput out, unsigned int model=1)

void write_pdb_of_c_alphas (const Selection &mhd, TextOutput out, unsigned int model=1)
Write a hierarchy to a PDB as C_alpha atoms. More...

void write_multimodel_pdb (const Hierarchies &mhd, TextOutput out)

## Protein-ligand scoring

IMP provides a statistical scoring function for scoring protein-ligand complexes. See the Ligand Score application for more information.

typedef Key< 783462 > ProteinLigandType

typedef IMP::Vector
< ProteinLigandType
ProteinLigandTypes

typedef IMP::Vector
< IMP::Pointer
< ProteinLigandAtomPairScore > >
ProteinLigandAtomPairScores

typedef IMP::Vector
< IMP::WeakPointer
< ProteinLigandAtomPairScore > >
ProteinLigandAtomPairScoresTemp

typedef IMP::Vector
< IMP::Pointer
< ProteinLigandRestraint > >
ProteinLigandRestraints

typedef IMP::Vector
< IMP::WeakPointer
< ProteinLigandRestraint > >
ProteinLigandRestraintsTemp

## Python Only

The following functions are only available in Python as the equivalent C++ functionality is provided via template functions or in other ways that don't directly map to Python.

void show_molecular_hierarchy (Hierarchy h)
Print out the molecular hierarchy. More...

Reads in PSIPRED results and decorates particles as SecondaryStructureResidues. Currently assuming order of ps matches file.

SecondaryStructureResidues read_psipred (TextInput inf, Model *mdl)

SecondaryStructureResidues read_psipred (TextInput inf, Particles ps)

## Typedef Documentation

A vector of reference-counting object pointers.

Definition at line 45 of file AngleSingletonScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

AngleSingletonScore

Definition at line 45 of file AngleSingletonScore.h.

 typedef IMP::Vector< AtomType > IMP::atom::AtomTypes

Pass or store a set of AtomType .

Definition at line 29 of file atom/Atom.h.

A vector of reference-counting object pointers.

Definition at line 67 of file BerendsenThermostatOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

BerendsenThermostatOptimizerState

Definition at line 67 of file BerendsenThermostatOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 38 of file BondedPairFilter.h.

A vector of weak (non reference-counting) pointers to specified objects.

BondedPairFilter

Definition at line 38 of file BondedPairFilter.h.

A vector of reference-counting object pointers.

Definition at line 37 of file BondEndpointsRefiner.h.

A vector of weak (non reference-counting) pointers to specified objects.

BondEndpointsRefiner

Definition at line 37 of file BondEndpointsRefiner.h.

A vector of reference-counting object pointers.

Definition at line 61 of file BondPairContainer.h.

A vector of weak (non reference-counting) pointers to specified objects.

BondPairContainer

Definition at line 61 of file BondPairContainer.h.

A vector of reference-counting object pointers.

Definition at line 42 of file BondSingletonScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

BondSingletonScore

Definition at line 42 of file BondSingletonScore.h.

 typedef IMP::Vector< ChainType > IMP::atom::ChainTypes

Pass or store a set of ChainType .

Definition at line 20 of file Chain.h.

 typedef IMP::Vector< CHARMMAngle > IMP::atom::CHARMMAngles

Pass or store a set of CHARMMAngle .

Definition at line 169 of file charmm_topology.h.

Pass or store a set of CHARMMAtomTopology .

Definition at line 50 of file charmm_topology.h.

Pass or store a set of CHARMMBondEndpoint .

Definition at line 90 of file charmm_topology.h.

Pass or store a set of CHARMMBondParameters .

Definition at line 38 of file CHARMMParameters.h.

 typedef IMP::Vector< CHARMMBond > IMP::atom::CHARMMBonds

Pass or store a set of CHARMMBond .

Definition at line 167 of file charmm_topology.h.

Pass or store a set of CHARMMDihedralParameters .

Definition at line 52 of file CHARMMParameters.h.

 typedef IMP::Vector< CHARMMDihedral > IMP::atom::CHARMMDihedrals

Pass or store a set of CHARMMDihedral .

Definition at line 171 of file charmm_topology.h.

A vector of reference-counting object pointers.

Definition at line 358 of file charmm_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMIdealResidueTopology

Definition at line 358 of file charmm_topology.h.

Pass or store a set of CHARMMInternalCoordinate .

Definition at line 239 of file charmm_topology.h.

A vector of reference-counting object pointers.

Definition at line 345 of file CHARMMParameters.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMParameters

Definition at line 345 of file CHARMMParameters.h.

 typedef IMP::Vector > IMP::atom::CHARMMPatches

A vector of reference-counting object pointers.

Definition at line 413 of file charmm_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMPatch

Definition at line 413 of file charmm_topology.h.

A vector of reference-counting object pointers.

Definition at line 465 of file charmm_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMResidueTopology

Definition at line 465 of file charmm_topology.h.

A vector of reference-counting object pointers.

Definition at line 324 of file charmm_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMResidueTopologyBase

Definition at line 324 of file charmm_topology.h.

A vector of reference-counting object pointers.

Definition at line 48 of file charmm_segment_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMSegmentTopology

Definition at line 48 of file charmm_segment_topology.h.

 typedef IMP::Vector > IMP::atom::CHARMMTopologies

A vector of reference-counting object pointers.

Definition at line 244 of file charmm_segment_topology.h.

A vector of weak (non reference-counting) pointers to specified objects.

CHARMMTopology

Definition at line 244 of file charmm_segment_topology.h.

A vector of reference-counting object pointers.

Definition at line 58 of file CoulombPairScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

CoulombPairScore

Definition at line 58 of file CoulombPairScore.h.

 typedef IMP::Vector > IMP::atom::CoverBonds

A vector of reference-counting object pointers.

Definition at line 39 of file CoverBond.h.

 typedef IMP::Vector > IMP::atom::CoverBondsTemp

A vector of weak (non reference-counting) pointers to specified objects.

CoverBond

Definition at line 39 of file CoverBond.h.

A vector of reference-counting object pointers.

Definition at line 42 of file DihedralSingletonScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

DihedralSingletonScore

Definition at line 42 of file DihedralSingletonScore.h.

 typedef boost::graph IMP::atom::HierarchyTree

A graph for representing a Hierarchy so you can view it nicely.

Definition at line 164 of file hierarchy_tools.h.

A vector of reference-counting object pointers.

Definition at line 50 of file ImproperSingletonScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

ImproperSingletonScore

Definition at line 50 of file ImproperSingletonScore.h.

A vector of reference-counting object pointers.

Definition at line 56 of file LangevinThermostatOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

LangevinThermostatOptimizerState

Definition at line 56 of file LangevinThermostatOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 89 of file LennardJonesPairScore.h.

A vector of weak (non reference-counting) pointers to specified objects.

LennardJonesPairScore

Definition at line 89 of file LennardJonesPairScore.h.

 typedef IMP::Vector > IMP::atom::PDBSelectors

A vector of reference-counting object pointers.

Definition at line 48 of file pdb.h.

A vector of weak (non reference-counting) pointers to specified objects.

PDBSelector

Definition at line 48 of file pdb.h.

A vector of reference-counting object pointers.

Definition at line 65 of file protein_ligand_score.h.

A vector of weak (non reference-counting) pointers to specified objects.

ProteinLigandAtomPairScore

Definition at line 65 of file protein_ligand_score.h.

A vector of reference-counting object pointers.

Definition at line 80 of file protein_ligand_score.h.

A vector of weak (non reference-counting) pointers to specified objects.

ProteinLigandRestraint

Definition at line 80 of file protein_ligand_score.h.

 typedef Key<783462> IMP::atom::ProteinLigandType

The marker to identify the atom types.

Definition at line 34 of file protein_ligand_score.h.

Pass or store a set of ProteinLigandType .

Definition at line 39 of file protein_ligand_score.h.

A vector of reference-counting object pointers.

Definition at line 42 of file RemoveRigidMotionOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

RemoveRigidMotionOptimizerState

Definition at line 42 of file RemoveRigidMotionOptimizerState.h.

A vector of reference-counting object pointers.

Definition at line 43 of file RemoveTranslationOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

RemoveTranslationOptimizerState

Definition at line 43 of file RemoveTranslationOptimizerState.h.

 typedef IMP::Vector< ResidueType > IMP::atom::ResidueTypes

Pass or store a set of ResidueType .

Definition at line 27 of file Residue.h.

 typedef IMP::Vector< Selection > IMP::atom::Selections

Pass or store a set of Selection .

Definition at line 241 of file Selection.h.

 typedef IMP::Vector > IMP::atom::Simulators

A vector of reference-counting object pointers.

Definition at line 218 of file Simulator.h.

 typedef IMP::Vector > IMP::atom::SimulatorsTemp

A vector of weak (non reference-counting) pointers to specified objects.

Simulator

Definition at line 218 of file Simulator.h.

A vector of reference-counting object pointers.

Definition at line 52 of file VelocityScalingOptimizerState.h.

A vector of weak (non reference-counting) pointers to specified objects.

VelocityScalingOptimizerState

Definition at line 52 of file VelocityScalingOptimizerState.h.

## Enumeration Type Documentation

 enum IMP::atom::Element

The various elements currently supported/known.

Definition at line 23 of file element.h.

 enum IMP::atom::GetByType

The different types which can be passed to get_by_type()

Definition at line 324 of file atom/Hierarchy.h.

Several protein density value references that have been proposed in the literature.

• ALBER et al. (structure 2005) Estimated value 0.625 (1/1.60) Da/A3
• HARPAZ et al. (1994) Computed value 0.826446=1/1.21 Da/A3
• ANDERSSON and Hovmuller (1998) Computed value 1.22 g/cm3 ~ 0.7347 Da/A3
• TSAI et al. (1999) Computed value 1.40 g/cm3 ~ 0.84309 Da/A3
• QUILLIN and Matthews (2000) Computed value 1.43 g/cm3 ~ 0.86116 Da/A3
• SQUIRE and Himmel (1979), Gekko and Noguchi (1979) Experimental value 1.37 g/cm3 ~ 0.82503 Da/A3

Definition at line 33 of file estimates.h.

Eventually, other types of representation will be supported

Definition at line 25 of file Representation.h.

## Function Documentation

 AtomType IMP::atom::add_atom_type ( std::string name, Element e )

Create a new AtomType.

This creates a new AtomType (returned) and sets up the mapping between the AtomType and the proper element.

Note
This method has not been tested. If you use it, please write a test and remove this comment.
AtomType
atom_type_exists()
 void IMP::atom::add_bonds ( Hierarchy d, const ForceFieldParameters * ffp = get_all_atom_CHARMM_parameters() )

Add bonds using definitions from given force field parameters. Note that, at the moment, all added bonds are reported as IMP::Bond::SINGLE, whether or not they actually are.

Hierarchy
ForceFieldParameters
 void IMP::atom::add_dope_score_data ( atom::Hierarchy h )

Add the dope atom types to the atoms in the hierarchy.

Examples:
atom/dope_and_excluded_volume.cpp.
 void IMP::atom::add_protein_ligand_score_data ( Hierarchy h )

Add the data needed to use ProteinLigandAtomPairScore with the passed Hierarchy.

 void IMP::atom::add_radii ( Hierarchy d, const ForceFieldParameters * ffp = get_all_atom_CHARMM_parameters(), FloatKey radius_key = FloatKey("radius") )

Hierarchy
ForceFieldParameters
Examples:
atom/dope_and_excluded_volume.cpp.
 IMP::core::RigidBody IMP::atom::create_compatible_rigid_body ( Hierarchy h, Hierarchy reference )

Rigidify a molecule or collection of molecules.

This method is identical to create_rigid_body() except that the chosen reference frame is aligned with that of reference (which must have exactly the same set of particles). This allows one to make sure the rigid body is equivalent when you have several copies of the same molecule.

Hierarchy
IMP::core::RigidBody
 Restraint* IMP::atom::create_connectivity_restraint ( const Selections & s, double k, std::string name = "Connectivity%1%" )

Create a restraint connecting the selections.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Selection
 Restraint* IMP::atom::create_connectivity_restraint ( const Selections & s, double x0, double k, std::string name = "Connectivity%1%" )

Create a restraint connecting the selections.

The particles are allowed to be apart by x0 and still count as connected.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Selection
 core::XYZR IMP::atom::create_cover ( const Selection & s, std::string name = std::string() )

Create an XYZR particle which always includes the particles in the selection in its bounding volume. If all the particles in the selection are part of the same rigid body, then the created particle is added as part of that rigid body. Otherwise it uses an IMP::core::Cover to maintain the cover property.

Doing this can be a useful way to accelerate computations when it is OK to replace a potentially complicated set of geometries represented by the selection with a much simpler one.

Selection
 Restraint* IMP::atom::create_distance_restraint ( const Selection & n0, const Selection & n1, double x0, double k, std::string name = "Distance%1%" )

Create a distance restraint between the selections.

This restraint applies a harmonic to the minimum distance between a particle in selection n0 and a particle in selection n1.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Selection
 Restraint* IMP::atom::create_excluded_volume_restraint ( const Hierarchies & hs, double resolution = -1 )

Create an excluded volume restraint for the included molecules. If a value is provided for resolution, then something less than the full resolution representation will be used.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Hierarchy
 Restraint* IMP::atom::create_excluded_volume_restraint ( const Selections & s )

Create an excluded volume restraint for a list of selections.

 Restraint* IMP::atom::create_internal_connectivity_restraint ( const Selection & s, double k, std::string name = "Connectivity%1%" )

Create a restraint connecting the selection.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Selection
 Restraint* IMP::atom::create_internal_connectivity_restraint ( const Selection & s, double x0, double k, std::string name = "Connectivity%1%" )

Create a restraint connecting the selection.

The particles are allowed to be apart by x0 and still count as connected.

If one or more of the selections is a rigid body, this will be used to accelerate the computation.

Selection
 Hierarchy IMP::atom::create_protein ( Model * m, std::string name, double target_radius, int number_of_residues, int first_residue_index = 0, double volume = -1 )

Create a coarse grained molecule.

The coarse grained model is created with a number of spheres based on the resolution and the volume. If the volume is not provided it is estimated based on the number of residues. The protein is created as a molecular hierarchy rooted at p. The leaves are Domain particles with appropriate residue indexes stored and are XYZR particles.

Volume is, as usual, in cubic angstroms.

Currently the function creates a set of balls with radii no greater than target_radius which overlap by 20% and have a volume of their union equal to the passed volume.

The coordinates of the balls defining the protein are not optimized by default, and have garbage coordinate values.

Warning: create_protein has not been well tested yet
Use with caution and please report any bugs found.
Warning: create_protein has not been stabilized and is likely to change without notice.
Hierarchy
 Hierarchy IMP::atom::create_protein ( Model * m, std::string name, double target_radius, const Ints domain_boundaries )

Like the former create_protein(), but it enforces domain splits at the provided domain boundaries. The domain boundaries should be the start of the first domain, any boundaries, and then one past the end of the last domain.

 IMP::core::RigidBody IMP::atom::create_rigid_body ( const Hierarchies & h, std::string name = std::string("created rigid body") )

Rigidify a molecule or collection of molecules.

The rigid body created has all the leaves as members and a member rigid body for each internal node in the tree. The particle created to be the rigid body is returned.

A name can be passed as it is not easy to automatically pick a decent name.

create_aligned_rigid_body()
Hierarchy
IMP::core::RigidBody
 IMP::core::RigidBody IMP::atom::create_rigid_body ( Hierarchy h )
create_rigid_body(const Hierarchies&)
 Hierarchy IMP::atom::create_simplified_along_backbone ( Hierarchy input, int num_res, bool keep_detailed = false )

Simplify every num_res into one particle.

 Hierarchy IMP::atom::create_simplified_along_backbone ( Chain input, const IntRanges & residue_segments, bool keep_detailed = false )

Simplify by breaking at the boundaries provided.

 Hierarchy IMP::atom::create_simplified_assembly_from_volume ( Hierarchy h, double resolution )

Create a new hierarchy that approximates the volume occupied by the old one.

This function is like create_simplified_from_volume() except that the result is divided into Chain and Molecule bits. It assumes that all geometry is rooted under a chain or a molecule.

 Hierarchy IMP::atom::create_simplified_from_volume ( Hierarchy h, double resolution )

Create a new hierarchy that approximates the volume occupied by the old one.

The new hierarchy will contain a number of Fragment particles whose surface (and hence volume) approximates the input hierarchy in the sense of IMP::algebra::get_simplified_from_volume().

The resulting representation has approximately the desired resolution in the sense of get_resolution().

Residue indexes are assigned to the created Fragments from the original residue indexes, and particles containing adjacent residues are connected by bonds.

 CHARMMParameters* IMP::atom::get_all_atom_CHARMM_parameters ( )

The default CHARMM parameters support normal amino acid and nucleic acid residues and the atoms found in them. To use CHARMM with heterogens or non-standard residues, a different CHARMM parameters file must be used.

get_heavy_atom_CHARMM_parameters()
 Atom IMP::atom::get_atom ( Residue rd, AtomType at )

Return a particle atom from the residue.

The residue must be part of a molecular hierarchy.

Atom
Residue
Hierarchy
 bool IMP::atom::get_atom_type_exists ( std::string name )

Return true if that atom type already exists.

 Chain IMP::atom::get_chain ( Hierarchy h )

Get the containing chain or Chain() if there is none.

 std::string IMP::atom::get_chain_id ( Hierarchy h )

Walk up the hierarchy to determine the chain id.

 Atoms IMP::atom::get_charmm_untyped_atoms ( Hierarchy hierarchy )

Get all atoms in the Hierarchy that do not have CHARMM types.

Returns
a list of every Atom in the given Hierarchy that is not also a CHARMMAtom.
remove_charmm_untyped_atoms
 FloatPair IMP::atom::get_component_placement_score ( const core::XYZs & ref1, const core::XYZs & ref2, const core::XYZs & mdl1, const core::XYZs & mdl2 )

Measure the difference between two placements of the same set of points.

Parameters
 [in] ref1 The reference placement of the first component represented by XYZ coordinates [in] ref2 The reference placement of the second component represented by XYZ coordinates [in] mdl1 The modeled placement of the first component represented by XYZ coordinates [in] mdl2 The modeled placement of the second component represented by XYZ coordinates
Returns
the function returns (distance score,angle score)
Note
The measure quantifies the difference between the relative placements of two components compared to a reference relative placement. First, the two compared structures are brought into the same frame of reference by superposing the first pair of equivalent domains (ref1 and mdl1). Next, the distance and angle scores are calculated for the second component using placement_score.
see Topf, Lasker et al Structure, 2008 for details
 int IMP::atom::get_copy_index ( Hierarchy h )

Walk up the hierarchy to find the current copy index.

Returns
the copy index, or -1 if there is none.
 std::string IMP::atom::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::atom::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.
 double IMP::atom::get_diffusion_angle ( double D, double dtfs )

Get the standard deviation of the diffusion angle change in radians given the rigid body diffusion coefficient in A^2/fs and the time step dtfs in fs.

 double IMP::atom::get_diffusion_coefficient ( const algebra::Vector3Ds & displacements, double dt )

Estimate the diffusion coefficient of a particle in A^2/fs from a list of displacements each taken after the given time step dt. Removes any non-random motion component (under the simplifying assumption it is constant over time)

Parameters
 displacements displacement vectors in Angstroms dt time step in femtoseconds
Note
The units of displacements and dt params could be actually arbitrary. The units of thE returned value will simply change to e.g. cm^2/sec if displacements and dt are specified in cm and seconds, resp.
 double IMP::atom::get_diffusion_coefficient ( const algebra::Vector3Ds & displacements, const Floats & dts )

Estimate the diffusion coefficient of a particle in A^2/fs from a list of displacements each taken after the given time step dt. Removes any non-random motion component (under the simplifying assumption it is constant over time)

Parameters
 displacements displacement vectors in Angstroms dts corresponding time steps in femtoseconds, expected to sum to more than zero
Note
The units of displacements and dt params could be actually arbitrary. The units of thE returned value will simply change to e.g. cm^2/sec if displacements and dts are specified in cm and seconds, resp.
 double IMP::atom::get_diffusion_length ( double D, double t )

Return the standard deviation for the Brownian step in Angstroms given the diffusion coefficient D in A^2/fs and the time step t in fs.

 double IMP::atom::get_diffusion_length ( double D, double force, double t, double temp = -1 )

Return the scale for diffusion in Angstroms given the specified force, the diffusion coefficient D and the time step t.

Parameters
 D diffusion coefficient in Angstrom^2/femtosecond force applied force in kcal/mol/A t time step in femtoseconds temp temperature in Kelvin (negative = default IMP temperature of 297.15K)
template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
 double IMP::atom::get_drms ( const Vector3DsOrXYZs0 & m1, const Vector3DsOrXYZs1 & m2 )

Distance-RMS between two sets of points, defined as: sqrt( sum[ (d1ij**2 - d2ij**2)**2]/(4 * sum[d1ij**2]) ) (Levitt, 1992) d1ij - distance between points i and j in set m1 (the "reference" set) d2ij - distance between points i and j in set m2

Parameters
 [in] m1 set of points [in] m2 set of points

Definition at line 147 of file atom/distance.h.

Here is the call graph for this function:

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
 double IMP::atom::get_drmsd ( const Vector3DsOrXYZs0 & m0, const Vector3DsOrXYZs1 & m1 )

Calculate distance the root mean square deviation between two sets of 3D points.

Note
the function assumes correspondence between the two sets of points and does not need rigid alignment. Note that it is different from get_drms().

Definition at line 49 of file atom/distance.h.

Here is the call graph for this function:

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
 double IMP::atom::get_drmsd_Q ( const Vector3DsOrXYZs0 & m0, const Vector3DsOrXYZs1 & m1, double threshold )

Calculate the distance root mean square deviation between two sets of 3D points with a distance threshold

Note
the function assumes correspondence between the two sets of points and does not need rigid alignment. Note that it is different from get_drmsd().

Definition at line 85 of file atom/distance.h.

Here is the call graph for this function:

 double IMP::atom::get_einstein_diffusion_coefficient ( double r, double temp = -1 )

Return the predicted diffusion coefficient in Angstrom squared per femtosecond at the specified radius and temperature.

Parameters
 particle radius in angstroms temp temperature in Kelvin (negative = default IMP temperature of 297.15K)

See wikipedia for a reference and Wikipedia on Viscosity for the values of the viscosity of water used.

 double IMP::atom::get_einstein_rotational_diffusion_coefficient ( double r, double temp = -1 )

Return the predicted diffusion coefficient in radians squared per femtosecond at the specified radius and temeprature.

Parameters
 particle radius in angstroms temp temperature in Kelvin (negative = default IMP temperature of 297.15K)
 std::string IMP::atom::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::atom::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.
 double IMP::atom::get_force_in_femto_newtons ( double force_in_kcal_per_mol_per_angstrom )

Convert force from kcal/mol/A to femtonewtons.

 CHARMMParameters* IMP::atom::get_heavy_atom_CHARMM_parameters ( )

The default CHARMM parameters support normal amino acid and nucleic acid residues and the atoms found in them. To use CHARMM with heterogens or non-standard residues, a different CHARMM parameters file must be used.

get_all_atom_CHARMM_parameters();
 HierarchyTree IMP::atom::get_hierarchy_tree ( Hierarchy h )

Get a graph for the passed Hierarchy.

This can be used, for example, to graphically display the hierarchy in 2D.

Hierarchy
 double IMP::atom::get_kd ( double na, double nb, double nab, double volume )

Compute the concentration in molarity from the passed values

Definition at line 101 of file estimates.h.

Here is the call graph for this function:

 double IMP::atom::get_kt ( double T )

Return kT for a given temperature in units of [kcal/mol].

Value taken from Wikipedia.

Definition at line 18 of file atom/constants.h.

 Hierarchies IMP::atom::get_leaves ( const Selection & h )
Hierarchy
 double IMP::atom::get_mass ( ResidueType c )

Get the mass from the residue type.

 double IMP::atom::get_mass ( const Selection & s )

Get the total mass of a hierarchy, in Daltons.

Selection
 double IMP::atom::get_mass_from_number_of_residues ( unsigned int num_aa )

Estimate the mass of a protein from the number of amino acids.

We use an estimate of 110 Daltons per residue, following Chimera.

The mass is in Daltons.

 double IMP::atom::get_mass_from_volume ( double v, ProteinDensityReference ref = ALBER )

Estimate the mass of a protein from its volume.

Parameters
 [in] v the volume for which we want to output the corresponding mass [in] ref the protein density reference used in the computation. As a default ref is the estimate published in Alber et. al, Structure 2005.
 double IMP::atom::get_maximum_time_step_estimate ( BrownianDynamics * bd )

Repeatedly run the current model with Brownian dynamics at different time steps to try to find the maximum time step that can be used without the model exploding.

 double IMP::atom::get_molarity ( double n, double volume )

Compute the concentration in molarity from the passed values

Definition at line 92 of file estimates.h.

 std::string IMP::atom::get_molecule_name ( Hierarchy h )

Walk up the hierarchy to determine the molecule name.

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
 double IMP::atom::get_native_overlap ( const Vector3DsOrXYZs0 & m1, const Vector3DsOrXYZs1 & m2, double threshold )

Computes the native overlap between two sets of 3D points.

Parameters
 [in] m1 first set [in] m2 second set [in] threshold threshold distance (angstroms) for the calculation
Note
the function assumes correspondence between two sets of points and does not perform rigid alignment.
Returns
the native overlap, as a percentage (from 0 to 100) See generic geometry for more information.

Definition at line 124 of file atom/distance.h.

Here is the call graph for this function:

 Hierarchy IMP::atom::get_next_residue ( Residue rd )

Return the residue from the same chain with one higher index.

If no such residue exists, return Hierarchy().

Residue
Note
Currently, this function only works if the parent of rd is the chain. This should be fixed later. Ask if you need it.

The return type is Hierarchy since the particle representing the next residue might not be a Residue particle.

 char IMP::atom::get_one_letter_code ( ResidueType c )

Get the 1-letter amino acid code from the residue type.

 double IMP::atom::get_pairwise_rmsd_score ( const core::XYZs & ref1, const core::XYZs & ref2, const core::XYZs & mdl1, const core::XYZs & mdl2 )

Measure the RMSD between two placements of the same set of points.

Parameters
 [in] ref1 The reference placement of the first component represented by XYZ coordinates [in] ref2 The reference placement of the second component represented by XYZ coordinates [in] mdl1 The modeled placement of the first component represented by XYZ coordinates [in] mdl2 The modeled placement of the second component represented by XYZ coordinates
Note
The measure quantifies the RMSD between the relative placements of two components compared to a reference relative placement. First, the two compared structures are brought into the same frame of reference by superposing the first pair of equivalent domains (ref1 and mdl1). Next, the RMSD is calculated for the second component
see Lasker et al JMB, 2009 for details
 Atoms IMP::atom::get_phi_dihedral_atoms ( Residue rd )

Return the atoms comprising the phi dihedral.

If all atoms cannot be found, an empty list is returned.

Residue
 FloatPair IMP::atom::get_placement_score ( const core::XYZs & source, const core::XYZs & target )

Measure the difference between two placements of the same set of points.

Parameters
 [in] source The reference placement represented by XYZ coordinates [in] target The modeled placement represented by XYZ coordinates
Note
The measure quantifies the difference between placements of the same structure. A rigid transformation that brings mdl1 to ref1 is reported.
Returns
(d,a), A transformation from mdl to ref represented by a a distance (d) and an angle (a). d is the distance between the centroids of the two placements and a is the axis angle of the rotation matrix between the two placements
Note
see Lasker,Topf et al JMB, 2009 for details
 Hierarchy IMP::atom::get_previous_residue ( Residue rd )

Return the residue from the same chain with one lower index.

If no such residue exists, return Hierarchy().

get_next_residue
 double IMP::atom::get_protein_density_from_reference ( ProteinDensityReference densityReference )

returns the protein density value (in Da/A^3) associated with a given reference

 Atoms IMP::atom::get_psi_dihedral_atoms ( Residue rd )

Return the atoms comprising the psi dihedral.

If all atoms cannot be found, an empty list is returned.

Residue
 double IMP::atom::get_radius_of_gyration ( const ParticlesTemp & ps, bool weighted = true )

Compute the radius of gyration $R_g$ of a set of particles. It is assumed the particles has coordinates (XYZ decorator), and optionally, the $R_g$ may be weighted by mass or radius^3.

Parameters
 ps the particles weighted If true then $R_g$ is weighted by either mass or radius^3, in this order of preference. If none exists, an unweighted $R_g$ is computed. If weighted is true, then it is is assumed that either all particles have mass/radius or none of them do.
Returns
the weighted or unweighted radius of gyration of ps
 double IMP::atom::get_radius_of_gyration ( const Selection & s )
Selection
 Representation IMP::atom::get_representation ( Hierarchy h, bool nothrow = false )

Return the Representation object containing this hierarchy.

 Residue IMP::atom::get_residue ( Atom d, bool nothrow = false )

Return the Residue containing this atom.

The atom must be part of a molecular hierarchy.

Exceptions
 ValueException if no residue is found, unless nothrow is true.
Atom
Residue
Hierarchy
 ResidueType IMP::atom::get_residue_type ( char c )

Get the residue type from the 1-letter amino acid code.

Exceptions
 ValueException if an invalid character is passed.
 double IMP::atom::get_resolution ( Model * m, ParticleIndex pi )

Estimate the resolution of the hierarchy as used by Representation.

It is currently the inverse average radius of the leaves.

 double IMP::atom::get_resolution ( Hierarchy h )

Definition at line 96 of file Representation.h.

Here is the call graph for this function:

template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 >
 double IMP::atom::get_rigid_bodies_drms ( const Vector3DsOrXYZs0 & m1, const Vector3DsOrXYZs1 & m2, const IMP::IntRanges & ranges )

DRMS between two sets of rigid bodies.

Points ij belonging to the same rigid body are not evaluated, as they are the same in both sets

Parameters
 [in] m1 set of points [in] m2 set of points [in] ranges of points considered to be the same rigid body. Eg, (0-29,30-49) means two rigid bodies, first with the 30 first atoms, second with the last 20

Definition at line 179 of file atom/distance.h.

Here is the call graph for this function:

 double IMP::atom::get_rmsd ( const core::XYZs & s0, const core::XYZs & s1 )

Get the rmsd between two lists of particles

 double IMP::atom::get_rmsd ( const Selection & s0, const Selection & s1 )

RMSD on a pair of Selections.

 double IMP::atom::get_rmsd_transforming_first ( const IMP::algebra::Transformation3D & tr, const core::XYZs & s0, const core::XYZs & s1 )

Get the rmsd between two lists of particles

 double IMP::atom::get_rmsd_transforming_first ( const algebra::Transformation3D & tr, const Selection & s0, const Selection & s1 )

RMSD on a pair of Selections.

 double IMP::atom::get_rotational_diffusion_coefficient ( const algebra::Rotation3Ds & orientations, double dt )

Estimate the rotational diffusion coefficient of a particle in Rad^2/fs from a list of rotational orientations taken at consecutive time steps dt (in fs). It is assumed that the mean angular rotation is zero (as it is otherwise complicated to compute from a list of orientations - may require parameter estimation of the folded-normal distribution)

 Float IMP::atom::get_secondary_structure_match_score ( SecondaryStructureResidue ssr1, SecondaryStructureResidue ssr2 )

Compares the secondary structure probabilities of two residues.

Returns
the RMSD of the three probabilities (lower is better match).
 double IMP::atom::get_spring_constant_in_femto_newtons_per_angstrom ( double k_in_kcal_per_mol_per_angstrom_square )

Convert spring constant from kcal/mol/A^2 to femtonewton/A.

 int IMP::atom::get_state_index ( Hierarchy h )

Walk up the hierarchy to find the current state.

Returns
the state index, or -1 if there is none.
 double IMP::atom::get_surface_area ( const Selection & s )

Get the total surface area of a hierarchy, in square angstroms.

The get_surface_area requires CGAL in order to function.

Selection
 algebra::Transformation3D IMP::atom::get_transformation_aligning_first_to_second ( const Selection & s1, const Selection & s2 )

Get the transformation to align two selections.

Definition at line 91 of file bayesianem/utilities.h.

Here is the call graph for this function:

 double IMP::atom::get_volume ( const Selection & s )

Get the total volume of a hierarchy, in cubic angstroms.

The get_volume requires CGAL in order to function.

Selection
 double IMP::atom::get_volume_from_mass ( double m, ProteinDensityReference ref = ALBER )

Estimate the volume of a protein from its mass.

Parameters
 [in] m the mass for which we want to output the corresponding volume [in] ref the protein density reference used in the computation. As a default ref is the estimate published in Alber et. al, Structure 2005.
 double IMP::atom::get_volume_from_residue_type ( ResidueType rt )

Return an estimate for the volume of a given residue.

The volume estimates are taken from Pontius J, Richelle J, Wodak SJ., Deviations from standard atomic volumes as a quality measure for protein crystal structures, J Mol Biol. 1996 Nov 22;264(1):121-36.

Exceptions
 ValueException if a non-standard residue type is passed
 Hierarchy IMP::atom::read_mmcif ( TextInput input, Model * model, PDBSelector * selector = get_default_pdb_selector() )

Read all the molecules in the first model of the mmCIF file.

 Hierarchy IMP::atom::read_mol2 ( TextInput mol2_file, Model * model, Mol2Selector * mol2sel = nullptr )

Create a hierarchy from a Mol2 file.

 Hierarchies IMP::atom::read_multimodel_mmcif ( TextInput input, Model * model, PDBSelector * selector = get_default_pdb_selector() )

Read all models from the mmCIF file.

 Hierarchies IMP::atom::read_multimodel_pdb ( TextInput input, Model * model, PDBSelector * selector = get_default_pdb_selector() )

Read all models from the PDB file.

 Hierarchy IMP::atom::read_pdb ( TextInput input, Model * model, PDBSelector * selector = get_default_pdb_selector(), bool select_first_model = true )

Read all the molecules in the first model of the PDB file.

 void IMP::atom::read_pdb ( TextInput input, int model, Hierarchy h )

Rewrite the coordinates of the passed hierarchy based on the contents of the first model in the PDB file.

The hierarchy must have been created by reading from a PDB file and the atom numbers must correspond between the files. These are not really checked.

A ValueException is thrown if there are insufficient models in the file.

core::RigidMember particles are handled by updating the core::RigidBody algebra::ReferenceFrame3D to align with the loaded particles. Bad things will happen if the loaded coordinates are not a rigid transform of the prior coordinates.

 void IMP::atom::remove_charmm_untyped_atoms ( Hierarchy hierarchy )

Remove any atom from the Hierarchy that does not have a CHARMM type.

 void IMP::atom::setup_as_approximation ( Particle * h, const ParticlesTemp & other )

Set the mass, radius, residues, and coordinates to approximate the passed particles.

 void IMP::atom::setup_as_approximation ( Hierarchy h )

Set the mass, radius, residues, and coordinates to approximate the passed particle based on the leaves of h.

Hierarchy
 SecondaryStructureResidue IMP::atom::setup_coarse_secondary_structure_residue ( const Particles & ssr_ps, Model * mdl, bool winner_takes_all_per_res = false )

Coarsen some SecondaryStructureResidues.

Returns
a SecondaryStructureResidue whose probabilities reflect those of the underlying residues. Useful if you want to represent the secondary structure contents at a coarser level.
Parameters
 [in] ssr_ps The SSR-decorated particles to be combined [in] mdl The IMP Model [in] winner_takes_all_per_res Whether to set prob=1.0 for top scoring secondary structure type
 SecondaryStructureResidues IMP::atom::setup_coarse_secondary_structure_residues ( const Particles & ssr_ps, Model * mdl, int coarse_factor, int start_res_num, bool winner_takes_all_per_res = false )

Groups SecondaryStructureResidues into segments and then coarsens them. Useful if you have a long sequence and want to make several coarse nodes.

Parameters
 [in] ssr_ps The SSR-decorated particles to be combined [in] mdl The IMP Model [in] coarse_factor Group size [in] start_res_num Starting residue number for the provided sequence [in] winner_takes_all_per_res Whether to set prob=1.0 for top scoring secondary structure type
 void IMP::atom::show_molecular_hierarchy ( Hierarchy h )

Print out the molecular hierarchy.

Equivalent to

 void IMP::atom::show_with_representations ( Hierarchy h, std::ostream & out = std::cout )

Traverse through the tree and show atom info, including representations.

 void IMP::atom::transform ( atom::Hierarchy h, const algebra::Transformation3D & tr )

Transform a hierarchy. This is aware of rigid bodies.

Transform a hierarchy, being aware of rigid bodies and intermediate nodes with coordinates. Rigid bodies must either be completely contained within the hierarchy or completely disjoint (no rigid bodies that contain particles in the hierarchy and other particles not in it are allowed).

 void IMP::atom::write_mol2 ( Hierarchy rhd, TextOutput file_name )

Write a ligand hierarchy as a mol2 file.

For now, this has to be a hierarchy created by read_mol2()

 void IMP::atom::write_multimodel_pdb ( const Hierarchies & mhd, TextOutput out )

Write the hierarchies one per frame.

 void IMP::atom::write_pdb ( const Selection & mhd, TextOutput out, unsigned int model = 1 )

Write some atoms to a PDB.

 void IMP::atom::write_pdb_of_c_alphas ( const Selection & mhd, TextOutput out, unsigned int model = 1 )

Write a hierarchy to a PDB as C_alpha atoms.

This method is used to write a non-atomic hierarchy into a PDB in a way that can be read by most programs. If the leaves are Residue particles then the index and residue type will be read from them. Otherwise default values will be used so that each leaf ends up in a separate residue.

## Variable Documentation

 const AtomType IMP::atom::AT_CA
 const AtomType IMP::atom::AT_N
AtomType
 const AtomType IMP::atom::AT_UNKNOWN
AtomType
 const ChainType IMP::atom::DNA
 const ChainType IMP::atom::DPolypeptide

Polypeptide(D)

 const ChainType IMP::atom::DPolysaccharide

Polysaccharide(D)

 const ResidueType IMP::atom::GLY
ResidueType glycine G
 const ChainType IMP::atom::LPolypeptide

Polypeptide(L)

 const ChainType IMP::atom::LPolysaccharide

Polysaccharide(L)

 const ChainType IMP::atom::Polydeoxyribonucleotide

DNA.

 const ChainType IMP::atom::Polyribonucleotide

RNA.

 const ChainType IMP::atom::Protein

Shorthand for IMP::atom::LPolypeptide.

 const ChainType IMP::atom::RNA
 const ResidueType IMP::atom::UNK

Unknown residue.

 const ChainType IMP::atom::UnknownChainType

Unknown chain type.