RDKit
Open-source cheminformatics and machine learning.
RDKit::Bond Class Reference

class for representing a bond More...

#include <Bond.h>

Inheritance diagram for RDKit::Bond:
RDKit::QueryBond

Public Types

enum  BondType {
  UNSPECIFIED = 0, SINGLE, DOUBLE, TRIPLE,
  QUADRUPLE, QUINTUPLE, HEXTUPLE, ONEANDAHALF,
  TWOANDAHALF, THREEANDAHALF, FOURANDAHALF, FIVEANDAHALF,
  AROMATIC, IONIC, HYDROGEN, THREECENTER,
  DATIVEONE, DATIVE, DATIVEL, DATIVER,
  OTHER, ZERO
}
 the type of Bond More...
 
enum  BondDir {
  NONE =0, BEGINWEDGE, BEGINDASH, ENDDOWNRIGHT,
  ENDUPRIGHT, EITHERDOUBLE, UNKNOWN
}
 the bond's direction (for chirality) More...
 
enum  BondStereo { STEREONONE =0, STEREOANY, STEREOZ, STEREOE }
 the nature of the bond's stereochem (for cis/trans) More...
 
typedef boost::shared_ptr< BondBOND_SPTR
 
typedef Queries::Query< int, Bond const *, true > QUERYBOND_QUERY
 

Public Member Functions

 Bond ()
 
 Bond (BondType bT)
 construct with a particular BondType More...
 
 Bond (const Bond &other)
 
virtual ~Bond ()
 
Bondoperator= (const Bond &other)
 
virtual Bondcopy () const
 returns a copy More...
 
BondType getBondType () const
 returns our bondType More...
 
void setBondType (BondType bT)
 sets our bondType More...
 
double getBondTypeAsDouble () const
 returns our bondType as a double (e.g. SINGLE->1.0, AROMATIC->1.5, etc.) More...
 
double getValenceContrib (const Atom *at) const
 returns our contribution to the explicit valence of an Atom More...
 
double getValenceContrib (ATOM_SPTR at) const
 
void setIsAromatic (bool what)
 sets our isAromatic flag More...
 
bool getIsAromatic () const
 returns the status of our isAromatic flag More...
 
void setIsConjugated (bool what)
 sets our isConjugated flag More...
 
bool getIsConjugated () const
 returns the status of our isConjugated flag More...
 
ROMolgetOwningMol () const
 returns a reference to the ROMol that owns this Bond More...
 
void setOwningMol (ROMol *other)
 sets our owning molecule More...
 
void setOwningMol (ROMol &other)
 sets our owning molecule More...
 
unsigned int getIdx () const
 returns our index within the ROMol More...
 
void setIdx (unsigned int index)
 sets our index within the ROMol More...
 
unsigned int getBeginAtomIdx () const
 returns the index of our begin Atom More...
 
unsigned int getEndAtomIdx () const
 returns the index of our end Atom More...
 
unsigned int getOtherAtomIdx (unsigned int thisIdx) const
 given the index of one Atom, returns the index of the other More...
 
void setBeginAtomIdx (unsigned int what)
 sets the index of our begin Atom More...
 
void setEndAtomIdx (unsigned int what)
 sets the index of our end Atom More...
 
void setBeginAtom (Atom *at)
 sets our begin Atom More...
 
void setBeginAtom (ATOM_SPTR at)
 
void setEndAtom (Atom *at)
 sets our end Atom More...
 
void setEndAtom (ATOM_SPTR at)
 
AtomgetBeginAtom () const
 returns a pointer to our begin Atom More...
 
AtomgetEndAtom () const
 returns a pointer to our end Atom More...
 
AtomgetOtherAtom (Atom const *what) const
 returns a pointer to the other Atom More...
 
virtual bool hasQuery () const
 
virtual void setQuery (QUERYBOND_QUERY *what)
 NOT CALLABLE. More...
 
virtual QUERYBOND_QUERYgetQuery () const
 NOT CALLABLE. More...
 
virtual void expandQuery (QUERYBOND_QUERY *what, Queries::CompositeQueryType how=Queries::COMPOSITE_AND, bool maintainOrder=true)
 NOT CALLABLE. More...
 
virtual bool Match (Bond const *what) const
 returns whether or not we match the argument More...
 
virtual bool Match (const Bond::BOND_SPTR what) const
 
void setBondDir (BondDir what)
 sets our direction More...
 
BondDir getBondDir () const
 returns our direction More...
 
void setStereo (BondStereo what)
 sets our stereo code More...
 
BondStereo getStereo () const
 returns our stereo code More...
 
const INT_VECTgetStereoAtoms () const
 returns the indices of our stereo atoms More...
 
INT_VECTgetStereoAtoms ()
 
STR_VECT getPropList () const
 returns a list with the names of our properties More...
 
template<typename T >
void setProp (const char *key, T val, bool computed=false) const
 sets a property value More...
 
template<typename T >
void setProp (const std::string &key, T val, bool computed=false) const
 
template<typename T >
void getProp (const char *key, T &res) const
 allows retrieval of a particular property value More...
 
template<typename T >
void getProp (const std::string &key, T &res) const
 
template<typename T >
getProp (const char *key) const
 
template<typename T >
getProp (const std::string &key) const
 
template<typename T >
bool getPropIfPresent (const char *key, T &res) const
 
template<typename T >
bool getPropIfPresent (const std::string &key, T &res) const
 
bool hasProp (const char *key) const
 returns whether or not we have a property with name key More...
 
bool hasProp (const std::string &key) const
 
void clearProp (const char *key) const
 clears the value of a property More...
 
void clearProp (const std::string &key) const
 
void clearComputedProps () const
 clears all of our computed properties More...
 
void updatePropertyCache (bool strict=true)
 calculates any of our lazy properties More...
 

Protected Member Functions

void initBond ()
 

Protected Attributes

bool df_isAromatic
 sets our owning molecule More...
 
bool df_isConjugated
 
boost::uint8_t d_bondType
 
boost::uint8_t d_dirTag
 
boost::uint8_t d_stereo
 
atomindex_t d_index
 
atomindex_t d_beginAtomIdx
 
atomindex_t d_endAtomIdx
 
ROMoldp_mol
 
Dictdp_props
 
INT_VECTdp_stereoAtoms
 

Friends

class RWMol
 
class ROMol
 

Detailed Description

class for representing a bond

Notes:

  • many of the methods of Atom require that the Atom be associated with a molecule (an ROMol).
  • each Bond maintains a Dict of properties:
    • Each property is keyed by name and can store an arbitrary type.
    • Properties can be marked as calculated, in which case they will be cleared when the clearComputedProps() method is called.
    • Because they have no impact upon chemistry, all property operations are const, this allows extra flexibility for clients who need to store extra data on Bond objects.

Definition at line 46 of file Bond.h.

Member Typedef Documentation

typedef boost::shared_ptr<Bond> RDKit::Bond::BOND_SPTR

Definition at line 50 of file Bond.h.

Definition at line 52 of file Bond.h.

Member Enumeration Documentation

the bond's direction (for chirality)

Enumerator
NONE 

no special style

BEGINWEDGE 

wedged: narrow at begin

BEGINDASH 

dashed: narrow at begin

ENDDOWNRIGHT 

for cis/trans

ENDUPRIGHT 

ditto

EITHERDOUBLE 

a "crossed" double bond

UNKNOWN 

intentionally unspecified stereochemistry

Definition at line 81 of file Bond.h.

the nature of the bond's stereochem (for cis/trans)

Enumerator
STEREONONE 
STEREOANY 
STEREOZ 
STEREOE 

Definition at line 93 of file Bond.h.

the type of Bond

Enumerator
UNSPECIFIED 
SINGLE 
DOUBLE 
TRIPLE 
QUADRUPLE 
QUINTUPLE 
HEXTUPLE 
ONEANDAHALF 
TWOANDAHALF 
THREEANDAHALF 
FOURANDAHALF 
FIVEANDAHALF 
AROMATIC 
IONIC 
HYDROGEN 
THREECENTER 
DATIVEONE 

one-electron dative (e.g. from a C in a Cp ring to a metal)

DATIVE 

standard two-electron dative

DATIVEL 

standard two-electron dative

DATIVER 

standard two-electron dative

OTHER 
ZERO 

Zero-order bond (from http://pubs.acs.org/doi/abs/10.1021/ci200488k)

Definition at line 55 of file Bond.h.

Constructor & Destructor Documentation

RDKit::Bond::Bond ( )
RDKit::Bond::Bond ( BondType  bT)
explicit

construct with a particular BondType

RDKit::Bond::Bond ( const Bond other)
virtual RDKit::Bond::~Bond ( )
virtual

Member Function Documentation

void RDKit::Bond::clearComputedProps ( ) const
inline

clears all of our computed properties

Definition at line 415 of file Bond.h.

References RDKit::Dict::clearVal(), detail::computedPropName, dp_props, getPropIfPresent(), and RDKit::Dict::setVal().

void RDKit::Bond::clearProp ( const char *  key) const
inline

clears the value of a property

Notes:

  • if no property with name key exists, a KeyErrorException will be thrown.
  • if the property is marked as computed, it will also be removed from our list of computedProperties

Definition at line 397 of file Bond.h.

void RDKit::Bond::clearProp ( const std::string &  key) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 402 of file Bond.h.

References RDKit::Dict::clearVal(), detail::computedPropName, dp_props, getPropIfPresent(), and RDKit::Dict::setVal().

virtual Bond* RDKit::Bond::copy ( ) const
virtual

returns a copy

Note: the caller is responsible for deleteing the returned pointer.

Reimplemented in RDKit::QueryBond.

virtual void RDKit::Bond::expandQuery ( QUERYBOND_QUERY what,
Queries::CompositeQueryType  how = Queries::COMPOSITE_AND,
bool  maintainOrder = true 
)
virtual

NOT CALLABLE.

Reimplemented in RDKit::QueryBond.

Referenced by hasQuery().

Atom* RDKit::Bond::getBeginAtom ( ) const

returns a pointer to our begin Atom

Notes:

  • requires an owning molecule

Referenced by RDKit::FMCS::RingMatchTableSet::computeRingMatchTable(), and getEndAtomIdx().

unsigned int RDKit::Bond::getBeginAtomIdx ( ) const
inline

returns the index of our begin Atom

Notes:

  • this makes no sense if we do not have an owning molecule

Definition at line 170 of file Bond.h.

References d_beginAtomIdx.

Referenced by RDKit::FMCS::SubstructureCache::HashKey::computeKey().

BondDir RDKit::Bond::getBondDir ( ) const
inline

returns our direction

Definition at line 269 of file Bond.h.

References d_dirTag.

Referenced by RDKit::queryBondDir().

BondType RDKit::Bond::getBondType ( ) const
inline

returns our bondType

Definition at line 117 of file Bond.h.

References d_bondType.

Referenced by RDKit::queryBondOrder().

double RDKit::Bond::getBondTypeAsDouble ( ) const

returns our bondType as a double (e.g. SINGLE->1.0, AROMATIC->1.5, etc.)

Referenced by setBondType().

Atom* RDKit::Bond::getEndAtom ( ) const

returns a pointer to our end Atom

Notes:

  • requires an owning molecule

Referenced by RDKit::FMCS::RingMatchTableSet::computeRingMatchTable(), and getEndAtomIdx().

unsigned int RDKit::Bond::getEndAtomIdx ( ) const
inline

returns the index of our end Atom

Notes:

  • this makes no sense if we do not have an owning molecule

Definition at line 177 of file Bond.h.

References d_endAtomIdx, getBeginAtom(), getEndAtom(), getOtherAtom(), getOtherAtomIdx(), setBeginAtom(), setBeginAtomIdx(), setEndAtom(), and setEndAtomIdx().

Referenced by RDKit::SLNParse::addBranchToMol(), and RDKit::FMCS::SubstructureCache::HashKey::computeKey().

unsigned int RDKit::Bond::getIdx ( ) const
inline

returns our index within the ROMol

Notes:

  • this makes no sense if we do not have an owning molecule

Definition at line 156 of file Bond.h.

References d_index.

Referenced by RDKit::FMCS::TargetMatch::init(), RDKit::queryBondIsInRingOfSize(), RDKit::queryBondMinRingSize(), RDKit::queryIsBondInNRings(), and RDKit::queryIsBondInRing().

bool RDKit::Bond::getIsAromatic ( ) const
inline

returns the status of our isAromatic flag

Definition at line 136 of file Bond.h.

References df_isAromatic.

bool RDKit::Bond::getIsConjugated ( ) const
inline

returns the status of our isConjugated flag

Definition at line 141 of file Bond.h.

References df_isConjugated.

Atom* RDKit::Bond::getOtherAtom ( Atom const *  what) const

returns a pointer to the other Atom

Notes:

  • requires an owning molecule

Referenced by getEndAtomIdx().

unsigned int RDKit::Bond::getOtherAtomIdx ( unsigned int  thisIdx) const

given the index of one Atom, returns the index of the other

Notes:

  • this makes no sense if we do not have an owning molecule

Referenced by getEndAtomIdx().

ROMol& RDKit::Bond::getOwningMol ( ) const
inline

returns a reference to the ROMol that owns this Bond

Definition at line 144 of file Bond.h.

References dp_mol, and setOwningMol().

Referenced by RDKit::queryBondIsInRingOfSize(), RDKit::queryBondMinRingSize(), RDKit::queryIsBondInNRings(), and RDKit::queryIsBondInRing().

template<typename T >
void RDKit::Bond::getProp ( const char *  key,
T &  res 
) const
inline

allows retrieval of a particular property value

Parameters
keythe name under which the property should be stored. If a property is already stored under this name, it will be replaced.
resa reference to the storage location for the value.

Notes:

  • if no property with name key exists, a KeyErrorException will be thrown.
  • the boost::lexical_cast machinery is used to attempt type conversions. If this fails, a boost::bad_lexical_cast exception will be thrown.

Definition at line 343 of file Bond.h.

References dp_props, RDKit::Dict::getVal(), and PRECONDITION.

template<typename T >
void RDKit::Bond::getProp ( const std::string &  key,
T &  res 
) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 349 of file Bond.h.

References dp_props, RDKit::Dict::getVal(), and PRECONDITION.

template<typename T >
T RDKit::Bond::getProp ( const char *  key) const
inline

Definition at line 356 of file Bond.h.

References dp_props, and RDKit::Dict::getVal().

template<typename T >
T RDKit::Bond::getProp ( const std::string &  key) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 361 of file Bond.h.

References dp_props, and RDKit::Dict::getVal().

template<typename T >
bool RDKit::Bond::getPropIfPresent ( const char *  key,
T &  res 
) const
inline

returns whether or not we have a property with name key and assigns the value if we do

Definition at line 369 of file Bond.h.

References dp_props, and RDKit::Dict::getValIfPresent().

Referenced by clearComputedProps(), clearProp(), and setProp().

template<typename T >
bool RDKit::Bond::getPropIfPresent ( const std::string &  key,
T &  res 
) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 374 of file Bond.h.

References dp_props, and RDKit::Dict::getValIfPresent().

STR_VECT RDKit::Bond::getPropList ( ) const
inline

returns a list with the names of our properties

Definition at line 294 of file Bond.h.

References dp_props, and RDKit::Dict::keys().

virtual QUERYBOND_QUERY* RDKit::Bond::getQuery ( ) const
virtual

NOT CALLABLE.

Reimplemented in RDKit::QueryBond.

Referenced by hasQuery().

BondStereo RDKit::Bond::getStereo ( ) const
inline

returns our stereo code

Definition at line 274 of file Bond.h.

References d_stereo.

const INT_VECT& RDKit::Bond::getStereoAtoms ( ) const
inline

returns the indices of our stereo atoms

Definition at line 277 of file Bond.h.

References dp_stereoAtoms.

INT_VECT& RDKit::Bond::getStereoAtoms ( )
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 284 of file Bond.h.

References dp_stereoAtoms.

double RDKit::Bond::getValenceContrib ( const Atom at) const

returns our contribution to the explicit valence of an Atom

Notes:

  • requires an owning molecule

Referenced by setBondType().

double RDKit::Bond::getValenceContrib ( ATOM_SPTR  at) const
bool RDKit::Bond::hasProp ( const char *  key) const
inline

returns whether or not we have a property with name key

Definition at line 379 of file Bond.h.

References dp_props, and RDKit::Dict::hasVal().

bool RDKit::Bond::hasProp ( const std::string &  key) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 384 of file Bond.h.

References dp_props, and RDKit::Dict::hasVal().

virtual bool RDKit::Bond::hasQuery ( ) const
inlinevirtual

Reimplemented in RDKit::QueryBond.

Definition at line 242 of file Bond.h.

References Queries::COMPOSITE_AND, expandQuery(), getQuery(), Match(), and setQuery().

void RDKit::Bond::initBond ( )
protected
virtual bool RDKit::Bond::Match ( Bond const *  what) const
virtual

returns whether or not we match the argument

Notes:

  • for Bond objects, "match" means that either one of the Bonds has bondType Bond::UNSPECIFIED or both Bonds have the same bondType.

Reimplemented in RDKit::QueryBond.

Referenced by hasQuery().

virtual bool RDKit::Bond::Match ( const Bond::BOND_SPTR  what) const
virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Reimplemented in RDKit::QueryBond.

Bond& RDKit::Bond::operator= ( const Bond other)
void RDKit::Bond::setBeginAtom ( Atom at)

sets our begin Atom

Notes:

  • requires an owning molecule

Referenced by getEndAtomIdx().

void RDKit::Bond::setBeginAtom ( ATOM_SPTR  at)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

void RDKit::Bond::setBeginAtomIdx ( unsigned int  what)

sets the index of our begin Atom

Notes:

  • requires an owning molecule

Referenced by getEndAtomIdx().

void RDKit::Bond::setBondDir ( BondDir  what)
inline

sets our direction

Definition at line 267 of file Bond.h.

References d_dirTag.

void RDKit::Bond::setBondType ( BondType  bT)
inline

sets our bondType

Definition at line 119 of file Bond.h.

References d_bondType, getBondTypeAsDouble(), and getValenceContrib().

void RDKit::Bond::setEndAtom ( Atom at)

sets our end Atom

Notes:

  • requires an owning molecule

Referenced by getEndAtomIdx().

void RDKit::Bond::setEndAtom ( ATOM_SPTR  at)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

void RDKit::Bond::setEndAtomIdx ( unsigned int  what)

sets the index of our end Atom

Notes:

  • requires an owning molecule

Referenced by RDKit::SLNParse::addBranchToMol(), and getEndAtomIdx().

void RDKit::Bond::setIdx ( unsigned int  index)
inline

sets our index within the ROMol

Notes:

  • this makes no sense if we do not have an owning molecule
  • the index should be < this->getOwningMol()->getNumBonds()

Definition at line 163 of file Bond.h.

References d_index.

void RDKit::Bond::setIsAromatic ( bool  what)
inline

sets our isAromatic flag

Definition at line 134 of file Bond.h.

References df_isAromatic.

void RDKit::Bond::setIsConjugated ( bool  what)
inline

sets our isConjugated flag

Definition at line 139 of file Bond.h.

References df_isConjugated.

void RDKit::Bond::setOwningMol ( ROMol other)

sets our owning molecule

Referenced by RDKit::SLNParse::addBranchToMol(), and getOwningMol().

void RDKit::Bond::setOwningMol ( ROMol other)
inline

sets our owning molecule

Definition at line 148 of file Bond.h.

References setOwningMol().

Referenced by setOwningMol().

template<typename T >
void RDKit::Bond::setProp ( const char *  key,
val,
bool  computed = false 
) const
inline

sets a property value

Parameters
keythe name under which the property should be stored. If a property is already stored under this name, it will be replaced.
valthe value to be stored
computed(optional) allows the property to be flagged computed.

Definition at line 308 of file Bond.h.

template<typename T >
void RDKit::Bond::setProp ( const std::string &  key,
val,
bool  computed = false 
) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 315 of file Bond.h.

References detail::computedPropName, dp_props, getPropIfPresent(), and RDKit::Dict::setVal().

virtual void RDKit::Bond::setQuery ( QUERYBOND_QUERY what)
virtual

NOT CALLABLE.

Reimplemented in RDKit::QueryBond.

Referenced by hasQuery().

void RDKit::Bond::setStereo ( BondStereo  what)
inline

sets our stereo code

Definition at line 272 of file Bond.h.

References d_stereo.

void RDKit::Bond::updatePropertyCache ( bool  strict = true)
inline

calculates any of our lazy properties

Notes:

  • requires an owning molecule

Definition at line 431 of file Bond.h.

Friends And Related Function Documentation

friend class ROMol
friend

Definition at line 48 of file Bond.h.

friend class RWMol
friend

Definition at line 47 of file Bond.h.

Member Data Documentation

atomindex_t RDKit::Bond::d_beginAtomIdx
protected

Definition at line 444 of file Bond.h.

Referenced by getBeginAtomIdx().

boost::uint8_t RDKit::Bond::d_bondType
protected

Definition at line 440 of file Bond.h.

Referenced by getBondType(), and setBondType().

boost::uint8_t RDKit::Bond::d_dirTag
protected

Definition at line 441 of file Bond.h.

Referenced by getBondDir(), and setBondDir().

atomindex_t RDKit::Bond::d_endAtomIdx
protected

Definition at line 444 of file Bond.h.

Referenced by getEndAtomIdx().

atomindex_t RDKit::Bond::d_index
protected

Definition at line 443 of file Bond.h.

Referenced by getIdx(), and setIdx().

boost::uint8_t RDKit::Bond::d_stereo
protected

Definition at line 442 of file Bond.h.

Referenced by getStereo(), and setStereo().

bool RDKit::Bond::df_isAromatic
protected

sets our owning molecule

sets our owning molecule

Definition at line 438 of file Bond.h.

Referenced by getIsAromatic(), and setIsAromatic().

bool RDKit::Bond::df_isConjugated
protected

Definition at line 439 of file Bond.h.

Referenced by getIsConjugated(), and setIsConjugated().

ROMol* RDKit::Bond::dp_mol
protected

Definition at line 445 of file Bond.h.

Referenced by getOwningMol().

Dict* RDKit::Bond::dp_props
protected
INT_VECT* RDKit::Bond::dp_stereoAtoms
protected

Definition at line 447 of file Bond.h.

Referenced by getStereoAtoms().


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