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 // ****************************************************************************
17 
18 namespace RDKit {
19 class MolDraw2D;
20 namespace MolDraw2DUtils {
21 //! Does some cleanup operations on the molecule to prepare it to draw nicely
22 /*
23 The operations include: kekulization, addition of chiral Hs (so that we can draw
24 wedges to them), wedging of bonds at chiral centers, and generation of a 2D
25 conformation if the molecule does not already have a conformation
26 
27 \param mol: the molecule to be modified
28 \param kekulize: toggles kekulization (this can fail, see below)
29 \param addChiralHs: adds Hs to the graph on chiral atoms
30 \param wedgeBonds: calls WedgeMolBonds()
31 \param forceCoords: generates a 2D conformation even if one is present already
32 
33 NOTE: the kekulization step can fail, throwing a MolSanitizeExecption. If this
34 happens the molecule will be in an inconsistent, partially kekulized, state.
35 This isn't normally a problem for molecules that have been sanitized, but can be
36 problematic if the molecules have been modified post santitization.
37 */
38 RDKIT_MOLDRAW2D_EXPORT void prepareMolForDrawing(RWMol &mol, bool kekulize = true,
39  bool addChiralHs = true, bool wedgeBonds = true,
40  bool forceCoords = false);
41 
42 RDKIT_MOLDRAW2D_EXPORT void updateDrawerParamsFromJSON(MolDraw2D &drawer, const char *json);
43 RDKIT_MOLDRAW2D_EXPORT void updateDrawerParamsFromJSON(MolDraw2D &drawer, const std::string &json);
44 }
45 }
46 #endif // MOLDRAW2DUTILS_H
RWMol is a molecule class that is intended to be edited.
Definition: RWMol.h:31
RDKIT_MOLDRAW2D_EXPORT void updateDrawerParamsFromJSON(MolDraw2D &drawer, const char *json)
Std stuff.
Definition: Atom.h:30
MolDraw2D is the base class for doing 2D renderings of molecules.
Definition: MolDraw2D.h:133
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:385
Defines the editable molecule class RWMol.