Open Babel  3.0
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
OBAtom Class Reference

#include <openbabel/atom.h>

Inheritance diagram for OBAtom:
OBBase

Public Types

enum  StereoFlag
 

Public Member Functions

 OBAtom ()
 
virtual ~OBAtom ()
 
OBAtomoperator= (OBAtom &)
 
bool operator== (const OBAtom *other) const
 
void Duplicate (OBAtom *)
 
bool Clear ()
 
double GetDistance (int index)
 
double GetDistance (OBAtom *)
 
double GetDistance (vector3 *v)
 
double GetAngle (int b, int c)
 
double GetAngle (OBAtom *b, OBAtom *c)
 
virtual OBBaseDoTransformations (const std::map< std::string, std::string > *, OBConversion *)
 
template<class T >
T * CastAndClear (bool clear=true)
 
virtual const char * GetTitle (bool replaceNewlines=true) const
 
virtual void SetTitle (const char *)
 
Methods to set atomic information
void SetIdx (int idx)
 
void SetId (unsigned long id)
 
void SetHyb (int hyb)
 
void SetAtomicNum (int atomicnum)
 
void SetIsotope (unsigned int iso)
 
void SetImplicitHCount (unsigned int val)
 
void SetFormalCharge (int fcharge)
 
void SetSpinMultiplicity (short spin)
 
void SetType (const char *type)
 
void SetType (const std::string &type)
 
void SetPartialCharge (double pcharge)
 
void SetVector (const vector3 &v)
 
void SetVector (const double x, const double y, const double z)
 
void SetCoordPtr (double **c)
 
void SetVector ()
 
void SetResidue (OBResidue *res)
 
void SetParent (OBMol *ptr)
 
void SetAromatic (bool value=true)
 
void SetInRing (bool value=true)
 
void ClearCoordPtr ()
 
Methods to retrieve atomic information
int GetFormalCharge () const
 
unsigned int GetAtomicNum () const
 
unsigned short int GetIsotope () const
 
int GetSpinMultiplicity () const
 
double GetAtomicMass () const
 
double GetExactMass () const
 
unsigned int GetIdx () const
 
unsigned int GetIndex () const
 
unsigned long GetId () const
 
unsigned int GetCoordinateIdx () const
 
unsigned int GetExplicitDegree () const
 
unsigned int GetTotalDegree () const
 
unsigned int GetExplicitValence () const
 
unsigned int GetTotalValence () const
 
unsigned int GetHyb () const
 
unsigned char GetImplicitHCount () const
 
unsigned int GetHvyDegree () const
 
unsigned int GetHeteroDegree () const
 
char * GetType ()
 
double GetX () const
 
double GetY () const
 
double GetZ () const
 
double x () const
 
double y () const
 
double z () const
 
double * GetCoordinate ()
 
vector3GetVector ()
 
const vector3GetVector () const
 
double GetPartialCharge ()
 
OBResidueGetResidue ()
 
OBMolGetParent ()
 
bool GetNewBondVector (vector3 &v, double length)
 
OBBondGetBond (OBAtom *)
 
Iterator methods
OBBondIterator BeginBonds ()
 
OBBondIterator EndBonds ()
 
OBBondBeginBond (OBBondIterator &i)
 
OBBondNextBond (OBBondIterator &i)
 
OBAtomBeginNbrAtom (OBBondIterator &i)
 
OBAtomNextNbrAtom (OBBondIterator &i)
 
Addition of residue/bond info. for an atom
void NewResidue ()
 
void AddResidue (OBResidue *res)
 
void DeleteResidue ()
 
void AddBond (OBBond *bond)
 
void InsertBond (OBBondIterator &i, OBBond *bond)
 
bool DeleteBond (OBBond *bond)
 
void ClearBond ()
 
Builder utilities
bool HtoMethyl ()
 
bool SetHybAndGeom (int)
 
Property information
unsigned int CountFreeOxygens () const
 
unsigned int CountFreeSulfurs () const
 
unsigned int ExplicitHydrogenCount (bool ExcludeIsotopes=false) const
 
unsigned int MemberOfRingCount () const
 
unsigned int MemberOfRingSize () const
 
unsigned int CountRingBonds () const
 
double SmallestBondAngle ()
 
double AverageBondAngle ()
 
std::pair< int, int > LewisAcidBaseCounts () const
 
bool HasResidue ()
 
bool IsHetAtom ()
 
bool IsAromatic () const
 
bool IsInRing () const
 
bool IsInRingSize (int) const
 
bool IsHeteroatom ()
 
bool IsConnected (OBAtom *)
 
bool IsOneThree (OBAtom *)
 
bool IsOneFour (OBAtom *)
 
bool IsCarboxylOxygen ()
 
bool IsPhosphateOxygen ()
 
bool IsSulfateOxygen ()
 
bool IsNitroOxygen ()
 
bool IsAmideNitrogen ()
 
bool IsPolarHydrogen ()
 
bool IsNonPolarHydrogen ()
 
bool IsAromaticNOxide ()
 
bool IsChiral ()
 
bool IsAxial ()
 
bool IsHbondAcceptor ()
 
bool IsHbondAcceptorSimple ()
 
bool IsHbondDonor ()
 
bool IsHbondDonorH ()
 
bool IsMetal ()
 
bool HasAlphaBetaUnsat (bool includePandS=true)
 
bool HasBondOfOrder (unsigned int bo)
 
int CountBondsOfOrder (unsigned int bo)
 
int HighestBondOrder ()
 
bool HasNonSingleBond ()
 
bool HasSingleBond ()
 
bool HasDoubleBond ()
 
bool HasAromaticBond ()
 
bool MatchesSMARTS (const char *)
 
Generic data handling methods (via OBGenericData)
bool HasData (const std::string &)
 
bool HasData (const char *)
 
bool HasData (const unsigned int type)
 
void DeleteData (unsigned int type)
 
void DeleteData (OBGenericData *)
 
void DeleteData (std::vector< OBGenericData *> &)
 
bool DeleteData (const std::string &s)
 
void SetData (OBGenericData *d)
 
void CloneData (OBGenericData *d)
 
size_t DataSize () const
 
OBGenericDataGetData (const unsigned int type)
 
OBGenericDataGetData (const std::string &)
 
OBGenericDataGetData (const char *)
 
std::vector< OBGenericData * > & GetData ()
 
std::vector< OBGenericData * > GetData (DataOrigin source)
 
std::vector< OBGenericData * > GetAllData (const unsigned int type)
 
OBDataIterator BeginData ()
 
OBDataIterator EndData ()
 

Static Public Member Functions

static const char * ClassDescription ()
 

Public Attributes

bool Visit
 

Protected Member Functions

int GetFlag () const
 
void SetFlag (int flag)
 
void UnsetFlag (int flag)
 
bool HasFlag (int flag)
 

Protected Attributes

unsigned char _ele
 
unsigned char _imph
 
char _type [OBATOM_TYPE_LEN]
 
short _fcharge
 
unsigned short _isotope
 
short _spinmultiplicity
 
unsigned int _idx
 
OBMol_parent
 
std::vector< OBBond * > _vbond
 
unsigned int _cidx
 
unsigned short _hyb
 
unsigned short _flags
 
double _pcharge
 
double ** _c
 
vector3 _v
 
OBResidue_residue
 
unsigned long _id
 
std::vector< OBGenericData * > _vdata
 

Detailed Description

Atom class.

To understand the OBAtom class it is important to state a key decision on which the design was based. The OBAtom class not only holds data, but facilitates extraction of data perceived from both the atom and the molecule. This prevents the OBMol class from becoming overly large and complicated.

A number of data extraction methods perform what is called `Lazy Evaluation,' which is essentially on-the-fly evaluation. For example, when an atom is queried as to whether it is cyclic or what it's hybridization state is the information is perceived automatically. The perception of a particular trait is actually performed on the entire molecule the first time it is requested of an atom or bond, and stored for subsequent requests for the same trait of additional atoms or bonds.The OBAtom class is similar to OBMol and the whole of Open Babel in that data access and modification is done through Get and Set methods.

The following code demonstrates how to print out the atom numbers, element numbers, and coordinates of a molecule:

OBMol mol;
FOR_ATOMS_OF_MOL(atom, mol)
{
cout << atom->GetIdx() << ` `;
cout << atom->GetAtomicNum() << ` `;
cout << atom->GetVector() << endl;
}

A number of the property member functions indicate that atoms have some knowledge of their covalently attached neighbor atoms. Bonding information is partly redundant within a molecule in that an OBMol has a complete list of bonds in a molecule, and an OBAtom has a list bonds of which it is a member. The following code demonstrates how an OBAtom uses its bond information to loop over atoms attached to itself:

OBMol mol;
OBAtom *atom;
atom = mol.GetAtom(1);
{
cout << "atom #" << atom->GetIdx() << " is attached to atom #"
<< nbr->GetIdx() << endl;
}

should produce an output like

atom #1 is attached to atom #2

Member Enumeration Documentation

◆ StereoFlag

enum StereoFlag

Constructor & Destructor Documentation

◆ OBAtom()

OBAtom ( )

Constructor.

◆ ~OBAtom()

~OBAtom ( )
virtual

Destructor.

Member Function Documentation

◆ GetFlag()

int GetFlag ( ) const
inlineprotected
Returns
All flags

◆ SetFlag()

void SetFlag ( int  flag)
inlineprotected

Sets the bitwise flag.

◆ UnsetFlag()

void UnsetFlag ( int  flag)
inlineprotected

Unsets the bitwise flag.

◆ HasFlag()

bool HasFlag ( int  flag)
inlineprotected
Returns
True of the atom has the flag

◆ operator=()

OBAtom & operator= ( OBAtom src)

Assignment.

◆ operator==()

bool operator== ( const OBAtom other) const
inline

Equivalence.

◆ Duplicate()

void Duplicate ( OBAtom src)

Duplicate another atom. Copies all information with the exception of index

Since
version 2.2

Referenced by OBUnitCell::FillUnitCell().

◆ Clear()

bool Clear ( void  )
virtual

Clear all data. Calls OBBase::Clear() to handle any generic data.

Returns
True if successful.

Reimplemented from OBBase.

Referenced by OpenBabel::addFragment().

◆ SetIdx()

void SetIdx ( int  idx)
inline

◆ SetId()

void SetId ( unsigned long  id)
inline

Referenced by OBMol::AddAtom(), and OBMol::NewAtom().

◆ SetHyb()

void SetHyb ( int  hyb)
inline

Set atom hybridization (i.e., 1 = sp, 2 = sp2, 3 = sp3 ...)

Referenced by OBResidueData::AssignBonds(), OBAtomTyper::AssignHyb(), OBBuilder::GetNewBondVector(), and OBMol::PerceiveBondOrders().

◆ SetAtomicNum()

void SetAtomicNum ( int  atomicnum)
inline

◆ SetIsotope()

void SetIsotope ( unsigned int  iso)

Set isotope number (actual atomic weight is tabulated automatically, 0 = most abundant)

Referenced by AliasData::Expand().

◆ SetImplicitHCount()

void SetImplicitHCount ( unsigned int  val)
inline

◆ SetFormalCharge()

void SetFormalCharge ( int  fcharge)
inline

◆ SetSpinMultiplicity()

void SetSpinMultiplicity ( short  spin)
inline

Set the atomic spin to spin. See _spinmultiplicity.

Referenced by OpenBabel::addFragment(), and AliasData::Expand().

◆ SetType() [1/2]

void SetType ( const char *  type)

◆ SetType() [2/2]

void SetType ( const std::string &  type)

Set the atomic type symbol (see OBTypeTable and OBAtomTyper for more)

◆ SetPartialCharge()

void SetPartialCharge ( double  pcharge)
inline

◆ SetVector() [1/3]

void SetVector ( const vector3 v)

◆ SetVector() [2/3]

void SetVector ( const double  x,
const double  y,
const double  z 
)

Set the coordinate vector for this atom based on x y & z.

◆ SetCoordPtr()

void SetCoordPtr ( double **  c)
inline

Set the position of this atom from a pointer-driven array of coordinates.

Referenced by OBMol::AddHydrogens(), OBMol::AddNewHydrogens(), OBMol::ConnectTheDots(), OBMol::EndModify(), and OBMol::SetCoordinates().

◆ SetVector() [3/3]

void SetVector ( )

Set the position of this atom based on the internal pointer array (i.e. from SetCoordPtr() )

◆ SetResidue()

void SetResidue ( OBResidue res)
inline

Attach an OBResidue res as containing this atom.

Referenced by OBResidue::AddAtom(), and OBResidue::RemoveAtom().

◆ SetParent()

void SetParent ( OBMol ptr)
inline

Attach an OBMol ptr as the parent container for this atom.

Referenced by OBMol::AddAtom(), and OBMol::NewAtom().

◆ SetAromatic()

void SetAromatic ( bool  value = true)
inline

Mark atom as being aromatic.

Referenced by OBAromaticTyper::AssignAromaticFlags(), and OpenBabel::AssignOBAromaticityModel().

◆ SetInRing()

void SetInRing ( bool  value = true)
inline

Mark an atom as belonging to at least one ring.

Referenced by OpenBabel::FindRings().

◆ ClearCoordPtr()

void ClearCoordPtr ( )
inline

Clear the internal coordinate pointer.

Referenced by OBMol::BeginModify(), and OBMol::ConnectTheDots().

◆ GetFormalCharge()

int GetFormalCharge ( ) const
inline

◆ GetAtomicNum()

unsigned int GetAtomicNum ( ) const
inline
Returns
the atomic number for this atom

Referenced by OBMol::AddHydrogens(), OBMol::AddNewHydrogens(), OpenBabel::alternate(), OBAromaticTyper::AssignAromaticFlags(), OBResidueData::AssignBonds(), OBBondTyper::AssignFunctionalGroupBonds(), OpenBabel::AssignOBAromaticityModel(), OBGastChrg::AssignPartialCharges(), OpenBabel::AssignRadicalDots(), OpenBabel::AtomIsNSOP(), OpenBabel::ComparePairSecond(), OBBuilder::Connect(), OBMol::ConnectTheDots(), OBMol::ConvertZeroBonds(), OBAtom::CountFreeOxygens(), OBAtom::CountFreeSulfurs(), OBMol::DeleteAtom(), OBMol::DeleteHydrogen(), OBMol::DeleteHydrogens(), OBDepict::DrawMolecule(), OBSmartsMatcher::EvalAtomExpr(), OBAtom::ExplicitHydrogenCount(), OpenBabel::findMetalloceneBonds(), OBMol::FindTorsions(), OpenBabel::GetCorrectedBondVector(), OpenBabel::GetDFFVector(), OBBond::GetEquibLength(), OBMol::GetGIVector(), OBMol::GetGTDVector(), OpenBabel::GetHeavyAtomCoords(), OBAtom::GetHvyDegree(), OBRing::GetRootAtom(), OBRotorRules::GetRotorIncrements(), OBMol::GetTotalSpinMultiplicity(), OBAtom::HasAlphaBetaUnsat(), OpenBabel::HasExocyclicBondToOxygenMinus(), OBAtom::HtoMethyl(), OpenBabel::intToStr(), OBAtom::IsAromaticNOxide(), OpenBabel::isFerroceneBond(), OBStericConformerFilter::IsGood(), OBAtom::IsHbondDonor(), OBAtom::IsNonPolarHydrogen(), OpenBabel::IsNotCorH(), OBAtom::IsPolarHydrogen(), OpenBabel::IsSpecialCase(), OpenBabel::IsSulfoneOxygen(), OBMol::MakeDativeBonds(), OBQueryAtom::Matches(), OpenBabel::NeedsDoubleBond(), OBMol::NumHvyAtoms(), OpenBabel::OBAtomAssignTypicalImplicitHydrogens(), OBMol::PerceiveBondOrders(), OBChainsParser::PerceiveChains(), OBRotorList::RemoveSymVals(), OBAtom::SetHybAndGeom(), OBAlign::SetRefMol(), OBAlign::SetTargetMol(), OpenBabel::validAdditionalBond(), and OBChainsParser::~OBChainsParser().

◆ GetIsotope()

unsigned short int GetIsotope ( ) const
inline

◆ GetSpinMultiplicity()

int GetSpinMultiplicity ( ) const
inline
Returns
the atomic spin, e.g., 0 (default) for normal atoms - note that this value is a convention, 2 for radical 1 or 3 for carbene

Referenced by OpenBabel::alternate(), OpenBabel::AssignRadicalDots(), OpenBabel::findMetalloceneBonds(), OBMol::GetTotalSpinMultiplicity(), and OpenBabel::intToStr().

◆ GetAtomicMass()

double GetAtomicMass ( ) const
Returns
the atomic mass of this atom given by standard IUPAC average molar mass

Referenced by OBMol::GetMolWt(), and OBMol::ToInertialFrame().

◆ GetExactMass()

double GetExactMass ( ) const
Returns
the atomic mass of this atom given by the isotope (default of 0 gives the most abundant isotope)

Referenced by OBMol::GetExactMass().

◆ GetIdx()

unsigned int GetIdx ( ) const
inline
Returns
the internal atom index (e.g., inside an OBMol)

Referenced by OBMol::AddAtom(), OBMol::AddHydrogens(), OBMol::AddNewHydrogens(), OBMol::Align(), OpenBabel::ApplyRotMatToBond(), OBMol::AreInSameRing(), OBAromaticTyper::AssignAromaticFlags(), OBResidueData::AssignBonds(), OpenBabel::AssignOBAromaticityModel(), OBGastChrg::AssignPartialCharges(), OBBuilder::Build(), OpenBabel::BuildOBRTreeVector(), OpenBabel::CanonicalLabels(), OpenBabel::CartesianToInternal(), OpenBabel::ComparePairSecond(), OBBuilder::Connect(), OBMol::ConnectTheDots(), OBMol::ContigFragList(), OBMol::CopySubstructure(), OBBuilder::CorrectStereoAtoms(), OpenBabel::CreateNewClassVector(), OBMolAtomBFSIter::CurrentDepth(), OBMol::DeleteAtom(), OBMol::DeleteHydrogen(), OBSmartsMatcher::EvalAtomExpr(), AliasData::Expand(), OBSmartsMatcher::FastSingleMatch(), OBMol::FindChildren(), OBMol::FindLargestFragment(), OpenBabel::FindRings(), OBBond::GetBeginAtomIdx(), OpenBabel::GetDFFVector(), OBBond::GetEndAtomIdx(), OpenBabel::getFragment(), OBBuilder::GetFragment(), OBForceField::GetGradient(), OBForceField::GetGrid(), OBMol::GetGTDVector(), OBBond::GetNbrAtomIdx(), OBMol::GetNextFragment(), OBRotorRules::GetRotorIncrements(), OBGraphSym::GetSymmetry(), OBGrid::Init(), OpenBabel::InternalToCartesian(), OBRotorList::IsFixedBond(), OBForceField::IsInSameRing(), OBRing::IsMember(), OBBuilder::IsSpiroAtom(), OBSSMatch::Match(), OBAtom::MatchesSMARTS(), OpenBabel::NeedsDoubleBond(), OBMol::NewAtom(), OpenBabel::OBBondGetSmallestRingSize(), OBMolAtomBFSIter::OBMolAtomBFSIter(), OBMolAtomDFSIter::OBMolAtomDFSIter(), OBMolPairIter::OBMolPairIter(), OBMolAtomDFSIter::operator++(), OBMolAtomBFSIter::operator++(), OBMolPairIter::operator++(), OBAtom::operator=(), OBMol::operator=(), OBAtom::operator==(), OBChainsParser::PerceiveChains(), OBRotorList::RemoveSymVals(), OBMol::RenumberAtoms(), OBRotorList::SetEvalAtoms(), OBAtom::SetHybAndGeom(), OBBond::SetLength(), OBMol::SetTorsion(), OBProxGrid::Setup(), OBSmartsMatcher::SetupAtomMatchTable(), OBFFCalculation2::SetupPointers(), OBFFCalculation3::SetupPointers(), OBFFCalculation4::SetupPointers(), and OBForceField::UpdatePairsSimple().

◆ GetIndex()

unsigned int GetIndex ( ) const
inline

◆ GetId()

unsigned long GetId ( ) const
inline

◆ GetCoordinateIdx()

unsigned int GetCoordinateIdx ( ) const
inline
Returns
the index into a pointer-driven array as used by GetCoordPtr() or SetCoordPtr()

Referenced by OBMol::DeleteHydrogen(), OpenBabel::SetRotorToAngle(), and OBMol::SetTorsion().

◆ GetExplicitDegree()

unsigned int GetExplicitDegree ( ) const
inline

◆ GetTotalDegree()

unsigned int GetTotalDegree ( ) const
inline

◆ GetExplicitValence()

unsigned int GetExplicitValence ( ) const

◆ GetTotalValence()

unsigned int GetTotalValence ( ) const
Returns
The sum of the bond orders of all bonds to this atom including bonds to implicit hydrogens

Referenced by OpenBabel::AssignRadicalDots(), and OBSmartsMatcher::EvalAtomExpr().

◆ GetHyb()

unsigned int GetHyb ( ) const

◆ GetImplicitHCount()

unsigned char GetImplicitHCount ( ) const
inline

◆ GetHvyDegree()

unsigned int GetHvyDegree ( ) const

◆ GetHeteroDegree()

unsigned int GetHeteroDegree ( ) const
Returns
The number of heteroatoms connected to an atom

◆ GetType()

char * GetType ( )
Returns
the atomic type (e.g., for molecular mechanics)

Referenced by OBGastChrg::AssignPartialCharges(), and OBAtomTyper::AssignTypes().

◆ GetX()

double GetX ( ) const
inline

◆ GetY()

double GetY ( ) const
inline

◆ GetZ()

double GetZ ( ) const
inline
Returns
the z coordinate

Referenced by OBDepict::DrawMolecule(), OBBond::GetLength(), and OBGrid::Init().

◆ x()

double x ( ) const
inline

◆ y()

double y ( ) const
inline

◆ z()

double z ( ) const
inline

◆ GetCoordinate()

double* GetCoordinate ( )
inline
Returns
the coordinates as a double* or NULL if none.

See SetCoordPtr() for more. If no coordinate pointer is used (e.g., only vector3), NULL will be returned.

Referenced by OBForceField::GetGrid(), OBFFCalculation2::SetupPointers(), OBFFCalculation3::SetupPointers(), OBFFCalculation4::SetupPointers(), and OBForceField::UpdatePairsSimple().

◆ GetVector() [1/2]

vector3 & GetVector ( )

◆ GetVector() [2/2]

const vector3 & GetVector ( ) const
Returns
the coordinates as a vector3 object

◆ GetPartialCharge()

double GetPartialCharge ( )
Returns
the partial charge of this atom, calculating a Gasteiger charge if needed

Referenced by OBGastChrg::AssignPartialCharges(), OBChargeModel::FillChargeVectors(), and OBForceField::GetPartialCharges().

◆ GetResidue()

OBResidue * GetResidue ( )
Returns
the residue which contains this atom, or NULL if none exists

Referenced by OBMol::AddNewHydrogens(), OBResidueData::AssignBonds(), OBMol::CopySubstructure(), and OBResidue::GetBonds().

◆ GetParent()

OBMol* GetParent ( )
inline

◆ GetNewBondVector()

bool GetNewBondVector ( vector3 v,
double  length 
)

Create a vector for a new bond from this atom, with length given by the supplied parameter

Returns
success or failure

◆ GetBond()

OBBond * GetBond ( OBAtom nbr)
Returns
the OBBond object between this atom and that supplied, or NULL if the two atoms are not bonded

Referenced by OBBondTyper::AssignFunctionalGroupBonds(), OBBuilder::Build(), OBBuilder::GetNewBondVector(), and OBMol::PerceiveBondOrders().

◆ BeginBonds()

OBBondIterator BeginBonds ( )
inline
Returns
An iterator to the beginning of the bonds to this atom

Referenced by OBResidueData::AssignBonds().

◆ EndBonds()

OBBondIterator EndBonds ( )
inline
Returns
An iterator to the end of the bonds to this atom

◆ BeginBond()

OBBond * BeginBond ( OBBondIterator i)

◆ NextBond()

OBBond * NextBond ( OBBondIterator i)

◆ BeginNbrAtom()

OBAtom * BeginNbrAtom ( OBBondIterator i)

◆ NextNbrAtom()

OBAtom * NextNbrAtom ( OBBondIterator i)

◆ GetDistance() [1/3]

double GetDistance ( int  index)
Returns
the distance to the atom defined by OBMol::GetAtom()

Referenced by OBBondTyper::AssignFunctionalGroupBonds().

◆ GetDistance() [2/3]

double GetDistance ( OBAtom b)
Returns
the distance to the supplied OBAtom

◆ GetDistance() [3/3]

double GetDistance ( vector3 v)
Returns
the distance to the coordinates of the supplied vector3
Since
version 2.4

◆ GetAngle() [1/2]

double GetAngle ( int  b,
int  c 
)
Returns
the angle defined by this atom -> b (vertex) -> c

Referenced by OBMol::GetAngle().

◆ GetAngle() [2/2]

double GetAngle ( OBAtom b,
OBAtom c 
)
Returns
the angle defined by this atom -> b (vertex) -> c

◆ NewResidue()

void NewResidue ( )
inline

If no residue has been set for this atom, create a new one.

◆ AddResidue()

void AddResidue ( OBResidue res)
inline

Add (set) the residue for this atom.

◆ DeleteResidue()

void DeleteResidue ( )
inline

Delete any residue associated with this atom.

◆ AddBond()

void AddBond ( OBBond bond)
inline

Add a bond to the internal list. Does not update the bond.

Referenced by OBMol::AddBond(), and OBBuilder::Connect().

◆ InsertBond()

void InsertBond ( OBBondIterator i,
OBBond bond 
)
inline

Insert bond into the internal list at the position from i Does not modify the bond.

Referenced by OBMol::AddBond().

◆ DeleteBond()

bool DeleteBond ( OBBond bond)

Find bond and remove it from the internal list. Does not update the bond.

◆ ClearBond()

void ClearBond ( )
inline

Clear all bonding information in this atom (does not delete them)

◆ HtoMethyl()

bool HtoMethyl ( )

If this is a hydrogen atom, transform into a methyl group.

Returns
success or failure

◆ SetHybAndGeom()

bool SetHybAndGeom ( int  hyb)

Change the hybridization of this atom and modify the geometry accordingly

Returns
success or failure
Deprecated:
This will be removed in future versions of Open Babel

◆ CountFreeOxygens()

unsigned int CountFreeOxygens ( ) const

◆ CountFreeSulfurs()

unsigned int CountFreeSulfurs ( ) const
Returns
The number of sulfur atoms connected that only have one heavy valence
Since
version 2.4

Referenced by OBAtom::IsCarboxylOxygen().

◆ ExplicitHydrogenCount()

unsigned int ExplicitHydrogenCount ( bool  ExcludeIsotopes = false) const
Returns
The number of hydrogens explicitly bound to this atom, optionally excluding D,T and isotope explicitly set to 1

Referenced by OBSmartsMatcher::EvalAtomExpr(), OBMol::PerceiveBondOrders(), and OpenBabel::TotalHydrogenCount().

◆ MemberOfRingCount()

unsigned int MemberOfRingCount ( ) const
Returns
The number of rings that contain this atom

Referenced by OBSmartsMatcher::EvalAtomExpr().

◆ MemberOfRingSize()

unsigned int MemberOfRingSize ( ) const
Returns
The size of the smallest ring that contains this atom (0 if not in a ring)

◆ CountRingBonds()

unsigned int CountRingBonds ( ) const
Returns
The number of explicit ring connections to this atom

Referenced by OBSmartsMatcher::EvalAtomExpr().

◆ SmallestBondAngle()

double SmallestBondAngle ( )
Returns
The smallest angle of bonds to this atom

Referenced by OBMol::ConnectTheDots().

◆ AverageBondAngle()

double AverageBondAngle ( )
Returns
The average angle of bonds to this atom

Referenced by OBBondTyper::AssignFunctionalGroupBonds(), and OBMol::PerceiveBondOrders().

◆ LewisAcidBaseCounts()

pair< int, int > LewisAcidBaseCounts ( ) const

Lewis acid/base vacancies for this atom

Returns
A pair of integers, where first is acid count and second is base count
Since
version 2.3

The returned values count whole lone pairs, so the acid count is the number of electron pairs desired and the base count is the number of electron pairs available.

Algorithm from:
Clark, A. M. Accurate Specification of Molecular Structures: The Case for
Zero-Order Bonds and Explicit Hydrogen Counting. Journal of Chemical Information
and Modeling, 51, 3149-3157 (2011). http://pubs.acs.org/doi/abs/10.1021/ci200488k

Referenced by OBMol::ConvertZeroBonds().

◆ HasResidue()

bool HasResidue ( )
inline
Returns
Is there any residue information?

Referenced by OBMol::AddNewHydrogens().

◆ IsHetAtom()

bool IsHetAtom ( )
inline
Returns
Is this a HETATM in a residue (returns false if not in a residue)
Since
version 2.4

◆ IsAromatic()

bool IsAromatic ( ) const

◆ IsInRing()

bool IsInRing ( ) const

◆ IsInRingSize()

bool IsInRingSize ( int  size) const
Returns
Is the atom in a ring of a given size?

Referenced by OBSmartsMatcher::EvalAtomExpr(), and OpenBabel::findMetalloceneBonds().

◆ IsHeteroatom()

bool IsHeteroatom ( )
Returns
Is this atom an element in the 15th or 16th main groups (i.e., N, O, P, S ...) ?

Referenced by OpenBabel::alternate(), and OBAtom::GetHeteroDegree().

◆ IsConnected()

bool IsConnected ( OBAtom a1)

◆ IsOneThree()

bool IsOneThree ( OBAtom a1)
Returns
Is this atom related to the supplied OBAtom in a 1,3 bonding pattern?

Referenced by OBMolPairIter::OBMolPairIter(), and OBMolPairIter::operator++().

◆ IsOneFour()

bool IsOneFour ( OBAtom a1)
Returns
Is this atom related to the supplied OBAtom in a 1,4 bonding pattern?

◆ IsCarboxylOxygen()

bool IsCarboxylOxygen ( )
Returns
Is this atom an oxygen in a carboxyl (-CO2 or CO2H) group?

Referenced by OBGastChrg::AssignPartialCharges(), and OBBuilder::GetNewBondVector().

◆ IsPhosphateOxygen()

bool IsPhosphateOxygen ( )
Returns
Is this atom an oxygen in a phosphate (R-PO3) group?

Referenced by OBGastChrg::AssignPartialCharges().

◆ IsSulfateOxygen()

bool IsSulfateOxygen ( )
Returns
Is this atom an oxygen in a sulfate (-SO3) group?

Referenced by OBGastChrg::AssignPartialCharges().

◆ IsNitroOxygen()

bool IsNitroOxygen ( )
Returns
Is this atom an oxygen in a nitro (-NO2) group?

◆ IsAmideNitrogen()

bool IsAmideNitrogen ( )

Returns true if nitrogen is part of an amide.

Returns
Is this atom a nitrogen in an amide (-C(=O)NR2) group?

◆ IsPolarHydrogen()

bool IsPolarHydrogen ( )
Returns
Is this atom a hydrogen connected to a polar atom (i.e., N, O, P, S)

Referenced by OBMol::DeletePolarHydrogens().

◆ IsNonPolarHydrogen()

bool IsNonPolarHydrogen ( )
Returns
Is this atom a hydrogen connected to a non-polar atom (i.e., C)

Referenced by OBMol::DeleteNonPolarHydrogens().

◆ IsAromaticNOxide()

bool IsAromaticNOxide ( )
Returns
Is this atom an aromatic nitrogen with at least one double bond to an oxygen atom

◆ IsChiral()

bool IsChiral ( )
Returns
Is this atom chiral?
Todo:

◆ IsAxial()

bool IsAxial ( )
Returns
Is this atom an axial atom in a ring

◆ IsHbondAcceptor()

bool IsHbondAcceptor ( )
Returns
Is this atom a hydrogen-bond acceptor (considering also atom surrounding)

◆ IsHbondAcceptorSimple()

bool IsHbondAcceptorSimple ( )
Returns
Is this atom a hydrogen-bond acceptor (old function)?

◆ IsHbondDonor()

bool IsHbondDonor ( )
Returns
Is this atom a hydrogen-bond donor?

Referenced by OBAtom::IsHbondDonorH().

◆ IsHbondDonorH()

bool IsHbondDonorH ( )
Returns
Is this a hydrogen atom attached to a hydrogen-bond donor?

◆ IsMetal()

bool IsMetal ( )
Returns
Is this atom a metal?
Since
version 2.4

◆ HasAlphaBetaUnsat()

bool HasAlphaBetaUnsat ( bool  includePandS = true)
Returns
Whether a neighboring atom (alpha) has an unsaturated bond to a third atom (beta).
Parameters
includePandSWhether to include phosphorus and sulfur neighbors in this determination (or to exclude them)

This can be sketched as follows

'*'
\
a=b

where a and b are the 'apha' and 'beta' atoms, respectively and '*' indicates the current atom.

◆ HasBondOfOrder()

bool HasBondOfOrder ( unsigned int  bo)
Returns
Whether this atom is connected to any bond with order == bo

Referenced by OBMol::PerceiveBondOrders().

◆ CountBondsOfOrder()

int CountBondsOfOrder ( unsigned int  bo)
Returns
The count of bonds connected to this atom with order == bo

◆ HighestBondOrder()

int HighestBondOrder ( )
Returns
The maximum bond order for this atom

◆ HasNonSingleBond()

bool HasNonSingleBond ( )
Returns
Whether this atom is connected to any bond with order >1

Referenced by OBMol::PerceiveBondOrders().

◆ HasSingleBond()

bool HasSingleBond ( )
inline
Returns
Does this atom have a single bond

◆ HasDoubleBond()

bool HasDoubleBond ( )
inline
Returns
Does this atom have a double bond

Referenced by OBBondTyper::AssignFunctionalGroupBonds().

◆ HasAromaticBond()

bool HasAromaticBond ( )
inline
Returns
Does this atom have an aromatic bond

◆ MatchesSMARTS()

bool MatchesSMARTS ( const char *  pattern)
Returns
Whether this atom matches the first atom in a given SMARTS pattern

◆ DoTransformations()

virtual OBBase* DoTransformations ( const std::map< std::string, std::string > *  ,
OBConversion  
)
inlinevirtualinherited

Perform a set of transformations specified by the user

Typically these are program options to filter or modify an object For example, see OBMol::DoTransformations() and OBMol::ClassDescription() Base type does nothing

Reimplemented in OBMol.

◆ ClassDescription()

static const char* ClassDescription ( )
inlinestaticinherited
Returns
A list of descriptions of command-line options for DoTransformations()

◆ CastAndClear()

T* CastAndClear ( bool  clear = true)
inlineinherited

By default clears the object. Called from ReadMolecule of most format classes.

◆ GetTitle()

virtual const char* GetTitle ( bool  replaceNewlines = true) const
inlinevirtualinherited

Base type does nothing Made virtual around r3535 to simplify code which passes around OBBase*.

Reimplemented in OBMol.

Referenced by OBMoleculeFormat::DoOutputOptions().

◆ SetTitle()

virtual void SetTitle ( const char *  )
inlinevirtualinherited

Reimplemented in OBMol.

Referenced by OBMoleculeFormat::DoOutputOptions().

◆ HasData() [1/3]

bool HasData ( const std::string &  s)
inherited

◆ HasData() [2/3]

bool HasData ( const char *  s)
inherited
Returns
whether the generic attribute/value pair exists

◆ HasData() [3/3]

bool HasData ( const unsigned int  type)
inherited
Returns
whether the generic attribute/value pair exists, for a given OBGenericDataType

◆ DeleteData() [1/4]

void DeleteData ( unsigned int  type)
inherited

◆ DeleteData() [2/4]

void DeleteData ( OBGenericData gd)
inherited

Delete the given generic data from this object.

◆ DeleteData() [3/4]

void DeleteData ( std::vector< OBGenericData *> &  vg)
inherited

Delete all of the given generic data from this object.

◆ DeleteData() [4/4]

bool DeleteData ( const std::string &  s)
inherited

Deletes the generic data with the specified attribute, returning false if not found.

◆ SetData()

void SetData ( OBGenericData d)
inlineinherited

◆ CloneData()

void CloneData ( OBGenericData d)
inherited

Adds a copy of a data object; does nothing if d == NULL

Since
version 2.2

Referenced by AliasData::Expand().

◆ DataSize()

size_t DataSize ( ) const
inlineinherited
Returns
the number of OBGenericData items attached to this molecule.

◆ GetData() [1/5]

OBGenericData * GetData ( const unsigned int  type)
inherited

◆ GetData() [2/5]

OBGenericData * GetData ( const std::string &  s)
inherited
Returns
any data matching the given attribute name or NULL if nothing matches
the value given an attribute name

◆ GetData() [3/5]

OBGenericData * GetData ( const char *  s)
inherited
Returns
any data matching the given attribute name or NULL if nothing matches
the value given an attribute name

◆ GetData() [4/5]

std::vector<OBGenericData*>& GetData ( )
inlineinherited
Returns
all data, suitable for iterating

Referenced by OBMol::GetEnergies(), OBMol::GetEnergy(), and OBMol::SetEnergies().

◆ GetData() [5/5]

std::vector< OBGenericData * > GetData ( DataOrigin  source)
inherited
Returns
all data with a specific origin, suitable for iterating

◆ GetAllData()

std::vector< OBGenericData * > GetAllData ( const unsigned int  type)
inherited
Returns
the all matching data for a given type from OBGenericDataType or an empty vector if nothing matches
Since
version 2.2

Referenced by OpenBabel::CanonicalLabels(), OBMol::CopySubstructure(), OBBuilder::CorrectStereoAtoms(), OBBuilder::CorrectStereoBonds(), OpenBabel::DeleteStereoOnAtom(), and OBMol::operator+=().

◆ BeginData()

OBDataIterator BeginData ( )
inlineinherited
Returns
An iterator pointing to the beginning of the data

Referenced by OBMol::AddBond(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().

◆ EndData()

OBDataIterator EndData ( )
inlineinherited
Returns
An iterator pointing to the end of the data

Referenced by OBMol::AddBond(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), and OBMol::operator=().

Member Data Documentation

◆ _ele

unsigned char _ele
protected

atomic number (type unsigned char to minimize space – allows for 0..255 elements)

Referenced by OBAtom::Duplicate().

◆ _imph

unsigned char _imph
protected

number of implicit hydrogens

Referenced by OBAtom::Duplicate().

◆ _type

char _type[OBATOM_TYPE_LEN]
protected

atomic type

Referenced by OBAtom::Duplicate().

◆ _fcharge

short _fcharge
protected

formal charge

Referenced by OBAtom::Duplicate().

◆ _isotope

unsigned short _isotope
protected

isotope (0 = most abundant)

Referenced by OBAtom::Duplicate().

◆ _spinmultiplicity

short _spinmultiplicity
protected

atomic spin, e.g., 2 for radical 1 or 3 for carbene

Referenced by OBAtom::Duplicate().

◆ _idx

unsigned int _idx
protected

unique node index (GetIdx(), SetIdx())

◆ _parent

OBMol* _parent
protected

parent molecule (if any)

◆ _vbond

std::vector<OBBond*> _vbond
protected

bonds to this atom – assumed to be one of the endpoints

◆ _cidx

unsigned int _cidx
protected

index into coordinate array

◆ _hyb

unsigned short _hyb
protected

hybridization

Referenced by OBAtom::Duplicate().

◆ _flags

unsigned short _flags
protected

bitwise flags (e.g. aromaticity)

Referenced by OBAtom::Duplicate().

◆ _pcharge

double _pcharge
protected

partial charge

Referenced by OBAtom::Duplicate().

◆ _c

double** _c
protected

coordinate array in double*

◆ _v

vector3 _v
mutableprotected

coordinate vector

◆ _residue

OBResidue* _residue
protected

parent residue (if applicable)

◆ _id

unsigned long _id
protected

unique id

Referenced by OBAtom::Duplicate().

◆ Visit

bool Visit

Used internally by graph traversal algorithms.

◆ _vdata

std::vector<OBGenericData*> _vdata
protectedinherited

Custom data.

Referenced by OBMol::OBMol().


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