BALL  1.5.0
MOL2File.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_FORMAT_MOL2FILE_H
6 #define BALL_FORMAT_MOL2FILE_H
7 
8 #ifndef BALL_FORMAT_GENERICMOLFILE_H
10 #endif
11 
12 #ifndef BALL_MATHS_VECTOR3_H
13 # include <BALL/MATHS/vector3.h>
14 #endif
15 
16 #ifndef BALL_KERNEL_ATOMCONTAINER_H
18 #endif
19 
20 namespace BALL
21 {
22  class Atom;
23  class System;
24 
31  : public GenericMolFile
32  {
33  public:
34 
37  {
39  bool is_static;
45 
46  vector<Index> static_members;
48  };
49 
53 
56  static const String TRIPOS;
58 
62 
65  MOL2File();
66 
70  MOL2File(const String& filename, File::OpenMode open_mode = std::ios::in);
71 
73  virtual ~MOL2File();
74 
76 
80 
84  virtual bool write(const System& system);
85 
89  virtual bool read(System& system);
90 
94  virtual Molecule* read();
95 
99  virtual bool write(const Molecule& molecule);
100 
102  const MOL2File& operator = (const MOL2File& file);
103 
105  Size getNumberOfSets() const { return sets_.size(); }
106 
108  SetStruct& getSet(Position i) { return sets_[i]; }
109 
111  const SetStruct& getSet(Position i) const { return sets_[i]; }
112 
114 
115  protected:
116 
117  void readAtomSection_();
118 
119  void readBondSection_();
120 
121  void readMoleculeSection_();
122 
123  void readSetSection_();
124 
125  void readSubstructureSection_();
126 
127  void readCommentSection_();
128 
129  String getSybylType_(const Atom& atom) const;
130 
131  bool nextLine_();
132 
133  void clear_();
134 
135  bool buildAll_(Molecule& molecule);
136 
137  bool containsAtomChilds_(AtomContainerConstIterator& frag_it);
138 
140  {
146  float charge;
147  };
148 
150  {
154  };
155 
157  {
167  };
168 
170  {
179  };
180 
182  {
185  };
186 
187 
188  vector<AtomStruct> atoms_;
189  vector<BondStruct> bonds_;
190  vector<SetStruct> sets_;
191  vector<SubstructureStruct> substructures_;
192  vector<CommentStruct> comments_;
194 
196  static const Size MAX_LENGTH_;
197  char buffer_[4096];
200  };
201 } // namespace BALL
202 
203 #endif // BALL_FORMAT_MOL2FILE_H
BALL::MOL2File::getSet
const SetStruct & getSet(Position i) const
Return the i-th TRIPOS set, const version. NOTE: no range checking is performed.
Definition: MOL2File.h:111
BALL::MOL2File::MoleculeStruct::comment
String comment
Definition: MOL2File.h:166
BALL::Molecule
Definition: molecule.h:29
BALL::MOL2File::found_next_header_
bool found_next_header_
Definition: MOL2File.h:199
BALL::MOL2File::SubstructureStruct::sub_type
String sub_type
Definition: MOL2File.h:176
BALL::MOL2File::SubstructureStruct::substructure_type
String substructure_type
Definition: MOL2File.h:173
BALL::MOL2File::SetStruct
A class used for storing TRIPOS sets.
Definition: MOL2File.h:36
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::MOL2File::bonds_
vector< BondStruct > bonds_
Definition: MOL2File.h:189
BALL::MOL2File::AtomStruct::substructure
Position substructure
Definition: MOL2File.h:144
BALL::MOL2File::SubstructureStruct::dictionary_type
Size dictionary_type
Definition: MOL2File.h:174
BALL::MOL2File::MoleculeStruct::number_of_bonds
Size number_of_bonds
Definition: MOL2File.h:160
BALL::MOL2File::getSet
SetStruct & getSet(Position i)
Return the i-th TRIPOS set. NOTE: no range checking is performed.
Definition: MOL2File.h:108
BALL::ConstBidirectionalIterator
Definition: bidirectionalIterator.h:23
BALL::MOL2File::MAX_LENGTH_
static const Size MAX_LENGTH_
Definition: MOL2File.h:196
vector3.h
BALL::MOL2File::TRIPOS
static const String TRIPOS
Definition: MOL2File.h:56
BALL::MOL2File::SubstructureStruct::chain
String chain
Definition: MOL2File.h:175
BALL::MOL2File::SubstructureStruct
Definition: MOL2File.h:169
BALL::MOL2File::SubstructureStruct::root_atom
Size root_atom
Definition: MOL2File.h:172
BALL::TVector3< float >
BALL::MOL2File::atoms_
vector< AtomStruct > atoms_
Definition: MOL2File.h:188
BALL_SIZE_TYPE
BALL::MOL2File::AtomStruct::charge
float charge
Definition: MOL2File.h:146
BALL::System
Definition: KERNEL/system.h:38
BALL::MOL2File::MoleculeStruct::number_of_substructures
Size number_of_substructures
Definition: MOL2File.h:161
BALL::MOL2File::SubstructureStruct::name
String name
Definition: MOL2File.h:171
BALL::MOL2File::BondStruct
Definition: MOL2File.h:149
BALL::MOL2File::getNumberOfSets
Size getNumberOfSets() const
Return the number of TRIPOS-Sets defined in this instance.
Definition: MOL2File.h:105
BALL::Atom
Definition: atom.h:87
BALL::MOL2File::CommentStruct::name
String name
Definition: MOL2File.h:183
BALL
Definition: constants.h:12
BALL::String
Definition: string.h:56
BALL::MOL2File::MoleculeStruct::name
String name
Definition: MOL2File.h:158
BALL::MOL2File::SetStruct::status
String status
Definition: MOL2File.h:42
BALL::MOL2File::MoleculeStruct::charge_type
String charge_type
Definition: MOL2File.h:165
BALL::MOL2File::MoleculeStruct::number_of_atoms
Size number_of_atoms
Definition: MOL2File.h:159
BALL::MOL2File::substructures_
vector< SubstructureStruct > substructures_
Definition: MOL2File.h:191
BALL::MOL2File::line_
String line_
Definition: MOL2File.h:198
BALL::PDB::Atom
char Atom[5]
Definition: PDBdefs.h:257
BALL::MOL2File::BondStruct::atom2
Position atom2
Definition: MOL2File.h:152
BALL::MOL2File::number_of_lines_
Size number_of_lines_
Definition: MOL2File.h:195
BALL::MOL2File::AtomStruct::substructure_name
String substructure_name
Definition: MOL2File.h:145
BALL::MOL2File::SetStruct::number_of_members
Size number_of_members
Definition: MOL2File.h:44
BALL::File::OpenMode
std::ios::openmode OpenMode
Definition: file.h:165
BALL::MOL2File::MoleculeStruct::type
String type
Definition: MOL2File.h:164
BALL::MOL2File::SetStruct::dynamic_rule
String dynamic_rule
Definition: MOL2File.h:47
BALL::GenericMolFile
Definition: genericMolFile.h:56
BALL::MOL2File::AtomStruct::position
Vector3 position
Definition: MOL2File.h:142
BALL::MOL2File::BondStruct::atom1
Position atom1
Definition: MOL2File.h:151
BALL::MOL2File::CommentStruct::value
String value
Definition: MOL2File.h:184
BALL::MOL2File::BondStruct::type
String type
Definition: MOL2File.h:153
BALL::MOL2File::molecule_
MoleculeStruct molecule_
Definition: MOL2File.h:193
BALL::MOL2File
Definition: MOL2File.h:30
BALL::MOL2File::MoleculeStruct::number_of_features
Size number_of_features
Definition: MOL2File.h:162
BALL::MOL2File::CommentStruct
Definition: MOL2File.h:181
BALL::MOL2File::SetStruct::name
String name
Definition: MOL2File.h:38
BALL::MOL2File::MoleculeStruct
Definition: MOL2File.h:156
BALL::MOL2File::AtomStruct::type
String type
Definition: MOL2File.h:143
BALL::MOL2File::SubstructureStruct::inter_bonds
Size inter_bonds
Definition: MOL2File.h:177
BALL::MOL2File::SetStruct::obj_type
String obj_type
Definition: MOL2File.h:40
BALL::MOL2File::SetStruct::comment
String comment
Definition: MOL2File.h:43
BALL::MOL2File::SubstructureStruct::comment
String comment
Definition: MOL2File.h:178
BALL::MOL2File::SetStruct::static_members
vector< Index > static_members
Definition: MOL2File.h:46
atomContainer.h
BALL::MOL2File::MoleculeStruct::number_of_sets
Size number_of_sets
Definition: MOL2File.h:163
BALL::MOL2File::SetStruct::is_static
bool is_static
Definition: MOL2File.h:39
BALL::MOL2File::comments_
vector< CommentStruct > comments_
Definition: MOL2File.h:192
BALL::MOL2File::SetStruct::sub_type
String sub_type
Definition: MOL2File.h:41
BALL::MOL2File::AtomStruct
Definition: MOL2File.h:139
BALL::MOL2File::AtomStruct::name
String name
Definition: MOL2File.h:141
genericMolFile.h
BALL::MOL2File::sets_
vector< SetStruct > sets_
Definition: MOL2File.h:190