{
  "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/01/atom-typing-in-cdk.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/wm7aq-eqz10",
      "url": "https://chem-bla-ics.linkedchemistry.info/2007/07/01/atom-typing-in-cdk.html",
      "title": "Atom typing in the CDK",
      "content_html": "<p>Atom typing is one of principal activities in chemoinformatics. Atom types provide additional information that cannot be derived\nfrom the connection table that is being used, or may define what force fields terms should be used. This makes perception of\natom types very important.</p>\n\n<p>The <a href=\"http://cdk.sf.net/\">CDK</a> has a few places where atom types are perceived. The <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/tools/HydrogenAdder.java\">HydrogenAdder</a>\nand <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/tools/ValencyChecker.java\">ValencyChecker</a> are two examples.\nGetting the perception wrong, makes it impossible to correctly add hydrogens (of course, hydrogen should always be explicit!) For a\nlong time, these perception algorithms have been embedded in the classes that used them, but efforts have been undertaken to refactor\nthe algorithms into separate classes. These can be found in the package <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/atomype/\">cdk/atomtype/</a>.</p>\n\n<h2 id=\"different-applications-different-scheme\">Different applications, different scheme</h2>\n\n<p>Now, the CDK can be a bit confusing with respect to the HydrogenAdder and <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/tools/IValencyChecker.java\">IValencyChecker</a>.\nOriginally, the CDK had only one atom type list, the <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/valency_atomtypes.xml\">StructGen Atom Types</a>.\nThis list was used by the deterministic structure generator (and still is), and only defined atom types for neutral atoms, and does not know anything about hybridization states.</p>\n\n<p>The first bug reports dropped in when people applied the HydrogenAdder to charged molecules. However, as said, charged atoms were not defined and the algorithm failed,\nnot silently, just gave the wrong answer. Therefore, the <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/valency_atomtypes.xml\">Valency Atom Types</a>\nlist was setup, which does include charged atoms. Everyone happy again.</p>\n\n<p>Later, bugs were reported about the SMILES parser, which comes with additional problems: bond orders are not explicit, and have to be\ndeduced from the connectivity; atom type perception is the only way to decide how many bonds an atom should have, and with what bond\norder. However, SMILES defines hybridization states, and the CDK did not have an atom type list with hybridization information. So,\nwhile the Valency Atom Types list was extended from the StructGen Atom Type List, a new list was created extending from the Valency\nAtom Type list: the <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/hybridization_atomtypes.xml\">Hybridization Atom Types</a>\nlist.</p>\n\n<p>Since then, applications asked for other atom type lists, such as the <a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/mm2_atomtypes.xml\">MM2</a>,\n<a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/mmff94_atomtypes.xml\">MMFF94</a>,\n<a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/pdb_atomtypes.xml\">PDB</a>, and\n<a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/config/data/mol2_atomtypes.xml\">Sybyl</a> atom\ntypes. The first two are used for the force field code in the CDK, while the latter two are used for the respective\nIChemObjectReaders.</p>\n\n<h2 id=\"junit-testing-the-perceivers\">JUnit testing the perceivers</h2>\n\n<p>Not all applications actually already make use of the new atom type perception classes in cdk.atomtype. It is wished that these well tested\nbefore the replace code in the classes that use those atom types. Therefore, Rajarshi and me have been working on JUnit test suites. The\nlatest step in this process was that I transformed the test classes to extend a new JUnit4-based\n<a href=\"http://cdk.svn.sf.net/svnroot/cdk/trunk/cdk/src/org/openscience/cdk/test/atomtype/AbstractAtomTypeTest.java\">AbstractAtomTypeTest</a> class.\nNew in this class is that it report which atom types in the atom type list have been tested, and the test will fail if not all atom types\nare tested. The StructGen Atom Types list is mostly covered now, but for all other lists tests still have to be written (monitor the progress\non <a href=\"http://cheminfo.informatics.indiana.edu/~rguha/code/java/nightly/test/result-core.html\">CDK Nightly</a>).</p>\n\n<p>For the MOL2 atom type list, there is no Java implementation of the IAtomTypeMatcher, but we have Fortran code that can be ported (provided\nby Martin Ott). Anyone interested?</p>",
      "summary": "Atom typing is one of principal activities in chemoinformatics. Atom types provide additional information that cannot be derived from the connection table that is being used, or may define what force fields terms should be used. This makes perception of atom types very important.",
      
      "date_published": "2007-07-01T00:00:00+00:00",
      "date_modified": "2025-02-15T00:00:00+00:00",
      "tags": ["cdk","junit"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
