IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
IMP::atom::CHARMMParameters Class Reference

CHARMM force field parameters. More...

#include <IMP/atom/CHARMMParameters.h>

+ Inheritance diagram for IMP::atom::CHARMMParameters:

Detailed Description

CHARMM force field parameters.

This class reads in topology and parameter files in CHARMM format and stores the information.

It does not actually evaluate the force field itself - there are other classes that use the parameters provided by this class to do that. For example, the LennardJonesPairScore or CoulombPairScore evaluate the nonbond terms of the CHARMM force field, while CHARMMStereochemistryRestraint (or BondSingletonScore, AngleSingletonScore, DihedralSingletonScore and ImproperSingletonScore) cover the bond terms.

Typically, the create_topology() method is used to create a new CHARMMTopology object for a given Hierarchy; that object can then be used to assign atomic radii, bonds, etc.

Definition at line 86 of file CHARMMParameters.h.

Public Member Functions

 CHARMMParameters (TextInput topology_file_name, TextInput par_file_name=TextInput(), bool translate_names_to_pdb=false)
 Construction with CHARMM topology (and optionally parameters) file. More...
 
Particles create_angles (Particles bonds) const
 Auto-generate Angle particles from the passed list of Bond particles. More...
 
Particles create_dihedrals (Particles bonds) const
 Auto-generate Dihedral particles from the passed list of Bond particles. More...
 
CHARMMTopologycreate_topology (Hierarchy hierarchy) const
 Create topology that corresponds to the primary sequence of the Hierarchy. More...
 
const CHARMMBondParametersget_angle_parameters (std::string type1, std::string type2, std::string type3) const
 Get parameters for the angle between the three given CHARMM atom types. More...
 
const CHARMMBondParametersget_bond_parameters (std::string type1, std::string type2) const
 Get bond parameters for the bond between the two given CHARMM atom types. More...
 
CHARMMDihedralParametersList get_dihedral_parameters (std::string type1, std::string type2, std::string type3, std::string type4) const
 Get parameters for the dihedral between the four given CHARMM atom types. More...
 
const CHARMMDihedralParametersget_improper_parameters (std::string type1, std::string type2, std::string type3, std::string type4) const
 Get parameters for the improper between the four given CHARMM atom types. More...
 
virtual std::string get_type_name () const override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
- Public Member Functions inherited from IMP::atom::ForceFieldParameters
void add_bonds (Hierarchy mhd) const
 add bonds to the structure defined in the hierarchy More...
 
void add_radii (Hierarchy mhd, double scale=1.0, FloatKey radius_key=FloatKey("radius")) const
 Add or replace radii in the structure defined in the hierarchy. More...
 
void add_well_depths (Hierarchy mhd) const
 Add LennardJones well depths to the structure. More...
 
Float get_epsilon (Atom atom) const
 get epsilon for non bonded vdW More...
 
Float get_radius (Atom atom) const
 get radius More...
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Residue topology

The class stores the topology of each residue type as defined in the topology file, as a set of CHARMMIdealResidueTopology objects.

void add_residue_topology (CHARMMIdealResidueTopology *res)
 
CHARMMIdealResidueTopologyget_residue_topology (ResidueType type) const
 

Patches

The class stores patches as defined in the topology file, as a set of CHARMMPatch objects.

void add_patch (CHARMMPatch *patch)
 
CHARMMPatchget_patch (std::string name) const
 

Additional Inherited Members

- Protected Types inherited from IMP::atom::ForceFieldParameters
typedef std::map< AtomType,
ChargePair > 
AtomTypeMap
 
typedef std::pair< std::string,
double > 
ChargePair
 
- Protected Member Functions inherited from IMP::atom::ForceFieldParameters
void add_bonds (Residue rd) const
 
void add_bonds (Residue rd1, Residue rd2) const
 
Float get_epsilon (const String &force_field_atom_type) const
 
Float get_radius (const String &force_field_atom_type) const
 
- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 
- Protected Attributes inherited from IMP::atom::ForceFieldParameters
std::map< ResidueType,
AtomTypeMap > 
atom_res_type_2_force_field_atom_type_
 
std::map< String, FloatPairforce_field_2_vdW_
 
std::map< ResidueType, Vector
< Bond > > 
residue_bonds_
 

Constructor & Destructor Documentation

IMP::atom::CHARMMParameters::CHARMMParameters ( TextInput  topology_file_name,
TextInput  par_file_name = TextInput(),
bool  translate_names_to_pdb = false 
)

Construction with CHARMM topology (and optionally parameters) file.

For addition of atom types, the topology file alone is enough; for adding bonds and radii, both files are needed.

Atom and residue naming in the topology file differs slightly between CHARMM and PDB. If translate_names_to_pdb is set to true, some simple translations are done to map CHARMM-style names to PDB-style for standard amino acids and some other commonly-used residues and patches. (This translation has already been done for the topology files included with IMP and MODELLER, so it is only needed for topology files taken from CHARMM itself or other sources.) The modifications are as follows:

  • CHARMM HSD (unprotonated histidine) is mapped to PDB HIS.
  • CD1 and CD2 atoms in LEU are swapped.
  • OT1 and OT2 in CTER are mapped to O and OXT.
  • CHARMM hydrogen names are mapped to PDB equivalents.
  • CHARMM NTER, GLYP and CTER residues are modified slightly to avoid removing the HN, HN and O atoms respectively, and adding excess bonds to these atoms.

Member Function Documentation

Particles IMP::atom::CHARMMParameters::create_angles ( Particles  bonds) const

Auto-generate Angle particles from the passed list of Bond particles.

The angles consist of all unique pairs of bonds which share an endpoint. If no parameters are found for an angle, it is simply created without those parameters.

The list of newly-created Angle particles can be passed to a StereochemistryPairFilter to exclude 1-3 interactions from the nonbonded list, or to an AngleSingletonScore to score each angle.

Returns
a list of the newly-created Angle particles.
See Also
CHARMMTopology::add_bonds().
Particles IMP::atom::CHARMMParameters::create_dihedrals ( Particles  bonds) const

Auto-generate Dihedral particles from the passed list of Bond particles.

The dihedrals consist of all unique triples of bonds which form dihedrals. If no parameters are found for a dihedral, it is simply created without those parameters; if multiple sets of parameters are found, multiple copies of the dihedral are created, each with one set of parameters.

The list of newly-created Dihedral particles can be passed to a StereochemistryPairFilter to exclude 1-4 interactions from the nonbonded list, or to a DihedralSingletonScore to score each dihedral.

If dihedrals are explicitly listed in the CHARMM topology file, they can be created if desired by calling CHARMMTopology::add_dihedrals() rather than this function.

Returns
a list of the newly-created Dihedral particles.
See Also
CHARMMTopology::add_bonds().
CHARMMTopology* IMP::atom::CHARMMParameters::create_topology ( Hierarchy  hierarchy) const

Create topology that corresponds to the primary sequence of the Hierarchy.

Residues are placed in different segments if they are deemed to be "disconnected", i.e. they have different Chains as parents, they are in different Fragments and the fragments are not consecutive (the last residue index of the first Fragment and the first index of the second Fragment are not consecutive), or their ancestors are different (e.g. one Residue lives in a Chain and another does not have a Chain parent)

const CHARMMBondParameters& IMP::atom::CHARMMParameters::get_angle_parameters ( std::string  type1,
std::string  type2,
std::string  type3 
) const

Get parameters for the angle between the three given CHARMM atom types.

The atom types may match in either forward or reverse order.

Exceptions
IndexExceptionif no parameters are present.

Definition at line 214 of file CHARMMParameters.h.

const CHARMMBondParameters& IMP::atom::CHARMMParameters::get_bond_parameters ( std::string  type1,
std::string  type2 
) const

Get bond parameters for the bond between the two given CHARMM atom types.

The atom types may match in any order.

Exceptions
IndexExceptionif no parameters are present.

Definition at line 199 of file CHARMMParameters.h.

CHARMMDihedralParametersList IMP::atom::CHARMMParameters::get_dihedral_parameters ( std::string  type1,
std::string  type2,
std::string  type3,
std::string  type4 
) const

Get parameters for the dihedral between the four given CHARMM atom types.

The atom types may match in either forward or reverse order. When looking for a match in the library, wildcards are considered; an atom type of X in the library will match any atom type. The most specific match from the library is returned.

Multiple sets of parameters can be specified for the same combination of atom types in the library, in which case all of them are returned.

Exceptions
IndexExceptionif no parameters are present.

Definition at line 239 of file CHARMMParameters.h.

const CHARMMDihedralParameters& IMP::atom::CHARMMParameters::get_improper_parameters ( std::string  type1,
std::string  type2,
std::string  type3,
std::string  type4 
) const

Get parameters for the improper between the four given CHARMM atom types.

The atom types may match in either forward or reverse order. When looking for a match in the library, wildcards are considered; an atom type of X in the library will match any atom type. The most specific match from the library is returned.

Exceptions
IndexExceptionif no parameters are present.

Definition at line 286 of file CHARMMParameters.h.

virtual ::IMP::VersionInfo IMP::atom::CHARMMParameters::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 339 of file CHARMMParameters.h.


The documentation for this class was generated from the following file: