Tissue .md

lamindb provides access to the following public Tissue ontologies through bionty:

  1. Uberon

Here we show how to access and search Tissue ontologies to standardize new data.

import bionty as bt
import pandas as pd
 connected lamindb: testuser1/test-public-ontologies

PublicOntology objects

Let us create a public ontology accessor with .public method, which chooses a default public ontology source from Source. It’s a PublicOntology object, which you can think about as a public registry:

tissues = bt.Tissue.public(organism="all")
tissues
PublicOntology
Entity: Tissue
Organism: all
Source: uberon, 2026-06-23
#terms: 16071

As for registries, you can export the ontology as a DataFrame:

df = tissues.to_dataframe()
df.head()
name definition synonyms parents
ontology_id
UBERON:0000000 obsolete processual entity Obsolete: An Occurrent [Span:Occurrent] That E... NaN []
UBERON:0000001 gross anatomical part Anatomical Structure That Is Part Of A Multice... NaN [UBERON:0000465]
UBERON:0000002 uterine cervix Lower, Narrow Portion Of The Uterus Where It J... neck of uterus|caudal segment of uterus|cervix... [UBERON:0001560, UBERON:0005156, UBERON:000099...
UBERON:0000003 naris Orifice Of The Olfactory System. The Naris Is ... NaN [UBERON:0000161, UBERON:0005725]
UBERON:0000004 nose The Olfactory Organ Of Vertebrates, Consisting... peripheral olfactory organ|nasal sac|nose [UBERON:0004121, UBERON:0002268]

Unlike registries, you can also export it as a Pronto object via public.ontology.

Look up terms

As for registries, terms can be looked up with auto-complete:

lookup = tissues.lookup()

The . accessor provides normalized terms (lower case, only contains alphanumeric characters and underscores):

lookup.alveolus_of_lung
Tissue(ontology_id='UBERON:0002299', name='alveolus of lung', definition='Spherical Outcropping Of The Respiratory Bronchioles And Primary Site Of Gas Exchange With The Blood. Alveoli Are Particular To Mammalian Lungs. Different Structures Are Involved In Gas Exchange In Other Vertebrates[Wp].', synonyms='pulmonary alveolus|alveolus pulmonis|lung alveolus|respiratory alveolus', parents=array(['UBERON:0003215', 'UBERON:0002048', 'UBERON:0008874',
       'UBERON:0010369'], dtype=object))

To look up the exact original strings, convert the lookup object to dict and use the [] accessor:

lookup_dict = lookup.dict()
lookup_dict["alveolus of lung"]
Tissue(ontology_id='UBERON:0002299', name='alveolus of lung', definition='Spherical Outcropping Of The Respiratory Bronchioles And Primary Site Of Gas Exchange With The Blood. Alveoli Are Particular To Mammalian Lungs. Different Structures Are Involved In Gas Exchange In Other Vertebrates[Wp].', synonyms='pulmonary alveolus|alveolus pulmonis|lung alveolus|respiratory alveolus', parents=array(['UBERON:0003215', 'UBERON:0002048', 'UBERON:0008874',
       'UBERON:0010369'], dtype=object))

By default, the name field is used to generate lookup keys. You can specify another field to look up:

lookup = tissues.lookup(tissues.ontology_id)
lookup.uberon_0000031
Tissue(ontology_id='UBERON:0000031', name='lamina propria of trachea', definition='A Lamina Propria That Is Part Of A Respiratory Airway.', synonyms='trachea lamina propria mucosae|tracheal lamina propria|windpipe lamina propria|trachea lamina propria|lamina propria mucosa of trachea|lamina propria of windpipe|lamina propria mucosa of windpipe|windpipe lamina propria mucosa|lamina propria mucosae of windpipe|lamina propria mucosae of trachea|windpipe lamina propria mucosae|trachea lamina propria mucosa', parents=array(['UBERON:0004779', 'UBERON:0001005', 'UBERON:0001004'], dtype=object))

Search terms

Search behaves in the same way as it does for registries:

tissues.search("lung alveolus").head(3)
name definition synonyms parents
ontology_id
UBERON:0002299 alveolus of lung Spherical Outcropping Of The Respiratory Bronc... pulmonary alveolus|alveolus pulmonis|lung alve... [UBERON:0003215, UBERON:0002048, UBERON:000887...
UBERON:0002172 alveolar atrium NaN lung alveolus atrium|atrium of alveolus of lun... [UBERON:0000064, UBERON:0002299, UBERON:000204...
UBERON:0004861 right lung alveolus An Alveolus That Is Part Of A Right Lung [Auto... alveolus of right lung [UBERON:0002299, UBERON:0006526, UBERON:000216...

By default, search also covers synonyms and all other fields containing strings:

tissues.search("nasal sac").head(3)
name definition synonyms parents
ontology_id
UBERON:0000004 nose The Olfactory Organ Of Vertebrates, Consisting... peripheral olfactory organ|nasal sac|nose [UBERON:0004121, UBERON:0002268]
UBERON:4300152 accessory nasal sac Accessory Nasal Sacs Are Found In A Variety Of... NaN [UBERON:0000062]
UBERON:2005085 nasal artery The Nasal Arteries Start At The Internal Carot... NA [UBERON:0001637]

Search specific field (by default, search is done on all fields containing strings):

tissues.search(
    "spherical outcropping of the respiratory",
    field=tissues.definition,
).head()
name definition synonyms parents
ontology_id
UBERON:0002299 alveolus of lung Spherical Outcropping Of The Respiratory Bronc... pulmonary alveolus|alveolus pulmonis|lung alve... [UBERON:0003215, UBERON:0002048, UBERON:000887...

Standardize Tissue identifiers

Let us generate a DataFrame that stores a number of Tissue identifiers, some of which corrupted:

df_orig = pd.DataFrame(
    index=[
        "UBERON:0000000",
        "UBERON:0000005",
        "UBERON:0000001",
        "UBERON:0000002",
        "This tissue does not exist",
    ]
)
df_orig
UBERON:0000000
UBERON:0000005
UBERON:0000001
UBERON:0000002
This tissue does not exist

We can check whether any of our values are validated against the ontology reference:

validated = tissues.validate(df_orig.index, tissues.name)
df_orig.index[~validated]
! 5 unique terms (100.00%) are not validated: 'UBERON:0000000', 'UBERON:0000005', 'UBERON:0000001', 'UBERON:0000002', 'This tissue does not exist'
Index(['UBERON:0000000', 'UBERON:0000005', 'UBERON:0000001', 'UBERON:0000002',
       'This tissue does not exist'],
      dtype='str')

Ontology source versions

For any given entity, we can choose from a number of versions:

bt.Source.filter(entity="bionty.Tissue").to_dataframe()
Hide code cell output
uid entity organism name version in_db currently_used description url md5 source_website is_locked created_at branch_id created_on_id space_id created_by_id run_id dataframe_artifact_id
id
27 5PozusMv bionty.Tissue all uberon 2026-06-23 False True Uberon multi-species anatomy ontology https://github.com/obophenotype/uberon/release... None http://obophenotype.github.io/uberon False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
# only lists the sources that are currently used
bt.Source.filter(entity="bionty.Tissue", currently_used=True).to_dataframe()
uid entity organism name version in_db currently_used description url md5 source_website is_locked created_at branch_id created_on_id space_id created_by_id run_id dataframe_artifact_id
id
27 5PozusMv bionty.Tissue all uberon 2026-06-23 False True Uberon multi-species anatomy ontology https://github.com/obophenotype/uberon/release... None http://obophenotype.github.io/uberon False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None

When instantiating a Bionty object, we can choose a source or version:

source = bt.Source.filter(
    name="uberon", organism="all"
).first()
tissues= bt.Tissue.public(source=source)
tissues
PublicOntology
Entity: Tissue
Organism: all
Source: uberon, 2026-06-23
#terms: 16071

The currently used ontologies can be displayed using:

bt.Source.filter(currently_used=True).to_dataframe()
Hide code cell output
! truncated query result to limit=20 Source objects
uid entity organism name version in_db currently_used description url md5 source_website is_locked created_at branch_id created_on_id space_id created_by_id run_id dataframe_artifact_id
id
43 5JnVODh4 BioSample all ncbi 2023-09 False True NCBI BioSample attributes s3://bionty-assets/df_all__ncbi__2023-09__BioS... None https://www.ncbi.nlm.nih.gov/biosample/docs/at... False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
42 7au3ZQrD bionty.Ethnicity human hancestro 2025-10-14 False True Human Ancestry Ontology http://purl.obolibrary.org/obo/hancestro/relea... None https://github.com/EBISPOT/hancestro False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
41 6na9vRls bionty.DevelopmentalStage mouse mmusdv 2025-01-23 False True Mouse Developmental Stages https://github.com/obophenotype/developmental-... None https://github.com/obophenotype/developmental-... False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
40 7JO1x6p1 bionty.DevelopmentalStage human hsapdv 2025-01-23 False True Human Developmental Stages https://github.com/obophenotype/developmental-... None https://github.com/obophenotype/developmental-... False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
38 6bSx9Bpd Drug all chebi 2026-09-01 False True Chemical Entities of Biological Interest s3://bionty-assets/df_all__chebi__2026-09-01__... None https://www.ebi.ac.uk/chebi/ False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
37 3rm9aOzL BFXPipeline all lamin 1.0.0 False True Bioinformatics Pipeline s3://bionty-assets/df_all__lamin__1.0.0__BFXpi... None https://lamin.ai False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
35 2UZHts8n bionty.Pathway all go 2025-10-10 False True Gene Ontology http://purl.obolibrary.org/obo/go/releases/202... None http://geneontology.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
33 6Q3pqM4z bionty.Phenotype human hp 2026-09-01 False True Human Phenotype Ontology https://github.com/obophenotype/human-phenotyp... None https://hpo.jax.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
32 2rMQe2ZH bionty.Phenotype all pato 2025-05-14 False True Phenotype And Trait Ontology http://purl.obolibrary.org/obo/pato/releases/2... None https://github.com/pato-ontology/pato False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
31 1NahqGNY bionty.ExperimentalFactor all efo 3.93.0 False True The Experimental Factor Ontology https://github.com/EBISPOT/efo/releases/downlo... None https://bioportal.bioontology.org/ontologies/EFO False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
29 1UuMSPhi bionty.Disease human doid 2026-08-31 False True Human Disease Ontology http://purl.obolibrary.org/obo/doid/releases/2... None https://disease-ontology.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
28 6Oa6a7Pp bionty.Disease all mondo 2026-09-01 False True Mondo Disease Ontology http://purl.obolibrary.org/obo/mondo/releases/... None https://mondo.monarchinitiative.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
27 5PozusMv bionty.Tissue all uberon 2026-06-23 False True Uberon multi-species anatomy ontology https://github.com/obophenotype/uberon/release... None http://obophenotype.github.io/uberon False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
26 dq7QgcSP bionty.CellType all cl 2026-06-08 False True Cell Ontology http://purl.obolibrary.org/obo/cl/releases/202... None https://obophenotype.github.io/cell-ontology False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
23 13AwGU4n bionty.CellLine all cellosaurus 56.0 False True Cellosaurus s3://bionty-assets/df_all__cellosaurus__56.0__... None https://www.cellosaurus.org/ False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
22 7bV5uJo3 bionty.CellMarker mouse cellmarker 2.0 False True CellMarker s3://bionty-assets/mouse_cellmarker_2.0_CellMa... None http://bio-bigdata.hrbmu.edu.cn/CellMarker False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
21 3kDh8qAX bionty.CellMarker human cellmarker 2.0 False True CellMarker s3://bionty-assets/human_cellmarker_2.0_CellMa... None http://bio-bigdata.hrbmu.edu.cn/CellMarker False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
20 1FUaRMsN bionty.Protein bos taurus uniprot 2026-01 False True UniProt s3://bionty-assets/df_bos-taurus__uniprot__202... None https://www.uniprot.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
19 8vZdNSGd bionty.Protein saccharomyces cerevisiae uniprot 2026-01 False True UniProt s3://bionty-assets/df_saccharomyces-cerevisiae... None https://www.uniprot.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None
18 1894sCXT bionty.Protein arabidopsis thaliana uniprot 2026-01 False True UniProt s3://bionty-assets/df_arabidopsis-thaliana__un... None https://www.uniprot.org False 2026-09-15 10:20:18.350000+00:00 1 1 1 1 None None