Open Babel  3.0
Namespaces | Macros | Typedefs | Functions | Variables
mcdlutil.cpp File Reference
#include <openbabel/babelconfig.h>
#include <openbabel/mol.h>
#include <openbabel/atom.h>
#include <openbabel/bond.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

 OpenBabel
 

Macros

#define CONNMAX   15
 
#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   148
 
#define NBONDTYPES   11
 

Typedefs

typedef struct OpenBabel::adjustedlist adjustedlist
 
typedef adjustedlist neighbourlist
 

Functions

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)
 
int sproduct (TSimpleMolecule &sm, int br, int i1, int i2)
 
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)
 
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

Macro Definition Documentation

◆ CONNMAX

#define CONNMAX   15

Referenced by OpenBabel::intToStr().

◆ PI

#define PI   3.141592653589793238462

◆ blDenominator

#define blDenominator   4.0

◆ nRotBondsMax

#define nRotBondsMax   10

◆ NEXACTATOMS

#define NEXACTATOMS   21

Referenced by OpenBabel::intToStr().

◆ NALKALYATOMS

#define NALKALYATOMS   5

Referenced by OpenBabel::intToStr().

◆ NALKALYEARTHATOMS

#define NALKALYEARTHATOMS   5

Referenced by OpenBabel::intToStr().

◆ NTRIVALENTATOMS

#define NTRIVALENTATOMS   31

Referenced by OpenBabel::intToStr().

◆ NTITANATOMS

#define NTITANATOMS   3

Referenced by OpenBabel::intToStr().

◆ NVANADIUMATOMS

#define NVANADIUMATOMS   3

Referenced by OpenBabel::intToStr().

◆ NCHROMIUMATOMS

#define NCHROMIUMATOMS   3

Referenced by OpenBabel::intToStr().

◆ NMANGANESEATOMS

#define NMANGANESEATOMS   3

Referenced by OpenBabel::intToStr().

◆ NLIKEFEATOMS

#define NLIKEFEATOMS   2

Referenced by OpenBabel::intToStr().

◆ NPLATINUMATOMS

#define NPLATINUMATOMS   6

Referenced by OpenBabel::intToStr().

◆ NCOPPERATOMS

#define NCOPPERATOMS   3

Referenced by OpenBabel::intToStr().

◆ NZINKATOMS

#define NZINKATOMS   2

Referenced by OpenBabel::intToStr().

◆ NMETALS

#define NMETALS   78

◆ NHALOGENS

#define NHALOGENS   5

Referenced by OpenBabel::intToStr().

◆ NHETERO

#define NHETERO   10

Referenced by OpenBabel::intToStr().

◆ NAROMMAX

#define NAROMMAX   9

Referenced by OpenBabel::intToStr().

◆ NLIGHT_METALS

#define NLIGHT_METALS   20

◆ NHEAVY_METALS

#define NHEAVY_METALS   58

◆ DEUTERIUM_ATOM

#define DEUTERIUM_ATOM   104

◆ METALL_ATOM

#define METALL_ATOM   111

Referenced by OpenBabel::intToStr().

◆ HALOGEN_ATOM

#define HALOGEN_ATOM   112

Referenced by OpenBabel::intToStr().

◆ ANY_ATOM

#define ANY_ATOM   113

◆ HETERO_ATOM

#define HETERO_ATOM   114

Referenced by OpenBabel::intToStr().

◆ ANY_BOND

#define ANY_BOND   8

◆ RUNDEF

#define RUNDEF   -1.2345678E9

◆ DEFAULTBONDLENGTH

#define DEFAULTBONDLENGTH   1.44

Referenced by OpenBabel::alternate().

◆ NDATABASE_MOLECULES

#define NDATABASE_MOLECULES   148

Referenced by OpenBabel::alternate().

◆ NBONDTYPES

#define NBONDTYPES   11

Referenced by OpenBabel::intToStr().