Tissue
¶
lamindb provides access to the following public Tissue ontologies through bionty:
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()
Show 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()
Show 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 |