Class MDLV2000Reader

All Implemented Interfaces:
Closeable, AutoCloseable, IChemObjectIO, IChemObjectReader, ISimpleChemObjectReader

public class MDLV2000Reader extends DefaultChemObjectReader
Reads content from MDL molfiles and SD files. It can read a IAtomContainer or IChemModel from an MDL molfile, and a IChemFile from a SD file, with a IChemSequence of IChemModel's, where each IChemModel will contain one IAtomContainer.

From the Atom block it reads atomic coordinates, element types and formal charges. From the Bond block it reads the bonds and the orders. Additionally, it reads 'M CHG', 'G ', 'M RAD' and 'M ISO' lines from the property block.

If all z coordinates are 0.0, then the xy coordinates are taken as 2D, otherwise the coordinates are read as 3D.

The title of the MOL file is read and can be retrieved with:

   molecule.getProperty(CDKConstants.TITLE);
 

RGroups which are saved in the MDL molfile as R#, are renamed according to their appearance, e.g. the first R# is named R1. With PseudAtom.getLabel() "R1" is returned (instead of R#). This is introduced due to the SAR table generation procedure of Scitegics PipelinePilot.

Author:
steinbeck, Egon Willighagen
This class is affected by these bug(s):
1587283
Source code:
main
IO options:
NameQuestionDefault
AddStereo0dAllow stereo created from parity value when no coordinatestrue
AddStereoElementsDetect and create IStereoElements for the input.true
InterpretHydrogenIsotopesShould D and T be interpreted as hydrogen isotopes?true
ForceReadAs3DCoordinatesShould coordinates always be read as 3D?false
Belongs to CDK module:
io
Keywords:
file format, MDL molfile, file format, SDF
Created on:
2000-10-02
  • Constructor Details

    • MDLV2000Reader

      public MDLV2000Reader()
    • MDLV2000Reader

      public MDLV2000Reader(InputStream in)
      Constructs a new MDLReader that can read Molecule from a given InputStream.
      Parameters:
      in - The InputStream to read from
    • MDLV2000Reader

      public MDLV2000Reader(InputStream in, IChemObjectReader.Mode mode)
    • MDLV2000Reader

      public MDLV2000Reader(Reader in)
      Constructs a new MDLReader that can read Molecule from a given Reader.
      Parameters:
      in - The Reader to read from
    • MDLV2000Reader

      public MDLV2000Reader(Reader in, IChemObjectReader.Mode mode)
  • Method Details

    • getFormat

      public IResourceFormat getFormat()
      Description copied from interface: IChemObjectIO
      Returns the IResourceFormat class for this IO class.
    • setReader

      public void setReader(Reader input) throws CDKException
      Description copied from interface: IChemObjectReader
      Sets the Reader from which this ChemObjectReader should read the contents.
      Throws:
      CDKException
    • setReader

      public void setReader(InputStream input) throws CDKException
      Description copied from interface: IChemObjectReader
      Sets the InputStream from which this ChemObjectReader should read the contents.
      Throws:
      CDKException
    • accepts

      public boolean accepts(Class<? extends IChemObject> classObject)
      Description copied from interface: IChemObjectIO
      Returns whether the given IChemObject can be read or written.
      Parameters:
      classObject - IChemObject of which is tested if it can be handled.
      Returns:
      true, if the IChemObject can be handled.
    • read

      public <T extends IChemObject> T read(T object) throws CDKException
      Takes an object which subclasses IChemObject, e.g. Molecule, and will read this (from file, database, internet etc). If the specific implementation does not support a specific IChemObject it will throw an Exception.
      Parameters:
      object - The object that subclasses IChemObject
      Returns:
      The IChemObject read
      Throws:
      CDKException
    • close

      public void close() throws IOException
      Description copied from interface: IChemObjectIO
      Closes this IChemObjectIO's resources.
      Throws:
      IOException - when the wrapper IO class cannot be closed.
    • customizeJob

      public void customizeJob()