1 |
/********************************************************************** |
2 |
patty.h - Programmable atom typer. |
3 |
|
4 |
Copyright (C) 1998-2001 by OpenEye Scientific Software, Inc. |
5 |
Some portions Copyright (C) 2001-2005 by Geoffrey R. Hutchison |
6 |
|
7 |
This file is part of the Open Babel project. |
8 |
For more information, see <http://openbabel.sourceforge.net/> |
9 |
|
10 |
This program is free software; you can redistribute it and/or modify |
11 |
it under the terms of the GNU General Public License as published by |
12 |
the Free Software Foundation version 2 of the License. |
13 |
|
14 |
This program is distributed in the hope that it will be useful, |
15 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 |
GNU General Public License for more details. |
18 |
***********************************************************************/ |
19 |
|
20 |
#ifndef OB_PATTY_H |
21 |
#define OB_PATTY_H |
22 |
|
23 |
namespace OpenBabel |
24 |
{ |
25 |
#define PT_CATION 1 |
26 |
#define PT_ANION 2 |
27 |
#define PT_ACCEPTOR 3 |
28 |
#define PT_POLAR 4 |
29 |
#define PT_DONOR 5 |
30 |
#define PT_HYDROPHOBIC 6 |
31 |
#define PT_OTHER 7 |
32 |
#define PT_METAL 8 |
33 |
|
34 |
// class introduction in patty.cpp |
35 |
class OBAPI patty |
36 |
{ |
37 |
std::vector<OBSmartsPattern*> _sp; |
38 |
std::vector<std::string> smarts; |
39 |
std::vector<std::string> typ; |
40 |
bool debug; |
41 |
|
42 |
public : |
43 |
|
44 |
patty() |
45 |
{ |
46 |
debug = false; |
47 |
} |
48 |
patty(char *s) |
49 |
{ |
50 |
debug = false; |
51 |
read_rules(std::string(s)); |
52 |
} |
53 |
|
54 |
patty(const std::string &s) |
55 |
{ |
56 |
debug = false; |
57 |
read_rules(s); |
58 |
} |
59 |
~patty() |
60 |
{ |
61 |
std::vector<OBSmartsPattern*>::iterator i; |
62 |
for (i = _sp.begin();i != _sp.end();i++) |
63 |
delete *i; |
64 |
} |
65 |
void debug_on() |
66 |
{ |
67 |
debug = true; |
68 |
} |
69 |
void debug_off() |
70 |
{ |
71 |
debug = false; |
72 |
} |
73 |
void read_rules(const std::string &infile); |
74 |
void assign_rules(std::vector<std::string> &rules); |
75 |
void assign_types(OBMol &mol,std::vector<std::string> &atm_typ); |
76 |
void assign_types(OBMol &mol,std::vector<int> &atm_typ); |
77 |
int type_to_int(const std::string &type, bool failOnUndefined= false); |
78 |
int Istype(const std::string &type);//!< return atom type index, 0 otherwise |
79 |
}; |
80 |
|
81 |
} // end namespace OpenBabel |
82 |
|
83 |
#endif // OB_PATTY_H |
84 |
|
85 |
//! \file patty.h |
86 |
//! \brief Programmable atom typer. (abbreviated P.At.Ty.) |