Metabolights Over-representation Analysis
!pip install "linkml-store[mongodb]"
Requirement already satisfied: linkml-store[mongodb] in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (0.2.9)
Requirement already satisfied: click in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (8.1.8)
Requirement already satisfied: duckdb>=0.10.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (1.2.2)
Requirement already satisfied: duckdb-engine>=0.11.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (0.17.0)
Requirement already satisfied: jinja2<4.0.0,>=3.1.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (3.1.5)
Requirement already satisfied: jsonlines<5.0.0,>=4.0.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (4.0.0)
Requirement already satisfied: jsonpatch>=1.33 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (1.33)
Requirement already satisfied: linkml-runtime>=1.8.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (1.8.3)
Requirement already satisfied: multipledispatch in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (1.0.0)
Requirement already satisfied: pydantic<3.0.0,>=2.0.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (2.10.4)
Collecting pymongo<5.0,>=4.11 (from linkml-store[mongodb])
Downloading pymongo-4.12.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (22 kB)
Requirement already satisfied: pystow<0.6.0,>=0.5.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (0.5.6)
Requirement already satisfied: python-dotenv<2.0.0,>=1.0.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (1.1.0)
Requirement already satisfied: sqlalchemy in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (2.0.36)
Requirement already satisfied: tabulate in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (0.9.0)
Requirement already satisfied: xmltodict>=0.13.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-store[mongodb]) (0.14.2)
Requirement already satisfied: packaging>=21 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from duckdb-engine>=0.11.2->linkml-store[mongodb]) (24.2)
Requirement already satisfied: MarkupSafe>=2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jinja2<4.0.0,>=3.1.4->linkml-store[mongodb]) (3.0.2)
Requirement already satisfied: attrs>=19.2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonlines<5.0.0,>=4.0.0->linkml-store[mongodb]) (24.3.0)
Requirement already satisfied: jsonpointer>=1.9 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonpatch>=1.33->linkml-store[mongodb]) (3.0.0)
Requirement already satisfied: curies>=0.5.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.10.1)
Requirement already satisfied: deprecated in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (1.2.15)
Requirement already satisfied: hbreader in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.9.1)
Requirement already satisfied: json-flattener>=0.1.9 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.1.9)
Requirement already satisfied: jsonasobj2<2.dev0,>=1.0.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (1.0.4)
Requirement already satisfied: jsonschema>=3.2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (4.23.0)
Requirement already satisfied: prefixcommons>=0.1.12 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.1.12)
Requirement already satisfied: prefixmaps>=0.1.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.2.6)
Requirement already satisfied: pyyaml in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (6.0.2)
Requirement already satisfied: rdflib>=6.0.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (7.1.1)
Requirement already satisfied: requests in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.8.0->linkml-store[mongodb]) (2.32.3)
Requirement already satisfied: annotated-types>=0.6.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pydantic<3.0.0,>=2.0.0->linkml-store[mongodb]) (0.7.0)
Requirement already satisfied: pydantic-core==2.27.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pydantic<3.0.0,>=2.0.0->linkml-store[mongodb]) (2.27.2)
Requirement already satisfied: typing-extensions>=4.12.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pydantic<3.0.0,>=2.0.0->linkml-store[mongodb]) (4.12.2)
Collecting dnspython<3.0.0,>=1.16.0 (from pymongo<5.0,>=4.11->linkml-store[mongodb])
Downloading dnspython-2.7.0-py3-none-any.whl.metadata (5.8 kB)
Requirement already satisfied: tqdm in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pystow<0.6.0,>=0.5.4->linkml-store[mongodb]) (4.67.1)
Requirement already satisfied: pytrie in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from curies>=0.5.4->linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.4.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2024.10.1)
Requirement already satisfied: referencing>=0.28.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.35.1)
Requirement already satisfied: rpds-py>=0.7.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.8.0->linkml-store[mongodb]) (0.22.3)
Requirement already satisfied: pytest-logging<2016.0.0,>=2015.11.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from prefixcommons>=0.1.12->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2015.11.4)
Requirement already satisfied: pyparsing<4,>=2.1.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from rdflib>=6.0.0->linkml-runtime>=1.8.0->linkml-store[mongodb]) (3.2.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->linkml-runtime>=1.8.0->linkml-store[mongodb]) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->linkml-runtime>=1.8.0->linkml-store[mongodb]) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2.3.0)
Requirement already satisfied: certifi>=2017.4.17 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2024.12.14)
Requirement already satisfied: wrapt<2,>=1.10 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from deprecated->linkml-runtime>=1.8.0->linkml-store[mongodb]) (1.17.0)
Requirement already satisfied: pytest>=2.8.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.8.0->linkml-store[mongodb]) (8.3.4)
Requirement already satisfied: sortedcontainers in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytrie->curies>=0.5.4->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2.4.0)
Requirement already satisfied: iniconfig in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest>=2.8.1->pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.8.0->linkml-store[mongodb]) (2.0.0)
Requirement already satisfied: pluggy<2,>=1.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest>=2.8.1->pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.8.0->linkml-store[mongodb]) (1.5.0)
Downloading pymongo-4.12.0-cp311-cp311-macosx_11_0_arm64.whl (855 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 855.2/855.2 kB 13.2 MB/s eta 0:00:00
Downloading dnspython-2.7.0-py3-none-any.whl (313 kB)
Installing collected packages: dnspython, pymongo
Successfully installed dnspython-2.7.0 pymongo-4.12.0
from linkml_store.utils.enrichment_analyzer import EnrichmentAnalyzer
DB = "mongodb://localhost:27017/metabolights"
CN = "maf"
!pip install oaklib
Requirement already satisfied: oaklib in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (0.6.18)
Requirement already satisfied: SPARQLWrapper in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (2.0.0)
Requirement already satisfied: SQLAlchemy>=1.4.32 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (2.0.36)
Requirement already satisfied: airium>=0.2.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.2.6)
Requirement already satisfied: appdirs>=1.4.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (1.4.4)
Requirement already satisfied: class-resolver>=0.4.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.5.4)
Requirement already satisfied: click in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (8.1.8)
Requirement already satisfied: curies>=0.6.6 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.10.1)
Requirement already satisfied: defusedxml>=0.7.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.7.1)
Requirement already satisfied: eutils>=0.6.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.6.0)
Requirement already satisfied: funowl>=0.2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.2.3)
Requirement already satisfied: jsonlines in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (4.0.0)
Requirement already satisfied: kgcl-rdflib==0.5.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.5.0)
Requirement already satisfied: kgcl-schema<0.7.0,>=0.6.9 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.6.9)
Requirement already satisfied: linkml-renderer>=0.3.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.3.1)
Requirement already satisfied: linkml-runtime>=1.5.3 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (1.8.3)
Requirement already satisfied: ndex2>=3.5.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (3.9.0)
Requirement already satisfied: networkx>=2.7.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (3.2.1)
Requirement already satisfied: ols-client>=0.1.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.1.4)
Requirement already satisfied: ontoportal-client>=0.0.3 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.0.4)
Requirement already satisfied: prefixmaps>=0.1.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.2.6)
Requirement already satisfied: pronto>=2.5.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (2.5.8)
Requirement already satisfied: pydantic in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (2.10.4)
Requirement already satisfied: pysolr<4.0.0,>=3.9.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (3.10.0)
Requirement already satisfied: pystow>=0.5.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.5.6)
Requirement already satisfied: ratelimit>=2.2.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (2.2.1)
Requirement already satisfied: requests-cache<2.0.0,>=1.0.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (1.2.1)
Requirement already satisfied: semsql>=0.3.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.3.3)
Requirement already satisfied: sssom<0.5.0,>=0.4.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (0.4.15)
Requirement already satisfied: tenacity>=8.2.3 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from oaklib) (9.0.0)
Requirement already satisfied: pytrie in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from curies>=0.6.6->oaklib) (0.4.0)
Requirement already satisfied: typing-extensions in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from curies>=0.6.6->oaklib) (4.12.2)
Requirement already satisfied: lxml in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from eutils>=0.6.0->oaklib) (5.3.0)
Requirement already satisfied: pytz in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from eutils>=0.6.0->oaklib) (2024.2)
Requirement already satisfied: requests in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from eutils>=0.6.0->oaklib) (2.32.3)
Requirement already satisfied: bcp47 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (0.1.0)
Requirement already satisfied: jsonasobj in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (1.3.1)
Requirement already satisfied: pyjsg>=0.11.6 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (0.11.10)
Requirement already satisfied: rdflib-shim in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (1.0.3)
Requirement already satisfied: rdflib<8,>=6.2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (7.1.1)
Requirement already satisfied: rfc3987 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from funowl>=0.2.0->oaklib) (1.3.8)
Requirement already satisfied: lark>=1.1.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from kgcl-schema<0.7.0,>=0.6.9->oaklib) (1.2.2)
Requirement already satisfied: deprecated in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (1.2.15)
Requirement already satisfied: hbreader in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (0.9.1)
Requirement already satisfied: json-flattener>=0.1.9 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (0.1.9)
Requirement already satisfied: jsonasobj2<2.dev0,>=1.0.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (1.0.4)
Requirement already satisfied: jsonschema>=3.2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (4.23.0)
Requirement already satisfied: prefixcommons>=0.1.12 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (0.1.12)
Requirement already satisfied: pyyaml in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-runtime>=1.5.3->oaklib) (6.0.2)
Requirement already satisfied: six in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (1.17.0)
Requirement already satisfied: ijson in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (3.3.0)
Requirement already satisfied: requests-toolbelt in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (1.0.0)
Requirement already satisfied: urllib3>=1.16 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (2.3.0)
Requirement already satisfied: pandas in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (2.2.3)
Requirement already satisfied: numpy in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ndex2>=3.5.0->oaklib) (2.0.2)
Requirement already satisfied: more-click in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ols-client>=0.1.1->oaklib) (0.1.2)
Requirement already satisfied: chardet~=5.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pronto>=2.5.0->oaklib) (5.2.0)
Requirement already satisfied: fastobo~=0.12.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pronto>=2.5.0->oaklib) (0.12.3)
Requirement already satisfied: python-dateutil~=2.8 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pronto>=2.5.0->oaklib) (2.9.0.post0)
Requirement already satisfied: annotated-types>=0.6.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pydantic->oaklib) (0.7.0)
Requirement already satisfied: pydantic-core==2.27.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pydantic->oaklib) (2.27.2)
Requirement already satisfied: setuptools in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pysolr<4.0.0,>=3.9.0->oaklib) (75.6.0)
Requirement already satisfied: tqdm in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pystow>=0.5.0->oaklib) (4.67.1)
Requirement already satisfied: attrs>=21.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests-cache<2.0.0,>=1.0.1->oaklib) (24.3.0)
Requirement already satisfied: cattrs>=22.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests-cache<2.0.0,>=1.0.1->oaklib) (24.1.2)
Requirement already satisfied: platformdirs>=2.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests-cache<2.0.0,>=1.0.1->oaklib) (4.3.6)
Requirement already satisfied: url-normalize>=1.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests-cache<2.0.0,>=1.0.1->oaklib) (1.4.3)
Requirement already satisfied: SQLAlchemy-Utils<0.39.0,>=0.38.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from semsql>=0.3.1->oaklib) (0.38.3)
Requirement already satisfied: deprecation<3.0.0,>=2.1.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (2.1.0)
Requirement already satisfied: importlib-resources<7.0.0,>=6.1.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (6.5.2)
Requirement already satisfied: linkml>1.7.10 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (1.8.5)
Requirement already satisfied: pansql>=0.0.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pansql[pansql]>=0.0.1->sssom<0.5.0,>=0.4.4->oaklib) (0.0.1)
Requirement already satisfied: scipy[scipy] in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (1.13.1)
Requirement already satisfied: sssom-schema<2.0.0,>=1.0.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (1.0.0)
Requirement already satisfied: validators>=0.20.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from sssom<0.5.0,>=0.4.4->oaklib) (0.34.0)
Requirement already satisfied: packaging in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from deprecation<3.0.0,>=2.1.0->sssom<0.5.0,>=0.4.4->oaklib) (24.2)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.5.3->oaklib) (2024.10.1)
Requirement already satisfied: referencing>=0.28.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.5.3->oaklib) (0.35.1)
Requirement already satisfied: rpds-py>=0.7.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema>=3.2.0->linkml-runtime>=1.5.3->oaklib) (0.22.3)
Requirement already satisfied: antlr4-python3-runtime<4.10,>=4.9.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (4.9.3)
Requirement already satisfied: graphviz>=0.10.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.20.3)
Requirement already satisfied: isodate>=0.6.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.7.2)
Requirement already satisfied: jinja2>=3.1.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (3.1.5)
Requirement already satisfied: linkml-dataops in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.1.0)
Requirement already satisfied: openpyxl in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (3.1.5)
Requirement already satisfied: parse in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.20.2)
Requirement already satisfied: pyshex>=0.7.20 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.8.1)
Requirement already satisfied: pyshexc>=0.8.3 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.9.1)
Requirement already satisfied: watchdog>=0.9.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (6.0.0)
WARNING: networkx 3.2.1 does not provide the extra 'networkx'
Requirement already satisfied: tzdata>=2022.7 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pandas->ndex2>=3.5.0->oaklib) (2024.2)
WARNING: pansql 0.0.1 does not provide the extra 'pansql'
Requirement already satisfied: pytest-logging<2016.0.0,>=2015.11.4 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from prefixcommons>=0.1.12->linkml-runtime>=1.5.3->oaklib) (2015.11.4)
Requirement already satisfied: pyparsing<4,>=2.1.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from rdflib<8,>=6.2.0->funowl>=0.2.0->oaklib) (3.2.1)
Requirement already satisfied: charset-normalizer<4,>=2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->eutils>=0.6.0->oaklib) (3.4.1)
Requirement already satisfied: idna<4,>=2.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->eutils>=0.6.0->oaklib) (3.10)
Requirement already satisfied: certifi>=2017.4.17 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from requests->eutils>=0.6.0->oaklib) (2024.12.14)
Requirement already satisfied: wrapt<2,>=1.10 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from deprecated->linkml-runtime>=1.5.3->oaklib) (1.17.0)
Requirement already satisfied: sortedcontainers in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytrie->curies>=0.6.6->oaklib) (2.4.0)
Requirement already satisfied: rdflib-jsonld==0.6.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from rdflib-shim->funowl>=0.2.0->oaklib) (0.6.1)
WARNING: scipy 1.13.1 does not provide the extra 'scipy'
Requirement already satisfied: MarkupSafe>=2.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jinja2>=3.1.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (3.0.2)
Requirement already satisfied: fqdn in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.5.1)
Requirement already satisfied: isoduration in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (20.11.0)
Requirement already satisfied: jsonpointer>1.13 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (3.0.0)
Requirement already satisfied: rfc3339-validator in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.1.4)
Requirement already satisfied: uri-template in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.3.0)
Requirement already satisfied: webcolors>=1.11 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (24.11.1)
Requirement already satisfied: cfgraph>=0.2.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pyshex>=0.7.20->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.2.1)
Requirement already satisfied: shexjsg>=0.8.2 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pyshex>=0.7.20->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.8.2)
Requirement already satisfied: sparqlslurper>=0.5.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pyshex>=0.7.20->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.5.1)
Requirement already satisfied: pytest>=2.8.1 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.5.3->oaklib) (8.3.4)
Requirement already satisfied: jsonpatch in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-dataops->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.33)
Requirement already satisfied: jsonpath-ng in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-dataops->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.7.0)
Requirement already satisfied: ruamel.yaml in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from linkml-dataops->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.18.8)
Requirement already satisfied: et-xmlfile in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from openpyxl->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (2.0.0)
Requirement already satisfied: iniconfig in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest>=2.8.1->pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.5.3->oaklib) (2.0.0)
Requirement already satisfied: pluggy<2,>=1.5 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from pytest>=2.8.1->pytest-logging<2016.0.0,>=2015.11.4->prefixcommons>=0.1.12->linkml-runtime>=1.5.3->oaklib) (1.5.0)
Requirement already satisfied: arrow>=0.15.0 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from isoduration->jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (1.3.0)
Requirement already satisfied: ply in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from jsonpath-ng->linkml-dataops->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (3.11)
Requirement already satisfied: ruamel.yaml.clib>=0.2.7 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from ruamel.yaml->linkml-dataops->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (0.2.12)
Requirement already satisfied: types-python-dateutil>=2.8.10 in /Users/cjm/Library/Caches/pypoetry/virtualenvs/c3p-93U7KWO_-py3.11/lib/python3.11/site-packages (from arrow>=0.15.0->isoduration->jsonschema[format]>=4.0.0->linkml>1.7.10->sssom<0.5.0,>=0.4.4->oaklib) (2.9.0.20241206)
from oaklib import get_adapter
chebi_adapter = get_adapter("sqlite:obo:chebi")
from linkml_store import Client
client = Client()
db = client.attach_database(DB)
collection = db.get_collection(CN)
study_collection = db.get_collection("study")
def get_info(study: dict):
inv = study.get("isaInvestigation", {})
studies = inv.get("studies", [])
s0 = studies[0] if studies else {}
title = s0.get("title")
desc = s0.get("description")
if title and title != "Investigation":
return title, desc
title = inv.get("title")
desc = inv.get("description")
return title, desc
study = study_collection.find(limit=1).rows[0]
print(get_info(study))
('A metabolomic study of urinary changes in type 2 diabetes in human compared to the control group', 'Type 2 diabetes mellitus is the result of a combination of impaired insulin secretion with reduced insulin sensitivity of target tissues. There are an estimated 150 million affected individuals worldwide, of whom a large proportion remains undiagnosed because of a lack of specific symptoms early in this disorder and inadequate diagnostics. In this study, NMR-based metabolomic analysis in conjunction with uni- and multivariate statistics was applied to examine the urinary metabolic changes in Human type 2 diabetes mellitus patients compared to the control group. The human population were un medicated diabetic patients who have good daily dietary control over their blood glucose concentrations by following the guidelines on diet issued by the American Diabetes Association. Note: This is part of a larger study, please refer to the original paper below.')
def study_id_from_path(path: str):
if "/" in path:
# e.g. foo/bar/MTBLS1/FILE.json
return path.split("/")[-2]
return path
def study_by_id(study_id: str):
if "/" in study_id:
study_id = study_id_from_path(study_id)
# isaInvestigation.identifier
rows = study_collection.find({"isaInvestigation.identifier": study_id}).rows
if rows:
return rows[0]
return None
get_info(study_by_id("MTBLS1"))
('A metabolomic study of urinary changes in type 2 diabetes in human compared to the control group',
'Type 2 diabetes mellitus is the result of a combination of impaired insulin secretion with reduced insulin sensitivity of target tissues. There are an estimated 150 million affected individuals worldwide, of whom a large proportion remains undiagnosed because of a lack of specific symptoms early in this disorder and inadequate diagnostics. In this study, NMR-based metabolomic analysis in conjunction with uni- and multivariate statistics was applied to examine the urinary metabolic changes in Human type 2 diabetes mellitus patients compared to the control group. The human population were un medicated diabetic patients who have good daily dietary control over their blood glucose concentrations by following the guidelines on diet issued by the American Diabetes Association. Note: This is part of a larger study, please refer to the original paper below.')
def info_by_id(study_id: str):
study = study_by_id(study_id)
if not study:
return None, None
else:
return get_info(study)
info_by_id("MTBLS138")
('Multi-omics phenotyping of the gut-liver axis reveals metabolic perturbations from a low-dose pesticide mixture in rats',
'Health effects of pesticides are not always accurately detected using the current battery of regulatory toxicity tests. We compared standard histopathology and serum biochemistry measures and multi-omics analyses in a subchronic toxicity test of a mixture of six pesticides frequently detected in foodstuffs (azoxystrobin, boscalid, chlorpyrifos, glyphosate, imidacloprid and thiabendazole) in Sprague-Dawley rats. Analysis of water and feed consumption, body weight, histopathology and serum biochemistry showed little effect. Contrastingly, serum and caecum metabolomics revealed that nicotinamide and tryptophan metabolism were affected, which suggested activation of an oxidative stress response. This was not reflected by gut microbial community composition changes evaluated by shotgun metagenomics. Transcriptomics of the liver showed that 257 genes had their expression changed. Gene functions affected included the regulation of response to steroid hormones and the activation of stress response pathways. Genome-wide DNA methylation analysis of the same liver samples showed that 4,255 CpG sites were differentially methylated. Overall, we demonstrated that in-depth molecular profiling in laboratory animals exposed to low concentrations of pesticides allows the detection of metabolic perturbations that would remain undetected by standard regulatory biochemical measures and which could thus improve the predictability of health risks from exposure to chemical pollutants.')
ea = EnrichmentAnalyzer.from_collection(collection, sample_key="src",
classification_key="c3p_classifications")
sample_ids = ea.sample_ids
results = [] # for df
cases = [] # for llm-matrix
for sample in sample_ids:
study_id = study_id_from_path(sample)
study_title, desc = info_by_id(sample)
if not study_title:
continue
file_name = sample.split("/")[-1].split(".")[0]
# print(f"## {study_title}")
ideals = []
ers = []
for r in ea.find_enriched_categories(sample, p_value_threshold=0.05):
#print(f"## {study_title} -- {sample}")
#print(f" DESC: {desc}")
#print(f" * {chebi_adapter.label(r.category)} :: {r}")
category_label = chebi_adapter.label(r.category)
results.append({
"study_id": study_id,
"study": study_title,
"description": desc,
"sample_file": file_name,
"category_label": category_label,
**r.model_dump(),
})
ers.append(r.model_dump())
ideals.append((r.adjusted_p_value, category_label))
# sort by p-value
ideals.sort()
if ideals:
enrichment_summary = "; ".join([f"{i+1}. {label}" for i, (_, label) in enumerate(ideals)])
cases.append({
"input": f"Title: {study_title}\nDescription: {desc}\nEnriched: {enrichment_summary}",
"original_input": {
"study_id": study_id,
"study": study_title,
"description": desc,
"sample_file": file_name,
"enrichment": ers,
},
"ideal": "YES",
})
suite = {
"name": "metabolights_c3po_enrichment",
"template": "enrichment",
"templates": {
"enrichment": {
"system": """I will give you a metabolomics study title and description,
and also the ordered list of chemical classes that are enriched for that study.
Tell me if the enrichment results make sense.
Return YES, NO, or OTHER, followed by an explanation.
The explanation can be of any form and length but your response must start with YES, NO, or OTHER.
""",
"prompt": '{input}',
"metrics": ["qa_with_explanation"],
},
},
"matrix": {
"hyperparameters": {
"model": ["claude-sonnet"]
},
},
"cases": cases,
}
import yaml
with open("metabolights-ora-results/metabolights_enrichment_suite.yaml", "w") as f:
f.write(yaml.dump(suite, sort_keys=False))
import pandas as pd
df = pd.DataFrame(results)
df
study_id | study | description | sample_file | category_label | category | fold_change | original_p_value | adjusted_p_value | |
---|---|---|---|---|---|---|---|---|---|
0 | MTBLS10416 | A metabolic switch orchestrated by IL-18 and t... | Tissues are exposed to diverse inflammatory ch... | m_MTBLS10416_LC-MS_alternating_hilic_metabolit... | fatty acid anion | CHEBI:28868 | 46481.178571 | 2.724382e-14 | 2.179505e-13 |
1 | MTBLS10416 | A metabolic switch orchestrated by IL-18 and t... | Tissues are exposed to diverse inflammatory ch... | m_MTBLS10416_LC-MS_alternating_hilic_metabolit... | monocarboxylic acid anion | CHEBI:35757 | 22832.859649 | 3.331356e-09 | 1.332542e-08 |
2 | MTBLS10416 | A metabolic switch orchestrated by IL-18 and t... | Tissues are exposed to diverse inflammatory ch... | m_MTBLS10416_LC-MS_alternating_hilic_metabolit... | tricarboxylic acid | CHEBI:27093 | 1191.825092 | 8.387285e-04 | 2.236609e-03 |
3 | MTBLS10416 | A metabolic switch orchestrated by IL-18 and t... | Tissues are exposed to diverse inflammatory ch... | m_MTBLS10416_LC-MS_alternating_hilic_metabolit... | fatty alcohol | CHEBI:24026 | 584.668913 | 1.709033e-03 | 2.962744e-03 |
4 | MTBLS10416 | A metabolic switch orchestrated by IL-18 and t... | Tissues are exposed to diverse inflammatory ch... | m_MTBLS10416_LC-MS_alternating_hilic_metabolit... | cation | CHEBI:36916 | 539.582504 | 1.851715e-03 | 2.962744e-03 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1336 | MTBLS959 | Subcellular antibiotic visualization reveals a... | Tuberculosis, caused by the intracellular path... | m_MTBLS959_LC-MS_alternating_reverse-phase_met... | diterpenoid | CHEBI:23849 | 9.885406 | 1.783922e-02 | 1.783922e-02 |
1337 | MTBLS968 | The accumulation profiles of terpene metabolit... | Aroma is an important parameter for table grap... | m_MTBLS968_GC-MS_positive__metabolite_profilin... | fatty alcohol | CHEBI:24026 | 4823.518531 | 1.853589e-39 | 7.414355e-39 |
1338 | MTBLS968 | The accumulation profiles of terpene metabolit... | Aroma is an important parameter for table grap... | m_MTBLS968_GC-MS_positive__metabolite_profilin... | prenols | CHEBI:26244 | 32536.825000 | 1.593974e-09 | 3.187947e-09 |
1339 | MTBLS968 | The accumulation profiles of terpene metabolit... | Aroma is an important parameter for table grap... | m_MTBLS968_GC-MS_positive__metabolite_profilin... | fatty aldehyde | CHEBI:35746 | 7935.810976 | 2.904251e-08 | 3.872335e-08 |
1340 | MTBLS968 | The accumulation profiles of terpene metabolit... | Aroma is an important parameter for table grap... | m_MTBLS968_GC-MS_positive__metabolite_profilin... | fatty acid | CHEBI:35366 | 102.188521 | 9.741102e-03 | 9.741102e-03 |
1341 rows × 9 columns
!mkdir -p output
df.to_csv("output/enrichment_results.csv", index=False)