{
  "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/2006/09/02/calculating-geometrical-properties.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/sy6r5-pzw09",
      "url": "https://chem-bla-ics.linkedchemistry.info/2006/09/02/calculating-geometrical-properties.html",
      "title": "Calculating geometrical properties with the CDK",
      "content_html": "<p><a href=\"http://cheminformatics.seesaa.net/\">ケムインフォマティクスに虚空投げ</a> runs <a href=\"https://chem-bla-ics.linkedchemistry.info/2006/09/02/calculating-geometrical-properties.html\">a story on how to calculate geometrical\nproperties of a 3D structure <i class=\"fa-solid fa-recycle fa-xs\"></i></a> using\nCDK’s <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/modeling/forcefield/ForceFieldTools.html\">ForceFieldTools</a>.\nThis class contains a few methods to calculate distances between atoms and angles between bonds.</p>\n\n<p>This tools class is special as it uses vecmath GVector objects, which just contain atomic coordinates, likely suitable\nfor extensive computation, as expected in <a href=\"http://cdk.sourceforge.net/api/org/openscience/cdk/modeling/forcefield/package-frame.html\">CDK’s force field implementation</a>.\nHowever, for just calculating the distance and angles, there are simpler alternatives.</p>\n\n<p>The distance between two atoms can be calculated with:</p>\n\n<div class=\"language-java highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"n\">atom1</span> <span class=\"o\">=</span> <span class=\"n\">molecule</span><span class=\"o\">.</span><span class=\"na\">getAtom</span><span class=\"o\">(</span><span class=\"mi\">0</span><span class=\"o\">);</span>\n<span class=\"n\">atom2</span> <span class=\"o\">=</span> <span class=\"n\">molecule</span><span class=\"o\">.</span><span class=\"na\">getAtom</span><span class=\"o\">(</span><span class=\"mi\">1</span><span class=\"o\">);</span>\n<span class=\"kt\">double</span> <span class=\"n\">dist</span> <span class=\"o\">=</span> <span class=\"n\">atom1</span><span class=\"o\">.</span><span class=\"na\">getPoint3d</span><span class=\"o\">().</span><span class=\"na\">distance</span><span class=\"o\">(</span><span class=\"n\">atom2</span><span class=\"o\">.</span><span class=\"na\">getPoint3d</span><span class=\"o\">());</span>\n</code></pre></div></div>\n\n<p>or, by constructing a vector for the bond first:</p>\n\n<div class=\"language-java highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"nc\">Vector3d</span> <span class=\"n\">bond1to2</span> <span class=\"o\">=</span> <span class=\"k\">new</span> <span class=\"nc\">Vector3d</span><span class=\"o\">(</span><span class=\"n\">atom2</span><span class=\"o\">.</span><span class=\"na\">getPoint3d</span><span class=\"o\">());</span>\n<span class=\"n\">bond1to2</span><span class=\"o\">.</span><span class=\"na\">sub</span><span class=\"o\">(</span><span class=\"n\">atom1</span><span class=\"o\">.</span><span class=\"na\">getPoint3d</span><span class=\"o\">());</span>\n<span class=\"kt\">double</span> <span class=\"n\">dist</span> <span class=\"o\">=</span> <span class=\"n\">bond1to2</span><span class=\"o\">.</span><span class=\"na\">length</span><span class=\"o\">();</span>\n</code></pre></div></div>\n\n<p>Using vectors to represent bond (with two atoms!), allows easily calculating angles too (assuming the bonds shard atom1):</p>\n\n<div class=\"language-java highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"kt\">double</span> <span class=\"n\">angle</span> <span class=\"o\">=</span> <span class=\"n\">bond1to2</span><span class=\"o\">.</span><span class=\"na\">angle</span><span class=\"o\">(</span><span class=\"n\">bond1to3</span><span class=\"o\">);</span>\n</code></pre></div></div>\n\n<p>Vecmath does not seem to contain a convenience method for calculating torsion angles :(</p>",
      "summary": "ケムインフォマティクスに虚空投げ runs a story on how to calculate geometrical properties of a 3D structure using CDK’s ForceFieldTools. This class contains a few methods to calculate distances between atoms and angles between bonds.",
      
      "date_published": "2006-09-02T00:00:00+00:00",
      "date_modified": "2025-02-15T00:00:00+00:00",
      "tags": ["cdk"],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
