BALL  1.5.0
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 */
BALL::FlexibleMolecule::id
String id
Definition: flexibleMolecule.h:110
BALL::FlexibleMolecule::conf_ids_
HashMap< String, Conformation * > conf_ids_
Definition: flexibleMolecule.h:114
forEach.h
hashMap.h
BALL::HashMap
HashMap class based on the STL map (containing serveral convenience functions)
Definition: hashMap.h:73
BALL::AtomContainer
Definition: atomContainer.h:29
BALL::Molecule
Definition: molecule.h:29
BALL::FlexibleMolecule
Definition: flexibleMolecule.h:22
BALL::Atom
Definition: atom.h:87
BALL::String
Definition: string.h:56
BALL::FlexibleMolecule::molecule_ownership_
bool molecule_ownership_
Definition: flexibleMolecule.h:115
BALL
Definition: constants.h:12
BALL::HashSet
Definition: hashSet.h:45
BALL::FlexibleMolecule::molecule
Molecule * molecule
Definition: flexibleMolecule.h:112
BALL::FlexibleMolecule::conformations
vector< Conformation * > conformations
Definition: flexibleMolecule.h:113
BALL_SIZE_TYPE
BALL::Conformation
Definition: conformation.h:24
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
conformation.h
BALL::Ligand
FlexibleMolecule Ligand
Definition: flexibleMolecule.h:121
molecule.h
exception.h