mol.h File Reference

Handle molecules. Declarations of OBMol, OBAtom, OBBond, OBResidue. (the main header for Open Babel). More...

#include "babelconfig.h"
#include <math.h>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <iostream>
#include <fstream>
#include "base.h"
#include "data.h"
#include "chains.h"
#include "math/vector3.h"
#include "bitvec.h"
#include "ring.h"
#include "generic.h"
#include "typer.h"
#include "oberror.h"
#include "obiter.h"
#include "reaction.h"

Go to the source code of this file.

Namespaces

namespace  OpenBabel

Classes

class  OBResidue
 Residue information. More...
class  OBAtom
 Atom class. More...
class  OBBond
 Bond class. More...
class  OBMol
 Molecule Class. More...
class  OBInternalCoord
 Used to transform from z-matrix to cartesian coordinates. More...

Defines

#define OB_4RING_ATOM   (1<<1)
 Atom is in a 4-membered ring.
#define OB_3RING_ATOM   (1<<2)
 Atom is in a 3-membered ring.
#define OB_AROMATIC_ATOM   (1<<3)
 Atom is aromatic.
#define OB_RING_ATOM   (1<<4)
 Atom is in a ring.
#define OB_CSTEREO_ATOM   (1<<5)
 Atom has clockwise SMILES chiral stereochemistry (i.e., "@@").
#define OB_ACSTEREO_ATOM   (1<<6)
 Atom has anticlockwise SMILES chiral stereochemistry (i.e., "@").
#define OB_DONOR_ATOM   (1<<7)
 Atom is an electron donor.
#define OB_ACCEPTOR_ATOM   (1<<8)
 Atom is an electron acceptor.
#define OB_CHIRAL_ATOM   (1<<9)
 Atom is chiral.
#define OB_POS_CHIRAL_ATOM   (1<<10)
 Atom has + chiral volume.
#define OB_NEG_CHIRAL_ATOM   (1<<11)
 Atom has - chiral volume.
#define OB_AROMATIC_BOND   (1<<1)
 An aromatic bond (regardless of bond order).
#define OB_WEDGE_BOND   (1<<2)
 A solid black wedge in 2D representations -- i.e., "up" from the 2D plane.
#define OB_HASH_BOND   (1<<3)
 A dashed "hash" bond in 2D representations -- i.e., "down" from the 2D plane.
#define OB_RING_BOND   (1<<4)
 A bond in a ring.
#define OB_TORUP_BOND   (1<<5)
 The "upper" bond in a double bond cis/trans isomer (i.e., "/" in SMILES).
#define OB_TORDOWN_BOND   (1<<6)
 The "down" bond in a double bond cis/trans isomer (i.e., "\" in SMILES).
#define OB_KSINGLE_BOND   (1<<7)
 A Kekule single bond.
#define OB_KDOUBLE_BOND   (1<<8)
 A Kekule double bond.
#define OB_KTRIPLE_BOND   (1<<9)
 A Kekule triple bond.
#define OB_CLOSURE_BOND   (1<<10)
#define OB_SSSR_MOL   (1<<1)
#define OB_RINGFLAGS_MOL   (1<<2)
#define OB_AROMATIC_MOL   (1<<3)
#define OB_ATOMTYPES_MOL   (1<<4)
#define OB_CHIRALITY_MOL   (1<<5)
#define OB_PCHARGE_MOL   (1<<6)
#define OB_HYBRID_MOL   (1<<8)
#define OB_IMPVAL_MOL   (1<<9)
#define OB_KEKULE_MOL   (1<<10)
#define OB_CLOSURE_MOL   (1<<11)
#define OB_H_ADDED_MOL   (1<<12)
#define OB_PH_CORRECTED_MOL   (1<<13)
#define OB_AROM_CORRECTED_MOL   (1<<14)
#define OB_CHAINS_MOL   (1<<15)
#define OB_TCHARGE_MOL   (1<<16)
#define OB_TSPIN_MOL   (1<<17)
#define OB_CURRENT_CONFORMER   -1
#define BUFF_SIZE   32768
#define EQ(a, b)   (!strcmp((a), (b)))
#define EQn(a, b, n)   (!strncmp((a), (b), (n)))
#define SQUARE(x)   ((x)*(x))
#define IsUnsatType(x)   (EQ(x,"Car") || EQ(x,"C2") || EQ(x,"Sox") || EQ(x,"Sac") || EQ(x,"Pac") || EQ(x,"So2"))

Functions

bool tokenize (vector< string > &, const char *, const char *)
bool tokenize (std::vector< std::string > &, std::string &, const char *delimstr=" \t\n", int limit=-1)
void Trim (std::string &txt)
 remove leading and trailing whitespace from a string
void ThrowError (char *str)
void ThrowError (std::string &str)
void CartesianToInternal (std::vector< OBInternalCoord * > &, OBMol &)
void InternalToCartesian (std::vector< OBInternalCoord * > &, OBMol &)
std::string NewExtension (string &src, char *ext)
 Utility function: replace the last extension in string &src with new extension char *ext.
void get_rmat (double *, double *, double *, int)
void ob_make_rmat (double mat[3][3], double rmat[9])
void qtrfit (double *r, double *f, int size, double u[3][3])
double superimpose (double *, double *, int)

Variables

OBElementTable etab
 Global OBElementTable for element properties.
OBTypeTable ttab
OBIsotopeTable isotab
 Global OBIsotopeTable for isotope properties.
OBAromaticTyper aromtyper
 Global OBAromaticTyper for detecting aromatic atoms and bonds.
OBAtomTyper atomtyper
OBChainsParser chainsparser
 Global OBChainsParser for detecting macromolecular chains and residues.
OBMessageHandler obErrorLog
 Global OBMessageHandler error handler.
OBResidueData resdat
 Global OBResidueData biomolecule residue database.


Detailed Description

Handle molecules. Declarations of OBMol, OBAtom, OBBond, OBResidue. (the main header for Open Babel).


Define Documentation

#define OB_4RING_ATOM   (1<<1)

Atom is in a 4-membered ring.

#define OB_3RING_ATOM   (1<<2)

Atom is in a 3-membered ring.

#define OB_AROMATIC_ATOM   (1<<3)

Atom is aromatic.

#define OB_RING_ATOM   (1<<4)

Atom is in a ring.

#define OB_CSTEREO_ATOM   (1<<5)

Atom has clockwise SMILES chiral stereochemistry (i.e., "@@").

#define OB_ACSTEREO_ATOM   (1<<6)

Atom has anticlockwise SMILES chiral stereochemistry (i.e., "@").

#define OB_DONOR_ATOM   (1<<7)

Atom is an electron donor.

#define OB_ACCEPTOR_ATOM   (1<<8)

Atom is an electron acceptor.

#define OB_CHIRAL_ATOM   (1<<9)

Atom is chiral.

#define OB_POS_CHIRAL_ATOM   (1<<10)

Atom has + chiral volume.

#define OB_NEG_CHIRAL_ATOM   (1<<11)

Atom has - chiral volume.

#define OB_AROMATIC_BOND   (1<<1)

An aromatic bond (regardless of bond order).

#define OB_WEDGE_BOND   (1<<2)

A solid black wedge in 2D representations -- i.e., "up" from the 2D plane.

#define OB_HASH_BOND   (1<<3)

A dashed "hash" bond in 2D representations -- i.e., "down" from the 2D plane.

#define OB_RING_BOND   (1<<4)

A bond in a ring.

#define OB_TORUP_BOND   (1<<5)

The "upper" bond in a double bond cis/trans isomer (i.e., "/" in SMILES).

#define OB_TORDOWN_BOND   (1<<6)

The "down" bond in a double bond cis/trans isomer (i.e., "\" in SMILES).

#define OB_KSINGLE_BOND   (1<<7)

A Kekule single bond.

#define OB_KDOUBLE_BOND   (1<<8)

A Kekule double bond.

#define OB_KTRIPLE_BOND   (1<<9)

A Kekule triple bond.

#define OB_CLOSURE_BOND   (1<<10)

#define OB_SSSR_MOL   (1<<1)

#define OB_RINGFLAGS_MOL   (1<<2)

#define OB_AROMATIC_MOL   (1<<3)

#define OB_ATOMTYPES_MOL   (1<<4)

#define OB_CHIRALITY_MOL   (1<<5)

#define OB_PCHARGE_MOL   (1<<6)

#define OB_HYBRID_MOL   (1<<8)

#define OB_IMPVAL_MOL   (1<<9)

#define OB_KEKULE_MOL   (1<<10)

#define OB_CLOSURE_MOL   (1<<11)

#define OB_H_ADDED_MOL   (1<<12)

#define OB_PH_CORRECTED_MOL   (1<<13)

#define OB_AROM_CORRECTED_MOL   (1<<14)

#define OB_CHAINS_MOL   (1<<15)

#define OB_TCHARGE_MOL   (1<<16)

#define OB_TSPIN_MOL   (1<<17)

#define OB_CURRENT_CONFORMER   -1

#define BUFF_SIZE   32768

#define EQ ( a,
 )     (!strcmp((a), (b)))

#define EQn ( a,
b,
 )     (!strncmp((a), (b), (n)))

#define SQUARE (  )     ((x)*(x))

#define IsUnsatType (  )     (EQ(x,"Car") || EQ(x,"C2") || EQ(x,"Sox") || EQ(x,"Sac") || EQ(x,"Pac") || EQ(x,"So2"))