Semantic interpreter of the smiles grammar, constructs molecules from the data accrued by the parser. More...
#include <SmilesMoleculeBuilder.h>
Public Member Functions | |
| std::vector< Molecule > | interpret () |
| Interpret the collected graph as (possibly multiple molecules) | |
Parsing triggers | |
| void | addAtom (const AtomData &atom) |
| Parsing trigger on encountering a ring closure marker. | |
| void | addRingClosure (const BondData &bond) |
| Parsing trigger on encountering a ring closure marker. | |
| void | branchOpen () |
| Parsing trigger on branch open. | |
| void | branchClose () |
| Parsing trigger on branch close. | |
| void | setNextAtomUnbonded () |
| Parsing trigger on finding a dot (molecule separator) in place of a bond. | |
| void | setNextAtomBondInformation (const BondData &bond) |
| Parsing trigger on encountering non-default bond information. | |
Private Member Functions | |
Private member functions | |
| void | setShapes (std::vector< Molecule > &molecules, const std::vector< unsigned > &componentMap, const std::vector< PrivateGraph::Vertex > &indexInComponentMap) |
| Set shapes according to specified charges and stereo markers. | |
| void | setAtomStereo (std::vector< Molecule > &molecules, const std::vector< unsigned > &componentMap, const std::vector< PrivateGraph::Vertex > &indexInComponentMap) |
| Set atom stereo post-parse and conversion to molecules. | |
| void | setBondStereo (std::vector< Molecule > &molecules, const std::vector< unsigned > &componentMap, const std::vector< PrivateGraph::Vertex > &indexInComponentMap) |
| Set bond stereo post-parse and conversion to molecules. | |
Static Private Member Functions | |
Static private members | |
| static bool | isValenceFillElement (Utils::ElementType e) |
| Checks whether an element type is valence filled. | |
| static unsigned | valenceFillElementImplicitHydrogenCount (int valence, Utils::ElementType e) |
| Determines the implicit hydrogen count of a valence fill element. | |
| static BondType | mutualBondType (const boost::optional< BondType > &a, const boost::optional< BondType > &b) |
|
static std::vector < Shapes::Vertex > | shapeMap (const ChiralData &chiralData) |
| Fetches a map to help with the atom chiral markers. | |
Private member data | |
| enum | SimpleLastBondData { Unbonded, Unspecified } |
| Storage for bonds marked with stereo indicators ("/" and "\") | |
| using | StereoMarkedBondTuple = std::tuple< PrivateGraph::Vertex, PrivateGraph::Vertex, BondData::StereoMarker > |
| Storage for bonds marked with stereo indicators ("/" and "\") | |
|
boost::variant < SimpleLastBondData, BondData > | lastBondData = SimpleLastBondData::Unbonded |
| State for last stored bond data. | |
| PrivateGraph | graph |
| Possibly disconnected tracking graph. | |
| std::stack< PrivateGraph::Vertex > | vertexStack |
| State to track the vertex a new vertex is bound to. | |
|
std::vector < StereoMarkedBondTuple > | stereoMarkedBonds |
| Storage for bonds marked with stereo indicators ("/" and "\") | |
|
std::unordered_map< unsigned, std::pair < PrivateGraph::Vertex, boost::optional< BondType > > > | ringClosures |
| Storage for ring closure bond indicators. | |
| std::vector< AtomData > | vertexData |
| AtomData for each created vertex. | |
Semantic interpreter of the smiles grammar, constructs molecules from the data accrued by the parser.
|
staticprivate |
Determines the mutual bond type of two bond type optionals
| std::runtime_error | If the bond types are mismatched |