opentox-api / api-specification

OpenTox API specification
0 stars 0 forks source link

Support for substances and chemical composition #3

Open vedina opened 11 years ago

vedina commented 11 years ago

A proposal for a new resource, Substance. A substance consists of information of its constituents, additive, impurities. Each of these may be linked to a chemical compound (OpenTox Compound resource).

/substance
/substance/{id}
/substance/{id}/composition

Important for communication with IUCLID 5 and REACH related assessment, but also for describing nanomaterials.

Examples http://apps.ideaconsult.net:8080/bioclipse/substance [JSON] http://apps.ideaconsult.net:8080/bioclipse/substance/1 [JSON] http://apps.ideaconsult.net:8080/bioclipse/substance/1/composition [JSON]

egonw commented 11 years ago

Is a substance a special kind ot DataSet?

vedina commented 11 years ago

Good idea, this is one possible interpretation. There is a value to have the data model of a substance be close to the dataset data model, but the most important is that a substance establishes relations between the compounds it consists of (specifying purity, concentrations, functions, etc), while a dataset is just a set of unrelated entities. Perhaps we can get the best of both worlds by combining these ideas.

As defined in REACH guide : Chemical substance, a material with a definite chemical composition. Mono-constituent substance: A substance with one main constituent. Multi-constituent substance: A substance with two or more main constituents. Main constituent: A constituent, not being an additive or impurity, in a substance that makes up a significant part of that substance. Contributes to the naming of the substance. Concentration of the main constituent(s) = purity of the substance Additive: A substance that has been intentionally added to stabilise the substance. Contributes to the substance composition (but notto the naming). Impurity: An unintended constituent present in a substance, as produced. Does not contribute to the naming of the substance.

vedina commented 11 years ago

The current JSON serialisation (see at the test instance )

A substance (one or more) : /substance , /substance/{id}

{
"substance":[
    {
        "URI":"http://apps.ideaconsult.net:8080/bioclipse/substance/1",
        "ownerUUID":null,
        "i5uuid":"IUC4-efdb21bb-e79f-3286-a988-b6f6944d3734",
        "name":"formaldehyde (IUC4 DSN 52)",
        "publicname":"",
        "format":"i5._5.",
        "substanceType":"other:",
        "referenceSubstance": {"i5uuid":"ECB5-053aa8c4-d29b-4aa5-b457-5cc3b47f7d8b"}
    }
    ]
}

Composition of a substance: /substance/{id}/composition . In fact a composition JSON is very close to a dataset JSON

{
    "composition": [
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/18/conformer/19",
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "formaldehyde",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "50-00-0",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "200-001-8",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23TradeNameDefault": "Formaldehyde, gas"
                },
                "facets": []
            },
            "compositionUUID": "L-340e87fb-e95f-3743-823d-1b9b25a94d56",
            "relation": "HAS_CONSTITUENT",
            "proportion": {
                "typical": {
                    "precision": "",
                    "value": 100,
                    "unit": "% (w/w)"
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": null
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/18/conformer/19",
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "formaldehyde",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "50-00-0",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "200-001-8",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23TradeNameDefault": "Formaldehyde, gas"
                },
                "facets": []
            },
            "compositionUUID": "L-cf10d721-b0e7-37cd-a233-e9a2483c4d3c",
            "relation": "HAS_CONSTITUENT",
            "proportion": {
                "typical": {
                    "precision": "",
                    "value": 0,
                    "unit": ""
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": null
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/19/conformer/20",
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "water",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "7732-18-5",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "231-791-2"
                }
            },
            "compositionUUID": "L-f2d0bc7e-a154-3f6d-babd-22ea28467466",
            "relation": "HAS_ADDITIVE",
            "proportion": {
                "typical": {
                    "precision": "ca.",
                    "value": 49,
                    "unit": "% (w/w)"
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": "solvent"
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/20/conformer/21",
                    "structype": "NA",
                    "metric": null,
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "6,6'-(m-phenylene)bis(1,3,5-triazine-2,4-diamine)",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "5118-80-9",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "225-859-0"
                }
            },
            "compositionUUID": "L-f2d0bc7e-a154-3f6d-babd-22ea28467466",
            "relation": "HAS_ADDITIVE",
            "proportion": {
                "typical": {
                    "precision": "",
                    "value": 0,
                    "unit": ""
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": ""
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/21/conformer/22",
                    "structype": "NA",
                    "metric": null,
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "methanol|Methanol",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "67-56-1",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "200-659-6"
                },
                "facets": []
            },
            "compositionUUID": "L-f2d0bc7e-a154-3f6d-babd-22ea28467466",
            "relation": "HAS_IMPURITY",
            "proportion": {
                "typical": {
                    "precision": "",
                    "value": 0,
                    "unit": ""
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0.5,
                    "upperPrecision": "",
                    "upperValue": 2,
                    "unit": "% (w/w)"
                },
                "function_as_additive": null
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/22/conformer/23",
                    "structype": "NA",
                    "metric": null,
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "iron(2+)",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "7439-89-6",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "231-096-4"
                },
                "facets": []
            },
            "compositionUUID": "L-f2d0bc7e-a154-3f6d-babd-22ea28467466",
            "relation": "HAS_IMPURITY",
            "proportion": {
                "typical": {
                    "precision": "<=",
                    "value": 0.0001,
                    "unit": "% (w/w)"
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": null
            }
        },
        {
            "substance": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/substance/1"
            },
            "component": {
                "compound": {
                    "URI": "http://apps.ideaconsult.net:8080/bioclipse/compound/23/conformer/24",
                    "structype": "NA",
                    "metric": null,
                    "name": "",
                    "cas": "",
                    "einecs": ""
                },
                "values": {
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": "|formic acid",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": "64-18-6",
                    "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": "200-579-1"
                },
                "facets": []
            },
            "compositionUUID": "L-f2d0bc7e-a154-3f6d-babd-22ea28467466",
            "relation": "HAS_IMPURITY",
            "proportion": {
                "typical": {
                    "precision": "ca.",
                    "value": 0.3,
                    "unit": "% (w/w)"
                },
                "real": {
                    "lowerPrecision": "",
                    "lowerValue": 0,
                    "upperPrecision": "",
                    "upperValue": 0,
                    "unit": ""
                },
                "function_as_additive": null
            }
        }
    ],
    "feature": {
        "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23IUPACNameDefault": {
            "type": "Feature",
            "title": "IUPAC name",
            "units": "",
            "isNominal": "false",
            "isNumeric": "false",
            "sameAs": "http://www.opentox.org/api/1.1#IUPACName",
            "isModelPredictionFeature": "false",
            "creator": "http://ambit.sourceforge.net",
            "order": 1,
            "source": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/dataset/Default",
                "type": "Dataset"
            },
            "annotation": []
        },
        "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23ChemicalNameDefault": {
            "type": "Feature",
            "title": "Names",
            "units": "",
            "isNominal": "false",
            "isNumeric": "false",
            "sameAs": "http://www.opentox.org/api/1.1#ChemicalName",
            "isModelPredictionFeature": "false",
            "creator": "http://ambit.sourceforge.net",
            "order": 2,
            "source": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/dataset/Default",
                "type": "Dataset"
            },
            "annotation": []
        },
        "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23CASRNDefault": {
            "type": "Feature",
            "title": "CasRN",
            "units": "",
            "isNominal": "false",
            "isNumeric": "false",
            "sameAs": "http://www.opentox.org/api/1.1#CASRN",
            "isModelPredictionFeature": "false",
            "creator": "http://ambit.sourceforge.net",
            "order": 3,
            "source": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/dataset/Default",
                "type": "Dataset"
            },
            "annotation": []
        },
        "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23EINECSDefault": {
            "type": "Feature",
            "title": "EC number",
            "units": "",
            "isNominal": "false",
            "isNumeric": "false",
            "sameAs": "http://www.opentox.org/api/1.1#EINECS",
            "isModelPredictionFeature": "false",
            "creator": "http://ambit.sourceforge.net",
            "order": 4,
            "source": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/dataset/Default",
                "type": "Dataset"
            },
            "annotation": []
        },
        "http://apps.ideaconsult.net:8080/bioclipse/feature/http%3A%2F%2Fwww.opentox.org%2Fapi%2F1.1%23TradeNameDefault": {
            "type": "Feature",
            "title": "http://www.opentox.org/api/1.1#TradeName",
            "units": "",
            "isNominal": "false",
            "isNumeric": "false",
            "sameAs": "http://www.opentox.org/api/1.1#TradeName",
            "isModelPredictionFeature": "false",
            "creator": "http://ambit.sourceforge.net",
            "order": 5,
            "source": {
                "URI": "http://apps.ideaconsult.net:8080/bioclipse/dataset/Default",
                "type": "Dataset"
            },
            "annotation": []
        }
    }
}