HPO Termsο
An HPOTerm
contains various metadata about the term, as well as pointers to its parents and children terms. You can access its information-content, calculate similarity scores to other terms, find the shortest or longes connection between two terms. List all associated genes or diseases, etc.
Examples:ο
Basic functionalities of an HPO-Term
from pyhpo import Ontology
# initilize the Ontology ()
_ = Ontology()
# Retrieve a term e.g. via its HPO-ID
term = Ontology.get_hpo_object('Scoliosis')
print(term)
#> HP:0002650 | Scoliosis
# Get information content from Term <--> Omim associations
term.information_content['omim']
#> 2.39
# Show how many genes are associated to the term
# (Note that this includes indirect associations, associations
# from children terms to genes.)
len(term.genes)
#> 947
# Show how many Omim Diseases are associated to the term
# (Note that this includes indirect associations, associations
# from children terms to diseases.)
len(term.omim_diseases)
#> 730
# Get a list of all parent terms
for p in term.parents:
print(p)
#> HP:0010674 | Abnormality of the curvature of the vertebral column
# Get a list of all children terms
for p in term.children:
print(p)
"""
HP:0002943 | Thoracic scoliosis
HP:0008458 | Progressive congenital scoliosis
HP:0100884 | Compensatory scoliosis
HP:0002944 | Thoracolumbar scoliosis
HP:0002751 | Kyphoscoliosis
"""
(This script is complete, it should run βas isβ)
Some additional functionality, working with more than one term
from pyhpo import Ontology
_ = Ontology()
term = Ontology.get_hpo_object('Scoliosis')
# Let's get a second term, this time using it HPO-ID
term_2 = Ontology.get_hpo_object('HP:0009121')
print(term_2)
#> HP:0009121 | Abnormal axial skeleton morphology
# Check if the Scoliosis is a direct or indirect child
# of Abnormal axial skeleton morphology
term.child_of(term_2)
#> True
# or vice versa
term_2.parent_of(term)
#> True
# show all nodes between two term:
path = term.path_to_other(term_2)
for t in path[1]:
print(t)
"""
HP:0002650 | Scoliosis
HP:0010674 | Abnormality of the curvature of the vertebral column
HP:0000925 | Abnormality of the vertebral column
HP:0009121 | Abnormal axial skeleton morphology
"""
print(f'Steps from Term 1 to Term 2: {path[0]}')
#> Steps from Term 1 to Term 2: 3
# Calculate the similarity between two terms
term.similarity_score(term_2)
#> 0.442
(This script is complete, it should run βas isβ)