Ontological Differential Analysis

Summary

Doing OGDA programatically is a two-step process. In the first step, sets of metadata triplets are created. In the second step, those sets are used as input to the actual calculator.

Step 1 - Triplets

Making a post request to

http://bindiscover.metabolomics.us:4999/hgdametadataresource/

With the format

{
    "from_species":"10114", #any NCBI species or parent ID
    "from_organ":"A03.620", #any MeSH organ ID
    "from_disease":"No Disease", #any MeSH disease ID
    "to_species":"314146",
    "to_organ":"A03.556.875.500",
    "to_disease":"No Disease"
}

Where values in this dictionary are nodes from the NCBI taxonomy and MeSH Hierarchies will yield a record-oriented metadata table, e.g.

"[
    {\"from_or_to\":\"from\",\"triplet_id\":\"rattus rattus - Liver - No Disease\",\"sample_count\":221},
    {\"from_or_to\":\"to\",\"triplet_id\":\"mus musculus - Esophagus - No Disease\",\"sample_count\":24}
]"

Step 2 - OGDA

Making a post request to

http://bindiscover.metabolomics.us:4999/hgdaresource/

with the format

{
    "metadata_datatable":
        [
            {"from_or_to": "from", "triplet_id": "citrus reticulata - Plant Leaves - No Disease", "sample_count": 43},
            {"from_or_to": "to", "triplet_id": "malus x domestica - Fruit - No Disease", "sample_count": 17}
        ],
    "bin_type":"known" #values are 'known', 'unknown', and 'class' (compound classes)
}

will yield the core information for the differential analysis, eg

"[
    {\"compound_id\": 14717, \"identifier\": \"OOWQBDFWEXAXPB-UHFFFAOYSA-N\", \"english_name\": \"hexadecylglycerol\", \"bin_type_dict\": \"known\", \"significance_welch\": 0.6109507199, \"fold_change_average\": 0.007302779200000001},
    {\"compound_id\": 2214, \"identifier\": \"LOLKAJARZKDJTD-UHFFFAOYSA-N\", \"english_name\": \"ethylsuccinate\", \"bin_type_dict\": \"known\", \"significance_welch\": 0.1504452139, \"fold_change_average\": -0.031181263}...
"