gpsea.analysis.predicate.phenotype package
The gpsea.analysis.predicate.phenotype package provides the PhenotypePolyPredicate
for assigning Patient
into a phenotype group.
An individual can be assigned based on presence/absence of a disease diagnosis (DiseasePresencePredicate
)
or using the phenotype features encoded into HPO terms (PropagatingPhenotypePredicate
).
- class gpsea.analysis.predicate.phenotype.PhenotypePolyPredicate[source]
Bases:
Generic
[P
],PolyPredicate
[PhenotypeCategorization
[P
]]PhenotypePolyPredicate is a base class for all
PolyPredicate
that assigns an individual into a group based on phenotype. The predicate assigns an individual into one of phenotype categories P.Each phenotype category P can be a
TermId
representing an HPO term or an OMIM/MONDO term.Only one category can be investigated, and
phenotype
returns the investigated phenotype (e.g. Arachnodactyly HP:0001166).As another hallmark of this predicate, one of the categorizations must correspond to the group of patients who exibit the investigated phenotype. The categorization is provided via
present_phenotype_categorization
property.- abstract property phenotype: P
Get the phenotype entity of interest.
- abstract property present_phenotype_categorization: PhenotypeCategorization[P]
Get the categorization which represents the group of the patients who exibit the investigated phenotype.
- property present_phenotype_category: PatientCategory
Get the patient category that correspond to the group of the patients who exibit the investigated phenotype.
- class gpsea.analysis.predicate.phenotype.HpoPredicate(hpo: MinimalOntology, query: TermId, missing_implies_phenotype_excluded: bool = False)[source]
Bases:
PhenotypePolyPredicate
[TermId
]HpoPredicate tests if a patient is annotated with an HPO term.
Note, query must be a term of the provided hpo!
See HPO predicate section for an example usage.
- Parameters:
hpo – HPO ontology
query – the HPO term to test
missing_implies_phenotype_excluded – True if lack of an explicit annotation implies term’s absence`.
- property variable_name: str
Get a str with the name of the variable investigated by the partitioning.
For instance Sex, Allele groups, HP:0001250, OMIM:256000
- property present_phenotype_categorization: PhenotypeCategorization[TermId]
Get the categorization which represents the group of the patients who exibit the investigated phenotype.
- get_categorizations() Sequence[PhenotypeCategorization[TermId]] [source]
Get a sequence of all categories which the predicate can produce.
- test(patient: Patient) PhenotypeCategorization[TermId] | None [source]
An HPO TermID is given when initializing the class. Given a Patient class, this function tests whether the patient has the given phenotype.
- Parameters:
patient (Patient) – A Patient class representing a patient.
- Returns:
- PhenotypeCategorization,
either “YES” if the phenotype is listed and is not excluded, or “NO” if the phenotype is listed and excluded, otherwise will return None. Unless _missing_implies_phenotype_excluded is True, then will return “NO” if the phenotype is listed and excluded or not listed.
- Return type:
- class gpsea.analysis.predicate.phenotype.DiseasePresencePredicate(disease_id_query: TermId)[source]
Bases:
PhenotypePolyPredicate
[TermId
]DiseasePresencePredicate tests if the patient was diagnosed with a disease.
The predicate tests if the patient’s diseases include a disease ID formatted as a
TermId
.- Parameters:
disease_id_query – the Disease ID to test
- property variable_name: str
Get a str with the name of the variable investigated by the partitioning.
For instance Sex, Allele groups, HP:0001250, OMIM:256000
- property present_phenotype_categorization: PhenotypeCategorization[TermId]
Get the categorization which represents the group of the patients who exibit the investigated phenotype.
- get_categorizations() Sequence[PhenotypeCategorization[TermId]] [source]
Get a sequence of all categories which the predicate can produce.
- test(patient: Patient) PhenotypeCategorization[TermId] | None [source]
Test if the patient was diagnosed with a disease.
- Parameters:
patient (Patient) – a patient instance to be tested.
- Returns:
- PhenotypeCategorization,
either “YES” if the phenotype is listed and is not excluded, or “NO” if the disease is not listed or is excluded.
- Return type:
- class gpsea.analysis.predicate.phenotype.PhenotypeCategorization(category: PatientCategory, phenotype: P)[source]
Bases:
Generic
[P
],Categorization
On top of the attributes of the Categorization, PhenotypeCategorization keeps track of the target phenotype P.
- property phenotype: P
- gpsea.analysis.predicate.phenotype.prepare_predicates_for_terms_of_interest(cohort: Iterable[Patient], hpo: MinimalOntology, missing_implies_excluded: bool = False) Sequence[PhenotypePolyPredicate[TermId]] [source]
A convenience method for creating a battery of
PropagatingPhenotypePredicate
predicates for testing all phenotypes of interest.- Parameters:
cohort – a cohort of individuals to investigate.
hpo – an entity with an HPO graph (e.g.
MinimalOntology
).missing_implies_excluded – True if absence of an annotation should be counted as its explicit exclusion.
- gpsea.analysis.predicate.phenotype.prepare_hpo_terms_of_interest(cohort: Iterable[Patient], hpo: MinimalOntology) Sequence[TermId] [source]
Prepare a collection of HPO terms to test.
This includes the direct HPO patient annotations as well as the ancestors of the present terms and the descendants of the excluded terms.
- Parameters:
cohort – a cohort of individuals to investigate.
hpo – HPO as
MinimalOntology
.