RDKit
Open-source cheminformatics and machine learning.
MolDraw2DUtils.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2016 Greg Landrum
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 #include <RDGeneral/export.h>
12 #ifndef MOLDRAW2DUTILS_H
13 #define MOLDRAW2DUTILS_H
14 #include <GraphMol/RWMol.h>
15 
16 #include <boost/tuple/tuple.hpp>
17 
18 // ****************************************************************************
19 
20 namespace RDKit {
21 typedef boost::tuple<float, float, float> DrawColour;
22 class MolDraw2D;
23 
24 namespace MolDraw2DUtils {
25 //! Does some cleanup operations on the molecule to prepare it to draw nicely
26 /*
27 The operations include: kekulization, addition of chiral Hs (so that we can draw
28 wedges to them), wedging of bonds at chiral centers, and generation of a 2D
29 conformation if the molecule does not already have a conformation
30 
31 \param mol: the molecule to be modified
32 \param kekulize: toggles kekulization (this can fail, see below)
33 \param addChiralHs: adds Hs to the graph on chiral atoms
34 \param wedgeBonds: calls WedgeMolBonds()
35 \param forceCoords: generates a 2D conformation even if one is present already
36 
37 NOTE: the kekulization step can fail, throwing a MolSanitizeExecption. If this
38 happens the molecule will be in an inconsistent, partially kekulized, state.
39 This isn't normally a problem for molecules that have been sanitized, but can be
40 problematic if the molecules have been modified post santitization.
41 */
43  bool kekulize = true,
44  bool addChiralHs = true,
45  bool wedgeBonds = true,
46  bool forceCoords = false);
47 
48 //! prepare a molecule for drawing and draw it
49 /*
50  \param mol: the molecule to draw
51  \param legend: (optional) the legend (to be drawn under the molecule)
52  \param highlight_atoms: (optional) vector of atom ids to highlight
53  \param highlight_atoms: (optional) vector of bond ids to highlight
54  \param highlight_atom_map: (optional) map from atomId -> DrawColour
55  providing the highlight colors. If not provided the default
56  higlight colour from \c drawOptions() will be used.
57  \param highlight_bond_map: (optional) map from bondId -> DrawColour
58  providing the highlight colors. If not provided the default
59  highlight colour from \c drawOptions() will be used.
60  \param highlight_radii: (optional) map from atomId -> radius (in molecule
61  coordinates) for the radii of atomic highlights. If not provided
62  the default value from \c drawOptions() will be used.
63  \param confId: (optional) conformer ID to be used for atomic coordinates
64 
65 */
67  MolDraw2D &drawer, const ROMol &mol, const std::string &legend = "",
68  const std::vector<int> *highlight_atoms = nullptr,
69  const std::vector<int> *highlight_bonds = nullptr,
70  const std::map<int, DrawColour> *highlight_atom_map = nullptr,
71  const std::map<int, DrawColour> *highlight_bond_map = nullptr,
72  const std::map<int, double> *highlight_radii = nullptr, int confId = -1);
73 
75  const char *json);
77  const std::string &json);
78 } // namespace MolDraw2DUtils
79 } // namespace RDKit
80 #endif // MOLDRAW2DUTILS_H
RWMol is a molecule class that is intended to be edited.
Definition: RWMol.h:31
boost::tuple< float, float, float > DrawColour
Definition: MolDraw2D.h:39
RDKIT_MOLDRAW2D_EXPORT void updateDrawerParamsFromJSON(MolDraw2D &drawer, const char *json)
Std stuff.
Definition: Atom.h:30
RDKIT_MOLDRAW2D_EXPORT void prepareAndDrawMolecule(MolDraw2D &drawer, const ROMol &mol, const std::string &legend="", const std::vector< int > *highlight_atoms=nullptr, const std::vector< int > *highlight_bonds=nullptr, const std::map< int, DrawColour > *highlight_atom_map=nullptr, const std::map< int, DrawColour > *highlight_bond_map=nullptr, const std::map< int, double > *highlight_radii=nullptr, int confId=-1)
prepare a molecule for drawing and draw it
MolDraw2D is the base class for doing 2D renderings of molecules.
Definition: MolDraw2D.h:136
RDKIT_MOLDRAW2D_EXPORT void prepareMolForDrawing(RWMol &mol, bool kekulize=true, bool addChiralHs=true, bool wedgeBonds=true, bool forceCoords=false)
Does some cleanup operations on the molecule to prepare it to draw nicely.
#define RDKIT_MOLDRAW2D_EXPORT
Definition: export.h:398
Defines the editable molecule class RWMol.