Repository navigation
Link tissue and system classes to UBERON and import the UBERON slice - #151
Merged
Merged
Conversation
Diseases point at tissue regions (targetsTissue) typed by free-standing ARI classes, so nothing tied "Nervous System" or "Skin" to a standard anatomy vocabulary. - notebook/uberon-mapping/uberon_mapping.tsv: curated mapping of the 26 classes under Multicellular anatomical structure; 21 exact UBERON terms (release 2026-10-01), Systemic, Metabolic System and All have no term, the root and beta cell (CL) are left unlinked. - build_uberon_import.py validates the TSV against uberon-basic.obo and writes ontologies/ari_uberon.owl (61 terms: the mapped ones plus their is_a ancestors). - ari_t1d.owl imports the slice; each mapped class gets rdfs:subClassOf its UBERON term and the UBERON CURIE as ARI_ID. subClassOf, not equivalentClass, because ARI's tree uses subClassOf for part-of and disagrees with UBERON's is_a in nine places. The editor must put ontologies/ on owlready2's onto_path and sync ari_uberon.owl before this merges, or loading fails on the unresolvable import. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…systems-linking-1f66a5 # Conflicts: # changelog.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
notebook/uberon-mapping/uberon_mapping.tsv: curated mapping of the 26 ARI classes under Multicellular anatomical structure (the classestargetsTissueindividuals are typed by) to UBERON, release 2026-10-01.exact.no term: Systemic, Metabolic System, All. They stay ARI classes.not linked: the root, which also holds the no-term classes, and Pancreatic beta cell, a cell type that keeps CL:0000169.build_uberon_import.py <data/2-databases>: checks every ID and label againstuberon-basic.obo, then writes:ontologies/ari_uberon.owl: the import slice, 61 UBERON terms (the mapped terms plus all their is_a ancestors) with labels, definitions and parents.ontologies/ari_t1d.owl: anowl:importsof the slice. Each mapped class getsrdfs:subClassOf <UBERON term>andARI_IDset to the UBERON CURIE. Only 3 classes had a UBERON ID before.Why subClassOf, not equivalentClass
ARI's tree uses subClassOf to mean "part of" (Pancreas ⊑ Endocrine system, Islet ⊑ Pancreas). It also puts Blood and every system directly under multicellular anatomical structure. UBERON's is_a disagrees with this in nine places; for example, blood is a fluid in UBERON. An equivalence would turn those ARI placements into claims about UBERON's own terms. This PR leaves the ARI tree unchanged. Related: #147 (tissue tree parents), which this PR does not fix.
Verified
OntologyService, withontologies/ononto_path:get_tissue_hierarchy()is identical tomainapart from the newari_idvalues.get_tissues()is identical (23 tissues).Tissue_*individuals now reach the UBERON terms, and saving keeps the import and the links.onto_path, loading fails as described above.validate_mappings.py --since main: 0 errors, 0 warnings.🤖 Generated with Claude Code