IMP logo
IMP Reference Guide  2.20.2
The Integrative Modeling Platform
CCDLoopClosure.h
Go to the documentation of this file.
1 /**
2  * \file IMP/kinematics/CCDLoopClosure.h
3  * \brief
4  *
5  * \authors Dina Schneidman, Yannick Spill
6  * Copyright 2007-2022 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPKINEMATICS_CCD_LOOP_CLOSURE_H
11 #define IMPKINEMATICS_CCD_LOOP_CLOSURE_H
12 
13 #include <IMP/kinematics/kinematics_config.h>
15 #include <IMP/algebra/Vector3D.h>
16 
17 IMPKINEMATICS_BEGIN_NAMESPACE
18 
19 //! CCD loop closure
20 /** see Canutescu and Dunbrack, Protein Science
21  */
22 class IMPKINEMATICSEXPORT CCDLoopClosure {
23 public:
24  //! Constructor.
25  /** F1-3 are the target points for closed loop
26  M1-3 are the points in the model
27  */
29  const algebra::Vector3D& F1,
30  const algebra::Vector3D& F2,
31  const algebra::Vector3D& F3,
32  core::XYZ M1, core::XYZ M2, core::XYZ M3);
33 
34  bool close_loop();
35 
36  private:
37  // computes the distance between target and mobile loop anchors
38  double distance_function_S() const;
39 
40  void optimize_joint(unsigned int joint_id);
41 
42  private:
44  algebra::Vector3D F1_, F2_, F3_; // target loop anchors
45  core::XYZ M1_, M2_, M3_; // mobile version of loop anchors
46 
47 };
48 
49 IMPKINEMATICS_END_NAMESPACE
50 
51 #endif /* IMPKINEMATICS_CCD_LOOP_CLOSURE_H */
A decorator for a particle with x,y,z coordinates.
Definition: XYZ.h:30
VectorD< 3 > Vector3D
Definition: VectorD.h:425
Simple 3D vector class.
functionality for defining various revolute kinematic joints between rigid bodies as part of a kinema...