Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends

RDKit::Bond Class Reference

class for representing a bond More...

#include <Bond.h>

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

List of all members.

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
}
 

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

Protected Member Functions

void initBond ()

Protected Attributes

BondType d_bondType
ROMoldp_mol
bool df_isAromatic
bool df_isConjugated
unsigned int d_index
unsigned int d_beginAtomIdx
unsigned int d_endAtomIdx
BondDir d_dirTag
BondStereo d_stereo
INT_VECT d_stereoAtoms
Dictdp_props

Friends

class RWMol
class ROMol

Detailed Description

class for representing a bond

Notes:

Definition at line 44 of file Bond.h.


Member Typedef Documentation

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

Definition at line 48 of file Bond.h.

Reimplemented in RDKit::QueryBond.

Definition at line 50 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 78 of file Bond.h.

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

Enumerator:
STEREONONE 
STEREOANY 
STEREOZ 
STEREOE 

Definition at line 90 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 

Definition at line 53 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 382 of file Bond.h.

References RDKit::Dict::clearVal(), dp_props, getProp(), hasProp(), 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 363 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 368 of file Bond.h.

References RDKit::Dict::clearVal(), dp_props, getProp(), hasProp(), 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.

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

returns a pointer to our begin Atom

Notes:

  • requires an owning molecule
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 167 of file Bond.h.

References d_beginAtomIdx.

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

returns our direction

Definition at line 266 of file Bond.h.

References d_dirTag.

Referenced by RDKit::queryBondDir().

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

returns our bondType

Definition at line 114 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.)

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

returns a pointer to our end Atom

Notes:

  • requires an owning molecule
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 174 of file Bond.h.

References d_endAtomIdx.

Referenced by RDKit::SLNParse::addBranchToMol().

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 153 of file Bond.h.

References d_index.

Referenced by 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 133 of file Bond.h.

References df_isAromatic.

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

returns the status of our isConjugated flag

Definition at line 138 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
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
ROMol& RDKit::Bond::getOwningMol (  )  const [inline]

returns a reference to the ROMol that owns this Bond

Definition at line 141 of file Bond.h.

References dp_mol.

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:
key the name under which the property should be stored. If a property is already stored under this name, it will be replaced.
res a 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 332 of file Bond.h.

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

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

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 338 of file Bond.h.

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

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

returns a list with the names of our properties

Definition at line 283 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.

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

returns our stereo code

Definition at line 271 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 274 of file Bond.h.

References d_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 276 of file Bond.h.

References d_stereoAtoms.

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

returns our contribution to the explicit valence of an Atom

Notes:

  • requires an owning molecule
double RDKit::Bond::getValenceContrib ( ATOM_SPTR  at  )  const
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 350 of file Bond.h.

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

bool RDKit::Bond::hasProp ( const char *  key  )  const [inline]

returns whether or not we have a property with name key

Definition at line 345 of file Bond.h.

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

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

virtual bool RDKit::Bond::hasQuery (  )  const [inline, virtual]

Reimplemented in RDKit::QueryBond.

Definition at line 239 of file Bond.h.

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.

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
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
void RDKit::Bond::setBondDir ( BondDir  what  )  [inline]

sets our direction

Reimplemented in RDKit::QueryBond.

Definition at line 264 of file Bond.h.

References d_dirTag.

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

sets our bondType

Reimplemented in RDKit::QueryBond.

Definition at line 116 of file Bond.h.

References d_bondType.

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::setEndAtom ( Atom at  ) 

sets our end Atom

Notes:

  • requires an owning molecule
void RDKit::Bond::setEndAtomIdx ( unsigned int  what  ) 

sets the index of our end Atom

Notes:

  • requires an owning molecule

Referenced by RDKit::SLNParse::addBranchToMol().

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 160 of file Bond.h.

References d_index.

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

sets our isAromatic flag

Definition at line 131 of file Bond.h.

References df_isAromatic.

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

sets our isConjugated flag

Definition at line 136 of file Bond.h.

References df_isConjugated.

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

sets our owning molecule

Referenced by RDKit::SLNParse::addBranchToMol().

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

sets our owning molecule

Definition at line 145 of file Bond.h.

References setOwningMol().

Referenced by setOwningMol().

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 304 of file Bond.h.

References dp_props, getProp(), hasProp(), and RDKit::Dict::setVal().

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

sets a property value

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

Definition at line 297 of file Bond.h.

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

NOT CALLABLE.

Reimplemented in RDKit::QueryBond.

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

sets our stereo code

Definition at line 269 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 399 of file Bond.h.


Friends And Related Function Documentation

friend class ROMol [friend]

Definition at line 46 of file Bond.h.

friend class RWMol [friend]

Definition at line 45 of file Bond.h.


Member Data Documentation

unsigned int RDKit::Bond::d_beginAtomIdx [protected]

Definition at line 411 of file Bond.h.

Referenced by getBeginAtomIdx().

sets our owning molecule

Definition at line 399 of file Bond.h.

Referenced by getBondType(), and setBondType().

Definition at line 412 of file Bond.h.

Referenced by getBondDir(), and setBondDir().

unsigned int RDKit::Bond::d_endAtomIdx [protected]

Definition at line 411 of file Bond.h.

Referenced by getEndAtomIdx().

unsigned int RDKit::Bond::d_index [protected]

Definition at line 410 of file Bond.h.

Referenced by getIdx(), and setIdx().

Definition at line 413 of file Bond.h.

Referenced by getStereo(), and setStereo().

Definition at line 414 of file Bond.h.

Referenced by getStereoAtoms().

bool RDKit::Bond::df_isAromatic [protected]

Definition at line 408 of file Bond.h.

Referenced by getIsAromatic(), and setIsAromatic().

bool RDKit::Bond::df_isConjugated [protected]

Definition at line 409 of file Bond.h.

Referenced by getIsConjugated(), and setIsConjugated().

ROMol* RDKit::Bond::dp_mol [protected]

Definition at line 407 of file Bond.h.

Referenced by getOwningMol().

Definition at line 416 of file Bond.h.

Referenced by clearComputedProps(), clearProp(), getProp(), getPropList(), hasProp(), and setProp().


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