RDKit
Open-source cheminformatics and machine learning.
Loading...
Searching...
No Matches
MolInterchange.h
Go to the documentation of this file.
1//
2// Copyright (C) 2018-2022 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#include <RDGeneral/export.h>
11#ifndef RD_MOLINTERCHANGE_H_JAN2018
12#define RD_MOLINTERCHANGE_H_JAN2018
13namespace RDKit {
14class ROMol;
15class RWMol;
16} // namespace RDKit
17
18/*! \file MolInterchange.h
19
20\brief Contains the public API for the convertors to/from the commonchem
21interchange format
22
23\b Note that this should be considered beta and that the format and API
24will very likely change in future releases.
25
26More information about CommonChem is available here:
27https://github.com/mcs07/CommonChem
28*/
29
30#include <string>
31#include <vector>
32
33#include <boost/shared_ptr.hpp>
34
35namespace RDKit {
36
37class RWMol;
38
39namespace MolInterchange {
40
41// \brief parameters controlling parsing of MolJSON
44 true; /*!< toggles setting the BondType of aromatic bonds to Aromatic */
46 false; /*!< toggles doing reasonable valence checks */
48 true; /*!< toggles extracting molecular properties from the JSON block */
50 true; /*!< toggles extracting conformers from the JSON block */
52 true; /*!< toggles using the implicit H counts for atoms from the JSON
53 block. You may want to set this to false when parsing queries. */
54};
56
57// \brief construct molecules from MolJSON data in a stream
58/*!
59 * \param inStream - stream containing the data
60 * \param params - parsing options
61 */
62RDKIT_MOLINTERCHANGE_EXPORT std::vector<boost::shared_ptr<ROMol>>
63JSONDataStreamToMols(std::istream *inStream, const JSONParseParameters &params =
65
66// \brief construct molecules from MolJSON data
67/*!
68 * \param jsonBlock - string containing the mol block
69 * \param params - parsing options
70 */
71RDKIT_MOLINTERCHANGE_EXPORT std::vector<boost::shared_ptr<ROMol>>
72JSONDataToMols(const std::string &jsonBlock,
74
75// \brief parameters controlling generating of MolJSON
78 true; /*!< toggles using RDKit extensions to commmonchem */
79};
81
82// \brief returns MolJSON for a set of molecules
83/*!
84 * \param mols - the molecules to work with
85 */
86template <typename T>
88 const std::vector<T> &mols,
90
91// \brief returns MolJSON for a molecule
92/*!
93 * \param mol - the molecule to work with
94 */
95template <typename T>
96std::string MolToJSONData(const T &mol, const JSONWriteParameters &params =
98 std::vector<const T *> ms{&mol};
99 return MolsToJSONData(ms, params);
100};
101
102} // end of namespace MolInterchange
103} // end of namespace RDKit
104
105#endif
RWMol is a molecule class that is intended to be edited.
Definition RWMol.h:32
#define RDKIT_MOLINTERCHANGE_EXPORT
Definition export.h:451
RDKIT_MOLINTERCHANGE_EXPORT std::string MolsToJSONData(const std::vector< T > &mols, const JSONWriteParameters &params=defaultJSONWriteParameters)
RDKIT_MOLINTERCHANGE_EXPORT std::vector< boost::shared_ptr< ROMol > > JSONDataToMols(const std::string &jsonBlock, const JSONParseParameters &params=defaultJSONParseParameters)
std::string MolToJSONData(const T &mol, const JSONWriteParameters &params=defaultJSONWriteParameters)
static JSONWriteParameters defaultJSONWriteParameters
static JSONParseParameters defaultJSONParseParameters
RDKIT_MOLINTERCHANGE_EXPORT std::vector< boost::shared_ptr< ROMol > > JSONDataStreamToMols(std::istream *inStream, const JSONParseParameters &params=defaultJSONParseParameters)
Std stuff.