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

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

+ Inheritance diagram for CDPL.Chem.JMEMolecularGraphWriter:

Public Member Functions

None __init__ (Base.OStream os)
 Constructs a JMEMolecularGraphWriter instance that will write data of molecular graphs to the output stream os. More...
 
- Public Member Functions inherited from CDPL.Chem.MolecularGraphWriterBase
None __init__ ()
 Initializes the MolecularGraphWriterBase instance.
 
MolecularGraphWriterBase write (MolecularGraph molgraph)
 Writes the MolecularGraph object molgraph. 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 molecular graph data in the native I/O format of the JME Molecular Editor [JME] java applet.

JMEMolecularGraphWriter implements the output of Chem.MolecularGraph 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 JMEMolecularGraphWriter constructor.

Atom and bond attributes that get written for an output molecular graph 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 are user-defined 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, a corresponding matching constraint has been specified 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.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_2D_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

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 the output structure 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

JMEMolecularGraphWriter 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 moleculargraph shall be written separately or combined as a single JME component

Constructor & Destructor Documentation

◆ __init__()

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

Constructs a JMEMolecularGraphWriter instance that will write data of molecular graphs to the output stream os.

Parameters
osThe output stream to write to.