{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2007/07/16/cdk-data-model-1.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/4xfms-7nn46",
      "url": "https://chem-bla-ics.linkedchemistry.info/2007/07/16/cdk-data-model-1.html",
      "title": "The CDK data model #1",
      "content_html": "<p>The <a href=\"http://cdk.sf.net/\">Chemistry Development Kit</a> has a rich set of data classes, each of which is\n<a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/interfaces/IChemObject.java\">defined by an interface</a>.\nWhile the classes for atoms, bonds and a connectivity table are fairly straightforward, but beyond that it is sometimes\nnot entirely clear. I will now discuss all interfaces in a series of blog items. I’ll start with the IChemFile.\n<a href=\"http://wiki.cubic.uni-koeln.de/blog/\">Christoph</a>, please correct me if I move to far away from our Notre Dame board sketch.</p>\n\n<h2 id=\"ichemfile\">IChemFile</h2>\n\n<p>The <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/interfaces/IChemFile.html\">IChemFile</a> is the class to\nhold a chemical document, e.g. a MDL molfile or a PDB file. The idea of this class is that it can hold anything we\ncan expect from a chemical document. But nothing beyond that either; a XHTML document with embedded CML is outside\nthe scope of a IChemFile. You might wonder why the <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/io/IChemObjectReader.html\">IChemObjectReaders</a>\nnot always just return a IChemFile. That would be a fair point, any many actually do, but somethings it is handier\nto return an IMolecule. A reader for MDL molfiles would be expected to return a IMolecule.</p>\n\n<p>However, a document may contain much more, and the approach taken by the CDK is that a file contains one or more\nmodels. A MDL molfile is an example document with one model, while a MDL SD file would be a document with more than\none model.</p>\n\n<h2 id=\"ichemsequence\">IChemSequence</h2>\n\n<p>However, the IChemFile can hold more than one <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/interfaces/IChemSequence.html\">IChemSequence</a>.\nNow, I honestly cannot remember why that is; a single IChemSequence should be enough. And, I actually do not remember\nmore than one IChemSequence being used. (Anyone?) As said, the IChemSequence contains IChemModels, and nothing more\nreally. The interface therefore just contains the basic logic of a list. Let’s move on.</p>\n\n<h2 id=\"ichemmodel\">IChemModel</h2>\n\n<p>The <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/interfaces/IChemModel.html\">IChemModel</a> is much more interesting.\nIn the CDK a model is defined as anything that occurs in one actual volume of 3D (or 2D) space. A CIF file with a\ncrystal structures is, therefore, one IChemModel. A supramolecular aggregation of lipids, e.g. a mono- or bilayer,\nwould be IChemModel too. This could be a time step in a molecular dynamics run. Additionally, the IChemModel may\nalso be a chemical reaction, possibly a multistep reaction. It could be, for example, a enzyme reaction mechanism\n<a href=\"https://chem-bla-ics.linkedchemistry.info/2006/02/17/chemical-reactions-in-cml.html\">entry from the MACiE database <i class=\"fa-solid fa-recycle fa-xs\"></i></a>.\nThese three types of content are captured in the ICrystal, IMoleculeSet, and IReactionSet.</p>\n\n<h2 id=\"some-examples\">Some Examples</h2>\n\n<p>A CIF file would be read as an IChemFile contains an IChemSequence with one IChemModel containing an ICrystal.\nAn MDL molfile would be read as an IChemFile containing an IChemSquence with one IChemModel containing a\nIMoleculeSet with one IMolecule. And, an MDL SD file, however, would be read is an IChemFile with an\nIChemSequence with as many IChemModels as there are molecules in the SD file; and, each IChemModel would\ncontains a IMoleculeSet with only one IMolecule. Counter-intuitively, because one may expect the SD file,\nwhich is a set of molecules, being stored in a IMoleculeSet.</p>\n\n<p>Enough for tonight. More later. For the impatient, previously I wrote up a short blog about\n<a href=\"https://chem-bla-ics.linkedchemistry.info/2006/04/12/cdk-data-classes-and-change.html\">the update notification scheme in the CDK interfaces <i class=\"fa-solid fa-recycle fa-xs\"></i></a>.</p>",
      "summary": "The Chemistry Development Kit has a rich set of data classes, each of which is defined by an interface. While the classes for atoms, bonds and a connectivity table are fairly straightforward, but beyond that it is sometimes not entirely clear. I will now discuss all interfaces in a series of blog items. I’ll start with the IChemFile. Christoph, please correct me if I move to far away from our Notre Dame board sketch.",
      
      "date_published": "2007-07-16T00:10:00+00:00",
      "date_modified": "2025-07-30T00:00:00+00:00",
      "tags": ["cdk","cheminf"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
