Skills and tools for editing OBO format ontologies, including querying terms, checking out/checking in individual terms, and following OBO format conventions. Do not use this if the source for the ontology you are editing is not in obo format (e.g. ofn)
This skill provides guidance and tools for editing ontologies in OBO format.
Most OBO ontologies follow a similar structure:
src/ontology/{ontology}-edit.oboterms/ directory for editingUse the obo-grep.pl script for searching OBO files:
obo-grep.pl --noheader -r 'id: ONTO:0004177' src/ontology/{ontology}-edit.oboobo-grep.pl --noheader -r 'ONTO:0004177' src/ontology/{ontology}-edit.oboobo-grep.pl --noheader -r '(hand|foot)' src/ontology/{ontology}-edit.obosrc/ontology/{ontology}-edit.obo)aurelian fulltext PMID:NNNNNNobo-checkout.pl src/ontology/{ontology}-edit.obo ONTO:1234567 [OTHER_IDS]terms/{ontology}_1234567.obo (note: colon replaced with underscore)terms/ folderobo-checkin.pl src/ontology/{ontology}-edit.obo ONTO:1234567 [OTHER_IDS]terms/This skill includes three essential scripts:
obo-grep.pl - Fast searching of OBO filesobo-checkout.pl - Extract terms to individual files for editingobo-checkin.pl - Merge edited terms back into main fileAll scripts are available in your PATH when this skill is loaded.
ONTO:NNNNNNN (check project conventions for number of digits)id: - unique identifiername: - human-readable labelnamespace: - ontology namespacedef: - definition with references in square bracketsis_a, part_of, has_part, etc.ONTO:777xxxx for new termsgrep 'id: ONTO:777' src/ontology/{ontology}-edit.obodef: "..." [PMID:nnnn, doi:mmmm]aurelian fulltext <PMID:nnn> (also works with DOIs and URLs)[] without a sourceSynonyms should include proper attribution:
Correct:
synonym: "alternative name" EXACT [PMID:12345678]
synonym: "abbrev" EXACT ABBREVIATION [PMID:12345678]
is_a parentExample of proper intersection_of usage:
[Term]
id: ONTO:0000715
name: specific disease
def: "A general disease that involves specific location." [PMID:12345678]
is_a: ONTO:0001082 ! general disease
intersection_of: ONTO:0004971 ! general disease
intersection_of: disease_has_location UBERON:0000029 ! specific location
Note that in OWL this corresponds to: 'specific disease' EquivalentTo 'general disease' and 'disease has location' some 'specific location'
is_a, relationship, intersection_of)replaced_by tag (exact replacement)consider tags (suggested alternatives)Example of simple obsolescence:
[Term]
id: ONTO:0100334
name: obsolete term name
property_value: IAO:0000231 OMO:0001000
property_value: IAO:0000233 "https://github.com/{project}/issues/XXXX" xsd:anyURI
is_obsolete: true
replaced_by: ONTO:0100321
Example with considerations instead of replacement:
[Term]
id: ONTO:0100229
name: obsolete term name
def: "OBSOLETE. Original definition here." [original references]
property_value: IAO:0000231 OMO:0001000
property_value: IAO:0000233 "https://github.com/{project}/issues/XXXX" xsd:anyURI
is_obsolete: true
consider: ONTO:0100259
consider: ONTO:0100260
alt_id - use obsolescence with replacement insteadproperty_value: IAO:0000233 "https://github.com/{project}/issues/XXXX" xsd:anyURIproperty_value: http://purl.org/dc/terms/creator https://orcid.org/0000-0001-2345-6789
Validate OBO syntax using ROBOT:
robot convert --catalog src/ontology/catalog-v001.xml \
-i src/ontology/{ontology}-edit.obo \
-f obo \
-o {ontology}-edit.TMP.obo
Use -vvv flag for full stack trace if there are errors.
Many OBO ontologies use DOSDP (Dead Simple Ontology Design Patterns):
src/patterns/dosdp-patterns/*.yaml for project-specific patternsaurelian or web searchnpx skills add ai4curation/editing-obo-ontologies下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer