IMP logo
IMP Reference Guide  2.20.2
The Integrative Modeling Platform
HelixRestraint.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/HelixRestraint.h
3  * \brief Class to maintain helix shape (dihedrals + elastic network)
4  *
5  * Copyright 2007-2022 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPATOM_HELIX_RESTRAINT_H
10 #define IMPATOM_HELIX_RESTRAINT_H
11 
12 #include <IMP/atom/atom_config.h>
15 #include <IMP/Pointer.h>
16 #include <IMP/Restraint.h>
17 #include "angle_decorators.h"
18 #include "Atom.h"
19 #include "Residue.h"
20 
21 IMPATOM_BEGIN_NAMESPACE
22 
23 //! Restraint a set of residues to use ideal helix dihedrals and bonds
24 class IMPATOMEXPORT HelixRestraint : public Restraint {
27  ParticleIndexPairs bonds_ON_;
28  public:
29  HelixRestraint(Residues rs, bool ideal=true);
30 
31  //! Count bonds
32  int get_number_of_bonds(){return bonds_ON_.size();}
33 
34  //! Count dihedrals
35  int get_number_of_dihedrals(){return dihedral_rs_.size();}
36 
38  const override;
39  virtual IMP::ModelObjectsTemp do_get_inputs() const override;
41 };
42 
43 IMPATOM_END_NAMESPACE
44 
45 #endif /* IMPATOM_HELIX_RESTRAINT_H */
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Definition: object_macros.h:25
Simple atom decorator.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
A more IMP-like version of the std::vector.
Definition: Vector.h:42
A decorator for Residues.
int get_number_of_bonds()
Count bonds.
A Score on the distance between a pair of particles.
A nullptr-initialized pointer to an IMP Object.
int get_number_of_dihedrals()
Count dihedrals.
Decorators for angles.
Abstract base class for all restraints.
Modeller-style multiple binormal (phi/psi) restraint.
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.
A restraint is a term in an IMP ScoringFunction.
Definition: Restraint.h:56
Restraint a set of residues to use ideal helix dihedrals and bonds.