Chemical Data Processing Library Python API - Version 1.2.0
Public Member Functions | List of all members
CDPL.Chem.JMEReactionWriter Class Reference

A writer for reaction data in the native I/O format of the JME Molecular Editor [JME] java applet. More...

+ Inheritance diagram for CDPL.Chem.JMEReactionWriter:

Public Member Functions

None __init__ (Base.OStream os)
 Constructs a JMEReactionWriter instance that will write the reaction data to the output stream os. More...
 
- Public Member Functions inherited from CDPL.Chem.ReactionWriterBase
None __init__ ()
 Initializes the ReactionWriterBase instance.
 
ReactionWriterBase write (Reaction rxn)
 Writes the Reaction object rxn. More...
 
None close ()
 Writes format dependent data (if required) to mark the end of output. More...
 
bool __bool__ ()
 
bool __nonzero__ ()
 
- Public Member Functions inherited from CDPL.Base.DataIOBase
int registerIOCallback (VoidDataIOBaseFunctor func)
 Registers an I/O callback target function. More...
 
None unregisterIOCallback (int id)
 Unregisters the I/O callback function specified by id. More...
 
None invokeIOCallbacks (float progress)
 Invokes all registered I/O callback functions with the argument self. More...
 
None clearIOCallbacks ()
 Clears all registered I/O callback functions.
 
- Public Member Functions inherited from CDPL.Base.ControlParameterContainer
None setParameter (LookupKey key, Any value)
 
bool removeParameter (LookupKey key)
 Removes the entry for the control-parameter specified by key. More...
 
Any getParameter (LookupKey key, bool throw_=False, bool local=False)
 Returns the value of the control-parameter specified by key. More...
 
Any getParameterOrDefault (LookupKey key, Any def_value, bool local=False)
 
bool isParameterSet (LookupKey key, bool local=False)
 Tells whether or not a value has been assigned to the control-parameter specified by key. More...
 
None clearParameters ()
 Erases all container entries. More...
 
None addParameters (ControlParameterContainer cntnr)
 Adds the control-parameter value entries in the ControlParameterContainer instance cntnr. More...
 
None copyParameters (ControlParameterContainer cntnr)
 Replaces the current set of properties by a copy of the entries in cntnr. More...
 
int getNumParameters ()
 Returns the number of container entries. More...
 
int registerParameterChangedCallback (VoidLookupKeyAnyFunctor func)
 Registers a callback target function that gets invoked when the value of a control-parameter has changed. More...
 
None unregisterParameterChangedCallback (int id)
 Unregisters the callback specified by id. More...
 
int registerParameterRemovedCallback (VoidLookupKeyFunctor func)
 Registers a callback target function that gets invoked when a control-parameter entry has been removed. More...
 
None unregisterParameterRemovedCallback (int id)
 Unregisters the callback specified by id. More...
 
int registerParentChangedCallback (VoidFunctor func)
 Registers a callback target function that gets invoked when the parent container has been changed or was detached. More...
 
None unregisterParentChangedCallback (int id)
 Unregisters the callback specified by id. More...
 
ControlParameterContainer getParent ()
 Returns a reference to the parent control-parameter container. More...
 
None setParent (ControlParameterContainer cntnr)
 Sets or removes the parent control-parameter container used to resolve requests for missing entries. More...
 
list getParameterKeys ()
 
list getParameterValues ()
 
list getParameters ()
 Returns a reference to itself. More...
 
int getObjectID ()
 Returns the numeric identifier (ID) of the wrapped C++ class instance. More...
 
Any __getitem__ (LookupKey key)
 
None __setitem__ (LookupKey key, Any value)
 
bool __delitem__ (LookupKey self)
 
bool __contains__ (LookupKey self, bool key)
 Returns the result of the membership test operation self in arg1. More...
 
int __len__ ()
 

Additional Inherited Members

- Properties inherited from CDPL.Base.ControlParameterContainer
 objectID = property(getObjectID)
 
 parent = property(getParent, setParent)
 
 parameterKeys = property(getParameterKeys)
 
 parameterValues = property(getParameterValues)
 
 parameters = property(getParameters)
 
 numParameters = property(getNumParameters)
 

Detailed Description

A writer for reaction data in the native I/O format of the JME Molecular Editor [JME] java applet.

JMEReactionWriter implements the output of Chem.Reaction objects in the native I/O format used by the JME Molecular Editor applet. The output data are written by means of a std::ostream object that was provided to the JMEReactionWriter constructor.

Atom and bond attributes that get written for a component of the output reaction are defined by the following Chem.Atom, Chem.Bond and Chem.BondContainer properties:

Chem.Atom PropertyDescriptionNotes
Chem.AtomProperty.MATCH_CONSTRAINTSSpecifies atom matching constraintsOnly written if the constraints have been explicitly assigned and can be expressed by corresponding JME constraints
Chem.AtomProperty.COORDINATES_2DSpecifies the 2D position of the atom-
Chem.AtomProperty.TYPESpecifies the type of the atom (see Chem.AtomType)Only written if the atom is a query atom and the type is supported by the JME format.
Chem.AtomProperty.SYMBOLSpecifies the atom symbol (e.g. element symbol)Only written if the atom is not a query atom
Chem.AtomProperty.FORMAL_CHARGESpecifies the fromal charge of the atomOnly written if the atom is not a query atom and the specified charge is different from zero
Chem.AtomProperty.H_COUNTSpecifies the hydrogen count of the atomOnly written if the atom is a query atom and a corresponding matching constraint has been specified
Chem.AtomProperty.RING_FLAGTells whether the atom is a member of a ringOnly written if the atom is a query atom and a corresponding matching constraint has been specified
Chem.AtomProperty.AROMATICITY_FLAGTells whether the atom is a member of an aromatic ringOnly written if the atom is a query atom and a corresponding matching constraint has been specified
Chem.AtomProperty.REACTION_ATOM_MAPPING_IDSpecifies the reactant to product atom mapping classOnly written if the specified mapping number is greater than zero
Chem.Bond PropertyDescriptionNotes
Chem.BondProperty.ORDERSpecifies the order of the bond-
Chem.BondProperty.STEREO_FLAGSpecifies the 2D stereo bond type (see Chem.BondStereoFlag)Either stereo bonds are not supported by the JME format and are written as plain single bonds
Chem.BondContainer PropertyDescriptionNotes
Chem.BondContainerProperty.HEAVY_BOND_COUNTSpecifies the heavy bond count of the atomsOnly written if the atom is a query atom and a corresponding matching constraint has been specified

Beside the editing of conventional chemical structures, the JME applet allows to some extent the specification of atom matching constraints for the definition of substructure search queries. If an atom of a component of the output reaction specifies any constraints by a Chem.MatchConstraintList data structure that has been assigned to the property Chem.AtomProperty.MATCH_CONSTRAINTS, an attempt is made to convert the contained Chem.MatchConstraint objects to equivalent JME query expression primitives.

Different types of constraints specified by Chem.MatchConstraint instances and the corresponding JME expression primitives are listed in the table below (<n> denotes a positive integer value and the symbol of a chemical element; * the value is either provided by the Chem.MatchConstraint instance (see Chem.MatchConstraint.getValue()) or, if no value has been set, by the property specified in parentheses):

Chem.MatchConstraint objectWritten Expression PrimitiveDescription
Constraint IDOperatorValue*
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectcAromatic carbon
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.C
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectnAromatic nitrogen
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.N
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objecto
Aromatic oxygen
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.O
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectsAromatic sulfur
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.S
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectpAromatic phosphorus
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.P
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectaAny aromatic atom
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.ANY
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectAAny non-aromatic atom
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.ANY
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.CONSTRAINT_LISTChem.MatchConstraint.EQUALA reference to a Chem.MatchConstraintList objectA non-aromatic atom of element
The sub-constraint list must have the logical type Chem.MatchConstraintList.AND_LIST and has to contain the elements:
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALAtom type associated with the element
(Chem.AtomProperty.TYPE)
Chem.AtomMatchConstraint.AROMATICITYChem.MatchConstraint.EQUALFalse
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.MatchConstraint.NOT_EQUALTrue
(Chem.AtomProperty.AROMATICITY_FLAG)
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUAL<n>
(Chem.AtomProperty.TYPE)
#<n>An atom with atomic number <n>
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.QH
(Chem.AtomProperty.TYPE)
!#6Any atom except carbon
Chem.AtomMatchConstraint.TYPEChem.MatchConstraint.EQUALChem.AtomType.ANY
(Chem.AtomProperty.TYPE)
*Any atom
Chem.AtomMatchConstraint.RING_TOPOLOGYChem.MatchConstraint.EQUALTrue
(Chem.AtomProperty.RING_FLAG)
RAny ring atom
Chem.MatchConstraint.NOT_EQUALFalse
(Chem.AtomProperty.RING_FLAG)
Chem.AtomMatchConstraint.RING_TOPOLOGYChem.MatchConstraint.EQUALFalse
(Chem.AtomProperty.RING_FLAG)
!RAny non-ring atom
Chem.MatchConstraint.NOT_EQUALTrue
(Chem.AtomProperty.RING_FLAG)
Chem.AtomMatchConstraint.H_COUNTChem.MatchConstraint.EQUAL<n>
(Chem.getAtomCount(const Chem.Atom&, const Chem.MolecularGraph&, unsigned int))
H<n>Hydrogen count
Chem.AtomMatchConstraint.HEAVY_BOND_COUNTChem.MatchConstraint.EQUAL<n>
(Chem.getHeavyBondCount(const Chem.Atom&, const Chem.MolecularGraph&))
D<n>Heavy bond count

JMEReactionWriter can be configured with the following control-parameters:

Control-ParameterDefault Value (see Chem.ControlParameterDefault)Description
Chem.ControlParameter.STRICT_ERROR_CHECKINGFalseSpecifies whether non-fatal recoverable errors should be ignored or cause a write operation to fail
Chem.ControlParameter.COORDINATES_DIMENSION2Specifies the dimension of atom coordinates
Chem.ControlParameter.RECORD_SEPARATOR"\n"Specifies the data record separator
Chem.ControlParameter.BOND_MEMBER_SWAP_STEREO_FIXTrueSpecifies whether reverse stereo bonds shall be converted to regular stereo bonds by swapping bond start and end atoms
Chem.ControlParameter.JME_SEPARATE_COMPONENTSTrueSpecifies whether the components of a molecule shall be written separately or combined as a single JME component

Constructor & Destructor Documentation

◆ __init__()

None CDPL.Chem.JMEReactionWriter.__init__ ( Base.OStream  os)

Constructs a JMEReactionWriter instance that will write the reaction data to the output stream os.

Parameters
osThe output stream to write to.