Tissue

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, 2025-12-04
#terms: 15770

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 processual entity An Occurrent [Span:Occurrent] That Exists In T... None []
UBERON:0000002 uterine cervix Lower, Narrow Portion Of The Uterus Where It J... cervix uteri|neck of uterus|canalis cervicis u... [UBERON:0001560, UBERON:0005156, UBERON:000099...
UBERON:0000003 naris Orifice Of The Olfactory System. The Naris Is ... None [UBERON:0000161, UBERON:0005725]
UBERON:0000004 nose The Olfactory Organ Of Vertebrates, Consisting... peripheral olfactory organ|nose|nasal sac [UBERON:0002268, UBERON:0004121]
UBERON:0000005 chemosensory organ None chemosensory sensory organ [UBERON:0000020, UBERON:0005726, UBERON:0001016]

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='lung alveolus|respiratory alveolus|alveolus pulmonis|pulmonary alveolus', parents=array(['UBERON:0003215', 'UBERON:0008874', 'UBERON:0002048',
       '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='lung alveolus|respiratory alveolus|alveolus pulmonis|pulmonary alveolus', parents=array(['UBERON:0003215', 'UBERON:0008874', 'UBERON:0002048',
       '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='lamina propria mucosae of trachea|lamina propria mucosa of trachea|tracheal lamina propria|trachea lamina propria|windpipe lamina propria mucosa|windpipe lamina propria|trachea lamina propria mucosae|lamina propria mucosae of windpipe|lamina propria mucosa of windpipe|trachea lamina propria mucosa|lamina propria of windpipe|windpipe lamina propria mucosae', 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... lung alveolus|respiratory alveolus|alveolus pu... [UBERON:0003215, UBERON:0008874, UBERON:000204...
UBERON:0002172 alveolar atrium None alveolus of lung atrium|lung alveolus atrium|a... [UBERON:0000064, UBERON:0002299, UBERON:000887...
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 fileds 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|nose|nasal sac [UBERON:0002268, UBERON:0004121]
UBERON:4300152 accessory nasal sac Accessory Nasal Sacs Are Found In A Variety Of... None [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... lung alveolus|respiratory alveolus|alveolus pu... [UBERON:0003215, UBERON:0008874, UBERON:000204...

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='object')

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 space_id created_by_id run_id dataframe_artifact_id
id
51 2zRjWH6J bionty.Tissue all uberon 2025-12-04 False True Uberon multi-species anatomy ontology http://purl.obolibrary.org/obo/uberon/releases... None http://obophenotype.github.io/uberon False 2026-01-27 17:31:29.036000+00:00 1 1 3 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 space_id created_by_id run_id dataframe_artifact_id
id
51 2zRjWH6J bionty.Tissue all uberon 2025-12-04 False True Uberon multi-species anatomy ontology http://purl.obolibrary.org/obo/uberon/releases... None http://obophenotype.github.io/uberon False 2026-01-27 17:31:29.036000+00:00 1 1 3 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, 2025-12-04
#terms: 15770

The currently used ontologies can be displayed using:

bt.Source.filter(currently_used=True).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 space_id created_by_id run_id dataframe_artifact_id
id
67 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-01-27 17:31:29.036000+00:00 1 1 3 None None
66 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-01-27 17:31:29.036000+00:00 1 1 3 None None
65 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-01-27 17:31:29.036000+00:00 1 1 3 None None
64 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-01-27 17:31:29.036000+00:00 1 1 3 None None
62 ugaIoIlj Drug all dron 2024-08-05 False True Drug Ontology http://purl.obolibrary.org/obo/dron/releases/2... None https://bioportal.bioontology.org/ontologies/DRON False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
61 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-01-27 17:31:29.036000+00:00 1 1 3 None None
59 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-01-27 17:31:29.036000+00:00 1 1 3 None None
57 h5EFbQNJ bionty.Phenotype human hp 2026-01-08 False True Human Phenotype Ontology https://github.com/obophenotype/human-phenotyp... None https://hpo.jax.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
56 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-01-27 17:31:29.036000+00:00 1 1 3 None None
55 7DFdvM5S bionty.ExperimentalFactor all efo 3.85.0 False True The Experimental Factor Ontology http://www.ebi.ac.uk/efo/releases/v3.85.0/efo.owl None https://bioportal.bioontology.org/ontologies/EFO False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
53 5pzW1FWn bionty.Disease human doid 2025-12-23 False True Human Disease Ontology http://purl.obolibrary.org/obo/doid/releases/2... None https://disease-ontology.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
52 1gZ2spLp bionty.Disease all mondo 2026-01-06 False True Mondo Disease Ontology http://purl.obolibrary.org/obo/mondo/releases/... None https://mondo.monarchinitiative.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
51 2zRjWH6J bionty.Tissue all uberon 2025-12-04 False True Uberon multi-species anatomy ontology http://purl.obolibrary.org/obo/uberon/releases... None http://obophenotype.github.io/uberon False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
50 6Z0wRdof bionty.CellType all cl 2025-12-17 False True Cell Ontology http://purl.obolibrary.org/obo/cl/releases/202... None https://obophenotype.github.io/cell-ontology False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
47 5kJm0APo bionty.CellLine all cellosaurus 53.0 False True Cellosaurus s3://bionty-assets/df_all__cellosaurus__53.0__... None https://www.cellosaurus.org/ False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
46 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-01-27 17:31:29.036000+00:00 1 1 3 None None
45 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-01-27 17:31:29.036000+00:00 1 1 3 None None
44 01RWXN2V bionty.Protein mouse uniprot 2024-03 False True Uniprot s3://bionty-assets/df_mouse__uniprot__2024-03_... None https://www.uniprot.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
43 3EYyGRYN bionty.Protein human uniprot 2024-03 False True Uniprot s3://bionty-assets/df_human__uniprot__2024-03_... None https://www.uniprot.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
42 7SwZGnr2 bionty.Gene saccharomyces cerevisiae ensembl release-114 False True Ensembl s3://bionty-assets/df_saccharomyces cerevisiae... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
41 2wv9SRzv bionty.Gene mouse ensembl release-114 False True Ensembl s3://bionty-assets/df_mouse__ensembl__release-... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
40 2w43l1YS bionty.Gene human ensembl release-114 False True Ensembl s3://bionty-assets/df_human__ensembl__release-... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
39 3wWO3xfZ bionty.Organism all ncbitaxon 2025-12-03 False True NCBItaxon Ontology http://purl.obolibrary.org/obo/ncbitaxon/2025-... None https://github.com/obophenotype/ncbitaxon False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
38 7GPHh16S bionty.Organism plants ensembl release-57 False True Ensembl https://ftp.ensemblgenomes.ebi.ac.uk/pub/plant... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
37 2PmTrc8x bionty.Organism metazoa ensembl release-57 False True Ensembl https://ftp.ensemblgenomes.ebi.ac.uk/pub/metaz... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
36 6s9nV6xh bionty.Organism fungi ensembl release-57 False True Ensembl https://ftp.ensemblgenomes.ebi.ac.uk/pub/fungi... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
35 6bbVUTCS bionty.Organism bacteria ensembl release-57 False True Ensembl https://ftp.ensemblgenomes.ebi.ac.uk/pub/bacte... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None
34 6o9usTh3 bionty.Organism vertebrates ensembl release-114 False True Ensembl https://ftp.ensembl.org/pub/release-114/specie... None https://www.ensembl.org False 2026-01-27 17:31:29.036000+00:00 1 1 3 None None