BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rGroupAssembler.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marc Röttig $
3 // $Authors: Michael Betz, Marc Röttig $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_STRUCTURE_RGROUP_ASSEMBLER_H
7 #define BALL_STRUCTURE_RGROUP_ASSEMBLER_H
8 
9 #include <map>
10 #include <vector>
11 #include <BALL/KERNEL/forEach.h>
13 #include <BALL/KERNEL/molecule.h>
14 #include <BALL/KERNEL/system.h>
15 #include <BALL/DATATYPE/string.h>
16 #include <BALL/KERNEL/atom.h>
17 
18 
19 namespace BALL
20 {
22  {
23  public:
24  RGroupAssembler(String& scaffold, std::map<String, std::vector<String> > & rgroups);
25  RGroupAssembler(std::vector<String>& scaffolds, std::map<String, std::vector<String> > & rgroups);
26  ~RGroupAssembler();
27 
29  Molecule* generateNextMolecule();
30 
31  private:
32  void initCounter_();
33  bool incrementCounter_();
34  void appendMoiety_(AtomContainer* molecule, AtomContainer* moiety, String pm_atom);
35  bool isPlacemark_(const String& s);
36 
37  std::vector<System*> scaffolds_;
38  std::map<String, std::vector<System*> > moieties_;
39 
40  unsigned int scaffold_counter_;
41  std::map<String, unsigned int> moiety_counter_;
42  std::vector<std::map<String, unsigned int> > maxcounter_;
43 
44  bool not_finished_;
45  };
46 }
47 
48 #endif /* BALL_STRUCTURE_RGROUP_ASSEMBLER_H */
#define BALL_EXPORT
Definition: COMMON/global.h:50