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, 2025-05-28
#terms: 15719
As for registries, you can export the ontology as a DataFrame
:
df = tissues.df()
df.head()
/tmp/ipykernel_3750/2982313663.py:1: FutureWarning: Use to_dataframe instead of df, df will be removed in the future.
df = tissues.df()
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... | cervical canal of uterus|cervix uteri|uterine ... | [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... | nose|nasal sac|peripheral olfactory organ | [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='respiratory alveolus|lung alveolus|pulmonary alveolus|alveolus pulmonis', 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='respiratory alveolus|lung alveolus|pulmonary alveolus|alveolus pulmonis', 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 windpipe|windpipe lamina propria mucosa|tracheal lamina propria|lamina propria mucosae of trachea|lamina propria of windpipe|trachea lamina propria|lamina propria mucosa of trachea|windpipe lamina propria|lamina propria mucosa of windpipe|trachea lamina propria mucosa|trachea lamina propria mucosae|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... | respiratory alveolus|lung alveolus|pulmonary a... | [UBERON:0003215, UBERON:0008874, UBERON:000204... |
UBERON:0002172 | alveolar atrium | None | atrium alveolare|lung alveolus atrium|atrium o... | [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:0002167, UBERON:000652... |
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... | nose|nasal sac|peripheral olfactory organ | [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... | respiratory alveolus|lung alveolus|pulmonary a... | [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").df()
Show code cell output
/tmp/ipykernel_3750/2870928783.py:1: FutureWarning: Use to_dataframe instead of df, df will be removed in the future.
bt.Source.filter(entity="bionty.Tissue").df()
uid | entity | organism | name | in_db | currently_used | description | url | md5 | source_website | space_id | dataframe_artifact_id | version | run_id | created_at | created_by_id | _aux | branch_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | ||||||||||||||||||
17 | 4U5uYTlc | bionty.Tissue | all | uberon | False | True | Uberon multi-species anatomy ontology | http://purl.obolibrary.org/obo/uberon/releases... | None | http://obophenotype.github.io/uberon | 1 | None | 2025-05-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
# only lists the sources that are currently used
bt.Source.filter(entity="bionty.Tissue", currently_used=True).df()
/tmp/ipykernel_3750/2234030174.py:2: FutureWarning: Use to_dataframe instead of df, df will be removed in the future.
bt.Source.filter(entity="bionty.Tissue", currently_used=True).df()
uid | entity | organism | name | in_db | currently_used | description | url | md5 | source_website | space_id | dataframe_artifact_id | version | run_id | created_at | created_by_id | _aux | branch_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | ||||||||||||||||||
17 | 4U5uYTlc | bionty.Tissue | all | uberon | False | True | Uberon multi-species anatomy ontology | http://purl.obolibrary.org/obo/uberon/releases... | None | http://obophenotype.github.io/uberon | 1 | None | 2025-05-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
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-05-28
#terms: 15719
The currently used ontologies can be displayed using:
bt.Source.filter(currently_used=True).df()
Show code cell output
/tmp/ipykernel_3750/2711573161.py:1: FutureWarning: Use to_dataframe instead of df, df will be removed in the future.
bt.Source.filter(currently_used=True).df()
uid | entity | organism | name | in_db | currently_used | description | url | md5 | source_website | space_id | dataframe_artifact_id | version | run_id | created_at | created_by_id | _aux | branch_id | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | ||||||||||||||||||
1 | 33TUF039 | bionty.Organism | vertebrates | ensembl | False | True | Ensembl | https://ftp.ensembl.org/pub/release-112/specie... | None | https://www.ensembl.org | 1 | None | release-112 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
2 | 6bbVUTCS | bionty.Organism | bacteria | ensembl | False | True | Ensembl | https://ftp.ensemblgenomes.ebi.ac.uk/pub/bacte... | None | https://www.ensembl.org | 1 | None | release-57 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
3 | 6s9nV6xh | bionty.Organism | fungi | ensembl | False | True | Ensembl | https://ftp.ensemblgenomes.ebi.ac.uk/pub/fungi... | None | https://www.ensembl.org | 1 | None | release-57 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
4 | 2PmTrc8x | bionty.Organism | metazoa | ensembl | False | True | Ensembl | https://ftp.ensemblgenomes.ebi.ac.uk/pub/metaz... | None | https://www.ensembl.org | 1 | None | release-57 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
5 | 7GPHh16S | bionty.Organism | plants | ensembl | False | True | Ensembl | https://ftp.ensemblgenomes.ebi.ac.uk/pub/plant... | None | https://www.ensembl.org | 1 | None | release-57 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
6 | 4tsksCMX | bionty.Organism | all | ncbitaxon | False | True | NCBItaxon Ontology | http://purl.obolibrary.org/obo/ncbitaxon/2023-... | None | https://github.com/obophenotype/ncbitaxon | 1 | None | 2023-06-20 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
7 | 4UGNz3fr | bionty.Gene | human | ensembl | False | True | Ensembl | s3://bionty-assets/df_human__ensembl__release-... | None | https://www.ensembl.org | 1 | None | release-112 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
8 | 4r4fvV0S | bionty.Gene | mouse | ensembl | False | True | Ensembl | s3://bionty-assets/df_mouse__ensembl__release-... | None | https://www.ensembl.org | 1 | None | release-112 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
9 | 4RPA3Re0 | bionty.Gene | saccharomyces cerevisiae | ensembl | False | True | Ensembl | s3://bionty-assets/df_saccharomyces cerevisiae... | None | https://www.ensembl.org | 1 | None | release-112 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
10 | 3EYyGRYN | bionty.Protein | human | uniprot | False | True | Uniprot | s3://bionty-assets/df_human__uniprot__2024-03_... | None | https://www.uniprot.org | 1 | None | 2024-03 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
11 | 01RWXN2V | bionty.Protein | mouse | uniprot | False | True | Uniprot | s3://bionty-assets/df_mouse__uniprot__2024-03_... | None | https://www.uniprot.org | 1 | None | 2024-03 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
12 | 3kDh8qAX | bionty.CellMarker | human | cellmarker | False | True | CellMarker | s3://bionty-assets/human_cellmarker_2.0_CellMa... | None | http://bio-bigdata.hrbmu.edu.cn/CellMarker | 1 | None | 2.0 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
13 | 7bV5uJo3 | bionty.CellMarker | mouse | cellmarker | False | True | CellMarker | s3://bionty-assets/mouse_cellmarker_2.0_CellMa... | None | http://bio-bigdata.hrbmu.edu.cn/CellMarker | 1 | None | 2.0 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
14 | 6LyRtvz8 | bionty.CellLine | all | clo | False | True | Cell Line Ontology | s3://bionty-assets/df_all__clo__2022-03-21__Ce... | None | https://bioportal.bioontology.org/ontologies/CLO | 1 | None | 2022-03-21 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
16 | 3T9KZcjQ | bionty.CellType | all | cl | False | True | Cell Ontology | http://purl.obolibrary.org/obo/cl/releases/202... | None | https://obophenotype.github.io/cell-ontology | 1 | None | 2025-04-10 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
17 | 4U5uYTlc | bionty.Tissue | all | uberon | False | True | Uberon multi-species anatomy ontology | http://purl.obolibrary.org/obo/uberon/releases... | None | http://obophenotype.github.io/uberon | 1 | None | 2025-05-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
18 | IGIkseWQ | bionty.Disease | all | mondo | False | True | Mondo Disease Ontology | http://purl.obolibrary.org/obo/mondo/releases/... | None | https://mondo.monarchinitiative.org | 1 | None | 2025-06-03 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
19 | 4kswnHVF | bionty.Disease | human | doid | False | True | Human Disease Ontology | http://purl.obolibrary.org/obo/doid/releases/2... | None | https://disease-ontology.org | 1 | None | 2024-05-29 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
21 | 2a1HvjdB | bionty.ExperimentalFactor | all | efo | False | True | The Experimental Factor Ontology | http://www.ebi.ac.uk/efo/releases/v3.70.0/efo.owl | None | https://bioportal.bioontology.org/ontologies/EFO | 1 | None | 3.70.0 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
22 | 6S4qkDx1 | bionty.Phenotype | all | pato | False | True | Phenotype And Trait Ontology | http://purl.obolibrary.org/obo/pato/releases/2... | None | https://github.com/pato-ontology/pato | 1 | None | 2024-03-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
23 | 48fBFLmn | bionty.Phenotype | human | hp | False | True | Human Phenotype Ontology | https://github.com/obophenotype/human-phenotyp... | None | https://hpo.jax.org | 1 | None | 2024-04-26 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
25 | 7Ent3V2y | bionty.Pathway | all | go | False | True | Gene Ontology | http://purl.obolibrary.org/obo/go/releases/202... | None | http://geneontology.org | 1 | None | 2024-06-17 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
27 | 3rm9aOzL | BFXPipeline | all | lamin | False | True | Bioinformatics Pipeline | s3://bionty-assets/df_all__lamin__1.0.0__BFXpi... | None | https://lamin.ai | 1 | None | 1.0.0 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
28 | ugaIoIlj | Drug | all | dron | False | True | Drug Ontology | http://purl.obolibrary.org/obo/dron/releases/2... | None | https://bioportal.bioontology.org/ontologies/DRON | 1 | None | 2024-08-05 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
30 | 1GbFkOdz | bionty.DevelopmentalStage | human | hsapdv | False | True | Human Developmental Stages | https://github.com/obophenotype/developmental-... | None | https://github.com/obophenotype/developmental-... | 1 | None | 2024-05-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
31 | 10va5JSt | bionty.DevelopmentalStage | mouse | mmusdv | False | True | Mouse Developmental Stages | https://github.com/obophenotype/developmental-... | None | https://github.com/obophenotype/developmental-... | 1 | None | 2024-05-28 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
32 | MJRqduf9 | bionty.Ethnicity | human | hancestro | False | True | Human Ancestry Ontology | http://purl.obolibrary.org/obo/hancestro/relea... | None | https://github.com/EBISPOT/hancestro | 1 | None | 3.0 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |
33 | 5JnVODh4 | BioSample | all | ncbi | False | True | NCBI BioSample attributes | s3://bionty-assets/df_all__ncbi__2023-09__BioS... | None | https://www.ncbi.nlm.nih.gov/biosample/docs/at... | 1 | None | 2023-09 | None | 2025-09-08 10:42:04.179000+00:00 | 1 | None | 1 |