Ontology

The Ontology contains all HPOTerm s and thus reflects the full ontology including links and information about inheritance

Ontology class

class pyhpo.ontology.OntologyClass[source]

A linked and indexed list of interconnected HPOTerm s.

genes

Set of all genes associated with the HPOTerms

Type:

set

omim_diseases

Set of all OMIM-diseases associated with the HPOTerms

Type:

set

omim_excluded_diseases

Set of all excluded OMIM-diseases associated with the HPOTerms

Type:

set

get_hpo_object

OntologyClass.get_hpo_object(query)[source]

Matches a single HPO term based on its name, synonym or id

Parameters:

query (str or int) –

  • str HPO term Scoliosis

  • str synonym Curved spine

  • str HPO-ID HP:0002650

  • int HPO term id 2650

Returns:

A single matching HPO term instance

Return type:

HPOTerm

Raises:
  • RuntimeError – No HPO term is found for the provided query

  • TypeError – The provided query is an unsupported type and can’t be properly converted

  • ValueError – The provided HPO ID cannot be converted to the correct integer representation

Example

# Search by ID (int)
>>> ontology.get_hpo_object(3)
HP:0000003 | Multicystic kidney dysplasia

# Search by HPO-ID (string)
>>> ontology.get_hpo_object('HP:0000003')
HP:0000003 | Multicystic kidney dysplasia

# Search by term (string)
>>> ontology.get_hpo_object('Multicystic kidney dysplasia')
HP:0000003 | Multicystic kidney dysplasia

# Search by synonym (string)
>>> ontology.get_hpo_object('Multicystic renal dysplasia')
HP:0000003 | Multicystic kidney dysplasia

match

OntologyClass.match(query)[source]

Matches a single HPO term based on its name

Parameters:

query (str) – HPO term to match e.g: Abnormality of the nervous system

Returns:

A single matching HPO term instance

Return type:

HPOTerm

path

OntologyClass.path(query1, query2)[source]

Returns the shortest connection between two HPO terms

Parameters:
  • query1 (str or int) – HPO term 1, synonym or HPO-ID (HP:00001) to match HPO term id (Integer based) e.g: Abnormality of the nervous system

  • query2 (str or int) – HPO term 2, synonym or HPO-ID (HP:00001) to match HPO term id (Integer based) e.g: Abnormality of the nervous system

Return type:

Tuple[int, Tuple[HPOTerm, ...], int, int]

Returns:

  • int – Length of path

  • tuple – Tuple of HPOTerms in the path

  • int – Number of steps from term-1 to the common parent

  • int – Number of steps from term-2 to the common parent

synonym_match

OntologyClass.synonym_match(query)[source]

Searches for actual and synonym term matches If a match is found in any term, that one is returned If no actual match is found, the first match with synonyms is considered

Parameters:

query (str) – Term to search for

Returns:

A single HPO term instance

Return type:

HPOTerm

to_dataframe

OntologyClass.to_dataframe()[source]

Creates a Pandas DataFrame from the most important features

Each HPO term is one row, the features are present in columns

Returns:

The DataFrame of HPO-Terms and their attributes in the following columns

  • id str The HPO Term ID “HP:0000003” (used as index)

  • name str The HPO Term name “Multicystic kidney dysplasia”

  • parents str Concatenated list of direct parents of HPO terms. Separated by |

  • children str Concatenated list of direct children of HPO terms. Separated by |

  • ic_omim float Information-content (based on associated OMIM diseases)

  • ic_gene float Information-content (based on associated genes)

  • dTop_l int Maximum distance to root term (via pyhpo.term.longest_path_to_root())

  • dTop_s int Shortest distance to root term (via pyhpo.term.shortest_path_to_root())

  • dBottom int Longest graph of children nodes (via pyhpo.term.longest_path_to_bottom())

  • genes str Concatenated list of associated genes. Separated by |

  • diseases str Concatenated list of associated OMIM diseases. Separated by |

Return type:

DataFrame