#include <openbabel/groupcontrib.h>
Public Types | |
typedef std::map< const char *, OBPlugin *, CharPtrLess > | PluginMapType |
typedef PluginMapType::const_iterator | PluginIterator |
Public Member Functions | |
OBGroupContrib (const char *ID, const char *filename, const char *descr) | |
virtual const char * | Description () |
virtual OBGroupContrib * | MakeInstance (const std::vector< std::string > &textlines) |
virtual double | Predict (OBBase *pOb) |
const char * | TypeID () |
double | PredictAndSave (OBBase *pOb) |
virtual double | GetStringValue (OBBase *pOb, std::string &svalue) |
virtual bool | Compare (OBBase *pOb, std::istream &ss, bool noEval) |
virtual bool | Display (std::string &txt, const char *param, const char *ID=NULL) |
const char * | GetID () const |
virtual PluginMapType & | GetMap () const =0 |
Static Public Member Functions | |
static bool | FilterCompare (OBBase *pOb, std::istream &ss, bool noEval) |
static void | AddProperties (OBBase *pOb, const std::string &DescrList) |
static void | DeleteProperties (OBBase *pOb, const std::string &DescrList) |
static std::string | GetValues (OBBase *pOb, const std::string &DescrList) |
static OBPlugin * | GetPlugin (const char *Type, const char *ID) |
static bool | ListAsVector (const char *PluginID, const char *param, std::vector< std::string > &vlist) |
static void | List (const char *PluginID, const char *param=NULL, std::ostream *os=&std::cout) |
static std::string | ListAsString (const char *PluginID, const char *param=NULL) |
static std::string | FirstLine (const char *txt) |
static PluginIterator | Begin (const char *PluginID) |
static PluginIterator | End (const char *PluginID) |
Static Protected Member Functions | |
static std::string | GetIdentifier (std::istream &optionText) |
static double | ParsePredicate (std::istream &optionText, char &ch1, char &ch2, std::string &svalue) |
static bool | ReadStringFromFilter (std::istream &ss, std::string &result) |
static bool | CompareStringWithFilter (std::istream &optionText, std::string &s, bool noEval, bool NoCompOK=false) |
static bool | ispunctU (char ch) |
static bool | MatchPairData (OBBase *pOb, std::string &s) |
static PluginMapType & | PluginMap () |
static PluginMapType & | GetTypeMap (const char *PluginID) |
static OBPlugin * | BaseFindType (PluginMapType &Map, const char *ID) |
Protected Attributes | |
const char * | _id |
This is the base class for calculations that use the JOELib2 contribution algorithm.
typedef std::map<const char*, OBPlugin*, CharPtrLess> PluginMapType [inherited] |
typedef PluginMapType::const_iterator PluginIterator [inherited] |
OBGroupContrib | ( | const char * | ID, | |
const char * | filename, | |||
const char * | descr | |||
) | [inline] |
constructor. Each instance provides an ID and a datafile.
Predict the logP, MR, TPSA (each instance of OBGroupContrib uses different parameters loaded from its own datafile) for molecule mol using the group contributions algorithm from JOELib2.
virtual const char* Description | ( | ) | [virtual] |
virtual OBGroupContrib* MakeInstance | ( | const std::vector< std::string > & | ) | [inline, virtual] |
Make a new instance of the class. See OpTransform, OBGroupContrib, SmartsDescriptor classes for derived versions. Usually, the first parameter is the classname, the next three are parameters(ID, filename, description) for a constructor, and the rest data.
Reimplemented from OBPlugin.
virtual double Predict | ( | OBBase * | pOb | ) | [virtual] |
const char* TypeID | ( | ) | [inline, inherited] |
double PredictAndSave | ( | OBBase * | pOb | ) | [inherited] |
Referenced by OBDescriptor::AddProperties().
double GetStringValue | ( | OBBase * | pOb, | |
std::string & | svalue | |||
) | [virtual, inherited] |
Provides a string value for non-numeric descriptors and returns NaN, or a string representation and returns a numeric value.
This default version provides a string representation of the numeric value.
Referenced by OBDescriptor::GetValues(), and OBDescriptor::PredictAndSave().
bool Compare | ( | OBBase * | pOb, | |
std::istream & | ss, | |||
bool | noEval | |||
) | [virtual, inherited] |
Parses the filter stream for a relational expression and returns its result when applied to the chemical object.
Compare() is a virtual function and can be overridden to allow different comparison behaviour. The default implementation here is suitable for OBDescriptor classes which return a double value. The stringstream is parsed to retrieve a comparison operator, one of > < >= <= = == != , and a numerical value. The function compares this the value returned by Predict() and returns the result. The stringstream is left after the number, and its state reflects whether any errors have occurred. If noEval is true, the parsing is as normal but Predict is not called and the function returns false.
Referenced by OBDescriptor::FilterCompare().
bool Display | ( | std::string & | txt, | |
const char * | param, | |||
const char * | ID = NULL | |||
) | [virtual, inherited] |
Write information on a plugin class to the string txt. If the parameter is a descriptor ID, displays the verbose description for that descriptor only e.g. babel -L descriptors HBA1
Reimplemented from OBPlugin.
bool FilterCompare | ( | OBBase * | pOb, | |
std::istream & | optionText, | |||
bool | noEval | |||
) | [static, inherited] |
Interprets the --filter option string and returns the combined result of all the comparisons it contains.
The string has the form: PropertyID1 predicate1 [booleanOp] PropertyID2 predicate2 ... The propertyIDs are the ID of instances of a OBDescriptor class or the Attributes of OBPairData, and contain only letters, numbers and underscores. The predicates must start with a punctuation character and are interpreted by the Compare function of the OBDescriptor class. The default implementation expects a comparison operator and a number, e.g. >=1.3 Whitespace is optional and is ignored. Each predicate and this OBBase object (usually OBMol) is passed to the Compare function of a OBDescriptor. The result of each comparison is combined in a boolean expression (which can include parentheses) in the normal way. The AND operator can be & or &&, the OR operator can be | or ||, and a unitary NOT is ! The expected operator precedence is achieved using recursive calls of the function. If there is no boolean Op, all the tests have to return true for the function to return true, i.e. the default is AND. If the first operand of an AND is 0, or of an OR is 1, the parsing of the second operand continues but no comparisons are done since the result does not matter.
Referenced by OBMol::DoTransformations().
void AddProperties | ( | OBBase * | pOb, | |
const std::string & | DescrList | |||
) | [static, inherited] |
Reads list of descriptor IDs and calls PredictAndSave() for each.
Referenced by OBMol::DoTransformations().
void DeleteProperties | ( | OBBase * | pOb, | |
const std::string & | DescrList | |||
) | [static, inherited] |
Deletes all the OBPairDatas whose attribute names are in the list (if they exist).
Referenced by OBMol::DoTransformations().
string GetValues | ( | OBBase * | pOb, | |
const std::string & | DescrList | |||
) | [static, inherited] |
Reads list of descriptor IDs and OBPairData names and returns a list of values, each precede by a space or the first character in the list if it is whitespace or punctuation.
Referenced by OBMol::DoTransformations().
string GetIdentifier | ( | std::istream & | optionText | ) | [static, protected, inherited] |
double ParsePredicate | ( | std::istream & | optionText, | |
char & | ch1, | |||
char & | ch2, | |||
std::string & | svalue | |||
) | [static, protected, inherited] |
Reads comparison operator and the following string. Return its value if possible else NaN.
Referenced by OBDescriptor::CompareStringWithFilter(), and OBDescriptor::FilterCompare().
bool ReadStringFromFilter | ( | std::istream & | ss, | |
std::string & | result | |||
) | [static, protected, inherited] |
Reads a string from the filter string optionally preceded by = or !=.
Reads a string from the filter stream, optionally preceded by = or !=
Referenced by OBDescriptor::ParsePredicate().
bool CompareStringWithFilter | ( | std::istream & | optionText, | |
std::string & | s, | |||
bool | noEval, | |||
bool | NoCompOK = false | |||
) | [static, protected, inherited] |
Makes a comparison using the operator and a string read from the filter stream with a provided string.
Referenced by OBDescriptor::FilterCompare().
static bool ispunctU | ( | char | ch | ) | [inline, static, protected, inherited] |
bool MatchPairData | ( | OBBase * | pOb, | |
std::string & | s | |||
) | [static, protected, inherited] |
Referenced by OBDescriptor::DeleteProperties(), OBDescriptor::FilterCompare(), and OBDescriptor::GetValues().
static OBPlugin* GetPlugin | ( | const char * | Type, | |
const char * | ID | |||
) | [inline, static, inherited] |
Get a pointer to a plugin from its type and ID. Return NULL if not found. Not cast to Type*.
Referenced by OBConversion::LoadFormatFiles().
const char* GetID | ( | ) | const [inline, inherited] |
Return the ID of the sub-type instance.
Referenced by OBPlugin::Display(), OBFormat::Display(), and OBDescriptor::PredictAndSave().
bool ListAsVector | ( | const char * | PluginID, | |
const char * | param, | |||
std::vector< std::string > & | vlist | |||
) | [static, inherited] |
Output a list of sub-type classes of the the type PluginID, or, if PluginID is "plugins" or empty, a list of the base types. If PluginID is not recognized or is NULL, the base types are output and the return is false.
Referenced by OBConversion::GetSupportedInputFormat(), OBConversion::GetSupportedOutputFormat(), and OBPlugin::List().
void List | ( | const char * | PluginID, | |
const char * | param = NULL , |
|||
std::ostream * | os = &std::cout | |||
) | [static, inherited] |
As ListAsVector but sent to an ostream with a default of cout if not specified.
Referenced by OBPlugin::ListAsString().
string ListAsString | ( | const char * | PluginID, | |
const char * | param = NULL | |||
) | [static, inherited] |
As ListAsVector but returns a string containing the list.
string FirstLine | ( | const char * | txt | ) | [static, inherited] |
Utility function to return only the first line of a string.
Referenced by OBPlugin::Display(), OBFormat::Display(), and OBOp::OpOptions().
static PluginIterator Begin | ( | const char * | PluginID | ) | [inline, static, inherited] |
Return an iterator at the start of the map of the plugin types PluginID or, if there is no such map, the end of the top level plugin map.
Referenced by OBConversion::GetNextFormat(), and OBOp::OpOptions().
static PluginIterator End | ( | const char * | PluginID | ) | [inline, static, inherited] |
Referenced by OBConversion::GetNextFormat(), and OBOp::OpOptions().
virtual PluginMapType& GetMap | ( | ) | const [pure virtual, inherited] |
static PluginMapType& PluginMap | ( | ) | [inline, static, protected, inherited] |
Returns a reference to the map of the plugin types. Is a function rather than a static member variable to avoid initialization problems.
Referenced by OBPlugin::GetTypeMap(), OBPlugin::ListAsVector(), and OBFormat::RegisterFormat().
OBPlugin::PluginMapType & GetTypeMap | ( | const char * | PluginID | ) | [static, protected, inherited] |
Returns the map of a particular plugin type, e.g. GetMapType("fingerprints").
static OBPlugin* BaseFindType | ( | PluginMapType & | Map, | |
const char * | ID | |||
) | [inline, static, protected, inherited] |
Returns the type with the specified ID, or NULL if not found. Will be cast to the appropriate class in the calling routine.
const char* _id [protected, inherited] |
Referenced by OBFormat::RegisterFormat().