Loading...
Searching...
No Matches
MarvinDefs.h
Go to the documentation of this file.
//
// Copyright (C) 2022-2023 Tad Hurst, Greg Landrum and other RDKit contributors
//
// @@ All Rights Reserved @@
// This file is part of the RDKit.
// The contents are covered by the terms of the BSD license
// which is included in the file license.txt, found at the root
// of the RDKit source tree.
//
// This software is based on the Chemaxon documentation for the MRV format:P
// https://docs.chemaxon.com/display/docs/marvin-documents-mrv.md
// and this implmentation is tested against the parsing and generation in the
// Marvin JS sketcher: https://marvinjs-demo.chemaxon.com/latest/demo.html
#ifndef RD_MARVINDEFS_H
#define RD_MARVINDEFS_H
#include <GraphMol/RDKitBase.h>
#include <RDGeneral/BoostStartInclude.h>
#include <boost/property_tree/xml_parser.hpp>
#include <RDGeneral/BoostEndInclude.h>
#include <float.h> // Needed for DBL_MAX on Clang
using boost::property_tree::ptree;
namespace RDKit {
const std::vector<std::string> sruSgroupConnectChoices{"hh", "ht", "eu"};
const std::vector<std::string> marvinBondOrders{"1", "2", "3", "A"};
const std::vector<std::string> marvinQueryBondsTypes{"SD", "SA", "DA", "Any"};
const std::vector<std::string> marvinConventionTypes{"cxn:coord"};
const std::vector<std::string> marvinStereoDictRefTypes{"cml:W", "cml:H"};
const std::vector<std::string> marvinStereoConventionTypes{"1", "3", "4", "6"};
const std::vector<std::string> marvinRadicalVals{
"monovalent", "divalent", "divalent1", "divalent3",
"trivalent", "trivalent2", "trivalent4", "4"};
const std::map<std::string, int> marvinRadicalToRadicalElectrons{
{"monovalent", 1}, {"divalent", 2}, {"divalent1", 2}, {"divalent3", 2},
{"trivalent", 3}, {"trivalent2", 3}, {"trivalent4", 3}, {"4", 4}};
const std::map<int, std::string> radicalElectronsToMarvinRadical{
{1, "monovalent"}, {2, "divalent"}, {3, "trivalent4"}, {4, "4"}};
enum IsSgroupInAtomSetResult {
SgroupInAtomSet,
SgroupNotInAtomSet,
SgroupBothInAndNotInAtomSet,
};
class MarvinWriterException : public std::runtime_error {
public:
explicit MarvinWriterException(std::string message)
: std::runtime_error(message) {};
};
class MarvinArrow {
public:
std::string type;
double x1;
double y1;
double x2;
double y2;
std::string toString() const;
ptree toPtree() const;
};
class MarvinPlus {
public:
std::string id;
double x1;
double y1;
double x2;
double y2;
std::string toString() const;
ptree toPtree() const;
};
class MarvinCondition {
public:
std::string id;
std::string text;
double x;
double y;
double fontScale = 0.0;
std::string halign;
std::string valign;
std::string toString() const;
ptree toPtree() const;
};
class MarvinAttachmentPoint {
public:
// <attachmentPoint atom="a7" order="1" bond="b6"/>
std::string atom;
std::string bond;
std::string order;
std::string toString() const;
ptree toPtree() const;
};
class MarvinAtom {
public:
std::string id;
std::string elementType;
double x2;
double y2;
double x3;
double y3;
double z3;
int formalCharge;
std::string radical;
int isotope;
int mrvValence;
int hydrogenCount;
std::string mrvAlias;
std::string mrvStereoGroup;
int mrvMap;
std::string sgroupRef;
bool sGroupRefIsSuperatom; // if set, we will not change the sgroupRef - the
// superatom really needs it
std::string sgroupAttachmentPoint;
int rgroupRef;
MarvinAtom();
MarvinAtom(const MarvinAtom &atomToCopy, std::string newId);
bool operator==(const MarvinAtom &rhs) const;
bool operator==(const MarvinAtom *rhs) const;
bool isElement() const;
std::string toString() const;
ptree toPtree(unsigned int coordinatePrecision = 6) const;
};
class MarvinBondStereo {
public:
std::string value;
std::string convention;
std::string conventionValue;
std::string dictRef;
std::string toString() const;
ptree toPtree() const;
};
class MarvinBond {
public:
std::string id;
std::string atomRefs2[2];
std::string order;
MarvinBondStereo bondStereo;
std::string queryType;
std::string convention;
MarvinBond() {}
MarvinBond(const MarvinBond &bondToCopy, std::string newId,
std::string atomRef1, std::string atomRef2);
bool isEqual(const MarvinAtom &other) const;
bool operator==(const MarvinAtom &rhs) const;
const std::string getBondType() const;
std::string toString() const;
ptree toPtree() const;
};
class MarvinRectangle {
protected:
RDGeom::Point3D center;
bool centerIsStale = true;
public:
RDGeom::Point3D upperLeft;
RDGeom::Point3D lowerRight;
MarvinRectangle(double left, double right, double top, double bottom);
MarvinRectangle(const RDGeom::Point3D &upperLeftInit,
const RDGeom::Point3D &lowerRightInit);
MarvinRectangle(const std::vector<MarvinAtom *> &atoms);
MarvinRectangle(const std::vector<MarvinRectangle> &rects);
void extend(const MarvinRectangle &otherRectangle);
RDGeom::Point3D &getCenter();
bool overlapsVertically(const MarvinRectangle &otherRectangle) const;
bool overlapsVHorizontally(const MarvinRectangle &otherRectangle) const;
static bool compareRectanglesByX(MarvinRectangle &r1, MarvinRectangle &r2);
static bool compareRectanglesByYReverse(MarvinRectangle &r1,
MarvinRectangle &r2);
};
template <typename T>
typename std::vector<std::unique_ptr<T>>::iterator findUniquePtr(
std::vector<std ::unique_ptr<T>> &vector, T *itemToFind) {
auto foundUniqIter = find_if(vector.begin(), vector.end(),
[itemToFind](std::unique_ptr<T> &uniquePtr) {
return uniquePtr.get() == itemToFind;
});
if (foundUniqIter == vector.end()) {
throw FileParseException("Unexpected error - item to find not found");
}
return foundUniqIter;
}
template <typename T>
void eraseUniquePtr(std::vector<std ::unique_ptr<T>> &vector, T *itemToErase) {
auto removeUniqIter = findUniquePtr<T>(vector, itemToErase);
if (removeUniqIter == vector.end()) {
throw FileParseException("Unexpected error - item to remove not found");
}
vector.erase(removeUniqIter);
}
class MarvinMolBase {
public:
std::string molID;
std::string id; // used in all sGroups
unsigned int coordinatePrecision = 6;
std::vector<MarvinAtom *> atoms; // owned by parent MarvinMol
std::vector<MarvinBond *> bonds; // owned by parent MarvinMol
std::vector<std::unique_ptr<MarvinMolBase>> sgroups;
MarvinMolBase *parent;
virtual std::string role() const = 0;
virtual bool hasAtomBondBlocks() const = 0;
virtual std::string toString() const = 0;
virtual ptree toPtree() const;
void addSgroupsToPtree(ptree &pt) const;
virtual MarvinMolBase *copyMol(const std::string &idAppend) const = 0;
virtual void pushOwnedAtom(MarvinAtom *atom);
virtual void pushOwnedBond(MarvinBond *bond);
virtual void removeOwnedAtom(MarvinAtom *atom);
virtual void removeOwnedBond(MarvinBond *bond);
void setPrecision(unsigned int precision);
int getExplicitValence(const MarvinAtom &marvinAtom) const;
MarvinMolBase() {}
virtual ~MarvinMolBase();
int getAtomIndex(std::string id) const;
int getBondIndex(std::string id) const;
const std::vector<std::string> getBondList() const;
const std::vector<std::string> getAtomList() const;
bool AnyOverLappingAtoms(const MarvinMolBase *otherMol) const;
void cleanUpNumbering(
int &molCount // this is the starting mol count, and receives the ending
// mol count - THis is used when
// MarvinMol->convertToSuperAtoms is called multiple times
// from a RXN
,
int &atomCount // starting and ending atom count
,
int &bondCount // starting and ending bond count
,
int &sgCount // starting and ending sq count
,
std::map<std::string, std::string>
&sgMap // map from old sg number to new sg number
,
std::map<std::string, std::string>
&atomMap // map from old atom number to new atom number
,
std::map<std::string, std::string>
&bondMap // map from old bond number to new bond number
);
// the following is virtual because some derived classes need to do more than
// just call the base class. Currently, only MarvinSuperatomSgroup does this
public:
virtual void cleanUpNumberingMolsAtomsBonds(
int &molCount, // this is the starting mol count, and receives the ending
// mol count - THis is used when
// MarvinMol->convertToSuperAtoms is called multiple
// times from a RXN
int &atomCount, // starting and ending atom count
int &bondCount, // starting and ending bond count
std::map<std::string, std::string> &sgMap,
std::map<std::string, std::string> &atomMap,
std::map<std::string, std::string> &bondMap);
void cleanUpSgNumbering(int &sgCount,
std::map<std::string, std::string> &sgMap);
// the following is virtual because some derived classes need to do more than
// just call the base class. Currently, only MarvinSuperatomSgroup does this
virtual IsSgroupInAtomSetResult isSgroupInSetOfAtoms(
const std::vector<MarvinAtom *> &setOfAtoms) const;
public:
static bool atomRefInAtoms(MarvinAtom *a, std::string b);
static bool bondRefInBonds(MarvinBond *a, std::string b);
static bool molIDInSgroups(std::string a, std::string b);
MarvinAtom *findAtomByRef(std::string atomId);
MarvinBond *findBondByRef(std::string atomId);
void prepSgroupsForRDKit();
void processSgroupsFromRDKit();
virtual bool isPassiveRoleForExpansion() const;
virtual bool isPassiveRoleForContraction() const;
virtual void processSpecialSgroups();
virtual void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId);
bool has2dCoords() const;
bool has3dCoords() const;
bool hasAny3dCoords() const;
bool hasAny2dCoords() const;
bool hasCoords() const;
void removeCoords();
void parseAtomsAndBonds(ptree &molTree);
};
class MarvinSruCoModSgroup : public MarvinMolBase {
private:
std::string roleName; // could be MarvinSruSgroup, MarvinCopolymerSgroup or
// MarvinModificationSgroup
public:
MarvinMolBase *copyMol(const std::string &idAppend) const override;
MarvinSruCoModSgroup(std::string type, MarvinMolBase *parent);
MarvinSruCoModSgroup(MarvinMolBase *parent, std::string role, ptree &molTree);
std::string title;
std::string connect;
std::string correspondence;
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinDataSgroup : public MarvinMolBase {
public:
MarvinDataSgroup(MarvinMolBase *parent);
MarvinDataSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
std::string context;
std::string fieldName;
std::string placement;
std::string unitsDisplayed;
std::string queryType;
std::string queryOp;
std::string fieldData;
std::string units;
double x;
double y;
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinSuperatomSgroupExpanded : public MarvinMolBase {
public:
std::string title;
MarvinSuperatomSgroupExpanded(MarvinMolBase *parent);
MarvinSuperatomSgroupExpanded(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
~MarvinSuperatomSgroupExpanded() override;
MarvinMolBase *convertToOneSuperAtom();
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
bool isPassiveRoleForContraction() const override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinMultipleSgroup : public MarvinMolBase {
public:
MarvinMultipleSgroup(MarvinMolBase *parent);
MarvinMultipleSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
std::string title;
bool isExpanded = false;
std::vector<MarvinAtom *> parentAtoms;
std::vector<MarvinBond *>
bondsToAtomsNotInExpandedGroup; // only when expanded
void expandOneMultipleSgroup();
void contractOneMultipleSgroup();
int getMatchedOrphanBondIndex(std::string atomIdToCheck,
std::vector<MarvinBond *> &bondsToTry,
std::vector<MarvinBond *> &orphanedBonds) const;
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
bool isPassiveRoleForExpansion() const override;
bool isPassiveRoleForContraction() const override;
void processSpecialSgroups() override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinMulticenterSgroup : public MarvinMolBase {
// <molecule molID="m2" id="sg1" role="MulticenterSgroup" atomRefs="a2 a6 a5
// a4 a3" center="a18"/>sgroup->
public:
MarvinMulticenterSgroup(MarvinMolBase *parent);
MarvinMulticenterSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
void processOneMulticenterSgroup();
std::string toString() const override;
ptree toPtree() const override;
MarvinAtom *center;
std::string role() const override;
bool hasAtomBondBlocks() const override;
void processSpecialSgroups() override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinGenericSgroup : public MarvinMolBase {
// <molecule molID="m2" id="sg1" role="GenericSgroup" atomRefs="a1 a2 a3 a4 a5
// a6 a7 a8 a9 a13 a10 a11 a12" charge="onAtoms"/></molecule>
public:
MarvinGenericSgroup(MarvinMolBase *parent);
MarvinGenericSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
std::string charge; // onAtoms or onBrackets
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinMonomerSgroup : public MarvinMolBase {
// <molecule id="sg1" role="MonomerSgroup" title="mon" charge="onAtoms"
// molID="m2" atomRefs="a2 a1 a3 a4">
// </molecule>
public:
MarvinMonomerSgroup(MarvinMolBase *parent);
MarvinMonomerSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
std::string title;
std::string charge; // onAtoms or onBrackets
std::string toString() const override;
ptree toPtree() const override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
void parseMoleculeSpecific(RDKit::RWMol *mol,
std::unique_ptr<SubstanceGroup> &sgroup,
int sequenceId) override;
};
class MarvinSuperatomSgroup : public MarvinMolBase {
public:
std::string title;
std::vector<std::unique_ptr<MarvinAttachmentPoint>> attachmentPoints;
MarvinSuperatomSgroup(MarvinMolBase *parent);
MarvinSuperatomSgroup(MarvinMolBase *parent, ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
~MarvinSuperatomSgroup() override;
void convertFromOneSuperAtom();
std::string role() const override;
bool hasAtomBondBlocks() const override;
bool isPassiveRoleForExpansion() const override;
std::string toString() const override;
ptree toPtree() const override;
void cleanUpNumberingMolsAtomsBonds(
int &molCount, // this is the starting mol count, and receives the ending
// mol count - THis is used when
// MarvinMol->convertToSuperAtoms is called multiple
// times from a RXN
int &atomCount, // starting and ending atom count
int &bondCount, // starting and ending bond count
std::map<std::string, std::string> &sgMap,
std::map<std::string, std::string> &atomMap,
std::map<std::string, std::string> &bondMap) override;
IsSgroupInAtomSetResult isSgroupInSetOfAtoms(
const std::vector<MarvinAtom *> &setOfAtoms) const override;
void processSpecialSgroups() override;
};
class MarvinMol : public MarvinMolBase {
public:
MarvinMol();
MarvinMol(ptree &molTree);
MarvinMolBase *copyMol(const std::string &idAppend) const override;
~MarvinMol() override;
std::vector<std::unique_ptr<MarvinAtom>> ownedAtoms;
std::vector<std::unique_ptr<MarvinBond>> ownedBonds;
void pushOwnedAtom(MarvinAtom *atom) override;
void pushOwnedBond(MarvinBond *bond) override;
void removeOwnedAtom(MarvinAtom *atom) override;
void removeOwnedBond(MarvinBond *bond) override;
std::string role() const override;
bool hasAtomBondBlocks() const override;
bool isPassiveRoleForContraction() const override;
std::string toString() const override;
ptree toPtree() const override;
std::string generateMolString();
ptree toMolPtree() const;
};
class MarvinReaction {
public:
std::vector<std::unique_ptr<MarvinMol>> reactants;
std::vector<std::unique_ptr<MarvinMol>> agents;
std::vector<std::unique_ptr<MarvinMol>> products;
MarvinArrow arrow;
std::vector<std::unique_ptr<MarvinPlus>> pluses;
std::vector<std::unique_ptr<MarvinCondition>> conditions;
~MarvinReaction();
void prepSgroupsForRDKit();
std::string toString();
ptree toPtree() const;
};
class MarvinStereoGroup {
public:
StereoGroupType groupType; // one of ABS AND OR
int groupNumber;
std::vector<unsigned int> atoms;
MarvinStereoGroup(StereoGroupType grouptypeInit, int groupNumberInit);
};
template <typename T>
bool getCleanNumber(std::string strToParse, T &outInt);
} // namespace RDKit
#endif // RD_MARVINDEFS_H
BoostEndInclude.h
BoostStartInclude.h
RDKitBase.h
pulls in the core RDKit functionality
RDGeom::Point3D
Definition point.h:54
RDKit::FileParseException
used by various file parsing classes to indicate a parse error
Definition FileParseException.h:19
RDKit::MarvinArrow
Definition MarvinDefs.h:60
RDKit::MarvinArrow::x1
double x1
Definition MarvinDefs.h:63
RDKit::MarvinArrow::toPtree
ptree toPtree() const
RDKit::MarvinArrow::x2
double x2
Definition MarvinDefs.h:65
RDKit::MarvinArrow::y2
double y2
Definition MarvinDefs.h:66
RDKit::MarvinArrow::y1
double y1
Definition MarvinDefs.h:64
RDKit::MarvinArrow::toString
std::string toString() const
RDKit::MarvinArrow::type
std::string type
Definition MarvinDefs.h:62
RDKit::MarvinAtom
Definition MarvinDefs.h:110
RDKit::MarvinAtom::mrvStereoGroup
std::string mrvStereoGroup
Definition MarvinDefs.h:126
RDKit::MarvinAtom::isElement
bool isElement() const
RDKit::MarvinAtom::y2
double y2
Definition MarvinDefs.h:115
RDKit::MarvinAtom::id
std::string id
Definition MarvinDefs.h:112
RDKit::MarvinAtom::elementType
std::string elementType
Definition MarvinDefs.h:113
RDKit::MarvinAtom::hydrogenCount
int hydrogenCount
Definition MarvinDefs.h:124
RDKit::MarvinAtom::isotope
int isotope
Definition MarvinDefs.h:122
RDKit::MarvinAtom::toString
std::string toString() const
RDKit::MarvinAtom::rgroupRef
int rgroupRef
Definition MarvinDefs.h:132
RDKit::MarvinAtom::x3
double x3
Definition MarvinDefs.h:116
RDKit::MarvinAtom::formalCharge
int formalCharge
Definition MarvinDefs.h:120
RDKit::MarvinAtom::toPtree
ptree toPtree(unsigned int coordinatePrecision=6) const
RDKit::MarvinAtom::MarvinAtom
MarvinAtom()
RDKit::MarvinAtom::mrvValence
int mrvValence
Definition MarvinDefs.h:123
RDKit::MarvinAtom::sgroupRef
std::string sgroupRef
Definition MarvinDefs.h:128
RDKit::MarvinAtom::z3
double z3
Definition MarvinDefs.h:118
RDKit::MarvinAtom::radical
std::string radical
Definition MarvinDefs.h:121
RDKit::MarvinAtom::sgroupAttachmentPoint
std::string sgroupAttachmentPoint
Definition MarvinDefs.h:131
RDKit::MarvinAtom::MarvinAtom
MarvinAtom(const MarvinAtom &atomToCopy, std::string newId)
RDKit::MarvinAtom::operator==
bool operator==(const MarvinAtom &rhs) const
RDKit::MarvinAtom::mrvMap
int mrvMap
Definition MarvinDefs.h:127
RDKit::MarvinAtom::operator==
bool operator==(const MarvinAtom *rhs) const
RDKit::MarvinAtom::sGroupRefIsSuperatom
bool sGroupRefIsSuperatom
Definition MarvinDefs.h:129
RDKit::MarvinAtom::y3
double y3
Definition MarvinDefs.h:117
RDKit::MarvinAtom::x2
double x2
Definition MarvinDefs.h:114
RDKit::MarvinAtom::mrvAlias
std::string mrvAlias
Definition MarvinDefs.h:125
RDKit::MarvinAttachmentPoint
Definition MarvinDefs.h:99
RDKit::MarvinAttachmentPoint::bond
std::string bond
Definition MarvinDefs.h:103
RDKit::MarvinAttachmentPoint::toPtree
ptree toPtree() const
RDKit::MarvinAttachmentPoint::toString
std::string toString() const
RDKit::MarvinAttachmentPoint::atom
std::string atom
Definition MarvinDefs.h:102
RDKit::MarvinAttachmentPoint::order
std::string order
Definition MarvinDefs.h:104
RDKit::MarvinBondStereo
Definition MarvinDefs.h:147
RDKit::MarvinBondStereo::conventionValue
std::string conventionValue
Definition MarvinDefs.h:151
RDKit::MarvinBondStereo::toString
std::string toString() const
RDKit::MarvinBondStereo::dictRef
std::string dictRef
Definition MarvinDefs.h:152
RDKit::MarvinBondStereo::value
std::string value
Definition MarvinDefs.h:149
RDKit::MarvinBondStereo::convention
std::string convention
Definition MarvinDefs.h:150
RDKit::MarvinBondStereo::toPtree
ptree toPtree() const
RDKit::MarvinBond
Definition MarvinDefs.h:158
RDKit::MarvinBond::convention
std::string convention
Definition MarvinDefs.h:165
RDKit::MarvinBond::toPtree
ptree toPtree() const
RDKit::MarvinBond::queryType
std::string queryType
Definition MarvinDefs.h:164
RDKit::MarvinBond::MarvinBond
MarvinBond(const MarvinBond &bondToCopy, std::string newId, std::string atomRef1, std::string atomRef2)
RDKit::MarvinBond::atomRefs2
std::string atomRefs2[2]
Definition MarvinDefs.h:161
RDKit::MarvinBond::id
std::string id
Definition MarvinDefs.h:160
RDKit::MarvinBond::order
std::string order
Definition MarvinDefs.h:162
RDKit::MarvinBond::bondStereo
MarvinBondStereo bondStereo
Definition MarvinDefs.h:163
RDKit::MarvinBond::operator==
bool operator==(const MarvinAtom &rhs) const
RDKit::MarvinBond::MarvinBond
MarvinBond()
Definition MarvinDefs.h:167
RDKit::MarvinBond::getBondType
const std::string getBondType() const
RDKit::MarvinBond::isEqual
bool isEqual(const MarvinAtom &other) const
RDKit::MarvinBond::toString
std::string toString() const
RDKit::MarvinCondition
Definition MarvinDefs.h:84
RDKit::MarvinCondition::halign
std::string halign
Definition MarvinDefs.h:92
RDKit::MarvinCondition::valign
std::string valign
Definition MarvinDefs.h:93
RDKit::MarvinCondition::x
double x
Definition MarvinDefs.h:88
RDKit::MarvinCondition::toString
std::string toString() const
RDKit::MarvinCondition::id
std::string id
Definition MarvinDefs.h:86
RDKit::MarvinCondition::y
double y
Definition MarvinDefs.h:89
RDKit::MarvinCondition::text
std::string text
Definition MarvinDefs.h:87
RDKit::MarvinCondition::toPtree
ptree toPtree() const
RDKit::MarvinCondition::fontScale
double fontScale
Definition MarvinDefs.h:90
RDKit::MarvinDataSgroup
Definition MarvinDefs.h:370
RDKit::MarvinDataSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinDataSgroup::x
double x
Definition MarvinDefs.h:385
RDKit::MarvinDataSgroup::MarvinDataSgroup
MarvinDataSgroup(MarvinMolBase *parent)
RDKit::MarvinDataSgroup::context
std::string context
Definition MarvinDefs.h:377
RDKit::MarvinDataSgroup::units
std::string units
Definition MarvinDefs.h:384
RDKit::MarvinDataSgroup::fieldData
std::string fieldData
Definition MarvinDefs.h:383
RDKit::MarvinDataSgroup::queryOp
std::string queryOp
Definition MarvinDefs.h:382
RDKit::MarvinDataSgroup::unitsDisplayed
std::string unitsDisplayed
Definition MarvinDefs.h:380
RDKit::MarvinDataSgroup::MarvinDataSgroup
MarvinDataSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinDataSgroup::queryType
std::string queryType
Definition MarvinDefs.h:381
RDKit::MarvinDataSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinDataSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinDataSgroup::role
std::string role() const override
RDKit::MarvinDataSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinDataSgroup::toString
std::string toString() const override
RDKit::MarvinDataSgroup::placement
std::string placement
Definition MarvinDefs.h:379
RDKit::MarvinDataSgroup::fieldName
std::string fieldName
Definition MarvinDefs.h:378
RDKit::MarvinDataSgroup::y
double y
Definition MarvinDefs.h:386
RDKit::MarvinGenericSgroup
Definition MarvinDefs.h:479
RDKit::MarvinGenericSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinGenericSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinGenericSgroup::MarvinGenericSgroup
MarvinGenericSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinGenericSgroup::toString
std::string toString() const override
RDKit::MarvinGenericSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinGenericSgroup::role
std::string role() const override
RDKit::MarvinGenericSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinGenericSgroup::charge
std::string charge
Definition MarvinDefs.h:488
RDKit::MarvinGenericSgroup::MarvinGenericSgroup
MarvinGenericSgroup(MarvinMolBase *parent)
RDKit::MarvinMolBase
Definition MarvinDefs.h:237
RDKit::MarvinMolBase::coordinatePrecision
unsigned int coordinatePrecision
Definition MarvinDefs.h:241
RDKit::MarvinMolBase::AnyOverLappingAtoms
bool AnyOverLappingAtoms(const MarvinMolBase *otherMol) const
RDKit::MarvinMolBase::cleanUpNumbering
void cleanUpNumbering(int &molCount, int &atomCount, int &bondCount, int &sgCount, std::map< std::string, std::string > &sgMap, std::map< std::string, std::string > &atomMap, std::map< std::string, std::string > &bondMap)
RDKit::MarvinMolBase::cleanUpSgNumbering
void cleanUpSgNumbering(int &sgCount, std::map< std::string, std::string > &sgMap)
RDKit::MarvinMolBase::setPrecision
void setPrecision(unsigned int precision)
RDKit::MarvinMolBase::role
virtual std::string role() const =0
RDKit::MarvinMolBase::getAtomList
const std::vector< std::string > getAtomList() const
RDKit::MarvinMolBase::copyMol
virtual MarvinMolBase * copyMol(const std::string &idAppend) const =0
RDKit::MarvinMolBase::processSpecialSgroups
virtual void processSpecialSgroups()
RDKit::MarvinMolBase::~MarvinMolBase
virtual ~MarvinMolBase()
RDKit::MarvinMolBase::getBondList
const std::vector< std::string > getBondList() const
RDKit::MarvinMolBase::atomRefInAtoms
static bool atomRefInAtoms(MarvinAtom *a, std::string b)
RDKit::MarvinMolBase::getBondIndex
int getBondIndex(std::string id) const
RDKit::MarvinMolBase::bonds
std::vector< MarvinBond * > bonds
Definition MarvinDefs.h:243
RDKit::MarvinMolBase::hasAny2dCoords
bool hasAny2dCoords() const
RDKit::MarvinMolBase::toString
virtual std::string toString() const =0
RDKit::MarvinMolBase::id
std::string id
Definition MarvinDefs.h:240
RDKit::MarvinMolBase::prepSgroupsForRDKit
void prepSgroupsForRDKit()
RDKit::MarvinMolBase::pushOwnedBond
virtual void pushOwnedBond(MarvinBond *bond)
RDKit::MarvinMolBase::isPassiveRoleForExpansion
virtual bool isPassiveRoleForExpansion() const
RDKit::MarvinMolBase::has3dCoords
bool has3dCoords() const
RDKit::MarvinMolBase::hasAtomBondBlocks
virtual bool hasAtomBondBlocks() const =0
RDKit::MarvinMolBase::removeOwnedBond
virtual void removeOwnedBond(MarvinBond *bond)
RDKit::MarvinMolBase::addSgroupsToPtree
void addSgroupsToPtree(ptree &pt) const
RDKit::MarvinMolBase::parseMoleculeSpecific
virtual void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId)
RDKit::MarvinMolBase::sgroups
std::vector< std::unique_ptr< MarvinMolBase > > sgroups
Definition MarvinDefs.h:244
RDKit::MarvinMolBase::toPtree
virtual ptree toPtree() const
RDKit::MarvinMolBase::molID
std::string molID
Definition MarvinDefs.h:239
RDKit::MarvinMolBase::isPassiveRoleForContraction
virtual bool isPassiveRoleForContraction() const
RDKit::MarvinMolBase::removeCoords
void removeCoords()
RDKit::MarvinMolBase::getAtomIndex
int getAtomIndex(std::string id) const
RDKit::MarvinMolBase::findAtomByRef
MarvinAtom * findAtomByRef(std::string atomId)
RDKit::MarvinMolBase::isSgroupInSetOfAtoms
virtual IsSgroupInAtomSetResult isSgroupInSetOfAtoms(const std::vector< MarvinAtom * > &setOfAtoms) const
RDKit::MarvinMolBase::parseAtomsAndBonds
void parseAtomsAndBonds(ptree &molTree)
RDKit::MarvinMolBase::findBondByRef
MarvinBond * findBondByRef(std::string atomId)
RDKit::MarvinMolBase::parent
MarvinMolBase * parent
Definition MarvinDefs.h:245
RDKit::MarvinMolBase::MarvinMolBase
MarvinMolBase()
Definition MarvinDefs.h:264
RDKit::MarvinMolBase::pushOwnedAtom
virtual void pushOwnedAtom(MarvinAtom *atom)
RDKit::MarvinMolBase::molIDInSgroups
static bool molIDInSgroups(std::string a, std::string b)
RDKit::MarvinMolBase::atoms
std::vector< MarvinAtom * > atoms
Definition MarvinDefs.h:242
RDKit::MarvinMolBase::hasAny3dCoords
bool hasAny3dCoords() const
RDKit::MarvinMolBase::processSgroupsFromRDKit
void processSgroupsFromRDKit()
RDKit::MarvinMolBase::bondRefInBonds
static bool bondRefInBonds(MarvinBond *a, std::string b)
RDKit::MarvinMolBase::getExplicitValence
int getExplicitValence(const MarvinAtom &marvinAtom) const
RDKit::MarvinMolBase::removeOwnedAtom
virtual void removeOwnedAtom(MarvinAtom *atom)
RDKit::MarvinMolBase::has2dCoords
bool has2dCoords() const
RDKit::MarvinMolBase::cleanUpNumberingMolsAtomsBonds
virtual void cleanUpNumberingMolsAtomsBonds(int &molCount, int &atomCount, int &bondCount, std::map< std::string, std::string > &sgMap, std::map< std::string, std::string > &atomMap, std::map< std::string, std::string > &bondMap)
RDKit::MarvinMolBase::hasCoords
bool hasCoords() const
RDKit::MarvinMol
Definition MarvinDefs.h:559
RDKit::MarvinMol::isPassiveRoleForContraction
bool isPassiveRoleForContraction() const override
RDKit::MarvinMol::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinMol::ownedAtoms
std::vector< std::unique_ptr< MarvinAtom > > ownedAtoms
Definition MarvinDefs.h:568
RDKit::MarvinMol::removeOwnedBond
void removeOwnedBond(MarvinBond *bond) override
RDKit::MarvinMol::MarvinMol
MarvinMol(ptree &molTree)
RDKit::MarvinMol::generateMolString
std::string generateMolString()
RDKit::MarvinMol::pushOwnedBond
void pushOwnedBond(MarvinBond *bond) override
RDKit::MarvinMol::role
std::string role() const override
RDKit::MarvinMol::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinMol::toPtree
ptree toPtree() const override
RDKit::MarvinMol::toMolPtree
ptree toMolPtree() const
RDKit::MarvinMol::pushOwnedAtom
void pushOwnedAtom(MarvinAtom *atom) override
RDKit::MarvinMol::ownedBonds
std::vector< std::unique_ptr< MarvinBond > > ownedBonds
Definition MarvinDefs.h:569
RDKit::MarvinMol::~MarvinMol
~MarvinMol() override
RDKit::MarvinMol::removeOwnedAtom
void removeOwnedAtom(MarvinAtom *atom) override
RDKit::MarvinMol::MarvinMol
MarvinMol()
RDKit::MarvinMol::toString
std::string toString() const override
RDKit::MarvinMonomerSgroup
Definition MarvinDefs.h:499
RDKit::MarvinMonomerSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinMonomerSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinMonomerSgroup::toString
std::string toString() const override
RDKit::MarvinMonomerSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinMonomerSgroup::MarvinMonomerSgroup
MarvinMonomerSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinMonomerSgroup::charge
std::string charge
Definition MarvinDefs.h:510
RDKit::MarvinMonomerSgroup::MarvinMonomerSgroup
MarvinMonomerSgroup(MarvinMolBase *parent)
RDKit::MarvinMonomerSgroup::title
std::string title
Definition MarvinDefs.h:509
RDKit::MarvinMonomerSgroup::role
std::string role() const override
RDKit::MarvinMonomerSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinMulticenterSgroup
Definition MarvinDefs.h:456
RDKit::MarvinMulticenterSgroup::role
std::string role() const override
RDKit::MarvinMulticenterSgroup::center
MarvinAtom * center
Definition MarvinDefs.h:470
RDKit::MarvinMulticenterSgroup::processSpecialSgroups
void processSpecialSgroups() override
RDKit::MarvinMulticenterSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinMulticenterSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinMulticenterSgroup::toString
std::string toString() const override
RDKit::MarvinMulticenterSgroup::MarvinMulticenterSgroup
MarvinMulticenterSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinMulticenterSgroup::processOneMulticenterSgroup
void processOneMulticenterSgroup()
RDKit::MarvinMulticenterSgroup::MarvinMulticenterSgroup
MarvinMulticenterSgroup(MarvinMolBase *parent)
RDKit::MarvinMulticenterSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinMulticenterSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinMultipleSgroup
Definition MarvinDefs.h:423
RDKit::MarvinMultipleSgroup::getMatchedOrphanBondIndex
int getMatchedOrphanBondIndex(std::string atomIdToCheck, std::vector< MarvinBond * > &bondsToTry, std::vector< MarvinBond * > &orphanedBonds) const
RDKit::MarvinMultipleSgroup::expandOneMultipleSgroup
void expandOneMultipleSgroup()
RDKit::MarvinMultipleSgroup::MarvinMultipleSgroup
MarvinMultipleSgroup(MarvinMolBase *parent)
RDKit::MarvinMultipleSgroup::role
std::string role() const override
RDKit::MarvinMultipleSgroup::toString
std::string toString() const override
RDKit::MarvinMultipleSgroup::contractOneMultipleSgroup
void contractOneMultipleSgroup()
RDKit::MarvinMultipleSgroup::isExpanded
bool isExpanded
Definition MarvinDefs.h:431
RDKit::MarvinMultipleSgroup::isPassiveRoleForContraction
bool isPassiveRoleForContraction() const override
RDKit::MarvinMultipleSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinMultipleSgroup::parentAtoms
std::vector< MarvinAtom * > parentAtoms
Definition MarvinDefs.h:432
RDKit::MarvinMultipleSgroup::title
std::string title
Definition MarvinDefs.h:430
RDKit::MarvinMultipleSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinMultipleSgroup::processSpecialSgroups
void processSpecialSgroups() override
RDKit::MarvinMultipleSgroup::MarvinMultipleSgroup
MarvinMultipleSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinMultipleSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinMultipleSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinMultipleSgroup::isPassiveRoleForExpansion
bool isPassiveRoleForExpansion() const override
RDKit::MarvinMultipleSgroup::bondsToAtomsNotInExpandedGroup
std::vector< MarvinBond * > bondsToAtomsNotInExpandedGroup
Definition MarvinDefs.h:434
RDKit::MarvinPlus
Definition MarvinDefs.h:72
RDKit::MarvinPlus::toString
std::string toString() const
RDKit::MarvinPlus::x2
double x2
Definition MarvinDefs.h:77
RDKit::MarvinPlus::y1
double y1
Definition MarvinDefs.h:76
RDKit::MarvinPlus::toPtree
ptree toPtree() const
RDKit::MarvinPlus::y2
double y2
Definition MarvinDefs.h:78
RDKit::MarvinPlus::x1
double x1
Definition MarvinDefs.h:75
RDKit::MarvinPlus::id
std::string id
Definition MarvinDefs.h:74
RDKit::MarvinReaction
Definition MarvinDefs.h:588
RDKit::MarvinReaction::~MarvinReaction
~MarvinReaction()
RDKit::MarvinReaction::products
std::vector< std::unique_ptr< MarvinMol > > products
Definition MarvinDefs.h:592
RDKit::MarvinReaction::arrow
MarvinArrow arrow
Definition MarvinDefs.h:594
RDKit::MarvinReaction::toPtree
ptree toPtree() const
RDKit::MarvinReaction::conditions
std::vector< std::unique_ptr< MarvinCondition > > conditions
Definition MarvinDefs.h:596
RDKit::MarvinReaction::toString
std::string toString()
RDKit::MarvinReaction::pluses
std::vector< std::unique_ptr< MarvinPlus > > pluses
Definition MarvinDefs.h:595
RDKit::MarvinReaction::reactants
std::vector< std::unique_ptr< MarvinMol > > reactants
Definition MarvinDefs.h:590
RDKit::MarvinReaction::prepSgroupsForRDKit
void prepSgroupsForRDKit()
RDKit::MarvinReaction::agents
std::vector< std::unique_ptr< MarvinMol > > agents
Definition MarvinDefs.h:591
RDKit::MarvinRectangle
Definition MarvinDefs.h:182
RDKit::MarvinRectangle::MarvinRectangle
MarvinRectangle(const std::vector< MarvinAtom * > &atoms)
RDKit::MarvinRectangle::overlapsVertically
bool overlapsVertically(const MarvinRectangle &otherRectangle) const
RDKit::MarvinRectangle::compareRectanglesByYReverse
static bool compareRectanglesByYReverse(MarvinRectangle &r1, MarvinRectangle &r2)
RDKit::MarvinRectangle::MarvinRectangle
MarvinRectangle(const RDGeom::Point3D &upperLeftInit, const RDGeom::Point3D &lowerRightInit)
RDKit::MarvinRectangle::centerIsStale
bool centerIsStale
Definition MarvinDefs.h:185
RDKit::MarvinRectangle::getCenter
RDGeom::Point3D & getCenter()
RDKit::MarvinRectangle::overlapsVHorizontally
bool overlapsVHorizontally(const MarvinRectangle &otherRectangle) const
RDKit::MarvinRectangle::center
RDGeom::Point3D center
Definition MarvinDefs.h:184
RDKit::MarvinRectangle::compareRectanglesByX
static bool compareRectanglesByX(MarvinRectangle &r1, MarvinRectangle &r2)
RDKit::MarvinRectangle::upperLeft
RDGeom::Point3D upperLeft
Definition MarvinDefs.h:188
RDKit::MarvinRectangle::lowerRight
RDGeom::Point3D lowerRight
Definition MarvinDefs.h:189
RDKit::MarvinRectangle::MarvinRectangle
MarvinRectangle(double left, double right, double top, double bottom)
RDKit::MarvinRectangle::MarvinRectangle
MarvinRectangle(const std::vector< MarvinRectangle > &rects)
RDKit::MarvinRectangle::extend
void extend(const MarvinRectangle &otherRectangle)
RDKit::MarvinSruCoModSgroup
Definition MarvinDefs.h:347
RDKit::MarvinSruCoModSgroup::role
std::string role() const override
RDKit::MarvinSruCoModSgroup::title
std::string title
Definition MarvinDefs.h:356
RDKit::MarvinSruCoModSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinSruCoModSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinSruCoModSgroup::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinSruCoModSgroup::correspondence
std::string correspondence
Definition MarvinDefs.h:358
RDKit::MarvinSruCoModSgroup::MarvinSruCoModSgroup
MarvinSruCoModSgroup(std::string type, MarvinMolBase *parent)
RDKit::MarvinSruCoModSgroup::toString
std::string toString() const override
RDKit::MarvinSruCoModSgroup::connect
std::string connect
Definition MarvinDefs.h:357
RDKit::MarvinSruCoModSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinSruCoModSgroup::MarvinSruCoModSgroup
MarvinSruCoModSgroup(MarvinMolBase *parent, std::string role, ptree &molTree)
RDKit::MarvinStereoGroup
Definition MarvinDefs.h:606
RDKit::MarvinStereoGroup::groupType
StereoGroupType groupType
Definition MarvinDefs.h:608
RDKit::MarvinStereoGroup::atoms
std::vector< unsigned int > atoms
Definition MarvinDefs.h:610
RDKit::MarvinStereoGroup::groupNumber
int groupNumber
Definition MarvinDefs.h:609
RDKit::MarvinStereoGroup::MarvinStereoGroup
MarvinStereoGroup(StereoGroupType grouptypeInit, int groupNumberInit)
RDKit::MarvinSuperatomSgroupExpanded
Definition MarvinDefs.h:398
RDKit::MarvinSuperatomSgroupExpanded::isPassiveRoleForContraction
bool isPassiveRoleForContraction() const override
RDKit::MarvinSuperatomSgroupExpanded::toString
std::string toString() const override
RDKit::MarvinSuperatomSgroupExpanded::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinSuperatomSgroupExpanded::~MarvinSuperatomSgroupExpanded
~MarvinSuperatomSgroupExpanded() override
RDKit::MarvinSuperatomSgroupExpanded::MarvinSuperatomSgroupExpanded
MarvinSuperatomSgroupExpanded(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinSuperatomSgroupExpanded::toPtree
ptree toPtree() const override
RDKit::MarvinSuperatomSgroupExpanded::MarvinSuperatomSgroupExpanded
MarvinSuperatomSgroupExpanded(MarvinMolBase *parent)
RDKit::MarvinSuperatomSgroupExpanded::parseMoleculeSpecific
void parseMoleculeSpecific(RDKit::RWMol *mol, std::unique_ptr< SubstanceGroup > &sgroup, int sequenceId) override
RDKit::MarvinSuperatomSgroupExpanded::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinSuperatomSgroupExpanded::convertToOneSuperAtom
MarvinMolBase * convertToOneSuperAtom()
RDKit::MarvinSuperatomSgroupExpanded::title
std::string title
Definition MarvinDefs.h:400
RDKit::MarvinSuperatomSgroupExpanded::role
std::string role() const override
RDKit::MarvinSuperatomSgroup
Definition MarvinDefs.h:521
RDKit::MarvinSuperatomSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinSuperatomSgroup::toString
std::string toString() const override
RDKit::MarvinSuperatomSgroup::convertFromOneSuperAtom
void convertFromOneSuperAtom()
RDKit::MarvinSuperatomSgroup::isPassiveRoleForExpansion
bool isPassiveRoleForExpansion() const override
RDKit::MarvinSuperatomSgroup::cleanUpNumberingMolsAtomsBonds
void cleanUpNumberingMolsAtomsBonds(int &molCount, int &atomCount, int &bondCount, std::map< std::string, std::string > &sgMap, std::map< std::string, std::string > &atomMap, std::map< std::string, std::string > &bondMap) override
RDKit::MarvinSuperatomSgroup::processSpecialSgroups
void processSpecialSgroups() override
RDKit::MarvinSuperatomSgroup::toPtree
ptree toPtree() const override
RDKit::MarvinSuperatomSgroup::MarvinSuperatomSgroup
MarvinSuperatomSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinSuperatomSgroup::title
std::string title
Definition MarvinDefs.h:523
RDKit::MarvinSuperatomSgroup::role
std::string role() const override
RDKit::MarvinSuperatomSgroup::MarvinSuperatomSgroup
MarvinSuperatomSgroup(MarvinMolBase *parent)
RDKit::MarvinSuperatomSgroup::attachmentPoints
std::vector< std::unique_ptr< MarvinAttachmentPoint > > attachmentPoints
Definition MarvinDefs.h:524
RDKit::MarvinSuperatomSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinSuperatomSgroup::isSgroupInSetOfAtoms
IsSgroupInAtomSetResult isSgroupInSetOfAtoms(const std::vector< MarvinAtom * > &setOfAtoms) const override
RDKit::MarvinSuperatomSgroup::~MarvinSuperatomSgroup
~MarvinSuperatomSgroup() override
RDKit::MarvinWriterException
Definition MarvinDefs.h:54
RDKit::MarvinWriterException::MarvinWriterException
MarvinWriterException(std::string message)
Definition MarvinDefs.h:56
RDKit::RWMol
RWMol is a molecule class that is intended to be edited.
Definition RWMol.h:32
RDKit
Std stuff.
Definition Abbreviations.h:19
RDKit::marvinStereoConventionTypes
const std::vector< std::string > marvinStereoConventionTypes
Definition MarvinDefs.h:36
RDKit::marvinBondOrders
const std::vector< std::string > marvinBondOrders
Definition MarvinDefs.h:32
RDKit::StereoGroupType
StereoGroupType
Definition StereoGroup.h:31
RDKit::rdvalue_is
bool rdvalue_is(const RDValue_cast_t)
Definition RDValue-doublemagic.h:372
RDKit::sruSgroupConnectChoices
const std::vector< std::string > sruSgroupConnectChoices
Definition MarvinDefs.h:31
RDKit::marvinConventionTypes
const std::vector< std::string > marvinConventionTypes
Definition MarvinDefs.h:34
RDKit::IsSgroupInAtomSetResult
IsSgroupInAtomSetResult
Definition MarvinDefs.h:48
RDKit::SgroupInAtomSet
@ SgroupInAtomSet
Definition MarvinDefs.h:49
RDKit::SgroupNotInAtomSet
@ SgroupNotInAtomSet
Definition MarvinDefs.h:50
RDKit::SgroupBothInAndNotInAtomSet
@ SgroupBothInAndNotInAtomSet
Definition MarvinDefs.h:51
RDKit::eraseUniquePtr
void eraseUniquePtr(std::vector< std ::unique_ptr< T > > &vector, T *itemToErase)
Definition MarvinDefs.h:227
RDKit::radicalElectronsToMarvinRadical
const std::map< int, std::string > radicalElectronsToMarvinRadical
Definition MarvinDefs.h:45
RDKit::getCleanNumber
bool getCleanNumber(std::string strToParse, T &outInt)
RDKit::marvinRadicalVals
const std::vector< std::string > marvinRadicalVals
Definition MarvinDefs.h:38
RDKit::marvinStereoDictRefTypes
const std::vector< std::string > marvinStereoDictRefTypes
Definition MarvinDefs.h:35
RDKit::marvinQueryBondsTypes
const std::vector< std::string > marvinQueryBondsTypes
Definition MarvinDefs.h:33
RDKit::findUniquePtr
std::vector< std::unique_ptr< T > >::iterator findUniquePtr(std::vector< std ::unique_ptr< T > > &vector, T *itemToFind)
Definition MarvinDefs.h:212
RDKit::marvinRadicalToRadicalElectrons
const std::map< std::string, int > marvinRadicalToRadicalElectrons
Definition MarvinDefs.h:41