Chemical Data Processing Library C++ API - Version 1.2.0
Public Member Functions | Friends | List of all members
CDPL::Chem::INCHIMoleculeReader Class Reference

A reader for molecule data in the IUPAC International Chemical Identifier (InChI) [INCHI] format. More...

#include <INCHIMoleculeReader.hpp>

+ Inheritance diagram for CDPL::Chem::INCHIMoleculeReader:

Public Member Functions

 INCHIMoleculeReader (std::istream &is)
 Constructs a INCHIMoleculeReader instance that will read the molecule data from the input stream is. More...
 
 INCHIMoleculeReader (const INCHIMoleculeReader &)=delete
 
INCHIMoleculeReaderoperator= (const INCHIMoleculeReader &)=delete
 
int getReturnCode () const
 Returns the error code of the last read operation. More...
 
const std::string & getMessage () const
 Returns the error message associated with the last read operation. More...
 
const std::string & getLogOutput () const
 Returns the log output that was generated for the last read operation. More...
 
- Public Member Functions inherited from CDPL::Util::StreamDataReader< Molecule, INCHIMoleculeReader >
Base::DataReader< Molecule > & read (Molecule &obj, bool overwrite=true)
 Reads the data record at the current record index and stores the read data in obj. More...
 
Base::DataReader< Molecule > & read (std::size_t idx, Molecule &obj, bool overwrite=true)
 Reads the data record at index idx and stores the read data in obj. More...
 
Base::DataReader< Molecule > & skip ()
 Skips the data record at the current record index. More...
 
bool hasMoreData ()
 Tells if there are any data records left to read. More...
 
std::size_t getRecordIndex () const
 Returns the index of the current data record. More...
 
void setRecordIndex (std::size_t idx)
 Sets the index of the current data record to idx. More...
 
std::size_t getNumRecords ()
 Returns the total number of available data records. More...
 
 operator const void * () const
 Returns a pointer whose value indicates the error state of the reader. More...
 
bool operator! () const
 Tells whether the reader is in a bad state. More...
 
- Public Member Functions inherited from CDPL::Base::DataReader< T >
virtual DataReaderread (DataType &obj, bool overwrite=true)=0
 Reads the data record at the current record index and stores the read data in obj. More...
 
virtual DataReaderread (std::size_t idx, DataType &obj, bool overwrite=true)=0
 Reads the data record at index idx and stores the read data in obj. More...
 
virtual void close ()
 Performs a reader specific shutdown operation (if required). 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 AnygetParameter (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 ControlParameterContainergetParent () 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 ControlParameterContainergetParameters () const
 Returns a const reference to itself. More...
 

Friends

class Util::StreamDataReader< Molecule, INCHIMoleculeReader >
 

Additional Inherited Members

- Public Types inherited from CDPL::Base::DataReader< T >
typedef T DataType
 The type of the read data objects. More...
 
typedef std::shared_ptr< DataReaderSharedPointer
 A reference-counted smart pointer [SHPTR] for dynamically allocated DataReader instances. 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::Util::StreamDataReader< Molecule, INCHIMoleculeReader >
 StreamDataReader (std::istream &is)
 Constructs a StreamDataReader instance that will read from the input stream is. More...
 
- Protected Member Functions inherited from CDPL::Base::DataReader< T >
DataReaderoperator= (const DataReader &reader)
 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...
 
DataIOBaseoperator= (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...
 
ControlParameterContaineroperator= (const ControlParameterContainer &cntnr)
 Assignment operator. More...
 

Detailed Description

A reader for molecule data in the IUPAC International Chemical Identifier (InChI) [INCHI] format.

INCHIMoleculeReader implements the conversion of InChI strings (or strings with auxiliary InChI information) to corresponding Chem::Molecule objects. The input data are read by means of a std::istream object that was provided to the INCHIMoleculeReader constructor.

For the actual decoding of the InChI input, INCHIMoleculeReader uses an appropriate function (GetStructFromINCHI() for InChI strings and Get_inchi_Input_FromAuxInfo() for auxiliary InChI information) of the InChI C-API. The return value of the called 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.

Atom and bond attributes of a read input molecule are stored as properties of allocated Chem::Atom and Chem::Bond objects. The affected properties are summarized in the tables below:

Chem::Atom Property Description Notes
Chem::AtomProperty::COORDINATES_2D Specifies the 2D position of the atom Only set if auxiliary information with 2D-coordinates is available
Chem::AtomProperty::COORDINATES_3D Specifies the 3D-coordinates of the atom Only set if auxiliary information with 3D-coordinates is available
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 Only set if the charge is different from zero
Chem::AtomProperty::RADICAL_TYPE Specifies the radical type (see Chem::RadicalType) Only set if the atom is a radical
Chem::AtomProperty::STEREO_DESCRIPTOR Specifies the atom stereo descriptor (see Chem::AtomConfiguration, Chem::StereoDescriptor) Only set if 0D stereo information is available and the atom is a tetrahedral stereogenic center
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 set if auxiliary information with 2D stereo information is available
Chem::BondProperty::STEREO_DESCRIPTOR Specifies the bond stereo descriptor (see Chem::BondConfiguration, Chem::StereoDescriptor) Only set if 0D stereo information is available and the bond is stereogenic center

INCHIMoleculeReader can be configured with the following control-parameters:

Control-Parameter Default Value (see Chem::ControlParameterDefault) Description
Chem::ControlParameter::STRICT_ERROR_CHECKING false Specifies whether non-fatal recoverable errors should be ignored or cause a read operation to fail
Chem::ControlParameter::INCHI_INPUT_OPTIONS "" Specifies options for InChI input

Constructor & Destructor Documentation

◆ INCHIMoleculeReader() [1/2]

CDPL::Chem::INCHIMoleculeReader::INCHIMoleculeReader ( std::istream &  is)

Constructs a INCHIMoleculeReader instance that will read the molecule data from the input stream is.

Parameters
isThe input stream to read from.

◆ INCHIMoleculeReader() [2/2]

CDPL::Chem::INCHIMoleculeReader::INCHIMoleculeReader ( const INCHIMoleculeReader )
delete

Member Function Documentation

◆ operator=()

INCHIMoleculeReader& CDPL::Chem::INCHIMoleculeReader::operator= ( const INCHIMoleculeReader )
delete

◆ getReturnCode()

int CDPL::Chem::INCHIMoleculeReader::getReturnCode ( ) const

Returns the error code of the last read operation.

Possible return values are defined in namespace Chem::INCHIReturnCode.

Returns
The error code of the last read operation.

◆ getMessage()

const std::string& CDPL::Chem::INCHIMoleculeReader::getMessage ( ) const

Returns the error message associated with the last read operation.

Returns
The error message associated with the last read operation.

◆ getLogOutput()

const std::string& CDPL::Chem::INCHIMoleculeReader::getLogOutput ( ) const

Returns the log output that was generated for the last read operation.

Returns
The log output that was generated for the last read operation.

Friends And Related Function Documentation

◆ Util::StreamDataReader< Molecule, INCHIMoleculeReader >


The documentation for this class was generated from the following file: