{
  "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/2018/09/16/data-curation-5-inspiration-95.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/b65kv-58g66",
      "url": "https://chem-bla-ics.linkedchemistry.info/2018/09/16/data-curation-5-inspiration-95.html",
      "title": "Data Curation: 5% inspiration, 95% frustration (cleaning up data inconsistencies)",
      "content_html": "<p><span style=\"width: 40%; display: block; margin-left: auto; margin-right: auto; float: right\">\n<img src=\"/assets/images/Screenshot_20180916_170915.png\" /> <br />\nSlice of the spreadsheet in the supplementary info.\n</span></p>\n\n<p>Just some bit of cleaning I scripted today for a number of toxicology end points in a database published some time ago the\nzero-APC Open Access (CC_BY) journal <a href=\"https://www.beilstein-journals.org/bjnano/\">Beilstein of Journal of Nanotechnology</a>,\nNanoE-Tox (doi:<a href=\"https://www.beilstein-journals.org/bjnano/articles/6/183\">10.3762/bjnano.6.183</a>).</p>\n\n<p>The curation I am doing is to redistribute the data in the eNanoMapper database (see doi:<a href=\"https://doi.org/10.3762/bjnano.6.165/\">10.3762/bjnano.6.165</a>)\nand thus with ontology annotation (see doi:<a href=\"https://doi.org/10.1186/s13326-015-0005-5\">10.1186/s13326-015-0005-5</a>):</p>\n\n<div class=\"language-groovy highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"n\">recognizedToxicities</span> <span class=\"o\">=</span> <span class=\"o\">[</span>\n  <span class=\"s2\">\"EC10\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0001263\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC20\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0001235\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC25\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0001264\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC30\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0000599\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC50\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0000188\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC80\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://purl.enanomapper.org/onto/ENM_0000053\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"EC90\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0001237\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"IC50\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0000190\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"LC50\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0002145\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"MIC\"</span><span class=\"o\">:</span>  <span class=\"s2\">\"http://www.bioassayontology.org/bao#BAO_0002146\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"NOEC\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://purl.enanomapper.org/onto/ENM_0000060\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"NOEL\"</span><span class=\"o\">:</span> <span class=\"s2\">\"http://purl.enanomapper.org/onto/ENM_0000056\"</span>\n<span class=\"o\">]</span>\n</code></pre></div></div>\n\n<p>With 402(!) variants left. Many do not have an ontology term yet, and I\n<a href=\"https://github.com/enanomapper/ontologies/issues/143\">filed a feature request</a>.</p>\n\n<p>Units:</p>\n\n<div class=\"language-groovy highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"n\">recognizedUnits</span> <span class=\"o\">=</span> <span class=\"o\">[</span>\n  <span class=\"s2\">\"g/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"g/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"g/l\"</span><span class=\"o\">:</span> <span class=\"s2\">\"g/l\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg/ml\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/ml\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg/mL\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/mL\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg/L of food\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg/mL\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/mL\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Ag/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Cu/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Zn/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg dissolved Cu/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg dissolved Zn/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg Ag/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/L\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"fmol/L\"</span><span class=\"o\">:</span> <span class=\"s2\">\"fmol/L\"</span><span class=\"o\">,</span>\n\n  <span class=\"s2\">\"mmol/g\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mmol/g\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"nmol/g fresh weight\"</span><span class=\"o\">:</span> <span class=\"s2\">\"nmol/g\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg Cu/g\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/g\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Ag/kg\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Zn/kg\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg Zn/kg  d.w.\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg/kg of dry feed\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">:</span> <span class=\"s2\">\"mg/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"g/kg\"</span><span class=\"o\">:</span> <span class=\"s2\">\"g/kg\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg/g dry weight sediment\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/g\"</span><span class=\"o\">,</span>\n  <span class=\"s2\">\"µg/g\"</span><span class=\"o\">:</span> <span class=\"s2\">\"µg/g\"</span>\n<span class=\"o\">]</span>\n</code></pre></div></div>\n\n<p>Oh, and don’t get me started on actual values, with endpoint values, as ranges, errors, etc. That variety is\nnot the problem, but the lack of FAIR-ness makes the whole really hard to process. I now have something like:</p>\n\n<div class=\"language-groovy highlighter-rouge\"><div class=\"highlight\"><pre class=\"highlight\"><code><span class=\"n\">prop</span> <span class=\"o\">=</span> <span class=\"n\">prop</span><span class=\"o\">.</span><span class=\"na\">replace</span><span class=\"o\">(</span><span class=\"s2\">\",\"</span><span class=\"o\">,</span> <span class=\"s2\">\".\"</span><span class=\"o\">)</span>\n<span class=\"k\">if</span> <span class=\"o\">(</span><span class=\"n\">prop</span><span class=\"o\">.</span><span class=\"na\">substring</span><span class=\"o\">(</span><span class=\"mi\">1</span><span class=\"o\">).</span><span class=\"na\">contains</span><span class=\"o\">(</span><span class=\"s2\">\"-\"</span><span class=\"o\">))</span> <span class=\"o\">{</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addTypedDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${oboNS}STATO_0000035\"</span><span class=\"o\">,</span>\n    <span class=\"n\">prop</span><span class=\"o\">,</span> <span class=\"s2\">\"${xsdNS}string\"</span>\n  <span class=\"o\">)</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${ssoNS}has-unit\"</span><span class=\"o\">,</span> <span class=\"n\">units</span>\n  <span class=\"o\">)</span>\n<span class=\"o\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"o\">(</span><span class=\"n\">prop</span><span class=\"o\">.</span><span class=\"na\">contains</span><span class=\"o\">(</span><span class=\"s2\">\"±\"</span><span class=\"o\">))</span> <span class=\"o\">{</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addTypedDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${oboNS}STATO_0000035\"</span><span class=\"o\">,</span>\n    <span class=\"n\">prop</span><span class=\"o\">,</span> <span class=\"s2\">\"${xsdNS}string\"</span>\n  <span class=\"o\">)</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${ssoNS}has-unit\"</span><span class=\"o\">,</span> <span class=\"n\">units</span>\n  <span class=\"o\">)</span>\n<span class=\"o\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"o\">(</span><span class=\"n\">prop</span><span class=\"o\">.</span><span class=\"na\">contains</span><span class=\"o\">(</span><span class=\"s2\">\"&lt;\"</span><span class=\"o\">))</span> <span class=\"o\">{</span>\n<span class=\"o\">}</span> <span class=\"k\">else</span> <span class=\"o\">{</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addTypedDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${ssoNS}has-value\"</span><span class=\"o\">,</span> <span class=\"n\">prop</span><span class=\"o\">,</span>\n    <span class=\"s2\">\"${xsdNS}double\"</span>\n  <span class=\"o\">)</span>\n  <span class=\"n\">rdf</span><span class=\"o\">.</span><span class=\"na\">addDataProperty</span><span class=\"o\">(</span>\n    <span class=\"n\">store</span><span class=\"o\">,</span> <span class=\"n\">endpointIRI</span><span class=\"o\">,</span> <span class=\"s2\">\"${ssoNS}has-unit\"</span><span class=\"o\">,</span> <span class=\"n\">units</span>\n  <span class=\"o\">)</span>\n<span class=\"o\">}</span>\n</code></pre></div></div>\n\n<p>But let me make clear: I can actually do this, add more data to the eNanoMapper database (with\n<a href=\"https://tools.wmflabs.org/scholia/github/vedina\">Nina</a>), only because the developers of this database made their data\navailable under an Open license (CC-BY, to be precise), allowing me to reuse, modify (change format), and redistribute\nit. Thanks to the authors. Data curation is expensive, whether I do it, or if the authors of the database did. They\nalready did a lot of data curation. But only because of Open licenses, <strong>we only have to do this once</strong>.</p>\n\n<h4>References</h4>\n<div class=\"csl-bib-body\">\n    <div class=\"csl-entry\">Hastings, J., Jeliazkova, N., Owen, G., Tsiliki, G., Munteanu, C. R., Steinbeck, C., &#38; Willighagen, E. (2015). eNanoMapper: harnessing ontologies to enable data integration for nanomaterial risk assessment. <i>Journal of Biomedical Semantics</i>, <i>6</i>(1). https://doi.org/10.1186/s13326-015-0005-5 <a href=\"https://doi.org/10.1186/S13326-015-0005-5\">CrossRef</a> <a href=\"https://qlever.scholia.wiki/doi/10.1186/S13326-015-0005-5\">Scholia</a></div>\n    <div class=\"csl-entry\">Jeliazkova, N., Chomenidis, C., Doganis, P., Fadeel, B., Grafström, R., Hardy, B., Hastings, J., Hegi, M., Jeliazkov, V., Kochev, N., Kohonen, P., Munteanu, C. R., Sarimveis, H., Smeets, B., Sopasakis, P., Tsiliki, G., Vorgrimmler, D., &#38; Willighagen, E. (2015). The eNanoMapper database for nanomaterial safety information. <i>Beilstein Journal of Nanotechnology</i>, <i>6</i>, 1609–1634. https://doi.org/10.3762/bjnano.6.165 <a href=\"https://doi.org/10.3762/BJNANO.6.165\">CrossRef</a> <a href=\"https://qlever.scholia.wiki/doi/10.3762/BJNANO.6.165\">Scholia</a></div>\n    <div class=\"csl-entry\">Juganson, K., Ivask, A., Blinova, I., Mortimer, M., &#38; Kahru, A. (2015). NanoE-Tox: New and in-depth database concerning ecotoxicity of nanomaterials. <i>Beilstein Journal of Nanotechnology</i>, <i>6</i>, 1788–1804. https://doi.org/10.3762/bjnano.6.183 <b>[cito:usesDataFrom]</b> <a href=\"https://doi.org/10.3762/bjnano.6.183\">CrossRef</a> <a href=\"https://qlever.scholia.wiki/doi/10.3762/bjnano.6.183\">Scholia</a></div>\n  </div>",
      "summary": "Slice of the spreadsheet in the supplementary info.",
      "image": "https://chem-bla-ics.linkedchemistry.info/assets/images/Screenshot_20180916_170915.png",
      "date_published": "2018-09-16T00:00:00+00:00",
      "date_modified": "2018-09-16T00:00:00+00:00",
      "tags": ["curation","toxicology","nanosafety"],
      "_references": [
        
          
          
            { "url": "https://doi.org/10.3762/bjnano.6.183", "doi": "10.3762/bjnano.6.183"
            , "cito":
              
              
                [ 
                  "usesDataFrom"
                  
                 ]
              
             }
            ,
          
        
          
          
            { "url": "https://doi.org/10.3762/BJNANO.6.165", "doi": "10.3762/BJNANO.6.165"
             }
            ,
          
        
          
          
            { "url": "https://doi.org/10.1186/S13326-015-0005-5", "doi": "10.1186/S13326-015-0005-5"
             }
            
          
        ],
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
