PyHPO vs hpo3
hpo3 is designed as a drop-in replacement of PyHPO
. It is written in Rust and thus much faster, which enables large scale data analysis. It is almost 100% feature identical, but some obscure features might be missing. If that’s the case, please open a Github Issue.
In addition to feature parity, hpo3 also offers some additional functionality for batchwise operations that are 100s of times faster than similar implementations in PyHPO. The Rust backend also offers additional safety guarantees, such as immutability, reducing potential nasty RuntimeErrors. This immutability might come as a disadvantage though, if you actually want to modify the Ontology or terms. In cases where you need mutability, you must continue using PyHPO.
All that being said, I strongly recommend to using hpo3, as it is vastly superior.
Additional functionality:
pyhpo.HPOTerm.similarity_scores()
: Calculate similarity to many otherHPOTerm
in parallel.pyhpo.HPOSet.similarity_scores()
: Calculate similarity to many otherHPOSet
in parallel.pyhpo.stats.linkage()
: Cluster and linkage matrix analysis ofHPOSet
s for dendograms.pyhpo.helper.batch_similarity()
: Calculate similarity scores ofHPOTerm
s in parallel.pyhpo.helper.batch_set_similarity()
: Calculate similarity scores ofHPOSet
s in parallel.pyhpo.helper.batch_disease_enrichment()
: Calculate enrichment of diseases in manyHPOSet
s in parallel.pyhpo.helper.batch_gene_enrichment()
: Calculate enrichment of genes in manyHPOSet
s in parallel.
Missing or different functionality:
Association of Orpha diseases to
HPOTerm
sAssociation of Decipher diseases to
HPOTerm
scustom
InformationContent
calculationsOntology.search
does not include synonymsHPOSet.combinations
HPOSet.combinations_one_way
HPOSet.variance
HPOTerm.synonym
,HPOTerm.xref
,HPOTerm.definition
andHPOTerm.comment
are not presentHPOTerm.path_to_other
(minor implementation detail difference)Ontology.path
(minor implementation detail difference)