ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/openbabel/patty.hpp
Revision: 2440
Committed: Wed Nov 16 19:42:11 2005 UTC (18 years, 7 months ago) by tim
File size: 2307 byte(s)
Log Message:
adding openbabel

File Contents

# User Rev Content
1 tim 2440 /**********************************************************************
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.)