RDKit: MarvinDefs.h Source File

| RDKit Open-source cheminformatics and machine learning.

Loading...
Searching...
No Matches
MarvinDefs.h
Go to the documentation of this file.
1//
2// Copyright (C) 2022-2023 Tad Hurst, Greg Landrum and other RDKit contributors
3//
4// @@ All Rights Reserved @@
5// This file is part of the RDKit.
6// The contents are covered by the terms of the BSD license
7// which is included in the file license.txt, found at the root
8// of the RDKit source tree.
9//
10
11// This software is based on the Chemaxon documentation for the MRV format:P
12// https://docs.chemaxon.com/display/docs/marvin-documents-mrv.md
13// and this implmentation is tested against the parsing and generation in the
14// Marvin JS sketcher: https://marvinjs-demo.chemaxon.com/latest/demo.html
15
16#ifndef RD_MARVINDEFS_H
17#define RD_MARVINDEFS_H
18
19#include <GraphMol/RDKitBase.h>
20
21#include <RDGeneral/BoostStartInclude.h>
22#include <boost/property_tree/xml_parser.hpp>
23#include <RDGeneral/BoostEndInclude.h>
24
25#include <float.h> // Needed for DBL_MAX on Clang
26
27using boost::property_tree::ptree;
28
29namespace RDKit {
30
31 const std::vector<std::string> sruSgroupConnectChoices{"hh", "ht", "eu"};
32 const std::vector<std::string> marvinBondOrders{"1", "2", "3", "A"};
33 const std::vector<std::string> marvinQueryBondsTypes{"SD", "SA", "DA", "Any"};
34 const std::vector<std::string> marvinConventionTypes{"cxn:coord",
35 "cxn:hydrogen"};
36 const std::vector<std::string> marvinStereoDictRefTypes{"cml:W", "cml:H"};
37 const std::vector<std::string> marvinStereoConventionTypes{"1", "3", "4", "6"};
38
39 const std::vector<std::string> marvinRadicalVals{
40 "monovalent", "divalent", "divalent1", "divalent3",
41 "trivalent", "trivalent2", "trivalent4", "4"};
42 const std::map<std::string, int> marvinRadicalToRadicalElectrons{
43 {"monovalent", 1}, {"divalent", 2}, {"divalent1", 2}, {"divalent3", 2},
44 {"trivalent", 3}, {"trivalent2", 3}, {"trivalent4", 3}, {"4", 4}};
45
46 const std::map<int, std::string> radicalElectronsToMarvinRadical{
47 {1, "monovalent"}, {2, "divalent"}, {3, "trivalent4"}, {4, "4"}};
48
49 enum IsSgroupInAtomSetResult {
50 SgroupInAtomSet,
51 SgroupNotInAtomSet,
52 SgroupBothInAndNotInAtomSet,
53};
54
55 class MarvinWriterException : public std::runtime_error {
56 public:
57 explicit MarvinWriterException(std::string message)
58 : std::runtime_error(message) {};
59};
60
61 class MarvinArrow {
62 public:
63 std::string type;
64 double x1;
65 double y1;
66 double x2;
67 double y2;
68
69 std::string toString() const;
70 ptree toPtree() const;
71};
72
73 class MarvinPlus {
74 public:
75 std::string id;
76 double x1;
77 double y1;
78 double x2;
79 double y2;
80
81 std::string toString() const;
82 ptree toPtree() const;
83};
84
85 class MarvinCondition {
86 public:
87 std::string id;
88 std::string text;
89 double x;
90 double y;
91 double fontScale = 0.0;
92
93 std::string halign;
94 std::string valign;
95
96 std::string toString() const;
97 ptree toPtree() const;
98};
99
100 class MarvinAttachmentPoint {
101 public:
102 // <attachmentPoint atom="a7" order="1" bond="b6"/>
103 std::string atom;
104 std::string bond;
105 std::string order;
106
107 std::string toString() const;
108 ptree toPtree() const;
109};
110
111 class MarvinAtom {
112 public:
113 std::string id;
114 std::string elementType;
115 double x2;
116 double y2;
117 double x3;
118 double y3;
119 double z3;
120
121 int formalCharge;
122 std::string radical;
123 int isotope;
124 int mrvValence;
125 int hydrogenCount;
126 std::string mrvAlias;
127 std::string mrvStereoGroup;
128 int mrvMap;
129 std::string sgroupRef;
130 bool sGroupRefIsSuperatom; // if set, we will not change the sgroupRef - the
131 // superatom really needs it
132 std::string sgroupAttachmentPoint;
133 int rgroupRef;
134
135 MarvinAtom();
136 MarvinAtom(const MarvinAtom &atomToCopy, std::string newId);
137
138 bool operator==(const MarvinAtom &rhs) const;
139
140 bool operator==(const MarvinAtom *rhs) const;
141
142 bool isElement() const;
143
144 std::string toString() const;
145 ptree toPtree(unsigned int coordinatePrecision = 6) const;
146};
147
148 class MarvinBondStereo {
149 public:
150 std::string value;
151 std::string convention;
152 std::string conventionValue;
153 std::string dictRef;
154
155 std::string toString() const;
156 ptree toPtree() const;
157};
158
159 class MarvinBond {
160 public:
161 std::string id;
162 std::string atomRefs2[2];
163 std::string order;
164 MarvinBondStereo bondStereo;
165 std::string queryType;
166 std::string convention;
167
168 MarvinBond() {}
169
170 MarvinBond(const MarvinBond &bondToCopy, std::string newId,
171 std::string atomRef1, std::string atomRef2);
172
173 bool isEqual(const MarvinAtom &other) const;
174
175 bool operator==(const MarvinAtom &rhs) const;
176
177 const std::string getBondType() const;
178
179 std::string toString() const;
180 ptree toPtree() const;
181};
182
183 class MarvinRectangle {
184 protected:
185 RDGeom::Point3D center;
186 bool centerIsStale = true;
187
188 public:
189 RDGeom::Point3D upperLeft;
190 RDGeom::Point3D lowerRight;
191
192 MarvinRectangle(double left, double right, double top, double bottom);
193 MarvinRectangle(const RDGeom::Point3D &upperLeftInit,
194 const RDGeom::Point3D &lowerRightInit);
195 MarvinRectangle(const std::vector<MarvinAtom *> &atoms);
196 MarvinRectangle(const std::vector<MarvinRectangle> &rects);
197
198 void extend(const MarvinRectangle &otherRectangle);
199
200 RDGeom::Point3D &getCenter();
201
202 bool overlapsVertically(const MarvinRectangle &otherRectangle) const;
203
204 bool overlapsVHorizontally(const MarvinRectangle &otherRectangle) const;
205
206 static bool compareRectanglesByX(MarvinRectangle &r1, MarvinRectangle &r2);
207
208 static bool compareRectanglesByYReverse(MarvinRectangle &r1,
209 MarvinRectangle &r2);
210};
211
212template <typename T>
213 typename std::vector<std::unique_ptr<T>>::iterator findUniquePtr(
214 std::vector<std ::unique_ptr<T>> &vector, T *itemToFind) {
215 auto foundUniqIter = find_if(vector.begin(), vector.end(),
216 [itemToFind](std::unique_ptr<T> &uniquePtr) {
217 return uniquePtr.get() == itemToFind;
218 });
219
220 if (foundUniqIter == vector.end()) {
221 throw FileParseException("Unexpected error - item to find not found");
222 }
223
224 return foundUniqIter;
225}
226
227template <typename T>
228 void eraseUniquePtr(std::vector<std ::unique_ptr<T>> &vector, T *itemToErase) {
229 auto removeUniqIter = findUniquePtr<T>(vector, itemToErase);
230
231 if (removeUniqIter == vector.end()) {
232 throw FileParseException("Unexpected error - item to remove not found");
233 }
234
235 vector.erase(removeUniqIter);
236}
237
238 class MarvinMolBase {
239 public:
240 std::string molID;
241 std::string id; // used in all sGroups
242 unsigned int coordinatePrecision = 6;
243 std::vector<MarvinAtom *> atoms; // owned by parent MarvinMol
244 std::vector<MarvinBond *> bonds; // owned by parent MarvinMol
245 std::vector<std::unique_ptr<MarvinMolBase>> sgroups;
246 MarvinMolBase *parent;
247
248 virtual std::string role() const = 0;
249 virtual bool hasAtomBondBlocks() const = 0;
250 virtual std::string toString() const = 0;
251 virtual ptree toPtree() const;
252 void addSgroupsToPtree(ptree &pt) const;
253
254 virtual MarvinMolBase *copyMol(const std::string &idAppend) const = 0;
255 virtual void pushOwnedAtom(MarvinAtom *atom);
256 virtual void pushOwnedBond(MarvinBond *bond);
257
258 virtual void removeOwnedAtom(MarvinAtom *atom);
259 virtual void removeOwnedBond(MarvinBond *bond);
260
261 void setPrecision(unsigned int precision);
262
263 int getExplicitValence(const MarvinAtom &marvinAtom) const;
264
265 MarvinMolBase() {}
266
267 virtual ~MarvinMolBase();
268
269 int getAtomIndex(std::string id) const;
270 int getBondIndex(std::string id) const;
271
272 const std::vector<std::string> getBondList() const;
273 const std::vector<std::string> getAtomList() const;
274 bool AnyOverLappingAtoms(const MarvinMolBase *otherMol) const;
275
276 void cleanUpNumbering(
277 int &molCount // this is the starting mol count, and receives the ending
278 // mol count - THis is used when
279 // MarvinMol->convertToSuperAtoms is called multiple times
280 // from a RXN
281 ,
282 int &atomCount // starting and ending atom count
283 ,
284 int &bondCount // starting and ending bond count
285 ,
286 int &sgCount // starting and ending sq count
287 ,
288 std::map<std::string, std::string>
289 &sgMap // map from old sg number to new sg number
290 ,
291 std::map<std::string, std::string>
292 &atomMap // map from old atom number to new atom number
293 ,
294 std::map<std::string, std::string>
295 &bondMap // map from old bond number to new bond number
296 );
297
298 // the following is virtual because some derived classes need to do more than
299 // just call the base class. Currently, only MarvinSuperatomSgroup does this
300 public:
301 virtual void cleanUpNumberingMolsAtomsBonds(
302 int &molCount, // this is the starting mol count, and receives the ending
303 // mol count - THis is used when
304 // MarvinMol->convertToSuperAtoms is called multiple
305 // times from a RXN
306 int &atomCount, // starting and ending atom count
307 int &bondCount, // starting and ending bond count
308 std::map<std::string, std::string> &sgMap,
309 std::map<std::string, std::string> &atomMap,
310 std::map<std::string, std::string> &bondMap);
311
312 void cleanUpSgNumbering(int &sgCount,
313 std::map<std::string, std::string> &sgMap);
314
315 // the following is virtual because some derived classes need to do more than
316 // just call the base class. Currently, only MarvinSuperatomSgroup does this
317
318 virtual IsSgroupInAtomSetResult isSgroupInSetOfAtoms(
319 const std::vector<MarvinAtom *> &setOfAtoms) const;
320
321 public:
322 static bool atomRefInAtoms(MarvinAtom *a, std::string b);
323 static bool bondRefInBonds(MarvinBond *a, std::string b);
324 static bool molIDInSgroups(std::string a, std::string b);
325 MarvinAtom *findAtomByRef(std::string atomId);
326 MarvinBond *findBondByRef(std::string atomId);
327
328 void prepSgroupsForRDKit();
329 void processSgroupsFromRDKit();
330
331 virtual bool isPassiveRoleForExpansion() const;
332 virtual bool isPassiveRoleForContraction() const;
333 virtual void processSpecialSgroups();
334 virtual void parseMoleculeSpecific(RDKit::RWMol *mol,
335 std::unique_ptr<SubstanceGroup> &sgroup,
336 int sequenceId);
337
338 bool has2dCoords() const;
339 bool has3dCoords() const;
340 bool hasAny3dCoords() const;
341 bool hasAny2dCoords() const;
342 bool hasCoords() const;
343 void removeCoords();
344
345 void parseAtomsAndBonds(ptree &molTree);
346};
347
348 class MarvinSruCoModSgroup : public MarvinMolBase {
349 private:
350 std::string roleName; // could be MarvinSruSgroup, MarvinCopolymerSgroup or
351 // MarvinModificationSgroup
352 public:
353 MarvinMolBase *copyMol(const std::string &idAppend) const override;
354 MarvinSruCoModSgroup(std::string type, MarvinMolBase *parent);
355 MarvinSruCoModSgroup(MarvinMolBase *parent, std::string role, ptree &molTree);
356
357 std::string title;
358 std::string connect;
359 std::string correspondence;
360
361 std::string toString() const override;
362 ptree toPtree() const override;
363
364 std::string role() const override;
365 bool hasAtomBondBlocks() const override;
366 void parseMoleculeSpecific(RDKit::RWMol *mol,
367 std::unique_ptr<SubstanceGroup> &sgroup,
368 int sequenceId) override;
369};
370
371 class MarvinDataSgroup : public MarvinMolBase {
372 public:
373 MarvinDataSgroup(MarvinMolBase *parent);
374 MarvinDataSgroup(MarvinMolBase *parent, ptree &molTree);
375
376 MarvinMolBase *copyMol(const std::string &idAppend) const override;
377
378 std::string context;
379 std::string fieldName;
380 std::string placement;
381 std::string unitsDisplayed;
382 std::string queryType;
383 std::string queryOp;
384 std::string fieldData;
385 std::string units;
386 double x;
387 double y;
388
389 std::string toString() const override;
390 ptree toPtree() const override;
391
392 std::string role() const override;
393 bool hasAtomBondBlocks() const override;
394 void parseMoleculeSpecific(RDKit::RWMol *mol,
395 std::unique_ptr<SubstanceGroup> &sgroup,
396 int sequenceId) override;
397};
398
399 class MarvinSuperatomSgroupExpanded : public MarvinMolBase {
400 public:
401 std::string title;
402
403 MarvinSuperatomSgroupExpanded(MarvinMolBase *parent);
404 MarvinSuperatomSgroupExpanded(MarvinMolBase *parent, ptree &molTree);
405
406 MarvinMolBase *copyMol(const std::string &idAppend) const override;
407
408 ~MarvinSuperatomSgroupExpanded() override;
409
410 MarvinMolBase *convertToOneSuperAtom();
411
412 std::string toString() const override;
413 ptree toPtree() const override;
414
415 std::string role() const override;
416 bool hasAtomBondBlocks() const override;
417 bool isPassiveRoleForContraction() const override;
418
419 void parseMoleculeSpecific(RDKit::RWMol *mol,
420 std::unique_ptr<SubstanceGroup> &sgroup,
421 int sequenceId) override;
422};
423
424 class MarvinMultipleSgroup : public MarvinMolBase {
425 public:
426 MarvinMultipleSgroup(MarvinMolBase *parent);
427 MarvinMultipleSgroup(MarvinMolBase *parent, ptree &molTree);
428
429 MarvinMolBase *copyMol(const std::string &idAppend) const override;
430
431 std::string title;
432 bool isExpanded = false;
433 std::vector<MarvinAtom *> parentAtoms;
434 std::vector<MarvinBond *>
435 bondsToAtomsNotInExpandedGroup; // only when expanded
436
437 void expandOneMultipleSgroup();
438 void contractOneMultipleSgroup();
439 int getMatchedOrphanBondIndex(std::string atomIdToCheck,
440 std::vector<MarvinBond *> &bondsToTry,
441 std::vector<MarvinBond *> &orphanedBonds) const;
442
443 std::string toString() const override;
444 ptree toPtree() const override;
445
446 std::string role() const override;
447 bool hasAtomBondBlocks() const override;
448 bool isPassiveRoleForExpansion() const override;
449 bool isPassiveRoleForContraction() const override;
450 void processSpecialSgroups() override;
451
452 void parseMoleculeSpecific(RDKit::RWMol *mol,
453 std::unique_ptr<SubstanceGroup> &sgroup,
454 int sequenceId) override;
455};
456
457 class MarvinMulticenterSgroup : public MarvinMolBase {
458 // <molecule molID="m2" id="sg1" role="MulticenterSgroup" atomRefs="a2 a6 a5
459 // a4 a3" center="a18"/>sgroup->
460 public:
461 MarvinMulticenterSgroup(MarvinMolBase *parent);
462 MarvinMulticenterSgroup(MarvinMolBase *parent, ptree &molTree);
463
464 MarvinMolBase *copyMol(const std::string &idAppend) const override;
465
466 void processOneMulticenterSgroup();
467
468 std::string toString() const override;
469 ptree toPtree() const override;
470
471 MarvinAtom *center;
472 std::string role() const override;
473 bool hasAtomBondBlocks() const override;
474 void processSpecialSgroups() override;
475 void parseMoleculeSpecific(RDKit::RWMol *mol,
476 std::unique_ptr<SubstanceGroup> &sgroup,
477 int sequenceId) override;
478};
479
480 class MarvinGenericSgroup : public MarvinMolBase {
481 // <molecule molID="m2" id="sg1" role="GenericSgroup" atomRefs="a1 a2 a3 a4 a5
482 // a6 a7 a8 a9 a13 a10 a11 a12" charge="onAtoms"/></molecule>
483 public:
484 MarvinGenericSgroup(MarvinMolBase *parent);
485 MarvinGenericSgroup(MarvinMolBase *parent, ptree &molTree);
486
487 MarvinMolBase *copyMol(const std::string &idAppend) const override;
488
489 std::string charge; // onAtoms or onBrackets
490 std::string toString() const override;
491 ptree toPtree() const override;
492
493 std::string role() const override;
494 bool hasAtomBondBlocks() const override;
495 void parseMoleculeSpecific(RDKit::RWMol *mol,
496 std::unique_ptr<SubstanceGroup> &sgroup,
497 int sequenceId) override;
498};
499
500 class MarvinMonomerSgroup : public MarvinMolBase {
501 // <molecule id="sg1" role="MonomerSgroup" title="mon" charge="onAtoms"
502 // molID="m2" atomRefs="a2 a1 a3 a4">
503 // </molecule>
504 public:
505 MarvinMonomerSgroup(MarvinMolBase *parent);
506 MarvinMonomerSgroup(MarvinMolBase *parent, ptree &molTree);
507
508 MarvinMolBase *copyMol(const std::string &idAppend) const override;
509
510 std::string title;
511 std::string charge; // onAtoms or onBrackets
512 std::string toString() const override;
513 ptree toPtree() const override;
514
515 std::string role() const override;
516 bool hasAtomBondBlocks() const override;
517 void parseMoleculeSpecific(RDKit::RWMol *mol,
518 std::unique_ptr<SubstanceGroup> &sgroup,
519 int sequenceId) override;
520};
521
522 class MarvinSuperatomSgroup : public MarvinMolBase {
523 public:
524 std::string title;
525 std::vector<std::unique_ptr<MarvinAttachmentPoint>> attachmentPoints;
526
527 MarvinSuperatomSgroup(MarvinMolBase *parent);
528 MarvinSuperatomSgroup(MarvinMolBase *parent, ptree &molTree);
529
530 MarvinMolBase *copyMol(const std::string &idAppend) const override;
531
532 ~MarvinSuperatomSgroup() override;
533
534 void convertFromOneSuperAtom();
535
536 std::string role() const override;
537 bool hasAtomBondBlocks() const override;
538 bool isPassiveRoleForExpansion() const override;
539
540 std::string toString() const override;
541 ptree toPtree() const override;
542
543 void cleanUpNumberingMolsAtomsBonds(
544 int &molCount, // this is the starting mol count, and receives the ending
545 // mol count - THis is used when
546 // MarvinMol->convertToSuperAtoms is called multiple
547 // times from a RXN
548 int &atomCount, // starting and ending atom count
549 int &bondCount, // starting and ending bond count
550 std::map<std::string, std::string> &sgMap,
551 std::map<std::string, std::string> &atomMap,
552 std::map<std::string, std::string> &bondMap) override;
553
554 IsSgroupInAtomSetResult isSgroupInSetOfAtoms(
555 const std::vector<MarvinAtom *> &setOfAtoms) const override;
556
557 void processSpecialSgroups() override;
558};
559
560 class MarvinMol : public MarvinMolBase {
561 public:
562 MarvinMol();
563 MarvinMol(ptree &molTree);
564
565 MarvinMolBase *copyMol(const std::string &idAppend) const override;
566
567 ~MarvinMol() override;
568
569 std::vector<std::unique_ptr<MarvinAtom>> ownedAtoms;
570 std::vector<std::unique_ptr<MarvinBond>> ownedBonds;
571
572 void pushOwnedAtom(MarvinAtom *atom) override;
573 void pushOwnedBond(MarvinBond *bond) override;
574
575 void removeOwnedAtom(MarvinAtom *atom) override;
576 void removeOwnedBond(MarvinBond *bond) override;
577
578 std::string role() const override;
579 bool hasAtomBondBlocks() const override;
580 bool isPassiveRoleForContraction() const override;
581
582 std::string toString() const override;
583 ptree toPtree() const override;
584
585 std::string generateMolString();
586 ptree toMolPtree() const;
587};
588
589 class MarvinReaction {
590 public:
591 std::vector<std::unique_ptr<MarvinMol>> reactants;
592 std::vector<std::unique_ptr<MarvinMol>> agents;
593 std::vector<std::unique_ptr<MarvinMol>> products;
594
595 MarvinArrow arrow;
596 std::vector<std::unique_ptr<MarvinPlus>> pluses;
597 std::vector<std::unique_ptr<MarvinCondition>> conditions;
598
599 ~MarvinReaction();
600
601 void prepSgroupsForRDKit();
602
603 std::string toString();
604 ptree toPtree() const;
605};
606
607 class MarvinStereoGroup {
608 public:
609 StereoGroupType groupType; // one of ABS AND OR
610 int groupNumber;
611 std::vector<unsigned int> atoms;
612
613 MarvinStereoGroup(StereoGroupType grouptypeInit, int groupNumberInit);
614};
615
616template <typename T>
617 bool getCleanNumber(std::string strToParse, T &outInt);
618} // namespace RDKit
619
620#endif // RD_MARVINDEFS_H
BoostEndInclude.h
BoostStartInclude.h
RDKitBase.h
pulls in the core RDKit functionality
RDGeom::Point3D
Definition point.h:53
RDKit::FileParseException
used by various file parsing classes to indicate a parse error
Definition FileParseException.h:19
RDKit::MarvinArrow
Definition MarvinDefs.h:61
RDKit::MarvinArrow::x1
double x1
Definition MarvinDefs.h:64
RDKit::MarvinArrow::toPtree
ptree toPtree() const
RDKit::MarvinArrow::x2
double x2
Definition MarvinDefs.h:66
RDKit::MarvinArrow::y2
double y2
Definition MarvinDefs.h:67
RDKit::MarvinArrow::y1
double y1
Definition MarvinDefs.h:65
RDKit::MarvinArrow::toString
std::string toString() const
RDKit::MarvinArrow::type
std::string type
Definition MarvinDefs.h:63
RDKit::MarvinAtom
Definition MarvinDefs.h:111
RDKit::MarvinAtom::mrvStereoGroup
std::string mrvStereoGroup
Definition MarvinDefs.h:127
RDKit::MarvinAtom::isElement
bool isElement() const
RDKit::MarvinAtom::y2
double y2
Definition MarvinDefs.h:116
RDKit::MarvinAtom::id
std::string id
Definition MarvinDefs.h:113
RDKit::MarvinAtom::elementType
std::string elementType
Definition MarvinDefs.h:114
RDKit::MarvinAtom::hydrogenCount
int hydrogenCount
Definition MarvinDefs.h:125
RDKit::MarvinAtom::isotope
int isotope
Definition MarvinDefs.h:123
RDKit::MarvinAtom::toString
std::string toString() const
RDKit::MarvinAtom::rgroupRef
int rgroupRef
Definition MarvinDefs.h:133
RDKit::MarvinAtom::x3
double x3
Definition MarvinDefs.h:117
RDKit::MarvinAtom::formalCharge
int formalCharge
Definition MarvinDefs.h:121
RDKit::MarvinAtom::toPtree
ptree toPtree(unsigned int coordinatePrecision=6) const
RDKit::MarvinAtom::MarvinAtom
MarvinAtom()
RDKit::MarvinAtom::mrvValence
int mrvValence
Definition MarvinDefs.h:124
RDKit::MarvinAtom::sgroupRef
std::string sgroupRef
Definition MarvinDefs.h:129
RDKit::MarvinAtom::z3
double z3
Definition MarvinDefs.h:119
RDKit::MarvinAtom::radical
std::string radical
Definition MarvinDefs.h:122
RDKit::MarvinAtom::sgroupAttachmentPoint
std::string sgroupAttachmentPoint
Definition MarvinDefs.h:132
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:128
RDKit::MarvinAtom::operator==
bool operator==(const MarvinAtom *rhs) const
RDKit::MarvinAtom::sGroupRefIsSuperatom
bool sGroupRefIsSuperatom
Definition MarvinDefs.h:130
RDKit::MarvinAtom::y3
double y3
Definition MarvinDefs.h:118
RDKit::MarvinAtom::x2
double x2
Definition MarvinDefs.h:115
RDKit::MarvinAtom::mrvAlias
std::string mrvAlias
Definition MarvinDefs.h:126
RDKit::MarvinAttachmentPoint
Definition MarvinDefs.h:100
RDKit::MarvinAttachmentPoint::bond
std::string bond
Definition MarvinDefs.h:104
RDKit::MarvinAttachmentPoint::toPtree
ptree toPtree() const
RDKit::MarvinAttachmentPoint::toString
std::string toString() const
RDKit::MarvinAttachmentPoint::atom
std::string atom
Definition MarvinDefs.h:103
RDKit::MarvinAttachmentPoint::order
std::string order
Definition MarvinDefs.h:105
RDKit::MarvinBondStereo
Definition MarvinDefs.h:148
RDKit::MarvinBondStereo::conventionValue
std::string conventionValue
Definition MarvinDefs.h:152
RDKit::MarvinBondStereo::toString
std::string toString() const
RDKit::MarvinBondStereo::dictRef
std::string dictRef
Definition MarvinDefs.h:153
RDKit::MarvinBondStereo::value
std::string value
Definition MarvinDefs.h:150
RDKit::MarvinBondStereo::convention
std::string convention
Definition MarvinDefs.h:151
RDKit::MarvinBondStereo::toPtree
ptree toPtree() const
RDKit::MarvinBond
Definition MarvinDefs.h:159
RDKit::MarvinBond::convention
std::string convention
Definition MarvinDefs.h:166
RDKit::MarvinBond::toPtree
ptree toPtree() const
RDKit::MarvinBond::queryType
std::string queryType
Definition MarvinDefs.h:165
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:162
RDKit::MarvinBond::id
std::string id
Definition MarvinDefs.h:161
RDKit::MarvinBond::order
std::string order
Definition MarvinDefs.h:163
RDKit::MarvinBond::bondStereo
MarvinBondStereo bondStereo
Definition MarvinDefs.h:164
RDKit::MarvinBond::operator==
bool operator==(const MarvinAtom &rhs) const
RDKit::MarvinBond::MarvinBond
MarvinBond()
Definition MarvinDefs.h:168
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:85
RDKit::MarvinCondition::halign
std::string halign
Definition MarvinDefs.h:93
RDKit::MarvinCondition::valign
std::string valign
Definition MarvinDefs.h:94
RDKit::MarvinCondition::x
double x
Definition MarvinDefs.h:89
RDKit::MarvinCondition::toString
std::string toString() const
RDKit::MarvinCondition::id
std::string id
Definition MarvinDefs.h:87
RDKit::MarvinCondition::y
double y
Definition MarvinDefs.h:90
RDKit::MarvinCondition::text
std::string text
Definition MarvinDefs.h:88
RDKit::MarvinCondition::toPtree
ptree toPtree() const
RDKit::MarvinCondition::fontScale
double fontScale
Definition MarvinDefs.h:91
RDKit::MarvinDataSgroup::hasAtomBondBlocks
bool hasAtomBondBlocks() const override
RDKit::MarvinDataSgroup::x
double x
Definition MarvinDefs.h:386
RDKit::MarvinDataSgroup::MarvinDataSgroup
MarvinDataSgroup(MarvinMolBase *parent)
RDKit::MarvinDataSgroup::context
std::string context
Definition MarvinDefs.h:378
RDKit::MarvinDataSgroup::units
std::string units
Definition MarvinDefs.h:385
RDKit::MarvinDataSgroup::fieldData
std::string fieldData
Definition MarvinDefs.h:384
RDKit::MarvinDataSgroup::queryOp
std::string queryOp
Definition MarvinDefs.h:383
RDKit::MarvinDataSgroup::unitsDisplayed
std::string unitsDisplayed
Definition MarvinDefs.h:381
RDKit::MarvinDataSgroup::MarvinDataSgroup
MarvinDataSgroup(MarvinMolBase *parent, ptree &molTree)
RDKit::MarvinDataSgroup::queryType
std::string queryType
Definition MarvinDefs.h:382
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:380
RDKit::MarvinDataSgroup::fieldName
std::string fieldName
Definition MarvinDefs.h:379
RDKit::MarvinDataSgroup::y
double y
Definition MarvinDefs.h:387
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:489
RDKit::MarvinGenericSgroup::MarvinGenericSgroup
MarvinGenericSgroup(MarvinMolBase *parent)
RDKit::MarvinMolBase::coordinatePrecision
unsigned int coordinatePrecision
Definition MarvinDefs.h:242
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:244
RDKit::MarvinMolBase::hasAny2dCoords
bool hasAny2dCoords() const
RDKit::MarvinMolBase::toString
virtual std::string toString() const =0
RDKit::MarvinMolBase::id
std::string id
Definition MarvinDefs.h:241
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:245
RDKit::MarvinMolBase::toPtree
virtual ptree toPtree() const
RDKit::MarvinMolBase::molID
std::string molID
Definition MarvinDefs.h:240
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:246
RDKit::MarvinMolBase::MarvinMolBase
MarvinMolBase()
Definition MarvinDefs.h:265
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:243
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::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:569
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:570
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::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:511
RDKit::MarvinMonomerSgroup::MarvinMonomerSgroup
MarvinMonomerSgroup(MarvinMolBase *parent)
RDKit::MarvinMonomerSgroup::title
std::string title
Definition MarvinDefs.h:510
RDKit::MarvinMonomerSgroup::role
std::string role() const override
RDKit::MarvinMonomerSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinMulticenterSgroup::role
std::string role() const override
RDKit::MarvinMulticenterSgroup::center
MarvinAtom * center
Definition MarvinDefs.h:471
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::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:432
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:433
RDKit::MarvinMultipleSgroup::title
std::string title
Definition MarvinDefs.h:431
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:435
RDKit::MarvinPlus
Definition MarvinDefs.h:73
RDKit::MarvinPlus::toString
std::string toString() const
RDKit::MarvinPlus::x2
double x2
Definition MarvinDefs.h:78
RDKit::MarvinPlus::y1
double y1
Definition MarvinDefs.h:77
RDKit::MarvinPlus::toPtree
ptree toPtree() const
RDKit::MarvinPlus::y2
double y2
Definition MarvinDefs.h:79
RDKit::MarvinPlus::x1
double x1
Definition MarvinDefs.h:76
RDKit::MarvinPlus::id
std::string id
Definition MarvinDefs.h:75
RDKit::MarvinReaction
Definition MarvinDefs.h:589
RDKit::MarvinReaction::~MarvinReaction
~MarvinReaction()
RDKit::MarvinReaction::products
std::vector< std::unique_ptr< MarvinMol > > products
Definition MarvinDefs.h:593
RDKit::MarvinReaction::arrow
MarvinArrow arrow
Definition MarvinDefs.h:595
RDKit::MarvinReaction::toPtree
ptree toPtree() const
RDKit::MarvinReaction::conditions
std::vector< std::unique_ptr< MarvinCondition > > conditions
Definition MarvinDefs.h:597
RDKit::MarvinReaction::toString
std::string toString()
RDKit::MarvinReaction::pluses
std::vector< std::unique_ptr< MarvinPlus > > pluses
Definition MarvinDefs.h:596
RDKit::MarvinReaction::reactants
std::vector< std::unique_ptr< MarvinMol > > reactants
Definition MarvinDefs.h:591
RDKit::MarvinReaction::prepSgroupsForRDKit
void prepSgroupsForRDKit()
RDKit::MarvinReaction::agents
std::vector< std::unique_ptr< MarvinMol > > agents
Definition MarvinDefs.h:592
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:186
RDKit::MarvinRectangle::getCenter
RDGeom::Point3D & getCenter()
RDKit::MarvinRectangle::overlapsVHorizontally
bool overlapsVHorizontally(const MarvinRectangle &otherRectangle) const
RDKit::MarvinRectangle::center
RDGeom::Point3D center
Definition MarvinDefs.h:185
RDKit::MarvinRectangle::compareRectanglesByX
static bool compareRectanglesByX(MarvinRectangle &r1, MarvinRectangle &r2)
RDKit::MarvinRectangle::upperLeft
RDGeom::Point3D upperLeft
Definition MarvinDefs.h:189
RDKit::MarvinRectangle::lowerRight
RDGeom::Point3D lowerRight
Definition MarvinDefs.h:190
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::role
std::string role() const override
RDKit::MarvinSruCoModSgroup::title
std::string title
Definition MarvinDefs.h:357
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:359
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:358
RDKit::MarvinSruCoModSgroup::copyMol
MarvinMolBase * copyMol(const std::string &idAppend) const override
RDKit::MarvinSruCoModSgroup::MarvinSruCoModSgroup
MarvinSruCoModSgroup(MarvinMolBase *parent, std::string role, ptree &molTree)
RDKit::MarvinStereoGroup::groupType
StereoGroupType groupType
Definition MarvinDefs.h:609
RDKit::MarvinStereoGroup::atoms
std::vector< unsigned int > atoms
Definition MarvinDefs.h:611
RDKit::MarvinStereoGroup::groupNumber
int groupNumber
Definition MarvinDefs.h:610
RDKit::MarvinStereoGroup::MarvinStereoGroup
MarvinStereoGroup(StereoGroupType grouptypeInit, int groupNumberInit)
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:401
RDKit::MarvinSuperatomSgroupExpanded::role
std::string role() const override
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:524
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:525
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::MarvinWriterException
MarvinWriterException(std::string message)
Definition MarvinDefs.h:57
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:37
RDKit::marvinBondOrders
const std::vector< std::string > marvinBondOrders
Definition MarvinDefs.h:32
RDKit::StereoGroupType
StereoGroupType
Definition StereoGroup.h:30
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:49
RDKit::SgroupInAtomSet
@ SgroupInAtomSet
Definition MarvinDefs.h:50
RDKit::SgroupNotInAtomSet
@ SgroupNotInAtomSet
Definition MarvinDefs.h:51
RDKit::SgroupBothInAndNotInAtomSet
@ SgroupBothInAndNotInAtomSet
Definition MarvinDefs.h:52
RDKit::eraseUniquePtr
void eraseUniquePtr(std::vector< std ::unique_ptr< T > > &vector, T *itemToErase)
Definition MarvinDefs.h:228
RDKit::radicalElectronsToMarvinRadical
const std::map< int, std::string > radicalElectronsToMarvinRadical
Definition MarvinDefs.h:46
RDKit::getCleanNumber
bool getCleanNumber(std::string strToParse, T &outInt)
RDKit::marvinRadicalVals
const std::vector< std::string > marvinRadicalVals
Definition MarvinDefs.h:39
RDKit::marvinStereoDictRefTypes
const std::vector< std::string > marvinStereoDictRefTypes
Definition MarvinDefs.h:36
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:213
RDKit::marvinRadicalToRadicalElectrons
const std::map< std::string, int > marvinRadicalToRadicalElectrons
Definition MarvinDefs.h:42