Ontologyο
The Ontology
contains all HPO terms, their connections to each other and associations to genes and diseases.
It provides some helper functions for HPOTerm
search functionality
Examplesο
from pyhpo import Ontology, HPOSet
# initilize the Ontology (this must be done only once)
_ = Ontology()
# Get a term based on its name
term = Ontology.get_hpo_object('Scoliosis')
print(term)
#> HP:0002650 | Scoliosis
# ...or based on HPO-ID
term = Ontology.get_hpo_object('HP:0002650')
print(term)
#> HP:0002650 | Scoliosis
# ...or based on its index
term = Ontology.get_hpo_object(2650)
print(term)
#> HP:0002650 | Scoliosis
# shortcut to retrieve a term based on its index
term = Ontology[2650]
print(term)
#> HP:0002650 | Scoliosis
# Search for term
for term in Ontology.search('olios'):
print(term)
"""
HP:0002211 | White forelock
HP:0002290 | Poliosis
HP:0002650 | Scoliosis
HP:0002751 | Kyphoscoliosis
HP:0002943 | Thoracic scoliosis
HP:0002944 | Thoracolumbar scoliosis
HP:0003423 | Thoracolumbar kyphoscoliosis
HP:0004619 | Lumbar kyphoscoliosis
HP:0004626 | Lumbar scoliosis
HP:0005659 | Thoracic kyphoscoliosis
HP:0008453 | Congenital kyphoscoliosis
HP:0008458 | Progressive congenital scoliosis
HP:0100884 | Compensatory scoliosis
"""
(This script is complete, it should run βas isβ)
The Ontology is a Singleton and should only be initiated once. It can be reused across several modules, e.g:
main.py
from pyhpo import Ontology, HPOSet
import module2
# initilize the Ontology
_ = Ontology()
if __name__ == '__main__':
module2.find_term('Compensatory scoliosis')
module2.py
from pyhpo import Ontology
def find_term(term):
return Ontology.get_hpo_object(term)