MTK++ Latest version: 0.2.0

Public Member Functions | Protected Member Functions | Protected Attributes
MTKpp::ligProtonate Class Reference

Class to add hydrogens to small molecules. More...

#include <mtkpp/src/Molecule/ligProtonate.h>

Collaboration diagram for MTKpp::ligProtonate:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ligProtonate ()
 ligProtonate Constructor
virtual ~ligProtonate ()
 ligProtonate Destructor
void addHydrogens (submolecule *s)
 add hydrogens

Protected Member Functions

double getBestDistance (atom *a)
 Determine the best distance.
double getBestAngle (atom *a, atom *b, const int &r=0)
 Determine the best angle.
std::vector< double > getBestTorsions (atom *a, atom *b, atom *c)
 Determine the best torsion.
std::vector< double > getHBDonorTorsions (atom *a, atom *b, atom *c, double dist, double angle, std::vector< atom * > acceptors)
 Determine the best torsion to add hydrogens to Hbond donors.

Protected Attributes

collectionpCol
 collection pointer
bool bCol
 collection boolean
moleculepMol
 molecule pointer
bool bMol
 molecule boolean
std::vector< submolecule * > subMoleculeList
 submolecule list
std::vector< atom * > atomList
 atom list
submoleculepSubMolecule
 submolecule pointer
submoleculepSubMoleculeMinus1
 submolecule pointer
atompAtom1
 atom pointer
atompAtom2
 atom pointer
atompAtom3
 atom pointer
atompAtom4
 atom pointer
BondpBond
 Bond pointer.
vector3dcoord1
 vector3d pointer
vector3dcoord2
 vector3d pointer

Detailed Description

Class to add hydrogens to small molecules.

Author:
Martin Peters
Version:
0.1
Date:
2006
Todo:
Definition of Hydrogen Bond Donors and Acceptor The perception of hydrogen bond donors and acceptors is performed in two steps: 1. A simple default rule is applied to determine the donors and acceptors. 2. Then, a list of exceptions to the default rules is applied. Default Rule
  • Any nitrogen or oxygen atom with at least one pair of free electrons is considered as an acceptor.
  • Any hydrogen atom that is bonded to a nitrogen or oxygen atom is considered as a donor. Exceptions
  • The nitrogen atoms of amides, sulfonamides, and equivalent structures are not considered as acceptors.
  • Only one nitrogen atom of guanidines, amidines, and equivalent groups is considered as an acceptor.
  • The nitrogen atoms of aromatic amines are not considered as acceptors.
  • The nitrogen atoms of five-membered aromatic rings like pyrrole are not considered as acceptors.
  • The sulfur atoms of thiocarbonyl compounds are considered as acceptors.

Protonation

The functions contained in protonate adds hydrogen to unfilled atoms.

Algorithm

Get Best Distance

        a--H

Get Best Angle

             b
            /
        H--a

Get Best Torsion

             b--c
            /
        H--a
            \
             d

Constructor & Destructor Documentation

MTKpp::ligProtonate::ligProtonate ( )

ligProtonate Constructor

MTKpp::ligProtonate::~ligProtonate ( ) [virtual]

ligProtonate Destructor


Member Function Documentation

void MTKpp::ligProtonate::addHydrogens ( submolecule s)
double MTKpp::ligProtonate::getBestDistance ( atom a) [protected]

Determine the best distance.

Parameters:
aatom pointer
Returns:
The best distance

References MTKpp::atom::getElement(), and MTKpp::element::symbol.

Referenced by addHydrogens(), and getBestTorsions().

double MTKpp::ligProtonate::getBestAngle ( atom a,
atom b,
const int &  r = 0 
) [protected]

Determine the best angle.

Parameters:
aatom pointer
batom pointer
rring size
Returns:
The best available angle

References MTKpp::DEG2RAD, MTKpp::molecule::getBond(), MTKpp::atom::getHybridization(), MTKpp::atom::getType(), pBond, pMol, and MTKpp::Bond::type.

Referenced by addHydrogens(), and getBestTorsions().

std::vector< double > MTKpp::ligProtonate::getBestTorsions ( atom a,
atom b,
atom c 
) [protected]
std::vector< double > MTKpp::ligProtonate::getHBDonorTorsions ( atom a,
atom b,
atom c,
double  dist,
double  angle,
std::vector< atom * >  acceptors 
) [protected]

Determine the best torsion to add hydrogens to Hbond donors.

        D--H
            .
             .
              A--AA

         E_hb = - cos^2(A_DHA) * e^(-(R_HA-2.0)^2)  --> from andrew

         AA-A ... D > 90 deg
         D ... A < 3.5 ang
         D-H ... A > 90 deg
       
Parameters:
aatom pointer
batom pointer
catom pointer
distdistance b/w H atom and the donor to which it's being added
angle
acceptorsvector of all hbond acceptors in the molecule
Returns:
The best available torsions

References coord1, coord2, MTKpp::vector3d::dist(), getBestTorsions(), MTKpp::molecule::getBond(), MTKpp::atom::getCoords(), MTKpp::atom::getElement(), MTKpp::atom::getFileID(), MTKpp::atom::getHybridization(), MTKpp::atom::getIndex(), MTKpp::submolecule::getName(), MTKpp::atom::getParent(), MTKpp::atom::getType(), MTKpp::atom::getValence(), pBond, pMol, MTKpp::element::symbol, MTKpp::Bond::topology, and MTKpp::Bond::type.

Referenced by addHydrogens().


Member Data Documentation

collection pointer

Referenced by addHydrogens().

bool MTKpp::ligProtonate::bCol [protected]

collection boolean

molecule pointer

Referenced by addHydrogens(), getBestAngle(), getBestTorsions(), and getHBDonorTorsions().

bool MTKpp::ligProtonate::bMol [protected]

molecule boolean

submolecule list

std::vector<atom*> MTKpp::ligProtonate::atomList [protected]

atom list

Referenced by addHydrogens().

submolecule pointer

submolecule pointer

atom pointer

Referenced by addHydrogens().

atom pointer

Referenced by addHydrogens().

atom pointer

Referenced by addHydrogens().

atom pointer

Referenced by addHydrogens().

vector3d pointer

Referenced by getHBDonorTorsions().

vector3d pointer

Referenced by getHBDonorTorsions().


The documentation for this class was generated from the following files:

Generated on Fri Dec 23 2011 09:28:56 for MTK++ by Doxygen 1.7.5.1