Skip to content
dismech-terms logo

Dismech Ontology Terms Skill

dismech-terms

Skill for adding and validating ontology term references in the dismech knowledge base. This skill should be used when working with disorder YAML files that need ontology term annotations (HPO for phenotypes, CL for cell types, GO for biological processes, MONDO for diseases, UBERON for anatomica...

SKILL.md

Full skill instructions

Dismech Ontology Terms Skill

Overview

Add and validate ontology term references in the dismech disorder knowledge base. This ensures phenotypes, cell types, biological processes, and other entities are properly linked to authoritative ontology terms with correct IDs and labels.

When to Use

  • Adding phenotype_term to phenotype entries (uses HP - Human Phenotype Ontology)
  • Adding term to cell_types entries (uses CL - Cell Ontology)
  • Adding term to biological_processes entries (uses GO - Gene Ontology)
  • Adding disease_term to disease entries (uses MONDO)
  • Validating existing ontology term references
  • Fixing label mismatches between preferred_term and ontology labels

Term Object Structure

All term references follow this YAML structure:

# For phenotypes:
phenotype_term:
  preferred_term: <Human readable name>
  term:
    id: HP:XXXXXXX
    label: <Exact HP label from ontology>

# For cell types:
cell_types:
- preferred_term: <Human readable name>
  term:
    id: CL:XXXXXXX
    label: <Exact CL label from ontology>

# For biological processes:
biological_processes:
- preferred_term: <Human readable name>
  term:
    id: GO:XXXXXXX
    label: <Exact GO label from ontology>

Ontology Lookup with OAK

Use the Ontology Access Kit (OAK) to look up terms:

Exact Match

uv run runoak -i sqlite:obo:hp info "seizure"
# Returns: HP:0001250 ! Seizure

Fuzzy Search

uv run runoak -i sqlite:obo:hp info "l~cognitive impairment"
# Returns multiple matches - select the most appropriate

Get Full Term Details

uv run runoak -i sqlite:obo:cl info CL:0000540 -O obo
# Returns complete term information including definition

Common Ontology Prefixes

OntologyPrefixAdapterUse For
Human PhenotypeHPsqlite:obo:hpphenotype_term
Cell OntologyCLsqlite:obo:clcell_types
Gene OntologyGOsqlite:obo:gobiological_processes
MONDO DiseaseMONDOsqlite:obo:mondodisease_term
Uberon AnatomyUBERONsqlite:obo:uberonanatomical locations

Specificity Guidelines

Critical: Always use the most specific term that accurately describes the entity:

Incorrect (too general)Correct (specific)
CL:0000066 epithelial cellCL:0002202 epithelial cell of tracheobronchial tree
HP:0000001 AllHP:0001250 Seizure
CL:0000000 cellCL:0000540 neuron

When a fuzzy search returns multiple results:

  1. Review all candidates
  2. Check term definitions with -O obo flag
  3. Select the term that most precisely matches the biological context
  4. If no specific term exists, use the closest parent but note the limitation

Validation

After adding terms, validate with:

just validate-terms

This checks:

  • Term IDs exist in the ontology
  • Labels match the canonical ontology labels exactly
  • Required fields are present

Fixing Label Mismatches

If validation reports a label mismatch:

LABEL MISMATCH: Cholera.yaml
  Term: HP:0003394
  Expected: Muscle cramps
  Actual: Muscle spasm

Update the label field to match the ontology's canonical label exactly.

Batch Processing

To find entries missing term annotations:

import yaml
import glob

for f in glob.glob("kb/​disorders/​*.yaml"):
    with open(f) as file:
        data = yaml.safe_load(file)
    for pheno in data.get('phenotypes', []):
        if 'phenotype_term' not in pheno:
            print(f"{f}: {pheno.get('name')} - missing phenotype_term")

Common Patterns

Adding HPO to a Phenotype

  1. Look up term: uv run runoak -i sqlite:obo:hp info "l~<phenotype name>"
  2. Verify specificity: uv run runoak -i sqlite:obo:hp info <HP:ID> -O obo
  3. Add to YAML:
    phenotype_term:
      preferred_term: <Original Name>
      term:
        id: <HP:ID>
        label: <Exact label from OAK>
    
  4. Validate: just validate-terms

Adding CL to Cell Types

  1. Look up term: uv run runoak -i sqlite:obo:cl info "l~<cell type>"
  2. Verify specificity
  3. Add term: block under the cell_type entry
  4. Validate

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View