mcdlutil.cpp File Reference

2D molecule coordinate generation. More...

#include <openbabel/babelconfig.h>
#include <openbabel/mol.h>
#include <openbabel/mcdlutil.h>
#include <openbabel/data.h>
#include <openbabel/obconversion.h>
#include <openbabel/stereo/stereo.h>
#include <openbabel/stereo/cistrans.h>
#include <cmath>

Namespaces

namespace  OpenBabel

Defines

#define CONNMAX   15
#define NATOMSMAX   255
#define NBONDSMAX   255
#define PI   3.141592653589793238462
#define blDenominator   4.0
#define nRotBondsMax   10
#define NEXACTATOMS   21
#define NALKALYATOMS   5
#define NALKALYEARTHATOMS   5
#define NTRIVALENTATOMS   31
#define NTITANATOMS   3
#define NVANADIUMATOMS   3
#define NCHROMIUMATOMS   3
#define NMANGANESEATOMS   3
#define NLIKEFEATOMS   2
#define NPLATINUMATOMS   6
#define NCOPPERATOMS   3
#define NZINKATOMS   2
#define NMETALS   78
#define NHALOGENS   5
#define NHETERO   10
#define NAROMMAX   9
#define NLIGHT_METALS   20
#define NHEAVY_METALS   58
#define DEUTERIUM_ATOM   104
#define METALL_ATOM   111
#define HALOGEN_ATOM   112
#define ANY_ATOM   113
#define HETERO_ATOM   114
#define ANY_BOND   8
#define RUNDEF   -1.2345678E9
#define DEFAULTBONDLENGTH   1.44
#define NDATABASE_MOLECULES   147
#define NBONDTYPES   11

Typedefs

typedef struct
OpenBabel::adjustedlist 
adjustedlist
typedef adjustedlist neigbourlist [NATOMSMAX]

Functions

bool restoreDoubleBonds (TEditedMolecule &sm, bool putEither)
string intToStr (int k)
double xDistPoint (double x1, double y1, double x2, double y2, double x0, double y0)
bool overlapped (double x1A, double y1A, double x2A, double y2A, double x1B, double y1B, double x2B, double y2B, double delta)
bool compareAtoms (int a1, int a2, const std::vector< std::vector< int > * > aeqList)
bool incrementValues (std::vector< int > &currentValues, const std::vector< int > maxValues)
bool CompareRotor (const pair< int, int > &a, const pair< int, int > &b)
void deleteIntElement (std::vector< int > *source, int index)
int hydrogenValency (int na)
int maxValency (int na)
static int findAlternateSinglets (const std::vector< int >iA1, const std::vector< int >iA2, const std::vector< int > nH, const std::vector< int > hydrogenValency, std::vector< int > &bondOrder, int nAtoms, int nBonds)
static void makeAssignment (const std::vector< int > iA1, const std::vector< int > iA2, const std::vector< int > nH, const std::vector< int > hydrogenValency, const std::vector< int > bondAssignment, const std::vector< int > specialFlag, std::vector< int > &bondOrder, int nAtoms, int nBonds, int &nAss)
static bool analyzeOK (const std::vector< int > iA1, const std::vector< int > iA2, const std::vector< int > nH, const std::vector< int > hydrogenValency, const std::vector< int > maxValency, const std::vector< int > bondOrder, const std::vector< int > atomCheckFlag, int nAtoms, int nBonds, int &nGtMax, int &nNEH, int &nOddEven, bool testExceedHydrogen, bool oddEvenCheck)
static bool incrementAssignment (std::vector< int > &bondAssignment, int nAss)
static int determineBondsOrder (const std::vector< int > iA1, const std::vector< int > iA2, const std::vector< int > nH, const std::vector< int > maxValency, std::vector< int > &bondOrder, std::vector< int > &hydrogenValency, int nAtoms, int nBonds, bool oddEvenViolate)
int alternate (const std::vector< int > aPosition, const std::vector< int > aCharge, const std::vector< int > aRad, const std::vector< int > nHydr, const std::vector< int > iA1, const std::vector< int > iA2, std::vector< int > &bondOrders, int nAtoms, int nBonds)
int alternate (OBMol *pmol, const std::vector< int > nH, std::vector< int > &bondOrders)
bool ptInRect (const Rect r, const Point p)
void generateDiagram (OBMol *pmol, std::ostream &ofs)
void generateDiagram (OBMol *pmol)
void generateDiagram (const std::vector< int > iA1, const std::vector< int > iA2, std::vector< double > &rx, std::vector< double > &ry, int nAtoms, int nBonds)
bool fragmentSearch (OBMol *query, OBMol *structure)
bool fragmentSearch (const std::vector< int > aPositionQuery, const std::vector< int > iA1Query, const std::vector< int > iA2Query, const std::vector< int > bondTypesQuery, const std::vector< int > aPositionStructure, const std::vector< int > iA1Structure, const std::vector< int > iA2Structure, const std::vector< int > bondTypesStructure, int nAtomsQuery, int nBondsQuery, int nAtomsStructure, int nBondsStructure)
void equivalenceList (const std::vector< int > aPosition, const std::vector< int > aCharge, const std::vector< int > aRad, const std::vector< int > iA1, const std::vector< int > iA2, const std::vector< int > bondTypes, std::vector< int > &eqList, int nAtoms, int nBonds)
void equivalenceList (OBMol *pmol, std::vector< int > &eqList)
void addFragment (OBMol *molecule, OBMol *fragment, int molAN, int fragAN, int molBN, int fragBN, bool isAddition)
void createStereoLists (OBMol *pmol, std::vector< int > &bondStereoList, std::vector< int > &atomStereoList, std::vector< int > &eqList)
int compareStringsNumbers (string s1, string s2)
std::string getAtomSymbol (TSimpleMolecule &sm, int atAtom, int atEx, int priority, string ndData)
std::string getAtomSymbol (TSimpleMolecule &sm, int atAtom)
int indexOf (const string instring, const string substring, int fromPos=0)
std::string removeZeroeth (std::string instring)
int analizeParity (string data)
int analizeParityBond (string data)
std::string changeParity (std::string data)
std::string changeParityBond (std::string data)
std::string getAtomMCDL (OBMol *pmol, int ntatoms, const std::vector< int > ix, const std::vector< int > aNumber, const std::vector< int > atomStereoList, const std::vector< int > eqList)
int sproduct (TSimpleMolecule &sm, int br, int i1, int i2)
bool bondEquivalent (int bn1, int bn2, const std::vector< int > eqList, TSimpleMolecule &sm)
std::string getBondMCDL (OBMol *pmol, int nbStore, int ntatoms, const std::vector< int > ix, const std::vector< int > aNumber, int bonds[MAXBONDS][4], const std::vector< int > bondStereoList, const std::vector< int > eqList)
std::string addZeroeth (std::string instring, std::string stringAdd)
void setUpDownBonds (int atomNo, int parity, TSimpleMolecule &sm, std::vector< int > &iA1, std::vector< int > &iA2, std::vector< int > &stereoBonds)
void implementAtomStereo (std::vector< int > &iA1, std::vector< int > &iA2, std::vector< int > &stereoBonds, const std::vector< double >rx, const std::vector< double > ry, int acount, int bcount, std::string astereo)
void implementBondStereo (const std::vector< int > iA1, const std::vector< int > iA2, std::vector< double > &rx, std::vector< double > &ry, int acount, int bcount, std::string bstereo)
int groupRedraw (OBMol *pmol, int bondN, int atomN, bool atomNInGroup)
bool parseFormula (const std::string formulaString, std::vector< int > &enumber, int &valency)
int canonizeMCDL (const std::string atomBlock, std::vector< std::string > &structureList)
void prepareTest (OBMol *pmol, std::ostream &ofs)

Variables

const int hVal [NELEMMCDL]
const int maxVal [NELEMMCDL]
const int chargeVal [NELEMMCDL]
const string aSymb [NELEMMCDL]
const int exactAtom [NEXACTATOMS] = {6,14,5,50,82,8,16,34,52,7,15,33,51,9,17,35,53,32,13,26,80}
const int alkaly [NALKALYATOMS] = {3,11,19,37,55}
const int alkalyEarth [NALKALYEARTHATOMS] = {4,12,20,38,56}
const int trivalent [NTRIVALENTATOMS] = {21,31,39,49,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,81,89,90,91,92,93,94,95,96,97,98,99}
const int titan [NTITANATOMS] = {22,40,72}
const int vanadium [NVANADIUMATOMS] = {23,41,73}
const int cromium [NCHROMIUMATOMS] = {24,42,74}
const int manganeze [NMANGANESEATOMS] = {25,43,75}
const int likeFe [NLIKEFEATOMS] = {27,28}
const int platinum [NPLATINUMATOMS] = {44,45,46,76,77,78}
const int copper [NCOPPERATOMS] = {29,47,79}
const int zink [NZINKATOMS] = {30,48}
const int possibleAromatic [NAROMMAX] = {7,8,15,16,33,34,51,52,HETERO_ATOM}
const int metals [NMETALS]
const int lightMetals [NLIGHT_METALS]
const int heavyMetals [NHEAVY_METALS]
const int halogens [NHALOGENS] = {9,17,35,53,85}
const int hetero [NHETERO] = {7,8,14,15,16,33,34,51,52,84}
const string strData [NDATABASE_MOLECULES]
const int bondValence [NBONDTYPES] = {1,2,3,1,1,0,0,0,1,1,1}
const string fsastart = "{SA:"
const string fsbstart = "{SB:"

Detailed Description

2D molecule coordinate generation.

utilities for mcdl format, might be useful for another


Define Documentation

#define CONNMAX   15
#define NATOMSMAX   255
#define NBONDSMAX   255
#define PI   3.141592653589793238462
#define blDenominator   4.0
#define nRotBondsMax   10
#define NEXACTATOMS   21
#define NALKALYATOMS   5
#define NALKALYEARTHATOMS   5
#define NTRIVALENTATOMS   31
#define NTITANATOMS   3
#define NVANADIUMATOMS   3
#define NCHROMIUMATOMS   3
#define NMANGANESEATOMS   3
#define NLIKEFEATOMS   2
#define NPLATINUMATOMS   6
#define NCOPPERATOMS   3
#define NZINKATOMS   2
#define NMETALS   78

Referenced by OBAtom::IsMetal().

#define NHALOGENS   5
#define NHETERO   10
#define NAROMMAX   9
#define NLIGHT_METALS   20
#define NHEAVY_METALS   58
#define DEUTERIUM_ATOM   104
#define METALL_ATOM   111
#define HALOGEN_ATOM   112
#define ANY_ATOM   113
#define HETERO_ATOM   114
#define ANY_BOND   8
#define RUNDEF   -1.2345678E9
#define DEFAULTBONDLENGTH   1.44
#define NDATABASE_MOLECULES   147
#define NBONDTYPES   11
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines