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 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.
Public Member Functions | |
CHARMMParameters (const String &topology_file_name, const String &par_file_name=std::string()) | |
Construction with CHARMM topology (and optionally parameters) file. | |
CHARMMTopology * | create_topology (Hierarchy hierarchy) const |
Create topology that corresponds to the primary sequence of the Hierarchy. | |
Particles | generate_angles (Particles bonds) const |
Auto-generate Angle particles from the passed list of Bond particles. | |
Particles | generate_dihedrals (Particles bonds) const |
Auto-generate Dihedral particles from the passed list of Bond particles. | |
const CHARMMBondParameters * | 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. | |
const CHARMMBondParameters * | get_bond_parameters (std::string type1, std::string type2) const |
Get bond parameters for the bond between the two given CHARMM atom types. | |
std::vector < CHARMMDihedralParameters > | 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. | |
const CHARMMDihedralParameters * | 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. | |
virtual std::string | get_type_name () const |
virtual ::IMP::VersionInfo | get_version_info () const |
Patches | |
void | add_patch (CHARMMPatch &patch) |
const CHARMMPatch & | get_patch (std::string name) const |
CHARMMPatch & | get_patch (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) |
const CHARMMIdealResidueTopology & | get_residue_topology (std::string name) const |
CHARMMIdealResidueTopology & | get_residue_topology (ResidueType type) |
Friends | |
template<class T > | |
void | IMP::internal::unref (T *) |
IMP::atom::CHARMMParameters::CHARMMParameters | ( | const String & | topology_file_name, | |
const String & | par_file_name = std::string() | |||
) |
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.
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.
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.
const CHARMMBondParameters* IMP::atom::CHARMMParameters::get_angle_parameters | ( | std::string | type1, | |
std::string | type2, | |||
std::string | type3 | |||
) | const |
const CHARMMBondParameters* IMP::atom::CHARMMParameters::get_bond_parameters | ( | std::string | type1, | |
std::string | type2 | |||
) | const |
std::vector<CHARMMDihedralParameters> 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.
If no parameters are present, an empty vector is returned.
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.
If no parameters are present, NULL is returned.