IMP
2.0.1
The Integrative Modeling Platform
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
CHARMMStereochemistryRestraint.h
Go to the documentation of this file.
1
/**
2
* \file IMP/atom/CHARMMStereochemistryRestraint.h
3
* \brief Class to maintain CHARMM stereochemistry.
4
*
5
* Copyright 2007-2013 IMP Inventors. All rights reserved.
6
*
7
*/
8
9
#ifndef IMPATOM_CHARMM_STEREOCHEMISTRY_RESTRAINT_H
10
#define IMPATOM_CHARMM_STEREOCHEMISTRY_RESTRAINT_H
11
12
#include <IMP/atom/atom_config.h>
13
#include <
IMP/Pointer.h
>
14
#include <
IMP/Restraint.h
>
15
#include "
StereochemistryPairFilter.h
"
16
#include "
Hierarchy.h
"
17
#include "
charmm_segment_topology.h
"
18
#include "
BondSingletonScore.h
"
19
#include "
AngleSingletonScore.h
"
20
#include "
DihedralSingletonScore.h
"
21
#include "
ImproperSingletonScore.h
"
22
23
IMPATOM_BEGIN_NAMESPACE
24
25
//! Enforce CHARMM stereochemistry on the given Hierarchy.
26
/** It is assumed that the Hierarchy has already had CHARMM atom types
27
assigned and conforms with the CHARMM topology information
28
(for example, by calling CHARMMTopology::setup_hierarchy() first).
29
30
\note This is a convenient high-level wrapper; the bonds, angles,
31
dihedrals and impropers can also be created manually and
32
evaluated using standard IMP building blocks - for example,
33
angles can be created using CHARMMParameters::create_angles()
34
and then evaluated using an AngleSingletonScore in combination
35
with a container::SingletonsRestraint.
36
*/
37
class
IMPATOMEXPORT
CHARMMStereochemistryRestraint
:
public
Restraint
38
{
39
Particles bonds_, angles_, dihedrals_, impropers_;
40
IMP::OwnerPointer<BondSingletonScore> bond_score_;
41
IMP::OwnerPointer<AngleSingletonScore> angle_score_;
42
IMP::OwnerPointer<DihedralSingletonScore> dihedral_score_;
43
IMP::OwnerPointer<ImproperSingletonScore> improper_score_;
44
public
:
45
CHARMMStereochemistryRestraint
(
Hierarchy
h,
CHARMMTopology
*topology);
46
47
//! Get a PairFilter that excludes all stereochemical pairs.
48
/** \return a StereochemistryPairFilter that excludes all 1-2 (bond),
49
1-3 (angle) and 1-4 (dihedral) pairs.
50
*/
51
StereochemistryPairFilter
*get_pair_filter();
52
53
IMP_RESTRAINT
(
CHARMMStereochemistryRestraint
);
54
};
55
56
IMPATOM_END_NAMESPACE
57
58
#endif
/* IMPATOM_CHARMM_STEREOCHEMISTRY_RESTRAINT_H */