Chemical Data Processing Library C++ API - Version 1.1.1
|
A writer for molecular graph data in the IUPAC International Chemical Identifier (InChI) [INCHI] format. More...
#include <INCHIMolecularGraphWriter.hpp>
Public Member Functions | |
INCHIMolecularGraphWriter (std::ostream &os) | |
Constructs a INCHIMolecularGraphWriter instance that will write data of molecular graphs to the output stream os. More... | |
~INCHIMolecularGraphWriter () | |
Destructor. More... | |
Base::DataWriter< MolecularGraph > & | write (const MolecularGraph &molgraph) |
Writes data of the molecular graph molgraph to the output stream specified in the constructor. More... | |
int | getReturnCode () const |
Returns the error code of the last write operation. More... | |
const std::string & | getMessage () const |
Returns the error message associated with the last write operation. More... | |
const std::string & | getLogOutput () const |
Returns the log output that was generated for the last write operation. More... | |
operator const void * () const | |
bool | operator! () const |
Public Member Functions inherited from CDPL::Base::DataWriter< MolecularGraph > | |
virtual DataWriter & | write (const DataType &obj)=0 |
Writes the data object obj. More... | |
virtual void | close () |
Writes format dependent data (if required) to mark the end of output. More... | |
virtual | operator const void * () const=0 |
Returns a pointer whose value indicates the error state of the writer. More... | |
virtual bool | operator! () const=0 |
Tells whether the writer is in a bad state. More... | |
Public Member Functions inherited from CDPL::Base::DataIOBase | |
std::size_t | registerIOCallback (const IOCallbackFunction &func) |
Registers an I/O callback target function. More... | |
void | unregisterIOCallback (std::size_t id) |
Unregisters the I/O callback function specified by id. More... | |
void | invokeIOCallbacks (double progress) const |
Invokes all registered I/O callback functions with the argument *this . More... | |
void | clearIOCallbacks () |
Clears all registered I/O callback functions. More... | |
Public Member Functions inherited from CDPL::Base::ControlParameterContainer | |
std::size_t | getNumParameters () const |
Returns the number of container entries. More... | |
template<typename T > | |
void | setParameter (const LookupKey &key, T &&val) |
Sets the value of the control-parameter specified by key to val. More... | |
const Any & | getParameter (const LookupKey &key, bool throw_=false, bool local=false) const |
Returns the value of the control-parameter specified by key. More... | |
template<typename T > | |
const T & | getParameter (const LookupKey &key, bool local=false) const |
Returns the value of the control-parameter specified by key as a const reference to an object of type T. More... | |
template<typename T > | |
const T & | getParameterOrDefault (const LookupKey &key, const T &def_val, bool local=false) const |
Returns the value of the control-parameter specified by key as a const reference to an object of type T, or the default value def_val if a stored value does not exist. More... | |
bool | removeParameter (const LookupKey &key) |
Removes the entry for the control-parameter specified by key. More... | |
void | clearParameters () |
Erases all container entries. More... | |
bool | isParameterSet (const LookupKey &key, bool local=false) const |
Tells whether or not a value has been assigned to the control-parameter specified by key. More... | |
void | addParameters (const ControlParameterContainer &cntnr) |
Adds the control-parameter value entries in the ControlParameterContainer instance cntnr. More... | |
void | copyParameters (const ControlParameterContainer &cntnr) |
Replaces the current set of properties by a copy of the entries in cntnr. More... | |
ConstParameterIterator | getParametersBegin () const |
Returns a constant iterator pointing to the beginning of the entries. More... | |
ConstParameterIterator | getParametersEnd () const |
Returns a constant iterator pointing to the end of the entries. More... | |
ConstParameterIterator | begin () const |
Returns a constant iterator pointing to the beginning of the entries. More... | |
ConstParameterIterator | end () const |
Returns a constant iterator pointing to the end of the entries. More... | |
void | setParent (const ControlParameterContainer *cntnr) |
Sets or removes the parent control-parameter container used to resolve requests for missing entries. More... | |
const ControlParameterContainer * | getParent () const |
Returns a pointer to the parent control-parameter container. More... | |
std::size_t | registerParameterChangedCallback (const ParameterChangedCallbackFunction &func) |
Registers a callback target function that gets invoked when the value of a control-parameter has changed. More... | |
void | unregisterParameterChangedCallback (std::size_t id) |
Unregisters the callback specified by id. More... | |
std::size_t | registerParameterRemovedCallback (const ParameterRemovedCallbackFunction &func) |
Registers a callback target function that gets invoked when a control-parameter entry has been removed. More... | |
void | unregisterParameterRemovedCallback (std::size_t id) |
Unregisters the callback specified by id. More... | |
std::size_t | registerParentChangedCallback (const ParentChangedCallbackFunction &func) |
Registers a callback target function that gets invoked when the parent container has been changed or was detached. More... | |
void | unregisterParentChangedCallback (std::size_t id) |
Unregisters the callback specified by id. More... | |
const ControlParameterContainer & | getParameters () const |
Returns a const reference to itself. More... | |
Additional Inherited Members | |
Public Types inherited from CDPL::Base::DataWriter< MolecularGraph > | |
typedef std::shared_ptr< DataWriter > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated DataWriter instances. More... | |
typedef MolecularGraph | DataType |
The type of the written data objects. More... | |
Public Types inherited from CDPL::Base::DataIOBase | |
typedef std::function< void(const DataIOBase &, double)> | IOCallbackFunction |
A functor class used to wrap I/O callback target functions. More... | |
Public Types inherited from CDPL::Base::ControlParameterContainer | |
typedef ParameterMap::value_type | ParameterEntry |
A Base::LookupKey / Base::Any pair used to store the control-parameter values and associated keys. More... | |
typedef ParameterMap::const_iterator | ConstParameterIterator |
A constant iterator used to iterate over the control-parameter entries. More... | |
typedef std::function< void(const LookupKey &, const Any &)> | ParameterChangedCallbackFunction |
A functor class that wraps callback target functions which get invoked when the value of a control-parameter has changed. More... | |
typedef std::function< void(const LookupKey &)> | ParameterRemovedCallbackFunction |
A functor class that wraps callback target functions which get invoked when a control-parameter entry has been removed. More... | |
typedef std::function< void()> | ParentChangedCallbackFunction |
A functor class that wraps callback target functions which get invoked when the parent container has been changed or was detached. More... | |
Protected Member Functions inherited from CDPL::Base::DataWriter< MolecularGraph > | |
DataWriter & | operator= (const DataWriter &writer) |
Assignment operator. More... | |
Protected Member Functions inherited from CDPL::Base::DataIOBase | |
DataIOBase () | |
Default constructor. More... | |
DataIOBase (const DataIOBase &io_base) | |
Copy constructor. More... | |
~DataIOBase () | |
Destructor. More... | |
DataIOBase & | operator= (const DataIOBase &io_base) |
Assignment operator. More... | |
Protected Member Functions inherited from CDPL::Base::ControlParameterContainer | |
ControlParameterContainer () | |
Constructs an empty ControlParameterContainer instance. More... | |
ControlParameterContainer (const ControlParameterContainer &cntnr) | |
Constructs a copy of the ControlParameterContainer instance cntnr. More... | |
virtual | ~ControlParameterContainer () |
Destructor. More... | |
ControlParameterContainer & | operator= (const ControlParameterContainer &cntnr) |
Assignment operator. More... | |
A writer for molecular graph data in the IUPAC International Chemical Identifier (InChI) [INCHI] format.
INCHIMolecularGraphWriter
implements the generation of InChI strings from Chem::MolecularGraph objects. The output data are written by means of a std::ostream
object that was provided to the INCHIMolecularGraphWriter
constructor.
For the generation of the InChI output, INCHIMolecularGraphWriter
uses the function GetINCHI()
of the InChI C-API. The return value of the function provides information about the status of the performed operation (see Chem::INCHIReturnCode) and can be accessed by the method getReturnCode(). Produced error and log messages are accessible via the methods getMessage() and getLogOutput(), respectively.
The generation of InChI strings requires values of the following Chem::Atom and Chem::Bond properties:
Chem::Atom Property | Description | Notes |
---|---|---|
Chem::AtomProperty::COORDINATES_2D | Specifies the 2D position of the atom | Only required if 2D atom coordinates are written |
Chem::AtomProperty::COORDINATES_3D | Specifies the 3D-coordinates of the atom | Only required if 3D atom coordinates are written |
Chem::AtomProperty::SYMBOL | Specifies the symbol of the atom's element | - |
Chem::AtomProperty::ISOTOPE | Specifies the isotopic mass of the atom | - |
Chem::AtomProperty::FORMAL_CHARGE | Specifies the formal charge of the atom | - |
Chem::AtomProperty::RADICAL_TYPE | Specifies the radical type (see Chem::RadicalType) | - |
Chem::AtomProperty::STEREO_DESCRIPTOR | Specifies the atom stereo descriptor (see Chem::AtomConfiguration, Chem::StereoDescriptor) | Only required if no atom coordinates are written |
Chem::Bond Property | Description | Notes |
---|---|---|
Chem::BondProperty::ORDER | Specifies the order of the bond | - |
Chem::BondProperty::STEREO_2D_FLAG | Specifies the 2D stereo bond type (see Chem::BondStereoFlag) | Only required if 2D or 3D atom coordinates are written |
Chem::BondProperty::STEREO_DESCRIPTOR | Specifies the stereo descriptor of the bond (see Chem::BondConfiguration, Chem::StereoDescriptor) | Only required if no atom coordinates are written |
INCHIMolecularGraphWriter
can be configured with the following control-parameters:
Control-Parameter | Default Value (see Chem::ControlParameterDefault) | Description |
---|---|---|
Chem::ControlParameter::COORDINATES_DIMENSION | 1 | Specifies the dimension of the atom coordinates (a value of 2 specifies 2D, a value of 3 specifies 3D, a value of zero specifies that no atom coordinates shall be written; any other value specifies that 3D-coordinates shall be written if they are available, and no coordinates otherwise) |
Chem::ControlParameter::STRICT_ERROR_CHECKING | false | Specifies whether non-fatal recoverable errors should be ignored or cause a write operation to fail |
Chem::ControlParameter::RECORD_SEPARATOR | "\n" | Specifies the data record separator |
Chem::ControlParameter::INCHI_OUTPUT_OPTIONS | "/WarnOnEmptyStructure /AuxNone /NEWPSOFF" | Specifies options for InChI generation |
CDPL::Chem::INCHIMolecularGraphWriter::INCHIMolecularGraphWriter | ( | std::ostream & | os | ) |
Constructs a INCHIMolecularGraphWriter
instance that will write data of molecular graphs to the output stream os.
os | The output stream to write to. |
CDPL::Chem::INCHIMolecularGraphWriter::~INCHIMolecularGraphWriter | ( | ) |
Destructor.
Base::DataWriter<MolecularGraph>& CDPL::Chem::INCHIMolecularGraphWriter::write | ( | const MolecularGraph & | molgraph | ) |
Writes data of the molecular graph molgraph to the output stream specified in the constructor.
molgraph | The molecular graph to write. |
int CDPL::Chem::INCHIMolecularGraphWriter::getReturnCode | ( | ) | const |
Returns the error code of the last write operation.
Possible return values are defined in namespace Chem::INCHIReturnCode.
const std::string& CDPL::Chem::INCHIMolecularGraphWriter::getMessage | ( | ) | const |
Returns the error message associated with the last write operation.
const std::string& CDPL::Chem::INCHIMolecularGraphWriter::getLogOutput | ( | ) | const |
Returns the log output that was generated for the last write operation.
CDPL::Chem::INCHIMolecularGraphWriter::operator const void * | ( | ) | const |
bool CDPL::Chem::INCHIMolecularGraphWriter::operator! | ( | ) | const |