#include <openbabel/bond.h>
Public Member Functions | |
OBBond () | |
virtual | ~OBBond () |
virtual bool | Clear () |
virtual OBBase * | DoTransformations (const std::map< std::string, std::string > *) |
template<class T> | |
T * | CastAndClear (bool clear=true) |
Bond modification methods | |
void | SetIdx (int idx) |
void | SetBO (int order) |
void | SetBondOrder (int order) |
void | SetBegin (OBAtom *begin) |
void | SetEnd (OBAtom *end) |
void | SetParent (OBMol *ptr) |
void | SetLength (OBAtom *fixed, double length) |
void | SetLength (double length) |
void | Set (int index, OBAtom *begin, OBAtom *end, int order, int flags) |
void | SetKSingle () |
void | SetKDouble () |
void | SetKTriple () |
void | SetAromatic () |
void | SetHash () |
void | SetWedge () |
void | SetUp () |
void | SetDown () |
void | SetInRing () |
void | SetClosure () |
void | UnsetHash () |
void | UnsetWedge () |
void | UnsetUp () |
void | UnsetDown () |
void | UnsetAromatic () |
void | UnsetKekule () |
Bond data request methods | |
unsigned int | GetIdx () const |
unsigned int | GetBO () const |
unsigned int | GetBondOrder () const |
unsigned int | GetFlags () const |
unsigned int | GetBeginAtomIdx () const |
unsigned int | GetEndAtomIdx () const |
OBAtom * | GetBeginAtom () |
const OBAtom * | GetBeginAtom () const |
OBAtom * | GetEndAtom () |
const OBAtom * | GetEndAtom () const |
OBAtom * | GetNbrAtom (OBAtom *ptr) |
OBMol * | GetParent () |
double | GetEquibLength () const |
double | GetLength () const |
unsigned int | GetNbrAtomIdx (OBAtom *ptr) |
property request methods | |
bool | IsAromatic () const |
bool | IsInRing () const |
bool | IsRotor () |
bool | IsAmide () |
bool | IsPrimaryAmide () |
bool | IsSecondaryAmide () |
bool | IsEster () |
bool | IsCarbonyl () |
bool | IsSingle () |
bool | IsDouble () |
bool | IsTriple () |
bool | IsKSingle () |
bool | IsKDouble () |
bool | IsKTriple () |
bool | IsClosure () |
bool | IsUp () |
bool | IsDown () |
bool | IsWedge () |
bool | IsHash () |
bool | IsDoubleBondGeometry () |
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) |
unsigned int | DataSize () const |
OBGenericData * | GetData (const unsigned int type) |
OBGenericData * | GetData (const std::string &) |
OBGenericData * | GetData (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 | |
bool | HasFlag (int flag) |
void | SetFlag (int flag) |
void | UnsetFlag (int flag) |
Protected Attributes | |
unsigned int | _idx |
OBMol * | _parent |
OBAtom * | _bgn |
OBAtom * | _end |
char | _order |
unsigned short int | _flags |
std::vector< OBGenericData * > | _vdata |
The OBBond class is straightforward in its data access and modification methods. OBBonds store pointers to the atoms on each end of the bond. In storing pointers to atoms instead of integer indices, the necessity of having to reorder bonds when atoms are shuffled, added, or delete is obviated.
While methods indicate "begin" and "end" atoms in the bond, all methods are designed to be independent of atom ordering, with the exception of stereochemically aware properties such as IsUp(), IsDown(), IsWedge, or IsHash().
OBBond | ( | ) |
Constructor.
~OBBond | ( | ) | [virtual] |
Destructor.
bool HasFlag | ( | int | flag | ) | [inline, protected] |
Referenced by OBBond::IsAromatic(), OBBond::IsClosure(), OBBond::IsDouble(), OBBond::IsInRing(), OBBond::IsSingle(), and OBBond::IsTriple().
void SetFlag | ( | int | flag | ) | [inline, protected] |
Referenced by OBBond::Set().
void UnsetFlag | ( | int | flag | ) | [inline, protected] |
void SetIdx | ( | int | idx | ) | [inline] |
Set the internal bond index.
Referenced by OBMol::DeleteBond(), OBMol::NewBond(), and OBBond::Set().
void SetBO | ( | int | order | ) |
Set the bond order to order
(i.e., 1 = single, 2 = double, 5 = aromatic).
Referenced by OBChemTsfm::Apply(), OBBondTyper::AssignFunctionalGroupBonds(), OBMol::ConvertDativeBonds(), OBMol::Kekulize(), OBMol::NewPerceiveKekuleBonds(), and OBMol::start_kekulize().
void SetBondOrder | ( | int | order | ) |
Set the bond order to order
(i.e., 1 = single, 2 = double, 5 = aromatic).
Referenced by OBBuilder::Connect(), OBBond::Set(), and OBBond::SetBO().
void SetBegin | ( | OBAtom * | begin | ) | [inline] |
Set the beginning atom of this bond to begin
. Does not update begin
.
Referenced by OBBuilder::Connect(), and OBBond::Set().
void SetEnd | ( | OBAtom * | end | ) | [inline] |
Set the ending atom of this bond to end
. Does not update end
.
Referenced by OBBuilder::Connect(), and OBBond::Set().
void SetParent | ( | OBMol * | ptr | ) | [inline] |
Set the parent molecule to ptr
. Does not update parent.
Referenced by OBMol::AddBond(), and OBMol::NewBond().
void SetLength | ( | OBAtom * | fixed, | |
double | length | |||
) |
Change the bond length to length
, while keeping fixed
stationary.
Referenced by OBAtom::HtoMethyl(), and OBBond::SetLength().
void SetLength | ( | double | length | ) |
Change the bond length to length
, moving both atoms halfway
Set the main bond information (i.e., when creating a bond).
Mark the main information for a bond
idx | The unique bond index for this bond (inside an OBMol) | |
begin | The 'beginning' atom for the bond | |
end | The 'end' atom for the bond | |
order | The bond order (i.e., 1 = single, 2 = double... 5 = aromatic) | |
flags | Any initial property flags |
Referenced by OBMol::AddBond().
void SetKSingle | ( | ) |
Referenced by OpenBabel::CorrectBadResonanceForm(), OBMol::NewPerceiveKekuleBonds(), OBMol::PerceiveKekuleBonds(), and OBBond::SetBondOrder().
void SetKDouble | ( | ) |
void SetKTriple | ( | ) |
Referenced by OBMol::NewPerceiveKekuleBonds(), OBMol::PerceiveKekuleBonds(), and OBBond::SetBondOrder().
void SetAromatic | ( | ) | [inline] |
Mark that this bond is aromatic. Does not update atoms or validate.
Referenced by OBMol::AddBond(), and OBBond::SetBondOrder().
void SetHash | ( | ) | [inline] |
Mark that this bond has 2D "hash" notation (i.e., goes in a negative Z direction from the beginning to end atoms).
void SetWedge | ( | ) | [inline] |
Mark that this bond has 2D "wedge" notation (i.e., goes in a positive Z direction from the beginning to end atoms).
void SetUp | ( | ) | [inline] |
Mark that this bond has an "up" torsion for double-bond stereochem (i.e., "/" in SMILES notation.
Referenced by OpenBabel::FixCisTransBonds().
void SetDown | ( | ) | [inline] |
Mark that this bond has an "down" torsion for double-bond stereochem (i.e., "\" in SMILES notation.
Referenced by OpenBabel::FixCisTransBonds().
void SetInRing | ( | ) | [inline] |
void SetClosure | ( | ) | [inline] |
Mark that this bond indicates a ring closure when walking the molecule.
Referenced by OBBond::IsClosure().
void UnsetHash | ( | ) | [inline] |
Clear any indication of 2D "hash" notation from SetHash().
void UnsetWedge | ( | ) | [inline] |
Clear any indication of 2D "wedge" notation from SetWedge().
void UnsetUp | ( | ) | [inline] |
Clear any indication of "/" double bond stereochemistry from SetUp().
Referenced by OpenBabel::FixCisTransBonds().
void UnsetDown | ( | ) | [inline] |
Clear any indication of "\" double bond stereochemistry from SetDown().
Referenced by OpenBabel::FixCisTransBonds().
void UnsetAromatic | ( | ) | [inline] |
Clear all aromaticity information for the bond.
Referenced by OBAromaticTyper::AssignAromaticFlags(), and OBBond::SetBondOrder().
void UnsetKekule | ( | ) | [inline] |
Clear all Kekule information for the bond.
unsigned int GetIdx | ( | ) | const [inline] |
Referenced by OBBuilder::CorrectStereoBonds(), OBMol::DeleteBond(), OBMol::expand_kekulize(), OpenBabel::FindConjugatedEZBonds(), OpenBabel::FindRings(), OpenBabel::FixCisTransBonds(), OBResidue::GetBonds(), OBBond::IsClosure(), and OpenBabel::KekulePropagate().
unsigned int GetBO | ( | ) | const [inline] |
Referenced by OBMol::AddBond(), OBResidueData::AssignBonds(), OBAtom::BOSum(), OBMol::ConvertDativeBonds(), OBAtom::CountBondsOfOrder(), OpenBabel::EvalBondExpr(), OpenBabel::ExpandKekule(), OBBond::GetEquibLength(), OBAtom::HasBondOfOrder(), OBAtom::HasNonSingleBond(), OBBond::IsAmide(), OBAtom::IsAmideNitrogen(), OBBond::IsCarbonyl(), OBBond::IsEster(), OBBond::IsPrimaryAmide(), OBBond::IsSecondaryAmide(), OBMol::NewPerceiveKekuleBonds(), OBMol::operator+=(), OBMol::PerceiveKekuleBonds(), and OBMol::start_kekulize().
unsigned int GetBondOrder | ( | ) | const [inline] |
Referenced by OBBuilder::Build(), OBBond::IsDouble(), OBBond::IsSingle(), OBBond::IsTriple(), and OBBuilder::Swap().
unsigned int GetFlags | ( | ) | const [inline] |
Referenced by OBMol::AddBond(), and OBMol::operator+=().
unsigned int GetBeginAtomIdx | ( | ) | const [inline] |
Referenced by OBMol::AddBond(), OBRingSearch::AddRingFromClosure(), OpenBabel::DetermineFRJ(), OpenBabel::FindRings(), OBRotorList::FindRotors(), OBRotorRules::GetRotorIncrements(), OBRing::IsMember(), OBMol::operator+=(), OBMol::PerceiveKekuleBonds(), OBRotorList::RemoveSymVals(), OBAromaticTyper::SelectRootAtoms(), and OBRotorList::SetEvalAtoms().
unsigned int GetEndAtomIdx | ( | ) | const [inline] |
Referenced by OBMol::AddBond(), OBRingSearch::AddRingFromClosure(), OpenBabel::DetermineFRJ(), OBRotorList::FindRotors(), OBRotorRules::GetRotorIncrements(), OBRing::IsMember(), OBMol::operator+=(), OBMol::PerceiveKekuleBonds(), OBRotorList::RemoveSymVals(), and OBRotorList::SetEvalAtoms().
OBAtom* GetBeginAtom | ( | ) | [inline] |
Referenced by OBRingSearch::AddRingFromClosure(), OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DeleteBond(), OBMol::FindChiralCenters(), OpenBabel::FindRings(), OBMol::FindTorsions(), OpenBabel::FixCisTransBonds(), OBBond::GetEquibLength(), OBBond::GetLength(), OBRotorRules::GetRotorIncrements(), OBAtom::IsConnected(), OBRotorList::IsFixedBond(), OBBond::SetLength(), and OBMol::start_kekulize().
const OBAtom* GetBeginAtom | ( | ) | const [inline] |
OBAtom* GetEndAtom | ( | ) | [inline] |
Referenced by OBRingSearch::AddRingFromClosure(), OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DeleteBond(), OpenBabel::FindRings(), OBMol::FindTorsions(), OpenBabel::FixCisTransBonds(), OBBond::GetEquibLength(), OBBond::GetLength(), OBRotorRules::GetRotorIncrements(), OBAtom::IsConnected(), OBRotorList::IsFixedBond(), OBBond::SetLength(), and OBMol::start_kekulize().
const OBAtom* GetEndAtom | ( | ) | const [inline] |
ptr
(i.e., the end if ptr
is the start) ptr
is not part of the bond, the beginning atom will always be returned Referenced by OBMol::ConvertDativeBonds(), OBAtom::CountFreeOxygens(), OpenBabel::FindConjugatedEZBonds(), OpenBabel::FixCisTransBonds(), OBAtom::GetBond(), OBResidue::GetBonds(), OpenBabel::GetDFFVector(), OBMol::GetGTDVector(), OpenBabel::GetGTDVector(), OBAtom::GetHeteroValence(), OpenBabel::GetHvyBondSum(), OpenBabel::GetHvyValence(), OBAtom::GetHvyValence(), OpenBabel::GetValence(), OBAtom::IsAmideNitrogen(), OBAtom::IsCarboxylOxygen(), OBAtom::IsHbondDonorH(), OBAtom::IsNitroOxygen(), OBAtom::IsNonPolarHydrogen(), OBAtom::IsOneFour(), OBAtom::IsOneThree(), OBAtom::IsPhosphateOxygen(), OBAtom::IsPolarHydrogen(), OBAtom::IsSulfateOxygen(), OBMol::NewPerceiveKekuleBonds(), and OBBond::SetLength().
OBMol* GetParent | ( | ) | [inline] |
Referenced by OBBond::IsAromatic(), OBBond::IsClosure(), OBBond::IsDouble(), OBBond::IsInRing(), OBBond::IsKDouble(), OBBond::IsKSingle(), OBBond::IsKTriple(), OBBond::IsSingle(), and OBBond::IsTriple().
double GetEquibLength | ( | ) | const |
double GetLength | ( | ) | const |
Referenced by OBMol::ConnectTheDots(), and OBBond::SetLength().
unsigned int GetNbrAtomIdx | ( | OBAtom * | ptr | ) | [inline] |
ptr
(i.e., the end if ptr
is the start) ptr
is not part of the bond, the beginning atom index will always be returned Referenced by OBMol::ContigFragList(), OBMol::FindLargestFragment(), OpenBabel::FindRings(), OpenBabel::GetDFFVector(), OBMol::GetGTDVector(), and OpenBabel::GetGTDVector().
bool IsAromatic | ( | ) | const |
Referenced by OBBuilder::CorrectStereoBonds(), OpenBabel::EvalBondExpr(), OpenBabel::FixCisTransBonds(), OBBond::GetEquibLength(), and OpenBabel::GetHvyBondSum().
bool IsInRing | ( | ) | const |
Referenced by OBAtom::CountRingBonds(), OpenBabel::EvalBondExpr(), OBBond::IsRotor(), OBMol::PerceiveKekuleBonds(), OBBuilder::Swap(), and OBAromaticTyper::TraverseCycle().
bool IsRotor | ( | ) |
Referenced by OBRotorList::FindRotors(), and OBMol::NumRotors().
bool IsAmide | ( | ) |
bool IsPrimaryAmide | ( | ) |
bool IsSecondaryAmide | ( | ) |
bool IsEster | ( | ) |
bool IsCarbonyl | ( | ) |
Referenced by OBBond::IsAmide(), OBBond::IsEster(), OBBond::IsPrimaryAmide(), and OBBond::IsSecondaryAmide().
bool IsSingle | ( | ) |
Referenced by OpenBabel::FindConjugatedEZBonds(), OpenBabel::FixCisTransBonds(), and OpenBabel::GetHvyBondSum().
bool IsDouble | ( | ) |
Referenced by OBBuilder::CorrectStereoBonds(), OpenBabel::FixCisTransBonds(), OpenBabel::GetHvyBondSum(), and OBMol::NewPerceiveKekuleBonds().
bool IsTriple | ( | ) |
bool IsKSingle | ( | ) |
bool IsKDouble | ( | ) |
Referenced by OpenBabel::GetCurrentValence(), OBAtom::KBOSum(), OBMol::Kekulize(), and OpenBabel::ValenceSum().
bool IsKTriple | ( | ) |
Referenced by OpenBabel::GetCurrentValence(), OBAtom::KBOSum(), and OBMol::Kekulize().
bool IsClosure | ( | ) |
Referenced by OBMol::FindSSSR(), and OBAromaticTyper::SelectRootAtoms().
bool IsUp | ( | ) | [inline] |
Referenced by OBBuilder::CorrectStereoBonds(), OpenBabel::EvalBondExpr(), OpenBabel::FindConjugatedEZBonds(), and OpenBabel::FixCisTransBonds().
bool IsDown | ( | ) | [inline] |
Referenced by OBBuilder::CorrectStereoBonds(), OpenBabel::EvalBondExpr(), OpenBabel::FindConjugatedEZBonds(), and OpenBabel::FixCisTransBonds().
bool IsWedge | ( | ) | [inline] |
Referenced by OpenBabel::CalcSignedVolume(), and OBMol::FindChiralCenters().
bool IsHash | ( | ) | [inline] |
Referenced by OpenBabel::CalcSignedVolume(), and OBMol::FindChiralCenters().
bool IsDoubleBondGeometry | ( | ) |
bool Clear | ( | void | ) | [virtual, inherited] |
Clear any and all data associated with this object.
This method can be called by OBConversion::Read() before reading data. Derived classes should be sure to call OBBase::Clear() to remove inherited generic data.
Reimplemented in OBAtom, OBMol, and OBResidue.
Referenced by OBResidue::Clear(), OBMol::Clear(), and OBAtom::Clear().
virtual OBBase* DoTransformations | ( | const std::map< std::string, std::string > * | ) | [inline, virtual, inherited] |
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()
Reimplemented in OBMol.
static const char* ClassDescription | ( | ) | [inline, static, inherited] |
Reimplemented in OBMol, and OBReaction.
T* CastAndClear | ( | bool | clear = true |
) | [inline, inherited] |
By default clears the object. Called from ReadMolecule of most format classes.
bool HasData | ( | const std::string & | s | ) | [inherited] |
Referenced by OBMol::AddAtom(), OBMol::FindAngles(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetSSSR(), OBBase::HasData(), OBDescriptor::MatchPairData(), OBMol::NewAtom(), OBMol::operator=(), and OBMol::SetEnergies().
bool HasData | ( | const char * | s | ) | [inherited] |
bool HasData | ( | const unsigned int | type | ) | [inherited] |
void DeleteData | ( | unsigned int | type | ) | [inherited] |
Delete any data matching the given OBGenericDataType.
Referenced by OBMol::AddAtom(), OBMol::BeginModify(), OBBuilder::CorrectStereoBonds(), OBDescriptor::DeleteProperties(), OBMol::FindSSSR(), OBMol::NewAtom(), and OBForceField::Setup().
void DeleteData | ( | OBGenericData * | gd | ) | [inherited] |
Delete the given generic data from this object.
void DeleteData | ( | std::vector< OBGenericData * > & | vg | ) | [inherited] |
Delete all of the given generic data from this object.
bool DeleteData | ( | const std::string & | s | ) | [inherited] |
Deletes the generic data with the specified attribute, returning false if not found.
void SetData | ( | OBGenericData * | d | ) | [inline, inherited] |
Adds a data object; does nothing if d==NULL.
Referenced by OBMol::AddBond(), OBGastChrg::AssignPartialCharges(), OpenBabel::CalcSignedVolume(), OBMol::DoTransformations(), OBAtom::Duplicate(), OBMol::FindAngles(), OBMol::FindSSSR(), OBMol::FindTorsions(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetFormula(), OBMol::GetNextFragment(), OBMol::GetSSSR(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::operator=(), OBDescriptor::PredictAndSave(), OBMol::SetEnergies(), and OBMol::SetFormula().
void CloneData | ( | OBGenericData * | d | ) | [inherited] |
Adds a copy of a data object; does nothing if d == NULL
unsigned int DataSize | ( | ) | const [inline, inherited] |
OBGenericData * GetData | ( | const unsigned int | type | ) | [inherited] |
Referenced by OpenBabel::CalcSignedVolume(), OpenBabel::CorrectChirality(), OBDescriptor::FilterCompare(), OBForceField::GetConformers(), OBForceField::GetCoordinates(), OBMol::GetNextFragment(), OBDescriptor::GetValues(), OBMoleculeFormat::MakeCombinedMolecule(), OBMolAngleIter::OBMolAngleIter(), OBMolRingIter::OBMolRingIter(), OBMolTorsionIter::OBMolTorsionIter(), OBMol::operator=(), and OBDescriptor::PredictAndSave().
OBGenericData * GetData | ( | const std::string & | s | ) | [inherited] |
the value given an attribute name
OBGenericData * GetData | ( | const char * | s | ) | [inherited] |
the value given an attribute name
std::vector<OBGenericData*>& GetData | ( | ) | [inline, inherited] |
Referenced by OBMol::BeginModify(), OBMol::DoTransformations(), OBMol::FindSSSR(), OBBase::GetData(), OBMol::GetEnergies(), OBMol::GetEnergy(), OBMol::GetFormula(), OBMol::GetSSSR(), OBMol::SetEnergies(), and OBMol::SetFormula().
std::vector< OBGenericData * > GetData | ( | DataOrigin | source | ) | [inherited] |
std::vector< OBGenericData * > GetAllData | ( | const unsigned int | type | ) | [inherited] |
OBDataIterator BeginData | ( | ) | [inline, inherited] |
Referenced by OBMol::AddAtom(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::NewAtom(), and OBMol::operator=().
OBDataIterator EndData | ( | ) | [inline, inherited] |
Referenced by OBMol::AddAtom(), OBAtom::Duplicate(), OBMoleculeFormat::MakeCombinedMolecule(), OBMol::NewAtom(), and OBMol::operator=().
unsigned int _idx [protected] |
I connect one node.
Referenced by OBBond::IsAmide(), OBBond::IsCarbonyl(), OBBond::IsDoubleBondGeometry(), OBBond::IsEster(), OBBond::IsPrimaryAmide(), OBBond::IsRotor(), OBBond::IsSecondaryAmide(), OBBond::OBBond(), and OBBond::SetBondOrder().
to another node
Referenced by OBBond::IsAmide(), OBBond::IsCarbonyl(), OBBond::IsDoubleBondGeometry(), OBBond::IsEster(), OBBond::IsPrimaryAmide(), OBBond::IsRotor(), OBBond::IsSecondaryAmide(), OBBond::OBBond(), and OBBond::SetBondOrder().
char _order [protected] |
Bond order (1, 2, 3, 5=aromatic).
Referenced by OBBond::IsRotor(), OBBond::OBBond(), and OBBond::SetBondOrder().
unsigned short int _flags [protected] |
Any flags for this bond.
Referenced by OBBond::IsKDouble(), OBBond::IsKSingle(), OBBond::IsKTriple(), OBBond::OBBond(), OBBond::SetKDouble(), OBBond::SetKSingle(), and OBBond::SetKTriple().
bool Visit |
Whether this bond has been visited by a graph algorithm.
std::vector<OBGenericData*> _vdata [protected, inherited] |
Custom data.
Referenced by OBBase::Clear(), OBBase::CloneData(), OBBase::DeleteData(), OBAtom::Duplicate(), OBBase::GetAllData(), OBBase::GetData(), OBBase::HasData(), OBBond::OBBond(), OBMol::OBMol(), and OBResidue::OBResidue().