Loading...
Loading...
Query and search the EMBL-EBI Ontology Lookup Service (OLS) for biomedical ontology terms, definitions, and hierarchies across 250+ ontologies (e.g., GO, DOID, HP). Use when the user asks to search for terms, retrieve details, navigate hierarchies (parents, children, ancestors), look up properties and individuals, get autocomplete suggestions, or access ontology metadata and statistics.
npx skill4agent add google-deepmind/science-skills embl-ebi-olsuvuvuvscripts/curlget_term.py --obo_id <ID> --summaryget_term.py --obo_id <ID> --relations childrenget_term.py --obo_id <ID> --relations parentsget_term.py --obo_id <ID> --relations ancestorsget_term.py --ontology <id> --rootsget_term.py --obo_id <ID> --relations hierarchicalParentsget_term.py --obo_id <ID> --relations hierarchicalChildrenget_term.py --obo_id <ID> --relations parents,hierarchicalParentssearch_ols.py --query "..." --ontology <id>search_ols.py --query "..." --ontology go --exactsearch_ols.py --query "..." --ontology <id> --definingsearch_ols.py --query "..." --rows N --start <offset>suggest_ols.py --query "..."get_ontology.py --id <id>get_stats.pyMulti-step queries (e.g., "What is the parent of myocardial infarction?"): When the user names a term but you don't know its OBO ID, complete in exactly 2 steps — do NOT search across multiple ontologies:
- Search in the single most appropriate ontology:
search_ols.py --query "myocardial infarction" --ontology doid --exact --rows 1 --output /tmp/step1.json- Get relations using the OBO ID from step 1:
get_term.py --obo_id DOID:5844 --relations parents --output /tmp/step2.jsonOntology selection rule: ALWAYS usefor common human diseases (e.g., diabetes, cancer),doidfor phenotypes,hpfor gene functions,gofor chemicals,chebifor anatomy,uberonfor cell types. UseclONLY when cross-species context is explicitly mentioned or needed.mondo
uv run scripts/search_ols.py --query "diabetes" \
--rows 5 --output /tmp/ols_search_results.json 2>/dev/nullImportant:is required for all scripts. Results are always written to the specified file. For larger output, you can limit--output(e.g., 5-10) or paginate using--rows.--start
irilabeldescriptionontology_nameontology_prefixobo_idshort_formtypeis_defining_ontologyexact_synonymspaginationstartrowshas_more--query--ontologygodoidefohp--typeclasspropertyindividualontology--exact--definingGO:0005634--obsolete--local--childrenOf--allChildrenOf--queryFieldslabel,synonym,description--fieldList--groupField--isLeaf--rows--start--outputuv run scripts/suggest_ols.py --query "diabet" --rows 5 \
--output /tmp/ols_suggest.json 2>/dev/null--query--ontology--rows--start--outputuv run scripts/get_term.py --obo_id "GO:0005634" \
--output /tmp/ols_term.json 2>/dev/nullirilabeldescriptionobo_idsynonymsontology_nameis_obsoleteis_defining_ontologyhas_childrenis_rootannotationin_subset--summary--outputuv run scripts/get_term.py --obo_id "GO:0005634" --summary \
--output /tmp/nucleus_full.json--obo_idGO:0005634DOID:9351--iri--iri--obo_id--ontology--obo_id--relationsparentschildrenancestorsdescendantshierarchicalParentshierarchicalChildrenhierarchicalAncestorshierarchicalDescendantsgraphNote: Use hierarchical variants for anatomical/developmental ontologies (UBERON, CL) where transitive relations like "part of" and "develops from" are critical for navigating the hierarchy.
--roots--ontology--preferred_roots--ontology--summary--output--outputuv run scripts/get_property.py --obo_id "BFO:0000051" --ontology go \
--output /tmp/ols_property.json 2>/dev/null--obo_id--iri--iri--obo_id--ontology--iri--relationsparentschildrenancestorsdescendants--roots--ontology--outputuv run scripts/get_individual.py --obo_id "IAO:0000103" --ontology iao --types \
--output /tmp/ols_individual.json 2>/dev/null--obo_id--iri--iri--obo_id--ontology--iri--types--alltypes--outputuv run scripts/get_ontology.py --id go \
--output /tmp/ols_ontology.json 2>/dev/null--idgoefodoid--page--size--outputuv run scripts/get_stats.py --output /tmp/ols_stats.json 2>/dev/null--outputsuggest_ols.pysearch_ols.py--defining--exactget_term.py--summaryget_term.py --relations parents,children--relations hierarchicalParents,hierarchicalChildrenget_term.py --ontology go --rootsget_property.pyget_individual.pyget_ontology.pyget_stats.py