BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
flexibleMolecule.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marc Röttig $
3 // $Authors: Marc Röttig, Marcel Schumann $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_DOCKING_COMMON_FLEXIBLEMOLECULE_H
7 #define BALL_DOCKING_COMMON_FLEXIBLEMOLECULE_H
8 
9 #include <BALL/KERNEL/molecule.h>
10 #include <BALL/KERNEL/forEach.h>
11 #include <BALL/DATATYPE/hashMap.h>
13 #include <BALL/COMMON/exception.h>
14 #include <iostream>
15 
16 namespace BALL
17 {
23  {
24  public:
25 
26  /* Constructor.
27  */
29 
31  FlexibleMolecule(const FlexibleMolecule& flexmol);
32 
35  virtual ~FlexibleMolecule();
36 
40  virtual void addConformation(Conformation* conf);
41 
43  void clearConformations();
44 
49  static void generateTopologyHash(const AtomContainer* mol, String& hash, bool ignore_hydrogen = false);
50 
51 
55  Size getNumberOfConformations();
56 
60  const vector < Conformation* > & getConformations() const;
61 
65  String getConformationId(Position i);
66 
70  Conformation* getConformation(Position i);
71 
75  Molecule* getConformer(Position i);
76 
80  Molecule* getConformerById(String id);
81 
85  Conformation* getConformationById(String id);
86 
90  bool hasConformation(String id);
91 
95  Molecule* getParent();
96 
100  String getId() const;
101 
105  void setId(String id);
106 
107  void removeMoleculeOwnership();
108 
109  protected:
111  bool checkCompatibility(Conformation* conf);
113  vector < Conformation* > conformations;
116 
117  private:
118  static void calculatePseudoSmile(const Atom* atom, String& smile, HashSet<const Atom*>& visited_atoms, bool ignore_hydrogen);
119  };
120 
122 }
123 
124 #endif /* BALL_DOCKING_COMMON_FLEXIBLEMOLECULE_H */
FlexibleMolecule Ligand
vector< Conformation * > conformations
HashMap< String, Conformation * > conf_ids_
HashMap class based on the STL map (containing serveral convenience functions)
Definition: hashMap.h:73
#define BALL_EXPORT
Definition: COMMON/global.h:50