Loading...
Searching...
No Matches
MarvinParser.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.
//
#include <RDGeneral/export.h>
#ifndef RD_MARVINPARSER_H
#define RD_MARVINPARSER_H
#include <GraphMol/RDKitBase.h>
#include <GraphMol/ChemReactions/Reaction.h>
#include <string>
#include <iostream>
namespace RDKit {
namespace v2 {
namespace MarvinParser {
RDKIT_MARVINPARSER_EXPORT bool MrvFileIsReaction(const std::string &fname);
RDKIT_MARVINPARSER_EXPORT bool MrvDataStreamIsReaction(std::istream &inStream);
RDKIT_MARVINPARSER_EXPORT bool MrvBlockIsReaction(
const std::string &molmrvText);
struct RDKIT_MARVINPARSER_EXPORT MrvParserParams {
bool sanitize = true; /**< sanitize the molecule after building it */
bool removeHs = true; /**< remove Hs after constructing the molecule */
};
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<RWMol> MolFromMrvDataStream(
std::istream &inStream, const MrvParserParams &params = MrvParserParams());
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<RWMol> MolFromMrvBlock(
const std::string &molmrvText,
const MrvParserParams &params = MrvParserParams());
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<RWMol> MolFromMrvFile(
const std::string &fName,
const MrvParserParams &params = MrvParserParams());
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<ChemicalReaction>
ReactionFromMrvDataStream(std::istream &inStream,
const MrvParserParams &params = MrvParserParams());
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<ChemicalReaction>
ReactionFromMrvBlock(const std::string &molmrvText,
const MrvParserParams &params = MrvParserParams());
RDKIT_MARVINPARSER_EXPORT std::unique_ptr<ChemicalReaction> ReactionFromMrvFile(
const std::string &fName,
const MrvParserParams &params = MrvParserParams());
} // namespace MarvinParser
} // namespace v2
inline namespace v1 {
inline bool MrvFileIsReaction(const std::string &fname) {
return v2::MarvinParser::MrvFileIsReaction(fname);
}
inline bool MrvDataStreamIsReaction(std::istream *inStream) {
return v2::MarvinParser::MrvDataStreamIsReaction(*inStream);
}
inline bool MrvDataStreamIsReaction(std::istream &inStream) {
return v2::MarvinParser::MrvDataStreamIsReaction(inStream);
}
inline bool MrvBlockIsReaction(const std::string &molmrvText) {
return v2::MarvinParser::MrvBlockIsReaction(molmrvText);
}
inline RWMol *MrvDataStreamToMol(std::istream *inStream, bool sanitize = false,
bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::MolFromMrvDataStream(*inStream, params).release();
}
inline RWMol *MrvDataStreamToMol(std::istream &inStream, bool sanitize = false,
bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::MolFromMrvDataStream(inStream, params).release();
}
inline RWMol *MrvBlockToMol(const std::string &molmrvText,
bool sanitize = false, bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::MolFromMrvBlock(molmrvText, params).release();
}
inline RWMol *MrvFileToMol(const std::string &fName, bool sanitize = false,
bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::MolFromMrvFile(fName, params).release();
}
inline ChemicalReaction *MrvDataStreamToChemicalReaction(
std::istream *inStream, bool sanitize = false, bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::ReactionFromMrvDataStream(*inStream, params)
.release();
}
inline ChemicalReaction *MrvDataStreamToChemicalReaction(
std::istream &inStream, bool sanitize = false, bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::ReactionFromMrvDataStream(inStream, params)
.release();
}
inline ChemicalReaction *MrvBlockToChemicalReaction(
const std::string &molmrvText, bool sanitize = false,
bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::ReactionFromMrvBlock(molmrvText, params).release();
}
inline ChemicalReaction *MrvFileToChemicalReaction(const std::string &fName,
bool sanitize = false,
bool removeHs = false) {
v2::MarvinParser::MrvParserParams params;
params.sanitize = sanitize;
params.removeHs = removeHs;
return v2::MarvinParser::ReactionFromMrvFile(fName, params).release();
}
} // namespace v1
struct RDKIT_MARVINPARSER_EXPORT MrvWriterParams {
bool includeStereo = true; /**< toggles inclusion of stereochemical */
bool kekulize =
true; /**< triggers kekulization of the molecule before it's written */
bool prettyPrint = false; /**< makes the output more human readable */
unsigned int precision = 6; /**< precision of the coordinates */
};
// \brief Writes a Marvin (MRV) file for a molecule
/*!
* \param mol - the molecule
* \param fName - the file to write to
* \param params - marvin write params
* \param confId - selects which conformation to output
*/
RDKIT_MARVINPARSER_EXPORT void MolToMrvFile(const ROMol &mol,
const std::string &fName,
const MrvWriterParams &params,
int confId = -1);
// \brief Writes a Marvin (MRV) file for a molecule
/*!
* \param mol - the molecule
* \param fName - the file to write to
* \param includeStereo - toggles inclusion of stereochemical information in
* the output \param confId - selects which conformation to output \param
* kekulize - triggers kekulization of the molecule before it's written
* \param prettyPrint - makes the output more human readable
*/
inline void MolToMrvFile(const ROMol &mol, const std::string &fName,
bool includeStereo = true, int confId = -1,
bool kekulize = true, bool prettyPrint = false) {
MrvWriterParams params{includeStereo, kekulize, prettyPrint};
MolToMrvFile(mol, fName, params, confId);
}
// \brief Returns a Marvin (Mrv) Mol block for a molecule
/*!
* \param mol - the molecule
* \param params - marvin write params
* \param confId - selects which conformation to output
*/
RDKIT_MARVINPARSER_EXPORT std::string MolToMrvBlock(
const ROMol &mol, const MrvWriterParams &params, int confId = -1);
// \brief Returns a Marvin (Mrv) Mol block for a molecule
/*!
* \param mol - the molecule
* \param includeStereo - toggles inclusion of stereochemical information in
* the output \param confId - selects which conformation to output \param
* kekulize - triggers kekulization of the molecule before it's written
* \param prettyPrint - makes the output more human readable
*/
inline std::string MolToMrvBlock(const ROMol &mol, bool includeStereo = true,
int confId = -1, bool kekulize = true,
bool prettyPrint = false) {
MrvWriterParams params{includeStereo, kekulize, prettyPrint};
return MolToMrvBlock(mol, params, confId);
}
RDKIT_MARVINPARSER_EXPORT std::string ChemicalReactionToMrvBlock(
const ChemicalReaction &rxn, bool prettyPrint = false);
RDKIT_MARVINPARSER_EXPORT void ChemicalReactionToMrvFile(
const ChemicalReaction &rxn, const std::string &fName,
bool prettyPrint = false);
} // namespace RDKit
#endif
RDKitBase.h
pulls in the core RDKit functionality
Reaction.h
RDKit::ChemicalReaction
This is a class for storing and applying general chemical reactions.
Definition Reaction.h:121
RDKit::ROMol
Definition ROMol.h:199
RDKit::RWMol
RWMol is a molecule class that is intended to be edited.
Definition RWMol.h:32
export.h
RDKIT_MARVINPARSER_EXPORT
#define RDKIT_MARVINPARSER_EXPORT
Definition export.h:265
RDKit::v1::MrvDataStreamToChemicalReaction
ChemicalReaction * MrvDataStreamToChemicalReaction(std::istream *inStream, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:100
RDKit::v1::MrvFileIsReaction
bool MrvFileIsReaction(const std::string &fname)
Definition MarvinParser.h:57
RDKit::v1::MrvFileToMol
RWMol * MrvFileToMol(const std::string &fName, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:92
RDKit::v1::MrvBlockToMol
RWMol * MrvBlockToMol(const std::string &molmrvText, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:85
RDKit::v1::MrvDataStreamIsReaction
bool MrvDataStreamIsReaction(std::istream *inStream)
Definition MarvinParser.h:60
RDKit::v1::MrvBlockToChemicalReaction
ChemicalReaction * MrvBlockToChemicalReaction(const std::string &molmrvText, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:116
RDKit::v1::MrvBlockIsReaction
bool MrvBlockIsReaction(const std::string &molmrvText)
Definition MarvinParser.h:67
RDKit::v1::MrvDataStreamToMol
RWMol * MrvDataStreamToMol(std::istream *inStream, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:71
RDKit::v1::MrvFileToChemicalReaction
ChemicalReaction * MrvFileToChemicalReaction(const std::string &fName, bool sanitize=false, bool removeHs=false)
Definition MarvinParser.h:124
RDKit::v2::MarvinParser::ReactionFromMrvFile
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< ChemicalReaction > ReactionFromMrvFile(const std::string &fName, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::ReactionFromMrvBlock
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< ChemicalReaction > ReactionFromMrvBlock(const std::string &molmrvText, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::MolFromMrvBlock
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< RWMol > MolFromMrvBlock(const std::string &molmrvText, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::MolFromMrvFile
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< RWMol > MolFromMrvFile(const std::string &fName, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::MrvBlockIsReaction
RDKIT_MARVINPARSER_EXPORT bool MrvBlockIsReaction(const std::string &molmrvText)
RDKit::v2::MarvinParser::MrvFileIsReaction
RDKIT_MARVINPARSER_EXPORT bool MrvFileIsReaction(const std::string &fname)
RDKit::v2::MarvinParser::MolFromMrvDataStream
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< RWMol > MolFromMrvDataStream(std::istream &inStream, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::ReactionFromMrvDataStream
RDKIT_MARVINPARSER_EXPORT std::unique_ptr< ChemicalReaction > ReactionFromMrvDataStream(std::istream &inStream, const MrvParserParams &params=MrvParserParams())
RDKit::v2::MarvinParser::MrvDataStreamIsReaction
RDKIT_MARVINPARSER_EXPORT bool MrvDataStreamIsReaction(std::istream &inStream)
RDKit
Std stuff.
Definition Abbreviations.h:19
RDKit::rdvalue_is
bool rdvalue_is(const RDValue_cast_t)
Definition RDValue-doublemagic.h:372
RDKit::MolToMrvBlock
RDKIT_MARVINPARSER_EXPORT std::string MolToMrvBlock(const ROMol &mol, const MrvWriterParams &params, int confId=-1)
RDKit::ChemicalReactionToMrvBlock
RDKIT_MARVINPARSER_EXPORT std::string ChemicalReactionToMrvBlock(const ChemicalReaction &rxn, bool prettyPrint=false)
RDKit::MolToMrvFile
RDKIT_MARVINPARSER_EXPORT void MolToMrvFile(const ROMol &mol, const std::string &fName, const MrvWriterParams &params, int confId=-1)
RDKit::ChemicalReactionToMrvFile
RDKIT_MARVINPARSER_EXPORT void ChemicalReactionToMrvFile(const ChemicalReaction &rxn, const std::string &fName, bool prettyPrint=false)
RDKit::MrvWriterParams
Definition MarvinParser.h:134
RDKit::v2::MarvinParser::MrvParserParams
Definition MarvinParser.h:30
RDKit::v2::MarvinParser::MrvParserParams::sanitize
bool sanitize
Definition MarvinParser.h:31
RDKit::v2::MarvinParser::MrvParserParams::removeHs
bool removeHs
Definition MarvinParser.h:32