RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
RDKit::CIPLabeler Namespace Reference

Classes

class  AtropisomerBond
 
class  CIPMol
 
class  CIPMolSpan
 
class  Configuration
 
class  Digraph
 
class  Edge
 
class  MaxIterationsExceeded
 
class  Node
 
class  PairList
 
class  Priority
 
class  Rule1a
 
class  Rule1b
 
class  Rule2
 
class  Rule3
 
class  Rule4a
 
class  Rule4b
 
class  Rule4c
 
class  Rule5
 
class  Rule5New
 
class  Rule6
 
class  Rules
 
class  SequenceRule
 
class  Sort
 
class  Sp2Bond
 
class  Tetrahedral
 
class  TooManyNodesException
 

Enumerations

enum class  Type {
  Cv4D3 , Nv3D2 , Nv4D3Plus , Nv2D2Minus ,
  Cv3D3Minus , Ov3D2Plus , Other
}
 

Functions

RDKIT_CIPLABELER_EXPORT void assignCIPLabels (ROMol &mol, unsigned int maxRecursiveIterations=0)
 
RDKIT_CIPLABELER_EXPORT void assignCIPLabels (ROMol &mol, const boost::dynamic_bitset<> &atoms, const boost::dynamic_bitset<> &bonds, unsigned int maxRecursiveIterations=0)
 
std::vector< boost::rational< int > > calcFracAtomNums (const CIPMol &mol)
 
enum class  Descriptor {
  NONE , UNKNOWN , ns , R ,
  S , r , s , seqTrans ,
  seqCis , E , Z , M ,
  P , m , p , SP_4 ,
  TBPY_5 , OC_6
}
 
static std::string to_string (const Descriptor &desc)
 

Enumeration Type Documentation

◆ Descriptor

Defines a descriptor which can be assigned to an atom to indicate the type of chirality (if there is any). Each descriptor defines its generallink Type} which can be useful when comparing centres of different geometry.

Enumerator
NONE 
UNKNOWN 
ns 

Tetrahedral

seqTrans 

Cis/Trans

seqCis 
SP_4 
TBPY_5 
OC_6 

Definition at line 25 of file Descriptor.h.

◆ Type

Enumerator
Cv4D3 
Nv3D2 
Nv4D3Plus 
Nv2D2Minus 
Cv3D3Minus 
Ov3D2Plus 
Other 

Definition at line 32 of file Mancude.h.

Function Documentation

◆ assignCIPLabels() [1/2]

RDKIT_CIPLABELER_EXPORT void RDKit::CIPLabeler::assignCIPLabels ( ROMol & mol,
const boost::dynamic_bitset<> & atoms,
const boost::dynamic_bitset<> & bonds,
unsigned int maxRecursiveIterations = 0 )

Overload that allows selecting which atoms and/or bonds will be labeled.

Parameters
mol- the molecule to be labelled.
atoms- bitset with the atom indexes to be labeled.
bonds- bitset with the bond indexes to be labeled.
maxRecursiveIterations- maximum number of iterations A value of 1,250,000 take about 1 second. Most structures requires less than 10,000 iterations. A peptide with MW~3000 took about 100 iterations, and a 20,000 mw protein took about 600 iterations.

◆ assignCIPLabels() [2/2]

RDKIT_CIPLABELER_EXPORT void RDKit::CIPLabeler::assignCIPLabels ( ROMol & mol,
unsigned int maxRecursiveIterations = 0 )

Calculate Stereochemical labels based on an accurate implementation of the CIP rules.

This is a C++ port of https://github.com/SiMolecule/centres, which was originally written by John Mayfield in Java. The original algorithm was described in:

Hanson, R. M., Musacchio, S., Mayfield, J. W., Vainio, M. J., Yerin, A., Redkin, D. Algorithmic Analysis of Cahn–Ingold–Prelog Rules of Stereochemistry: Proposals for Revised Rules and a Guide for Machine Implementation. J. Chem. Inf. Model. 2018, 58, 1755-1765.

Parameters
mol- the molecule to be labelled.
Note
only atoms with chiral tags and double bonds with proper bond directions will be labelled.
Labels will be stored under the common_properties::_CIPCode property of the relevant atoms/bonds.

◆ calcFracAtomNums()

std::vector< boost::rational< int > > RDKit::CIPLabeler::calcFracAtomNums ( const CIPMol & mol)

Calculate fractional atomic numbers for all atoms in the mol. Using fractional atomic numbers makes sure that atoms in rings that have resonant structures are always considered with the same priority.

◆ to_string()

static std::string RDKit::CIPLabeler::to_string ( const Descriptor & desc)
static

Definition at line 54 of file Descriptor.h.

References E, M, m, NONE, ns, OC_6, P, p, R, r, RDKit::rdvalue_is(), S, s, seqCis, seqTrans, SP_4, TBPY_5, UNKNOWN, and Z.

Referenced by RDKit::CIPLabeler::PairList::toString().