RDKit
Open-source cheminformatics and machine learning.
Mancude.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 
12 ///
13 /// Utilities to handle atomic numbers in Mancude (maximum number
14 /// of noncumulative double bonds) rings
15 ///
16 /// This guarantees that aromatic rings containing heteroatoms
17 /// are always resolved in the same way
18 ///
19 
20 #pragma once
21 
22 #include <vector>
23 
24 #include <boost/rational.hpp>
25 
26 namespace RDKit {
27 
28 namespace CIPLabeler {
29 
30 class CIPMol;
31 
32 enum class Type {
33  Cv4D3, // =C(X)-
34  Nv3D2, // =N-
35  Nv4D3Plus, // =[N+]<
36  Nv2D2Minus, // -[N-]-
37  Cv3D3Minus, // -[C(X)-]-
38  Ov3D2Plus, // -[O+]=
39  Other
40 };
41 
42 /**
43  * Calculate fractional atomic numbers for all atoms in the mol.
44  * Using fractional atomic numbers makes sure that atoms in rings
45  * that have resonant structures are always considered with the same
46  * priority.
47  *
48  */
49 std::vector<boost::rational<int>> calcFracAtomNums(const CIPMol &mol);
50 
51 } // namespace CIPLabeler
52 } // namespace RDKit
std::vector< boost::rational< int > > calcFracAtomNums(const CIPMol &mol)
Std stuff.
Definition: Abbreviations.h:18