RDKit
Open-source cheminformatics and machine learning.
CIPLabeler.h
Go to the documentation of this file.
1 //
2 //
3 // Copyright (C) 2020 Schrödinger, LLC
4 //
5 // @@ All Rights Reserved @@
6 // This file is part of the RDKit.
7 // The contents are covered by the terms of the BSD license
8 // which is included in the file license.txt, found at the root
9 // of the RDKit source tree.
10 //
11 #pragma once
12 
13 #include <boost/dynamic_bitset.hpp>
14 
15 #include <RDGeneral/export.h>
16 
17 namespace RDKit {
18 
19 class ROMol;
20 
21 namespace CIPLabeler {
22 
23 /**
24  * Calculate Stereochemical labels based on an accurate implementation
25  * of the CIP rules.
26  *
27  * This is a C++ port of https://github.com/SiMolecule/centres, which was
28  * originally written by John Mayfield in Java. The original algorithm was
29  * described in:
30  *
31  * Hanson, R. M., Musacchio, S., Mayfield, J. W., Vainio, M. J., Yerin, A.,
32  * Redkin, D. Algorithmic Analysis of Cahn--Ingold--Prelog Rules of
33  * Stereochemistry: Proposals for Revised Rules and a Guide for Machine
34  * Implementation. J. Chem. Inf. Model. 2018, 58, 1755-1765.
35  *
36  * \param mol - the molecule to be labelled.
37  *
38  * \note only atoms with chiral tags and double bonds with proper
39  * bond directions will be labelled.
40  * \note Labels will be stored under the common_properties::_CIPCode
41  * property of the relevant atoms/bonds.
42  */
44 
45 /**
46  * Overload that allows selecting which atoms and/or bonds will be labeled.
47  *
48  * \param mol - the molecule to be labelled.
49  *
50  * \param atoms - bitset with the atom indexes to be labeled.
51  *
52  * \param bonds - bitset with the bond indexes to be labeled.
53  *
54  */
56  ROMol &mol, const boost::dynamic_bitset<> &atoms,
57  const boost::dynamic_bitset<> &bonds);
58 } // namespace CIPLabeler
59 } // namespace RDKit
#define RDKIT_CIPLABELER_EXPORT
Definition: export.h:33
RDKIT_CIPLABELER_EXPORT void assignCIPLabels(ROMol &mol)
Std stuff.
Definition: Abbreviations.h:18