![]() |
Chemical Data Processing Library C++ API - Version 1.1.1
|
A reader for molecule data in the IUPAC International Chemical Identifier (InChI) [INCHI] format. More...
#include <INCHIMoleculeReader.hpp>
Public Member Functions | |
INCHIMoleculeReader (std::istream &is) | |
Constructs a INCHIMoleculeReader instance that will read the molecule data from the input stream is. More... | |
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... | |
![]() | |
Base::DataReader< DataType > & | read (DataType &obj, bool overwrite=true) |
Reads the data record at the current record index and stores the read data in obj. More... | |
Base::DataReader< DataType > & | read (std::size_t idx, DataType &obj, bool overwrite=true) |
Reads the data record at index idx and stores the read data in obj. More... | |
Base::DataReader< DataType > & | 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 |
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 | |
bool | operator! () const |
![]() | |
virtual std::size_t | getRecordIndex () const=0 |
Returns the index of the current data record. More... | |
virtual | operator const void * () const=0 |
Returns a pointer whose value indicates the error state of the reader. More... | |
virtual bool | operator! () const=0 |
Tells whether the reader is in a bad state. More... | |
virtual void | close () |
Performs a reader specific shutdown operation (if required). More... | |
![]() | |
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... | |
![]() | |
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... | |
Friends | |
class | Util::StreamDataReader< Molecule, INCHIMoleculeReader > |
Additional Inherited Members | |
![]() | |
typedef DataType | DataType |
The type of the read data objects. More... | |
typedef std::shared_ptr< DataReader > | SharedPointer |
A reference-counted smart pointer [SHPTR] for dynamically allocated DataReader instances. More... | |
![]() | |
typedef std::function< void(const DataIOBase &, double)> | IOCallbackFunction |
A functor class used to wrap I/O callback target functions. More... | |
![]() | |
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... | |
![]() | |
StreamDataReader (std::istream &is) | |
Constructs a StreamDataReader instance that will read from the input stream is. More... | |
![]() | |
DataReader & | operator= (const DataReader &reader) |
Assignment operator. More... | |
![]() | |
DataIOBase () | |
Default constructor. More... | |
DataIOBase (const DataIOBase &io_base) | |
Copy constructor. More... | |
~DataIOBase () | |
Destructor. More... | |
DataIOBase & | operator= (const DataIOBase &io_base) |
Assignment operator. More... | |
![]() | |
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 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 |
CDPL::Chem::INCHIMoleculeReader::INCHIMoleculeReader | ( | std::istream & | is | ) |
Constructs a INCHIMoleculeReader
instance that will read the molecule data from the input stream is.
is | The input stream to read from. |
int CDPL::Chem::INCHIMoleculeReader::getReturnCode | ( | ) | const |
Returns the error code of the last read operation.
Possible return values are defined in namespace Chem::INCHIReturnCode.
const std::string& CDPL::Chem::INCHIMoleculeReader::getMessage | ( | ) | const |
Returns the error message associated with the last read operation.
const std::string& CDPL::Chem::INCHIMoleculeReader::getLogOutput | ( | ) | const |
Returns the log output that was generated for the last read operation.
|
friend |