001package org.biopax.paxtools.model.level3;
002
003
004/**
005 * Definition: The chemical structure of a small molecule.
006 *
007 * Usage: Structure information is stored in the property structureData, in one of the three formats:
008 * <a href="www.xml-cml.org">CML</a>, <a href="www.daylight.com/dayhtml/smiles/">SMILES</a> or
009 * <a href="http://www.iupac.org/inchi/">InChI</a>.The structureFormat property specifies which format is used.
010 *
011 * Examples: The following SMILES string describes the structure of glucose-6-phosphate: 'C(OP(=O)(O)O)[CH]1([CH](O)
012 * [CH](O)[CH](O)[CH](O)O1)'.
013 */
014public interface ChemicalStructure extends UtilityClass
015{
016
017
018        /**
019         * This property holds a string defining chemical structure,in one of the three formats:
020         * <a href ="www.xml-cml.org">CML</a>, <a href = "www.daylight.com/dayhtml/smiles/">SMILES</a> or
021         * <a href="http://www.iupac.org/inchi/">InChI</a>. If, for example,the CML format is used,
022         * then the value of this property is a string containing the XML encoding of the CML data.
023         * @return a string defining chemical structure
024         */
025        String getStructureData();
026
027        /**
028         * This property holds a string of data defining chemical structure,in one of the three formats:
029         * <a href ="www.xml-cml.org">CML</a>, <a href = "www.daylight.com/dayhtml/smiles/">SMILES</a> or
030         * <a href="http://www.iupac.org/inchi/">InChI</a>. If, for example,the CML format is used,
031         * then the value of this property is a string containing the XML encoding of the CML data.
032         * @param structureData a string defining chemical structure
033         */
034         void setStructureData(String structureData);
035
036
037        /**
038         * This property specifies which format is used to define chemical structure.
039         * @return format used to define chemical structure
040         */
041        StructureFormatType getStructureFormat();
042
043        /**
044         * This property specifies which format is used to define chemical structure.
045         * @param structureFormat format used to define chemical structure
046         */
047        void setStructureFormat(StructureFormatType structureFormat);
048
049}