Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OFCO demonstrator

An interactive, fully static web app over OFCO (Ontology for Functional Consequences in Orphanet), ORDO (Orphanet Rare Diseases Ontology) and HOOM (HPO–ORDO Ontological Module) — built on top of ERDERA/OFCO_thesaurus and the Orphadata products en_product4 (HPO phenotypes) and ORDO 4.8.

It runs entirely in the browser — no backend, no triplestore. Suitable for GitHub Pages.

What it shows

  • Disease profile — for each of 1,039 rare diseases (ORDO), the OFCO functional-consequence profile (disabilities + frequency / severity / temporality, with ICF 2025 codes) alongside the HPO clinical phenotype.
  • Disease network — an interactive radial graph centred on a disease, with the most similar diseases around it. Click any neighbour to re-centre. Toggle the basis between functional consequences (OFCO) and clinical phenotype (HOOM/HPO), and ranking between similarity and shared count.
  • OFCO thesaurus — browse the 151 OFCO concepts grouped by ICF domain, with ICF code mappings and the diseases that reference each concept.
  • SPARQL — a real SPARQL 1.1 query engine (Comunica) running in your browser over an in-memory N3.js store. A curated combined graph of OFCO + HOOM + ORDO disease subset (350k triples) loads in a few seconds; an optional Load full ORDO (51 MB) button streams the entire ORDO ontology in.

Running locally

python3 -m http.server 8765 --directory app
open http://localhost:8765

Rebuilding the data files

The committed app/data/ files are derived from upstream source data. To regenerate them from scratch:

./fetch_data.sh                              # download OFCO + HPO + ORDO sources
python3 build.py                             # emit JSON for the profile/network/thesaurus views
python3 build_rdf.py                         # emit ofco-graph.ttl for the SPARQL view
cp data/ORDO_en_4.8.owl app/data/ORDO_en_4.8.rdf   # so the Pages "Load full ORDO" button works

If you edit the architecture diagram (app/data/architecture.mmd), regenerate the static SVG with mermaid-cli:

npx -y -p @mermaid-js/mermaid-cli mmdc \
  -i app/data/architecture.mmd -o app/data/architecture.svg -b transparent

Deploying to GitHub Pages

Push to main. The workflow at .github/workflows/deploy-pages.yml uploads ./app as the Pages artifact on every push and on manual dispatch.

First-time setup in your fork/repo: Settings → Pages → Source → GitHub Actions.

Notes / caveats for the SPARQL tab

  • The browser holds the entire RDF graph in memory. With the curated graph (~350k triples) you'll see ~1 GB tab RAM; after loading full ORDO it climbs to ~3 GB+. Works on a modern desktop browser; not recommended on phones.
  • Queries that do open property paths or FILTER(STRSTARTS(STR(?x), ...)) scans across the full ORDO-augmented store can take minutes. Prefer triple-pattern joins.
  • ORDO is served same-origin as ORDO_en_4.8.rdf so the static server sends application/rdf+xml and Comunica auto-detects it.

Acknowledgments

This demonstrator — together with the OFCO ontology and the HOOM module it draws on — is work carried out within ERDERA (the European Rare Diseases Research Alliance).

Maintained by:

  • Andra Waagmeester — Amsterdam UMC
  • Pauline Lubet — Amsterdam UMC
  • Marc Hanauer — Orphanet
  • David Lagorce — Orphanet

With thanks to the wider OFCO curation team at Orphanet (Dr Ana Rath, Dr Rami Nadji, Valérie Lanneau) and to the upstream providers of ORDO, ICF 2025 and HPO.

Data sources & licences

About

Interactive in-browser demonstrator over OFCO + ORDO + HOOM — disease profiles, similarity network, OFCO thesaurus browser, and Comunica SPARQL endpoint, all client-side. Built within ERDERA.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages