From 0535ef32aa0c7fddbec9235f6f73759b58aa90de Mon Sep 17 00:00:00 2001 From: Daniel Danis Date: Wed, 11 Dec 2024 14:47:56 +0100 Subject: [PATCH 1/4] Next development iteration `0.8.1.dev0`. --- docs/conf.py | 2 +- src/gpsea/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 1b5767ba..c09271be 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -63,7 +63,7 @@ # The short X.Y version. version = u'0.8' # The full version, including alpha/beta/rc tags. -release = u'0.8.0' +release = u'0.8.1.dev0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/src/gpsea/__init__.py b/src/gpsea/__init__.py index 9b79129a..28100503 100644 --- a/src/gpsea/__init__.py +++ b/src/gpsea/__init__.py @@ -2,7 +2,7 @@ GPSEA is a library for finding genotype-phenotype associations. """ -__version__ = "0.8.0" +__version__ = "0.8.1.dev0" _overwrite = False """ From 2f9b036b6576cc92801f93d377127bf85c64358d Mon Sep 17 00:00:00 2001 From: Daniel Danis Date: Thu, 12 Dec 2024 13:29:08 +0100 Subject: [PATCH 2/4] Use classifiers instead of genotype/phenotype predicates. --- .github/workflows/pages.yml | 1 + docs/tutorial.rst | 44 +- docs/user-guide/analyses/index.rst | 2 +- docs/user-guide/analyses/measurements.rst | 20 +- .../partitioning/genotype/allele_count.rst | 53 ++- .../partitioning/genotype/diagnosis.rst | 16 +- .../genotype/img/allele-count-zero-one.png | Bin 62095 -> 48300 bytes .../genotype/img/allele-count.png | Bin 67726 -> 0 bytes .../img/biallelic-classifier-w-partitions.png | Bin 0 -> 66427 bytes .../genotype/img/biallelic-classifier.png | Bin 0 -> 56040 bytes .../img/biallelic-predicate-w-partitions.png | Bin 86173 -> 0 bytes .../genotype/img/biallelic-predicate.png | Bin 73282 -> 0 bytes .../genotype/img/diagnosis-classifier.png | Bin 0 -> 56132 bytes .../genotype/img/diagnosis-predicate.png | Bin 74877 -> 0 bytes .../genotype/img/monoallelic-classifier.png | Bin 0 -> 61558 bytes .../genotype/img/monoallelic-predicate.png | Bin 84961 -> 0 bytes .../genotype/img/sex-classifier.png | Bin 0 -> 37674 bytes .../genotype/img/sex-predicate.png | Bin 59785 -> 0 bytes .../analyses/partitioning/genotype/index.rst | 16 +- .../analyses/partitioning/genotype/sex.rst | 16 +- .../genotype/variant_category.rst | 131 +++--- .../genotype/variant_predicates.rst | 35 +- .../analyses/partitioning/index.rst | 37 +- .../partitioning/phenotype/hpo_predicate.rst | 59 ++- .../analyses/partitioning/phenotype/index.rst | 8 +- ...otype-groups.rst => phenotype-classes.rst} | 110 +++-- docs/user-guide/analyses/phenotype-scores.rst | 56 +-- .../report}/rere_phenotype_score_boxplot.png | Bin .../analyses/report}/umod_km_curves.png | Bin docs/user-guide/analyses/survival.rst | 27 +- src/gpsea/analysis/_base.py | 196 ++++---- src/gpsea/analysis/clf/__init__.py | 38 ++ src/gpsea/analysis/clf/_api.py | 350 ++++++++++++++ .../{predicate/genotype => clf}/_counter.py | 3 +- .../_gt_classifiers.py} | 152 +++--- src/gpsea/analysis/clf/_pheno.py | 185 ++++++++ .../_test__gt_classifiers.py} | 2 +- .../{predicate/phenotype => clf}/_util.py | 16 +- src/gpsea/analysis/mtc_filter/_impl.py | 140 +++--- src/gpsea/analysis/pcats/__init__.py | 24 +- src/gpsea/analysis/pcats/_impl.py | 177 +++---- src/gpsea/analysis/predicate/__init__.py | 42 +- src/gpsea/analysis/predicate/_api.py | 339 +++++++------ .../predicate/{genotype => }/_predicates.py | 0 src/gpsea/analysis/predicate/_variant.py | 442 +++++++++++++++++ .../analysis/predicate/genotype/__init__.py | 16 - src/gpsea/analysis/predicate/genotype/_api.py | 226 --------- .../analysis/predicate/genotype/_variant.py | 445 ------------------ .../analysis/predicate/phenotype/__init__.py | 19 - .../analysis/predicate/phenotype/_pheno.py | 316 ------------- src/gpsea/analysis/pscore/_api.py | 85 ++-- src/gpsea/analysis/temporal/_api.py | 37 +- src/gpsea/preprocessing/_vep.py | 20 +- src/gpsea/view/_phenotype_analysis.py | 16 +- .../{predicate/genotype => clf}/conftest.py | 177 ------- .../genotype => clf}/test_allele_counter.py | 8 +- .../genotype => clf}/test_gt_predicates.py | 52 +- .../{predicate => clf}/test_phenotype.py | 8 +- tests/analysis/conftest.py | 27 +- tests/analysis/pcats/test_disease.py | 26 +- .../analysis/pcats/test_hpo_term_analysis.py | 20 +- tests/analysis/predicate/conftest.py | 191 ++++++++ tests/analysis/predicate/genotype/__init__.py | 0 .../{genotype => }/test_predicates.py | 54 +-- tests/analysis/pscore/test_pscore_api.py | 19 +- tests/analysis/temporal/test_temporal_api.py | 31 +- tests/analysis/test_analysis_result.py | 28 +- tests/analysis/test_mtc_filter.py | 170 ++++--- tests/conftest.py | 40 +- tests/test_predicates.py | 8 +- tests/view/test_view.py | 30 +- 71 files changed, 2458 insertions(+), 2348 deletions(-) delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/allele-count.png create mode 100644 docs/user-guide/analyses/partitioning/genotype/img/biallelic-classifier-w-partitions.png create mode 100644 docs/user-guide/analyses/partitioning/genotype/img/biallelic-classifier.png delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate-w-partitions.png delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate.png create mode 100644 docs/user-guide/analyses/partitioning/genotype/img/diagnosis-classifier.png delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/diagnosis-predicate.png create mode 100644 docs/user-guide/analyses/partitioning/genotype/img/monoallelic-classifier.png delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/monoallelic-predicate.png create mode 100644 docs/user-guide/analyses/partitioning/genotype/img/sex-classifier.png delete mode 100644 docs/user-guide/analyses/partitioning/genotype/img/sex-predicate.png rename docs/user-guide/analyses/{phenotype-groups.rst => phenotype-classes.rst} (77%) rename docs/{img => user-guide/analyses/report}/rere_phenotype_score_boxplot.png (100%) rename docs/{img => user-guide/analyses/report}/umod_km_curves.png (100%) create mode 100644 src/gpsea/analysis/clf/__init__.py create mode 100644 src/gpsea/analysis/clf/_api.py rename src/gpsea/analysis/{predicate/genotype => clf}/_counter.py (97%) rename src/gpsea/analysis/{predicate/genotype/_gt_predicates.py => clf/_gt_classifiers.py} (82%) create mode 100644 src/gpsea/analysis/clf/_pheno.py rename src/gpsea/analysis/{predicate/genotype/_test__gt_predicates.py => clf/_test__gt_classifiers.py} (97%) rename src/gpsea/analysis/{predicate/phenotype => clf}/_util.py (86%) rename src/gpsea/analysis/predicate/{genotype => }/_predicates.py (100%) create mode 100644 src/gpsea/analysis/predicate/_variant.py delete mode 100644 src/gpsea/analysis/predicate/genotype/__init__.py delete mode 100644 src/gpsea/analysis/predicate/genotype/_api.py delete mode 100644 src/gpsea/analysis/predicate/genotype/_variant.py delete mode 100644 src/gpsea/analysis/predicate/phenotype/__init__.py delete mode 100644 src/gpsea/analysis/predicate/phenotype/_pheno.py rename tests/analysis/{predicate/genotype => clf}/conftest.py (73%) rename tests/analysis/{predicate/genotype => clf}/test_allele_counter.py (96%) rename tests/analysis/{predicate/genotype => clf}/test_gt_predicates.py (73%) rename tests/analysis/{predicate => clf}/test_phenotype.py (59%) create mode 100644 tests/analysis/predicate/conftest.py delete mode 100644 tests/analysis/predicate/genotype/__init__.py rename tests/analysis/predicate/{genotype => }/test_predicates.py (83%) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 41e7661f..e2d72f8c 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -52,6 +52,7 @@ jobs: cd docs sphinx-apidoc --separate --module-first -d 2 -H "API reference" --follow-links -o apidocs ../src/gpsea make clean html + # make clean html 2>&1 > /dev/null | less mv _build/html/* ../gh-pages/${DOCDIR} cd .. diff --git a/docs/tutorial.rst b/docs/tutorial.rst index ae774626..35cabc3d 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -42,8 +42,8 @@ A typical GPSEA analysis will consist of several steps. Starting with a collecti we perform input Q/C and functional variant annotation to prepare a cohort. With the cohort on hand, we generate reports with summary statistics, variant distributions, and most common Human Phenotype Ontology (HPO) terms or measurements. -We then configure the methods for partitioning the cohort into genotype and phenotype groups, -to test for possible associations between the groups. +We then configure the methods for partitioning the cohort into genotype and phenotype classes, +to test for possible associations between the classes. We finalize the analysis by statistical testing and evaluation of the results. @@ -240,54 +240,56 @@ with one or more variant alleles (*Count*): Partition the cohort by genotype and phenotype ============================================== -To test for genotype-phenotype associations, we need to partition the cohort into subsets. -In GPSEA, we always assign a cohort member into a genotype group, -where each individual is assigned into a single group and the groups do not overlap. -The phenotype is then used to either assign into a group or to calculate a numeric score. +To test for genotype-phenotype associations, we need to divide the cohort into classes. +In GPSEA, we always assign a cohort member into a genotype class, +where each individual is assigned into a single class and the classes do not overlap. +The phenotype is then used to either assign an individual into a class, +or to calculate a numeric score or survival. Partition by genotype --------------------- -In context of the tutorial, we assign each cohort member into a group +In context of the tutorial, we assign each cohort member into a class depending on presence of a single allele of a missense or truncating variant (e.g. frameshift, stop gain, or splice site region): >>> from gpsea.model import VariantEffect ->>> from gpsea.analysis.predicate.genotype import VariantPredicates, monoallelic_predicate ->>> is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id) +>>> from gpsea.analysis.predicate import variant_effect, anyof +>>> from gpsea.analysis.clf import monoallelic_classifier +>>> is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id) >>> truncating_effects = ( ... VariantEffect.FRAMESHIFT_VARIANT, ... VariantEffect.STOP_GAINED, ... VariantEffect.SPLICE_DONOR_VARIANT, ... VariantEffect.SPLICE_ACCEPTOR_VARIANT, ... ) ->>> is_truncating = VariantPredicates.any(VariantPredicates.variant_effect(e, tx_id) for e in truncating_effects) ->>> gt_predicate = monoallelic_predicate( +>>> is_truncating = anyof(variant_effect(e, tx_id) for e in truncating_effects) +>>> gt_clf = monoallelic_classifier( ... a_predicate=is_missense, ... b_predicate=is_truncating, ... a_label="Missense", b_label="Truncating", ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Missense', 'Truncating') This is a lot of code, and detailed explanations and examples are available in the :ref:`partitioning` section. -For now, it is enough to know that the `gt_predicate` will assign the individuals -into `Missense` or `Truncating` group. The individuals with the number of missense (or truncating) variants +For now, it is enough to know that the `gt_clf` will assign the individuals +into `Missense` or `Truncating` class. The individuals with the number of missense (or truncating) variants different than one will be omitted from the analysis. Partition by phenotype ---------------------- -We use HPO terms to assign the individuals into phenotype groups, +We use HPO terms to assign the individuals into phenotype classes, according to the term's presence or exclusion. The testing leverages the :ref:`true-path-rule` of ontologies. -We now prepare the predicates for assigning into phenotype groups: +We now prepare the classifiers for assigning into phenotype classes: ->>> from gpsea.analysis.predicate.phenotype import prepare_predicates_for_terms_of_interest ->>> pheno_predicates = prepare_predicates_for_terms_of_interest( +>>> from gpsea.analysis.clf import prepare_classifiers_for_terms_of_interest +>>> pheno_clfs = prepare_classifiers_for_terms_of_interest( ... cohort=cohort, ... hpo=hpo, ... ) @@ -299,7 +301,7 @@ Multiple testing correction By default, GPSEA performs a test for each HPO term used to annotate at least one individual in the cohort, and there are 369 such terms in *TBX5* cohort: ->>> len(pheno_predicates) +>>> len(pheno_clfs) 369 However, testing multiple hypothesis on the same dataset increases the chance of receiving false positive result. @@ -329,8 +331,8 @@ Now we can perform the testing and evaluate the results. >>> result = analysis.compare_genotype_vs_phenotypes( ... cohort=cohort, -... gt_predicate=gt_predicate, -... pheno_predicates=pheno_predicates, +... gt_clf=gt_clf, +... pheno_clfs=pheno_clfs, ... ) >>> result.total_tests 17 diff --git a/docs/user-guide/analyses/index.rst b/docs/user-guide/analyses/index.rst index 58fdabc0..d0aab168 100644 --- a/docs/user-guide/analyses/index.rst +++ b/docs/user-guide/analyses/index.rst @@ -17,7 +17,7 @@ and explanations of how they are implemented by our software. :caption: Contents: partitioning/index - phenotype-groups + phenotype-classes mtc phenotype-scores measurements diff --git a/docs/user-guide/analyses/measurements.rst b/docs/user-guide/analyses/measurements.rst index c555d54a..4661b2cc 100644 --- a/docs/user-guide/analyses/measurements.rst +++ b/docs/user-guide/analyses/measurements.rst @@ -1,9 +1,9 @@ .. _measurement-stat: -========================== -Compare measurement values -========================== +==================== +Compare measurements +==================== **************** @@ -55,21 +55,21 @@ Missense should *NOT* be severe. TODO - create real predicate. >>> from gpsea.model import VariantEffect ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=tx_id) +>>> from gpsea.analysis.predicate import variant_effect +>>> is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=tx_id) >>> is_missense.description 'MISSENSE_VARIANT on NM_000500.9' Assuming AR inheritance, we compare missense vs. rest: ->>> from gpsea.analysis.predicate.genotype import biallelic_predicate ->>> gt_predicate = biallelic_predicate( +>>> from gpsea.analysis.clf import biallelic_classifier +>>> gt_clf = biallelic_classifier( ... a_predicate=is_missense, ... b_predicate=~is_missense, ... a_label="Missense", b_label="Other", ... partitions=({0,}, {1, 2}), ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Missense/Missense', 'Missense/Other OR Other/Other') Phenotype score @@ -118,7 +118,7 @@ We execute the analysis by running >>> result = score_analysis.compare_genotype_vs_phenotype_score( ... cohort=cohort, -... gt_predicate=gt_predicate, +... gt_clf=gt_clf, ... pheno_scorer=pheno_scorer, ... ) @@ -140,7 +140,7 @@ individual 14[PMID_30968594_individual_14] 1 664.0 Prepare genotype category legend: ->>> gt_id_to_name = {c.category.cat_id: c.category.name for c in gt_predicate.get_categorizations()} +>>> gt_id_to_name = {c.category.cat_id: c.category.name for c in gt_clf.get_categorizations()} >>> gt_id_to_name {0: 'Missense/Missense', 1: 'Missense/Other OR Other/Other'} diff --git a/docs/user-guide/analyses/partitioning/genotype/allele_count.rst b/docs/user-guide/analyses/partitioning/genotype/allele_count.rst index eb66450f..00717536 100644 --- a/docs/user-guide/analyses/partitioning/genotype/allele_count.rst +++ b/docs/user-guide/analyses/partitioning/genotype/allele_count.rst @@ -16,14 +16,15 @@ with the variant category analysis described in the :ref:`variant-category` sect The allele count analysis compares the allele counts while keeping the variant type constant, whereas the variant category analysis compares variant types while keeping the total allele count constant. -A predicate for the allele count analysis is created with -the :func:`~gpsea.analysis.predicate.genotype.allele_count` function. +A classifier for the allele count analysis is created with +the :func:`~gpsea.analysis.clf.allele_count` function. The function needs two arguments: -``target`` with a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` for selecting the target variant type, +``target`` with a :class:`~gpsea.analysis.predicate.VariantPredicate` for selecting the target variant type, and ``counts`` with the target allele counts. The ``target`` variant predicate typically selects a broad variant types - for instance, all variants that affect a gene of interest. The ``counts`` take the allele counts to compare. -The inputs are best illustrated on a few examples. + +Let's show a few examples. ******** @@ -33,18 +34,19 @@ Examples Compare the individuals with *EGFR* mutation ============================================ -We can use the allele count analysis to test for G/P associations between the individuals with no mutation in *EGFR* +We can use the allele count analysis to test for G/P associations +between the individuals with no mutation in *EGFR* and the individuals harboring 1 variant allele. -First, let's create a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` +First, let's create a :class:`~gpsea.analysis.predicate.VariantPredicate` to select variants that affect *EGFR*: ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> affects_egfr = VariantPredicates.gene(symbol="EGFR") +>>> from gpsea.analysis.predicate import gene +>>> affects_egfr = gene(symbol="EGFR") >>> affects_egfr.description 'affects EGFR' -Next, we create allele count predicate to partition the individuals +Next, we create allele count classifier to partition the individuals based on presence of zero or one *EGFR* mutation allele: .. figure:: img/allele-count-zero-one.png @@ -53,22 +55,23 @@ based on presence of zero or one *EGFR* mutation allele: :width: 600px ->>> from gpsea.analysis.predicate.genotype import allele_count ->>> gt_predicate = allele_count( +>>> from gpsea.analysis.clf import allele_count +>>> gt_clf = allele_count( ... counts=(0, 1), ... target=affects_egfr, ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('0', '1') -We create the predicate with two arguments. -The ``counts`` argument takes a tuple of the target allele counts, -to partition the individuals based on zero or one allele. -The ``target`` takes a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` -selecting the target variants. The ``target`` is particularly important +The ``allele_count`` needs two inputs. +The ``counts`` takes a tuple of the target allele counts, +in order to partition the individuals based on zero or one allele. +The ``target`` takes a :class:`~gpsea.analysis.predicate.VariantPredicate` +to select the target variants. +The ``target`` is particularly important if the cohort members include variants in other genes than *EGFR*. -The resulting ``gt_predicate`` can partition a cohort along the genotype axis, +The resulting ``gt_clf`` can partition a cohort along the genotype axis, e.g. to compare the patient survivals in a `survival analysis `. @@ -80,8 +83,8 @@ As another example, let's partition individuals based on one or two alleles of a For this example, the target mutation is any mutation that affects *LMNA*: ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> affects_lmna = VariantPredicates.gene(symbol="LMNA") +>>> from gpsea.analysis.predicate import gene +>>> affects_lmna = gene(symbol="LMNA") >>> affects_lmna.description 'affects LMNA' @@ -94,16 +97,14 @@ and we will compare the individuals with one allele with those with two alleles: :width: 600px ->>> gt_predicate = allele_count( +>>> gt_clf = allele_count( ... counts=(1, 2), ... target=affects_lmna, ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('1', '2') -The predicate will partition the individuals into two groups: +The classifier assigns the individuals into one of two classes: those with one *LMNA* variant allele and those with two *LMNA* variant alleles. -The individual with other allele counts (e.g. `0` or `3`) will be excluded -from the analysis. - +Any cohort member with other allele counts (e.g. `0` or `3`) is ignored. diff --git a/docs/user-guide/analyses/partitioning/genotype/diagnosis.rst b/docs/user-guide/analyses/partitioning/genotype/diagnosis.rst index da25592e..9c117410 100644 --- a/docs/user-guide/analyses/partitioning/genotype/diagnosis.rst +++ b/docs/user-guide/analyses/partitioning/genotype/diagnosis.rst @@ -4,26 +4,26 @@ Group by diagnosis ================== -.. figure:: img/diagnosis-predicate.png - :alt: Diagnosis predicate +.. figure:: img/diagnosis-classifier.png + :alt: Diagnosis classifier :align: center :width: 600px We can easily compare individuals diagnosed with different diseases. -:func:`~gpsea.analysis.predicate.genotype.diagnosis_predicate` groups the individuals +:func:`~gpsea.analysis.clf.diagnosis_classifier` groups the individuals based on a diagnosis presence. ->>> from gpsea.analysis.predicate.genotype import diagnosis_predicate ->>> gt_predicate = diagnosis_predicate( +>>> from gpsea.analysis.clf import diagnosis_classifier +>>> gt_clf = diagnosis_classifier( ... diagnoses=('OMIM:154700', 'OMIM:129600'), ... labels=('Marfan syndrome', 'Ectopia lentis, familial'), ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('OMIM:154700', 'OMIM:129600') -The predicate takes two or more disease identifiers (`diagnoses`) as well as their names (`labels`), -and it assigns the individuals based on their diagnoses. +The classifier takes two or more disease identifiers (`diagnoses`) as well as their names (`labels`), +and it classifies the individuals based on their diagnoses. Note, the assignment must be unambiguous; any individual labeled with two or more target diagnoses (e.g. an individual diagnosed with both *Marfan syndrome* and *Ectopia lentis, familial* in the example above) diff --git a/docs/user-guide/analyses/partitioning/genotype/img/allele-count-zero-one.png b/docs/user-guide/analyses/partitioning/genotype/img/allele-count-zero-one.png index 3bae270d2ff41d08765b89a0ab2989c7d5a7cbe6..144bf45e2dabbcaef24bdd6d29e055dfa1545fe1 100644 GIT binary patch literal 48300 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⪻2*y*VNzE^WvpBkKK18OP#ZNg)Q%m|H}G#=L>YO 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 RcaVU8igIeQFd6gE{{x)Sa`ONH literal 62095 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�eJ~b2p3@tl5bB8@Mm}fxL9Qav0?UiO1JUlY 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 uHy6dh6@ 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 W*ty3sIq(#LpPSe3DCAr<^7}u!DDj> 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate-w-partitions.png b/docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate-w-partitions.png deleted file mode 100644 index b735f11b05f09d98c82bd677e8c3119e694fdcef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86173 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

A)h5xrPh;0=OZy<|0i;H~pvXW-|Pr z-=q!g7F27m2^=55awT<+yq=}Ow^5}%!o3@iJI2S~`7@o<5o4?G$m`uA+~_$*IEECd zwjUzKh5dj1LzZ!g(f;vil4Ag{#S=d1@3$9(T{cs$Ze0@@09c0vVnN%JOFTvlk=ITX z&RVDyPOYA5tw1aJH^A7t+3hu4&j-nA)3$il$zC>?3&6cQ5clppmT%UU?}NN~f*3|$ z@0Jjck@u^X8rs-WZSx2D(pN4$gLl9x?y%Zcl7T0P9GLiJ?gJJx9np>tXTN2q%jXi$(qg%o0gy^*^X)e=M17g^XITiS#sy6xsp@sJ?C6|M5M`?d;S(92GNBH#1$t!Z zf>uxb;LydYs*=)FXp>gY#07_0)))9mF9f;9%1>mpQWF(Yb+7@5jhkqUS)EJ~Avxir vYVun>LuE>4>D`DAbTtot+Kih$LuO1M@xHG9D@S}WPO`-Uz$;1Bv==xsF diff --git a/docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate.png b/docs/user-guide/analyses/partitioning/genotype/img/biallelic-predicate.png deleted file mode 100644 index 4f39ec8c3d0c3a45f8ec6ad4320afe268999c69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73282 zcmY&<1ymf-vMuiJE`tRR5L^R8a0xJIkf6ccJ-7!C4#5Wt1PM-X3GVK}-TilR-~Io; zS&KES?&+C6Rdsgl+EpE)sw{(vMur9h1A{3i3s!@HLC}DKflWd|0*;WgyGa3Ws1C9^ z&M+`|E`R@ESIntBfPm~mPAgSf z20S+_&e_h&$G@|@#dicp>7bFnj9!yqAO-z0+9kou^cVU@%zISA&Nl1HKh>b4vSr`V z*r5;g(t{*#z03b?UE0FZtZ{d6IDbzqBV-3$7+QYn?uz`M>p8+@{f*nRkTtH1v~K#0 zUV9*nlLri?*CS7hAwRZGvw-~8YH$Cv!(dU-_nqt%%^WzYNQa1MXcn#ZLr4GKK|dK? z$=`d)o26CX@g<$!m5sJt&VSRd)FL)|7CQ_ zrlz|MFE(vc+@rXFqY(hg6~}>1v6wrYWo6yo*7llI!z7^LSAY+R~V8oY)GA zUVd-WXsfGZ0da?Z{R(#~xgbeoh?KTiYkRO7uxd7|6ZC7%lCQ;4sDI7;A?YH}zV7`+ z`K`4!7xU2>nIGgKdBw)A|24T{fyXm~k>UhL)Vn(k^qxdH zk;iha=^N}HthDG`lf!P%%++x}GK^5WuHOYWRo#Yt3TqF2b?-SHmF~2ffma^P|s=+WuSn0c@%ER-q&SL3h0 z$C`0C1bm9?Wo|!Rt%v185Gax-X6`_;@1A%_FqSdo*rexRMW$*OEgC%ZadD|%i?*db zrzeCqI+r4oZDt_rvRc2sRDG@-9F7n-Hu#XS*>_*cT^!t%UUU;OAkP(Y>bH5@D`5-%CjN#LA1$Z}Ot-t#Jv5#V}Gv zOGN!qAn>lZ^QbIqw+V<4A~m1cPe#Tz3OVpE;xvAw@6F-RbxXWhUWaS1n;lt}LFJL& zfqaljU~&f)bX=B=c2mMn)pXKUQd_EO)Sin5CvMLYbxYE}639J}b97plx)F1x7)E^0 z!)y*Uh&@x~0-{!`>Mh(2W`U)q_H)d+&EpuZjfaU<)D`%hQ-7=2lT8huXWJp--P=jO zGW``!Ajb9Zl+cnaMT=SOpJ3LHZevODP_8WVj5pTp>Y&GVdA|_}3BN_O%LeOrRGgU{ z=qgm%yuM_#$%v852vdpf17s#xF!Tt%v+EBR^2x!U)B^fuea zhdVzcy@He0CWFk#5cz-%Lo_r5ouRMh*4%ipzEn=#hU|-qP1*<72ezogg`Nh1%a+WM z%3nq)kN-9jj$SK545|o#bJ2=bAvV|UT^!!9xDgX9y4w^|prKHY& zM&9-Ta-jF!+fq6tGp*JdB`jsOl{)4;fDZokr9gDpf3`Rxh!#EmVk2Ww$FjYsY{=d5 z6>Fbqn%`_c5wt-pgH3MUMBB_LpT%3FiL0GT6<0m$v z6H1mOzR6koH56k58}{C}xF0Qb(x_4|-D_=~S-z7?BnuJ}a(7ps0ag!^G_sj6e7g~V zBF@e{?(!>raT9k&yyrNez$8xJ5pl6*uQqST7=aLg#n+cuk>xZFrZ!S9dAd}F#LHXR zoZ$Q%Ph&NL?hEkRaJ zU*@^E*iHw}>9}MB2aaJ$k@wpFbe~sne^=$O0CA3I^odUtpwOH)c z`0MqNXl;qMI~bz){{znMMhwNTlljxl6XWZYnt6|G&eH;5G9a$YA7!4Xv);1lA%{=l zU{I1bJkTorI^3EBz}eaA72sZc3dWA2o_e(^R-GP|_o6N@b~?2LmorAY@!<{@I%)D7 zqbJ4Kr^^MKs|uxRioX-fskFxxZ4C<-Ts~2kExgSv6Dlb6@R*~^=&|cbL(zZ#!G9j4|>eM zqvqr%oROlk0)aaEHZw@kS)zyrUg4%!n#IJFpUA#ohGt93MNqwBoqWjKYd)>E$c}F* z07a~xCPOV#;plmm@{Hk62 zM@Y(Wp|J9-XX+b@rR7Ns5txvBJ)&Y*_|0a69Grt{s78*u`J#D3Gs zjdX!x2J-S?FpKecVwn4Pz=r_B9We=d6zs+{ZN!Sd5&j?|j?%>4<|_6EF-M_WWghAA z=5@1GR@@uWQIR56`Pt97@V!k-v;Fy`7O0*9dOS`ETQG;JTm;kTu4%*-*~Z;!vf0!U!5}1D6;uZ zDH{Lq@W+oYh2DoAwEo7!6-4)-x($VjP4z7QOCe04zz{+0`+-~Y;7`vJU1%|aj)deZ z<^w_(ThHo6s4i2n4hUP zNuS}1d-x9Fn~p>8Yq!sxh{on_Enq-RoNex`)e$|#6A+#DZ1~MyTv>O;WcZYxnHuip zYzW|}<6+W;tvgQ=WXogJ^jl2qGCp5qJ>vwHL|p;%Ct^ zj4pxSM=sFOK3QMICLO+L#`q3MqD{Q_gE0>Q>3l=24$ih#f{-U&YuCY{X}dVvpkEFo z2hz9a)v%E47S%Bd6ijtHG>Wb zKMrM!mN(v8+5UFJ2+fWv@Os@BG}b2bo53*&`ffs#;10YgUDU!mK$B%1cm(YdFw^;8a0TRzlVeL;xmtBegL6mAr*p>$tH&P*Au4fZj5 zPH`)!d!}**CKXo?z5zoU-bWpB^OqU@UFv_{#$YEo54BLi}_lAm>1t@CZ6; zIH^DpW61#v4HMYU2?)vlxcI_u@V*hAzcrv%Itjyxfy5CN)~m4EXE)R^lNzq-ElYwO ztAQtQ?l4aQhImo1&PwuH$YoZxj3xlb`+q-YBx_VSpDK%eC(jrPHl;r`G5*%40ijf4 ziy9RVKo8_B)DTRVYpUPtMo9R0#-|{?_4TI`ZT*Z7j)QH>@7KmFEct=dg?oeS9eNVX zr@m`^G_+&CnNptbzF%GZe?Rhf>oa8KCZH@e@Ji_!(*7}XYPMp#GF?L7Lhn|C6e6wT zttmr%bxfw<+QV;{Y4;W3BLl@t_D3Ppn$zLX6!@|L1!+@_$mMrNp-|1zeQ#(JrEI~^ zg*@m11iPZ@f3K)N$>p=W!6UCP+Rqfhu&-aMUwIZo?HGwJOuvOwB&!v(m^}pD9-Q7< zgNC>BEf*dztDpTrX8zJv7)1Zq3;&$KB*#=j-yQBpx*!BQxAghz+3M}VZGo>Vkbet5 zfMD#t88USnuF9KS3@34;&NSp#{qGf1G6E~srs658iv)2SfR70Qj?#P&x2X3jTULEu z+|uy=GGSOQTu6Aq5+5sq`+r|txu){tMEq>l(srtq;3ujFds{0u$%N#5-r1~T>IOYH zm6n2I#$~GLKVc)K3kHvfJ=mla)bQnqMUnk5kmW?R?e1Iarb6M0YQAToY^kA8yv(V$8UJq0 zG)A$};#FHO4=!oM{%bIq1b=>0EIivJ?>46XvP|(8fS`U_Q|u;loYQu_RUm6?sxEu@ ziU|T~8T!`wcZFg$7W-^OZHnif?5yZp$3)EK$JT&v9vXfK_6_=OXDXP#xLvNbEI(Wy zSs$WqL@G8v$i8u697F+!b##`nTi?hp)NcpqQX@1PA!jFX280 z5Z=N$;=nlA7iGK;&sdqTzmfb>UcCa*1zZHoYFy=GJltR#m&R5hJb!gMl&3*^a=#c=P=o6bgbM_7Kn76Choxd*Eo{s6e{!zb1itREQ z*n*JiK^gA?flFexW1y6+ax=>j?u;hod88J%9~rZlC0x?eGjtiq?rjMqBj5Vi((Hcv z`K>T^i?9IyNu_mVLbYd!5=eRA)jh!p`Bj699XWu|?tX%KX zIreNg-xY-+P4>U}9xG&b+uOF9^W@xa`(wJsV{wP>gW9)cgE0k~O`@&$KYyUa$LFIp zVBG&o#+Cukkwu)&WD4H9Y2A#Afrffcbu!IKy_4Ya-^)G(H{>|th0@+ zVGAu)W9rmg{8Qn2psjDP;>_JG_Wbkm>h2ZZ#{!nFfaR1PzO^fzA1+eF?xXLsJtRXP zo)93U9G$9*=2a+q(zhpi_GgjmJCKQGaB+Z|$93&XR(N! z16LhSD;l>^P|w9EoPPg$;HqBNJI{p2rGu-G4D03njKmKk&K8Q-d8&~Q9ZJLc3lT? zAN*&7i?}-%p^su@+rI>zU7VwOMPe1R++kU?g8UM0wV5cNM$+{-d~J-?s$Dxyp8TlT zm1hsGed% z{FpkW%*+))b69-U^KZzmZXPU(S@X!VZ-U$ec~AgXdeh4ylA z;V2^);dS4f5{#9BG# zOKI7_z!3X$XP^{Fmfg}`)Le1Nd!@$mEhF{;&Jpa>1GIm(o#<2(aMU**aXmmvKThy3 zBrPLTzd`Nc0zK}Yx;5@{;CfKG7)E+Mmb?6RA+E%yh->y8CxLdYGmC#SQdXE^mOuNh zl*r&F|Ye+`LHu)n&QaO6To3{K+|eQ2s96 ztU3ue6YvcEZEv$>4}oyk9&P9kb%rDWzl$EwW6D@0ap<>0)}BMCBF0SFWN$exwf+4w z=nm@joi64dp&6r$Uu#K2QJEY>0GlIuW@J7x-*32!@;5W6OA&uNm&qh!EjMXb9_QW8 zK1X3^XCJOu5!xUozs7$4tj>2)-rJjqY?I!0e-bz4VXIS35GICvPQczQY7u(QDEJiR zGS81KU|f|-r!M85ciuWPSi6yz@SAFA@30ucNb*I3+Lt@Z%%{%bcauX~*9~Ff|W1`!^QD&wR zGCFnZ{eBtx0>`pv|6f{9)y>R>C?OCbyX;Q!V>T+j^rF&6L2)1ewtjf>ulPah9SfTL zGrXp%9Z;^it-Tfp6!m-tL6x*U7h(}q@?-G~CQp8TFOL@qF|)a_B_&@@)}p_{y`I|H ze4+CHa4%#!`ksYlOAYtfv45$%MTEup{cfv_8AF2*eGyDF&iWpdWni~qX@H#RACh=s zA4DNP`^S~h z3o2(tgL$YV?a7j!^tB(nz=CI&S0aLBwvWRJM}OZ5JNS+|Y&cfUtgVah$2&N5=kIsS z^XwUlW>zoHA5L;bWxhn@eOUWgqsNyvc&U`}bLOpg>tFG?VlWFULv(y+(>%=9e3&jy z*53$L8Ex-$uO}+)2)InUMY|X3l+k6*^e*2=I1z2-Zk+#LR4RmzI1V^b`7t{Vxb>;d z_NK?_=C}{I_1+@K9Jg;8{W9gZVeLHb6*DxfHV#QOA6^!!^8H>u+GyJBuDa^LT5Xda z3+jXr5+=woa^J+W&%)Ss$FWpF6I=#(nqtMADAUYjtcgLv8`y)PSh<5Yo7I*S(!uuP zXTccu&89o=RXbt=HhuBd4Y0jJmN8Ag2WI5{&`n?&at|E)Kq(Eh5c#(URGR_i>+ z^CK8(PP1GAtRSg!*sE@B1qB6Pd)uMbZ@&;vk`U@J?*eJ1LOnWp#i8yS-XUJ0-usP;IJ<9vf=zM1j8cfML*qyVRzk$|Eg@Tn+nh}4IX9(1vh@>Rf{B!G%GJ29N#;;+R~eky(V?y8hY=`mM^E^b1N`DWQC$s z`XQZ--6(Z0zj!lV$NY~^SorFP*k4KM+voerT0~!&subW6RevCc(Xh1-$5=q!nI7W; zFJs9cMZFW8*ydXZ+pY{pjlNX8#_c((j&+*%Q|URn;J!?==spvmqAcL|MOvmhIK4)j z{9C63fI&;Bz~8jgDbrLdvf)I2B&AP%z^Jc==h_&QheTLn`HY!Yi*+ls7%s7j|FF>wBy zzs7?ek(X@pmrI%+{I%>eXOAPc>%&Qhhs}Nr+16sG_E_TbrKFbew>*6yDwe(-Q+g03 zge*O`+2#mqVK*(kYu*j6_WHv!hibCyb3MOM8NvBqPkydsSw&!TuMSylv=HWT@w^K| zVO_RM`mloxV;R)oq+NyT@jWo5GaAffKrY zYSO1v?+{p{hnYsJm0rjL>H6df&x~C#i=F@K3Sf7}pHHM`zb(d&E}#p~7gqlffJr7U zek!=#B<8of0toP3pR7z(ru)TP%f>wbesN`4?`yMt40*k@(U+HwF7;w%TbC}sFdWAN zo|dqdOz|eu<{jt50Zte_eVboA#;KaC*C`n*iYXx$m7Gm2kC-ptY5duJkM3xa zGMwV=GR?k7(XjY7+yD9Qp6T&c?{%D`*}M0D z4$%2$h3p&La{(1AoWpTQM0GFWD3-Qnj$sHH(s~hq9ME*#F1~hghMa11^GRO5RykR` z(X{PtFiWb9g`#KU0<`j~xZdAC8$gQQ-&tkN0piW3&$**A%}j0o#U?TrOHYJpau_C2 zteLfwmw=#ainm=_{GfYCN8>ijVAm$f^*^v>#?y;h&ddy->Dw6~o?xu33yK>t=s?I$LOD2?=Cus9T`6zn1kBTUFZ2lug0<@w31%%*LA~w z+e%)6^mUITBzy-Rw>kYwbA)UrQ$vXlUFjt%R5bdoSD!21VjgIEftpp&0L8RD&}W*~ znY{WEPhb5wJ;T+W_D><>s`K38j4VR2t$9o(a}|7BNYJk;X^-aW_=n7z9Rh&=+<=_& zyUb^?NII}7>gUV8it5cqIm9LMNqfwm>~JvI3jHF~+SSChbDgsp&K7-~`k0{unB@gA zGrK@HH8F9%t_OwXU-@7Axw6Fsw?DPt4)gk;gjY&y`953y$q8QHv9C(?j{8dtP7TtK zkY3mJiSRUMu}+Pt+;Y-$#t5mwcW*PkQIAGVdTzUp>l0;`rRR%6g;XyPiLH>!_7VE~ zN`_|A1+DKDKU_Q;Eowwu+<~LmK|#XGX?i!4#k*v2Zgi2Uw6JVQpTeY8#sm> zJNIYj??x^X2l=hiIxn(EMTzW^jvamFjq-%X_Mk7aclIza?Ehp6$N!yPC=N>`U}~3- zlGA!`b*1d{oqncroA1-hc_!c7N1YGaYTsPbG`RnDi(TM~Go9o=zJEUs0hGs#KnWu& zpd0>$wCVg>=Di?g$;fvrI;ePl+o(oG+pt0!j4rs$-XB3>1dNnG_}^Io7%T4b1(e66 zd$CEEJKO95gfTo7@zxSIwdZt|=%a?GUm|5(CS0Zt$Irv~NIotj@8fyJb!$u`c0~DV z?_+cFy%^Iho-HMG0@`0J$=Z%6`R`}SNS)6cRG(<)J?(8^%~O*1hOn*%DK%GcB~f7K zyGa*lI*b4Oes6E6QZ{q~^Cz*#lW<*sXd`ooL%re0)Fqwc-M`pZmGf5K@HB#CKfTyrhp@7M{JqxY%bufi{1(P|*%3AmuvyHb9$m^jzw zhxJGBrOAdi=y93!Vzm43qSDRS9$buF2l z2)lNDc8&i$3cZbuE#U=&$(?+BlB8UQci)aP#h%(OqrG9%sp%e&sM7zeh;fyVJ&9wD zP)`-n^VViLI)418yY{zYf z+^+P!iFsyJp5S|8f>Yi#d7}@k(g$FV-ug!SYn$OI=Sh5#zoOGaBh@XpgCwi;P04vJ zihFAE-a*!ssEkgnERr_SD$Y6@B-Xxg*8uXoap5>>mb%9}Uu*f##Q7))aDu$NyzyIW zUlN&As5UR|R$}bM2(ZH1$LF8YMLf@Gaz;~C+gNQD+f*Q{daYhpm0M2I($bUQEg>V3 zY6gNA1V0k2FwsWkS)*OcU`g78yPcedP%KKT>FH_Ij@|M6qdM!^{fkj?>MP?l9jQ^N zq9s=h!Rx&eEb))G$WM}H?U(a>dV#L+NT-r2k)^ci$3jSkmx{sfWw4g!cYbk-ZsD)f zL1yls9?J^AqNM%Jbp4ijTyryNbJ6Jzm-ml);x8qJ!ErVj4P<1uvrCQpjS?%Zfjv=X znPyx{$?F~Q&_l%f@Y9*xw=Hj+i<;tTOB6gdPz6_ZHeHMe912jHH)d02ot->Nfp2dQ zu4@&!E6Bu&;l?E4=zI;i*3~?G__L+`FFAQ30P8O7hygjtzah)2^}5PCIqlb0nxP4Q?jhCQth=&>=Pyj6r@YZl|Z!cn1%lY6;LEA8HyrI)iYhOzNib{DF z_vG%STwmtxm3p>=O;)W+8+SDRpu7frw2<;yLw|jkdfP?Dfj+>JP+)tjGNl}Jx9XKo z@!=i8Xh0zI@52Al(!8DZlYOke1QlO9CAkXv7N&ib8YUfq5K`r%Jv+N0IZWA?7gnEHGd3_b2KNDoe9#>UpMiG5Z*4T}o*)zCI%k-o~#)ke{o zpWz7&Km67L*pV+jV~&693*c3)pz9$bEn#W=HttLAE_;;0Y3J$ObLVW}@h45%TbRWS z0WL7}hq&`m|E!y~#bR6jJFpGuXCobGGkes%lJKvI-J*dV!ykVV6gWItIXSD^pitv)IYDF@$zeV(==D!(6w1`1n`kDtl7c9bBwu8W9 ztH)~W*`1FCbU!X!bm>tBY<}m{HawKdxeAYif^dv%hoCxrGBY)`M2&(F3Ns2@3{!8W zW1?C4VQ*gcU^z?s`^a4bjqXU^#V#MY1m|q>_K;AiD2>?6TFYXPs}kj*qo0vJ`IZO4ye$>?yll3%e|pT%mre)Y!&79}v{{yeTB-(r zEc4pME^0vJDs6cf@jiY>d4ge!6029r9+k;raqU3%hq{jcF_pzi z2W*p}ACE%qVt%?1iAMTuaEC2QJ&=~H`42`xqQYB@A^uY z`WtpY6K=e^qF|N$xX}XV8~7n7P6$x*S4STh81DV7-4?n4k>lmjM;Qi9nxrIB`ca5Q zGM}XxKo@ad?b^R%WKwZ7$6Ph&yPTkx%F0SH);kYilZAArAY@_q2vK11qu&x?Ahj1j z+pT^*iVf8$%MB0bS$3(Pw{re>PDBn3E7s_LeROXPqblaWu;wdTqs-ohAPTdEXOA=anPh|&yfzI z^bi8-$b(pCMb@+d-b1xndZ@ksuv~tgYQNY1YQ~68^GUxr|J-wQa4_BZwS9VK`}0=& zi?3YsCP4@Q_U@eim-DmMVG!x**?OnM?y(k8YjNMh8Rj_A>$x_?{W|0{p%dg+tBwnH z!gEoh=}^wqYjfh-Bf+iOF_LfRQfrb6OxmIGnJNd7dP0|{koUAXu-P=%U&e_t0$+f% z)?NVCM=xjl6yCN&QMn7^#A9<;dmh-#YxO_@Zy*5#d z)ArvM4)XrB03bsrN_(gVt2o^z?76VTfPd~rvert?u0^8Vflk$RN50Givz)-+jAjq3 zbX0`d#Ydvq!5zb(Em`IZLPd%PmxefJv6rn(#zAQW;#C%tZ5Q|M?KuiUWX{alw7awm zjs}649j#_&YzUCDiU|M+*31}{Gw19VYAxY4rZr=vd$gvR3kwTNiC4uyPDHOYAlM4x zrO*a?+hV3090^kNF0^Chxf1#YO2!oPn5WMW!;|~eDgKvKxa&?(`B-slY+z8Uh?h!iKZBt!B z#I$vpH;HO@LJOCHz}d35q`16L1SD_&gwY9a&269y`HEj-E*`0=FEJZLj zWz-Ix=P~eA3eGWuXn^lTk}3zOW^%&ynFB+zwvV=S=y8P7OIk2|Qm(!I5yyHBqiVY< zSVDk&OK~c2gs%=03V#F6f8?I5Ux-53@kL&@Fnv{II$#NE(S|UD6&kzYGiUqroW3TF zWY*zc-r4MtjxyC?s^61iVKMz|c2spT^l`*Fh9eT@zi0!w*_WrohESuxOQ{?=W=&n&8pep<1yCM<595P3R)x41Tk;9 zjzp?DNY*T(h0c1y+vF>Dn(~!10#~ zzyy|&TSjPU&1BQfdS8*dHASEZqu;%kq&Kt3!AUD`Hu7mpgJL)a`hd$Qrw7lQN063VG-_ph#0B`&(8vt%4B_iecs42sUt&HEN^r+E72i_|SJAL6s7rX&V=J01X3br!`VAxJWt6%Z3I=K)GOBC-w31krU6kA?T~@c`Z~k zVN3cObQmGoY$%12rv4AE8UkVaYR=*QYULYfPft&A?;?d9Tlg$BxBv|CPk1eCIZ{NP2WNWm{*cXgpqE{y2H;m6j+8j`ue^~0u;}>0u*h66j-YU`uesAg#0*rr`Qc$ z(TN?)UHW!itR|E>13@O%nGT((c-6j?t)y1QdcN%@FF!W>Gt}EN2L82{`Kd_GGs1Os zmc^%KoSo_^FNJ@04+%{Q>gmuZChXOukB;`UOce320rA%V*pT55 zG_?b*?C+ehiy+7t5iYQbn2^vH zC+6KOygl$=tCog_MtWrnG&`~OF3Ul{=e?4WQd;8Yjiw{nZaEtYc`L4x! zP-l{Q+ffF;O*YUD04AfFT3X@^Af@qfUok^yMR2a9ot@ne9bAZ#M=wSWx0(E8w8Co= z5m6kJ7CaP$6;uScRUX796eU3M@@q3jET33VGAtL+mm{9Ghxf?)9P|&jl#*!(JHs|* z+Vq`pHPP=uoh48fM~;-ZQJuh|{P5Qd_@hBs^&1h@P`naoLM&U%?zMIb{3`#?wi>ks zoL+!Lh180-y;Go=bc?^H+lV(xT_+(!-~$5ssr9TS?;k) zhnEje_V^0E7_S)`B>}?3^!eACJwVl6Uy~@d3B-lBzw2B-ZBMv&vzmA?$M%#{@cU$A zlgZ_IzQrYH=AXD5WTvA6c<&AWd8+iy9-4d$DhRCCMvg4`_Urj?|~ zRO(1?9!yMUoY{R4JJQ$aKEK;?cy^rtXDaCxTpQoJI}Y!-aEo9Mf0O*wwwJ6h7GyG$?Zk)fe ze5mrr!6arWpt2iOmyR`hEnon~!)8Vf@4@nf3&+zVzTX67r*Y;#c%@XXFV9bxa=ENS5C;JKW#Eh-;?V%eS^jGLOY%DBRx?(h-ROtSW1}_lP4fNBiRQ^}M{vP!` zG@(8qM?tXDm`2A(WE-;Ln`8%_FkEdj=ZxOmbi28_URkYKoDIM2uZygg&^$K;sz|;Xrrq8PpqBAgCYUMArVq?;1hMFDkJuH!@+DqJZ z+OP#$yk7$vl?K{yi5>c9+I2V4bvrzb)$uQ>#}bfa45D?au!Z<@CyO?Fpw}A9QsHIf z!U)ZN#2|{JR#||#B_wnzkbOw;u0#IU>d;~a^d!;0Qk$913sJmqpmSneA0i661h_J$ z533O_{aeb-4_jeZUlY(uI0l8lYe=mJ`_dXviTbqO z!_|SiHZTkVzs2YACzL)^*|J#?IX>LlSSbu=2Z1mLyAOd-FCH74KdGP6Tw8UZ_|VvAQ_e}_~~EPK?4-vM+utmgY`%5 zH;41iq+ueGgKCj{o;fA^7ce~Lzx%bO8*=yFokT|9Gck^0RLMgxB1}y{HLPbVHRa}? z9fkpP38GFw z(R>$ZySS<0O5~6XHAw#8KajvMo}Qk*cz<&u-d%sBE^UgZs;#c>d^1s~Ku3}(vwVTF zN7GdxFcqIvX1m#%aU8FVP{hv0rZFyc7LjSBCH0J3W`+Dx1MuV3l;t+ulW9!dT&$6| zI^QnM4*bG?dmgpK#>cH5OvPB;NM>Fn!8uiz=R{JRCqaRnp>dZIWINX0E@f{}k{Xd%$p(!%{Idio3G0eAe=69bq=g*x5nC6oiAdCuww@9%{PeKq85hoM( zMKUyYpj*)r^|m>g8kK3eHCEG5TMAw1q@t?l)wGti?P42(?6qV>#yGN8g|6$@C|3cB zY!jWCJ?K3H|3OmIkDJ7-hM4;GA1(d>ahw|JORrZWX!{Y~O3?e17_m zF|anol=%3rjt|{PU+5_nXEOUmyt_C*&(yJ6ZzZ?RYdcG-JO-y44Yk#yn|;n!QniBt zvd)J!ep6}*uC(3+Jl9WrbIu!=jvPqVR}0#GW(kb-#YT$)kG`7|gYs#Zst|@J@Gb91 z5xrY^J2bobIA=q{hlF^*?6591vm4r7QITUA-ri+jbB{x ziJ&1^v?^v=ORKK{Fs_A(PC@V35E+E3vgC_32-goe+I6nQWR)MA<6@uRj-pTSV}IdA z)At&+%1H2SE51&!n$5|%u;tj_hjM_d3tp^$$qA=GZ!urI{tPM8Y)$>Z2*?&laDl}E z!2##~Kb+`gY#iWv zXMoHIBj|l|{6rGQ{gMlf(@VL^v|Y513{PhH49KRe4*^WOXbv9jZu>% z`o>Z8=3Oj2;q*}>1bpsnduS{2x}^_*pAxbd^xkmsnIEm;LpP7r>TCKo{8 zVkeQLKMw&m7PPT-Gwl40s=JN&poVv2!joOYEN@fOWQq(M;M!ks0n~GWRN%&2ha-M{ z0))IOfNY?v4K38`$9q&kErToosc<%+VKW19{L`gB5CR6;O)i$Ez0su45;Ui6&^Dx` zf~f}{2Ya$a`^EYv*ELH>D-Qz?HV`=IWo2b2<)x*bHN;V|Gmc(n=p-JKkOnKU3u&PtcZ&&S}p`z+-9Gg%uU8=<|Z6W zm-BXL-(ZJu4&e33@g!on1Gw>UxO>1eo10a4pagR9<6jxnL3w6>3l7QGB#({&se}KC zDyu}fKwW}{05{B?RBq6EFTExOgL~%z=#UG@LXao9&e+i%ZwRR*njn{+2<1TgKdSXjJnE+{czu)sO#qLzP?ZSd-p_GVPyd<$YBSlkx@}H zv$L}g&Q4C}Y(qkL5)kD1`eo{ln({n}SldOvTv4v~q2aQ+oV2*4>V}3dx`3Z%EA^W> z3>xf~srryMEDupvS~wYrU;a3Dd;}R2c}$zo#0jlBcIZ*^=0b%`dM(6p-sP@{=$(O3^(_ zHx$`E{cee$lCs3G@Ad10)mQnof+dk1poaCs%0tfQHbY-YSacF_)WohzRg_LxWTdY6g2hvbPXlN)qNKHmj`)q4^-YERSWR1AnxxQ@Q9cZ;4 zBYy?DR(JqW1yz$jr~{$JteRHxY0)jjOlKADJ6l=wo6my)5x`c?7P;dQ%Q>O$7^fIK zhF7)FnPI4EyN4!PtLSe6F(qEv*7gkGU7v1>>l@WiIx{ef^~iAW;hq-+-7n_>K9DQD zlx=lLQ~}dtX6Dz#&$iSP`uJFO5elJ+SoTn_nT|mCRdRm2C9YN}jkCiTt~qX0CPc!k zKbYFlyYw|U8Ze<)!x38);b8K^Ogl&KEE7xHw{HXSsl`sRwS<;}~iK&n=q|Pbldx$B%$G<80$)wQjyWl?V}u zEGMq=Lwf&?q_=LM4YMey*xB6(Re@}HKFcHH;-os@d_WptW;ZxD!GIB&e;)2nm$?Hx#8(NN z4X-*~CWoh?38X$O1UP$qJ;SF)fZ+ML0y`i~X}tm<#QJ~`fp`lI&qRF#$NFu2x6?u3 z&;uz>@ozJ?0=oQa?9+c|0o21QGQ>vek8o4WC<~!d5fSuHz@t1$*v^^>E!k}01yW!< zxCprT+cHe>ru2T|HD&aPb@+)4cwd88ei6Y^G`2TV%=g}hj{@rkjtj9xsEn*{kDT!& zb~+)VLw){h|LEu}#gN^n@5~M*T9w8h?GI+F3`dDHj1~5ur>0wX6*b;7n=_5+t4-P4 zH_JAk9`3vrvp!x+kT^j*JFC7Xds|o#473bD9y~+~AGNW}^3~10$pp!03kqf;1pnYt z(;JF?etItg{ZRA^g@y7hc zKik_`$d86iZU9=^t!3XD7IWDx{e*=_!VpjZ7nSWtq?pCLpUwxH=0g7@I=xrHlSt2l z)`!1=c?ehr)#yPEz@}BUi^A+fP{=gU7IXvWk7ohf0e-Q*Ve8KyJEc4SMoAi+IT*4_q-}T6jZr}RdhdEC={G2fgckE3YIy& znJUAaY4tP&NvZGM&Dh7r-cCey_;aDS8X{66E8RRJI+v9=)YJz*fTYb;^7#-U)YVmG zL2hQX0m^a~@iXCU2v;Kwobq`P;H@UoA%{pvf|IPX^L7Zy7(nz2x$b`l*wOPqO*#IL z>g|g=r@k2Sn;74R>pkI8%J4(}Z;`*EZl9jR=;HfhBx1uqpgqzT_8Uf^vS><4 zNd**8U)|Q^EW&_IiP%wC?0C!ulS~4lq)nU5beN#~uZ-4!{hP7$Be5r;VAjhhF8mNT zp0dLnvdjiLS*U+<^YeRN0G#op1!;~?1i|3q-ubz@x|Wm)PwaW{3CmMBI*C61lB*Vg zqmt%5sQ$CFQ??p;-1UEG`s%2vw(jjshlqzp+Jk^}DJ9Jzq&uV=1f-D$l}q1WNyk9+oBYtCmrF;80RBm5rgIocTNmwc_u-n50DZaKm+ zr!6V?+!n1mBIFaF&d@S^Z3yq0W{MxNhsk{FyF%jMAye|SFJN&t%rpACA_mW zWd(LdgF0-IY_D&u2=ppT?6l4RTiEH+8$n{Xc;INATe5RaOThmh5Bw^0bkDem z-NEnqWMS2!GORiL^Wr2`g-2wnaAaF!N^4VR^u&jw;LDll+t<5P$=VD@MFmCpSPabA z;d$kq3VQhg2};A_yw9jhT~$deEd^PGHSu~HwnZOnQh#JZ(PVxzq>k64borPRfjIP@ zX?;8Ke4mGs^kRJFbXmA~kyB7&RnwApC{_s0;6i(aU~dO_UP zmDi`}7eU_?M5jLRad*0W4cIg`#v=ANry_mTFid7_-dO}WBT-}JB#a$6l!;95`l9p7 z4FsQNR!da1hv~KZi-gzP^=sv|nxiX{Y^E8q-keHlS>%{+XvyD&>3)l9k%s4g|TD-5~c`8gq*D}&CdR71gQvEZj?TMcQ}RrB4l4@s)KfU)&W^w;hG^UrB7l3B zR8<}6tnnqT3pbe!ra29oX-dEJi0zZ8FlT3FH9vfnt~y1@di?20VG@O))&v~&3A)08 z?9Xp6Ab-C3c5=P%%!R)?NJvX`>t>B-71HWAIEn=5@)<>@o#~6P-)pBmzPOx)H#NUf=@JrcBib_5UfNMTSnG#J4l z2!E17eh=$fxAyX@N%+eI#+xZ?R&!sD)#HDCU=VVLG$1#w6DjB|O!5@vpM(I_64xJ; z^p9Z9ygWZ#?v%%NrsOro&q`Uk!G`0nK)m-$YsbEhY**<`x}p1}xor|7{K}e*{ygG| zEJEhYl7F60i};*ZF_H@87!>J{7mL$44&w@0`TX*AuEm1?O+cCDI88KAn8*E6ijRqgr8&7sYfX)Lg0ZatEK0KFlU2@g?w1 zd2x{yGeFOw!FEQ2K1{?@Fd~bAD@=kot#A!zX{i`RaWcG`;d}C33E?J?DDNkWJ)W${ zct{hIf(ik#0LO5q6U#&-Q2hzQT7XJ4&4ibYl>PPd@wMY$OhHYlsn#%pvq;HTsI%<( zzPMev(b3VB>n&o*&QYPH0*DIjYI66!4}7w;A%lbRZ$%xbw5O<9k8xt^8yhzni)O`Q zmk_fH#y#-#8rYA;(QJ=fP0u1pX=^q{>nA}wH0dZo=KC2Z z+|TmO)ti-3M^cDevk3I`S=eFNo=`$JTPQ=>ujI(uarax}l*`HO`v97*kJbw@VH;;e z3^aB&Hvbd=V02*~{i?{=xq0T@33ZJk-w};p)E=YhHrVTVv5{U!!B+VyXI?%K42DI$7uM&|n$$!u5_vhNY*7~B` zR(4_qByG;HbNM&1NldQ?l^9t{wFEI-qC({l9;ng2NvBihW#t;Q$nASPS%M_~Nl;Xj z&Pxc3j>Hvv>>`RuoiI3s+Z1{JTRgJssaO*iLUjt}NS2_>3HYc-fQ!7zxVpNk zrQr=Rb-TEp%DfyE=e9gv?FC1$d?KXf{_D$k4bVT^tC`D|ibu_VwZJ>fuGlr6a=+Du z#|bb5{Ubzb@ho0`DII82Bs-|k>7R)emeFP&#PlJD))Wt(?q zd8+EgZ!A>Re)ltv%d(7+$PVwOkZ6YewDSxx)h+qZXU2^tj$83AVu&t}b;B36i{HF@ zb^*vLRvboc|JbvOE-x<^j%9Xc-CHU;iz)u|K++N8mQOz4&zB0tH{?zig^f4z+*@z7 zVu67cuS0g`tP{`~_|QeSqN6#4m6u?=y|wi$8Uc3&z%#ke=LHQ}X?17#>SGs@fFN^H z6fT8$tI?n8xswVL=QApmj4FKm{NOkWFbxjAihTPboy9R2EkT4t1vxyi7}K?O@_RM? zwbO{%bef#W(tjUs?0H?32W`lQ965?Y-{d5RUviT!wsfg((`_+062XeXh(Gi>!f+Po zlM3PzK`htF;X=3cYA-si%hz#3-z9; zHsd{n=K$EY{?J#1F#P5zVYu(~;YB5CmEk1VQP4E}fU|8(8j*?}s|Shxx<52DG}J=2 zkp>#e3$jhF0|ZRnWjxtw)C!z6+h~n?4fb<&;K4Gv86Gm^EJM1uCqA131R~g3T!i6B zTYLMq|GcY$TJ28Gk8u%nT{u%}JQkcqu=ic~6m~JIYIHD@Oe?%0qBqZB_I02cS@}g5 zYEizR>+k&?wwhu?!Em&s(u7`@L0wJc ztXY!Z-rnxKIr4RMZ?<~v1=Nlp#`-k)?NFlQbV8vMw5t0O*tdAqmR#A`22`8(%q8U7 zd-PJT>5dJYdr34nnpQr%^J!laf`54yltP!kr@;8RJRGsQ^1CNAa}gL9IiSVuQI6Ee zi;$tCqT*uavhs32;W#YGKThe@z(V98{dk=d$l(-obOA9RYJNS_~QrG z5U18)>XKVgCrVm+8fuz0_?dWnsDzZd%Ac(0qzYe8)) zS!YCtP?k4zm4B`@Ql{Ho{E%{s7}D3Nr5{vMookB2O?A%BInY&peRC<*aA;f`Vou4Y ziiMP9ZwQ|2{(ws`9!zGm)w!AB^Olo^<%%h`|0Ib}JyqIFPj60%%*gY1vQC-q_`lUi zPXFuCfV-0uu3-)zlpm(ptTOug`U*NaGsg1r@)g?r6rVdfM7_Yf`v~Fpu%+6EXT=k! z10|%nEHCd5O6F)I>SnlRNm<#A0buBNWn*dld?yQ(#9lomWJmmbsG;jTV)-*0kk7aL zyvyiNw}}&VAlB8rANZMS6RxH&VGYm`_erCh;WAY?!f3#rC|V}BrQ#myk~QI|xKq{F z_c{61?3(uX@85#~MS5P^ZZ4eAo=(goJBSXh!bRRj+r<|8z}FjqE66LHfQ3Fl1c;6*S;9F4p%?sHLT4B%}zf zP`_bO5aP*dEH2*O)lQlG?;4bcn6}}rK#H|$>uPieM6#iW-kjmP#j~}+!9gW3DYM}H z2A(Wb-VJ1`>pfsYGTZ;eD^#FykyyzmuEo$6b|Z}u^S-2A$&%S)!)T4+GP!C{rpolCwCn8;Mm7lm6CWvd7ov(s zg!ykCdvZh|;AE|45s?m`@a5lgr;67b44;JpISNnq&YZb`eENpL1Z{9_(7*J)9YyI!9unB3}YwRvj{jmXu|-+Peg7+^v{qN{F2uuKE4)5vsV!4%j2J2G~+4&Q|Lb($$^YVod!c&qJ5g|GCTwOz*|r9dLh-C7?XpdK7RMid*B&B&eK~((X(z$jr{A z10Ep5XTghc+vV#i@sYc+(Yoqf}va-4m)UiZ3UgWba-DsXjZk01Q1P!Qvp224Y9vi~|ru z8jd*dSq*2hcf{M~dFwnM&0V8RZQ`<|D}5eWS5w0?Ek~m@M?HnjrSj8AENMZC2y3MD zBq!gc_gn?Jc1%Uax+h?&^3PXKyVE%XR{1JCQl^!NUix4)YyGL%5z3#}?Gv`k*}-DB z%pv>3v$R-9yV1eKUk?Qks;?fPt|ulYb`ncI!=VK8OPc5H+062zNw#w0K)zX@34U>I zNEWo=8h>DSP}wjW^ZxTAZr1qzYNk(<9-A)(?0PkS z4kjihyrIwBQ9qfJ_kdaChK2Y3`R%Sf^ZMw{?(XuR_jRtDBcu>5Lg-6y7)@z;`Pcb? zG`Xh}pfS}sf4F45ZG0pqTHa5W#RbT`;!&@tZ82(ZKIwAZspg04V$x9+5 zrv&!<$bX2sO?#RD_q6^SNJ9UZCbp|Z8!P1FK6p^u;YjzI6T(VDxG$}~)Y10SHEhrn_3FcLT*9|}rJT3dk78_&GOaXlJ--OmqHE`9<(%!1UjU4)wy5Sl@H zpy7U`-j6IfF7Pz8plc%}-h1LQz!RH>mk16Nh6)PwF_4RqD#qJ#Yl+VKd-21MOVH(oAF4=hI$qGR{2L-V{m z`rRW20Ryh_qBJzi?`; zi`&pV;M1W&2)yp`+Iu@!`Ry8WHRlq_L0@< z=ZR{d8uc5+EX+3!NXh8X!G3g$^=6;ExsTwFc%sjV{;70@$UqD&a4jmNmdCDq((2oL z_=YD>L49jhyxqW`5oH6^(6YJf+^&@AX#$qp*p~~*N}#A`_#8B=VVj0GPt@5?vViFN z88{+_kg{3W9Rt!HrbZU%2hBgC7IIq|%a$U;d9p!FLSmQzDD1hz3o=GRoP*unNOup9 z2Feg;iY{*G8f6c|3A?~rK6d8^aToHk>30a_8)2GQhQSut2hb-qmgncMPy^|?CbNI3 z50Xv*w&(RT;@7>%QRoQu--QX+EHN-5Sv7zgG+@H@&maCKNRRPS0W4(_1DDiZM5h%^ zug+$it#am?6^fh?(o0Xhr>BTsD)p4(;GoAc?U3rsE*SgY5V=3*TJ?~d_Ro)QWv1KT zgfTahRg(lMsk_TQ3!*zFRZ67_-iVU+tSq|FaDo$R@6`5Bq<*=9@9v~V0rQ2R+eg8pvA(R40?_e&Cf{;H_YcBp_ zVQz-TAo{UHh8s+px$lV=+A~U^CNq0PG|q|Xoew~lAM)k`I_Eh_lp@gxlLG=gt!Mj^ zA4JMs`!t7kBtxWimPEsVD)tMHf3B1|UghCPDf$U!hVHaqC0?GH=&1b$y(F zO&^k~O&Rr-86Td+zb+ zG*YcgV5`XhCOEb@$pC~3^j!8R@R#hp0AOyJ*=kvmN4)!X^HyNx%$pNb{C6!{J_dc* z%I(}V{w#Qcqg;RSWX>b&V`A{n;|X-;s1rSdghkE!qNr$cfWySKXywoIlo|OHwb6#B zo5VPqxISN&#gIGv;3*x~HJTp)B=%IdoubgBqIgeUnSe$4d7hHS)f(+&g8j0AUbvMm zncFAcm{*stBC#YV>u|IWnAmX>P@gqzMXeZ>CUGD3Y*}p_ zSnzmRfJQjl1|V1Jv(FauRnrhmE0}Zl(N+ zSpxzi96C(pDPbs>G8zx(>+LuLY2XnkpQMT~^SaBvnLqaO@}fz(27P~4&7{)3HF$2)yhBCDQ9o(8MK2#(JI0Qq(HWb@Cj2Jw zwHVD1(US&)GmIkhWJguGYt^TU>c@CmSMxWcdHp}VPddAsi*r(|4=DEibszDHvqK4_ zoNB=zuu1we9BCeHpb2CQ`{c6SGU5noj>JZDanm>MJSrK?${?hWAP;b zmPCae=Ic6Vo;%3#n*keiW@N8frv2NuOSmiO1PnY6mQFjZZ*i3)*_QxH(g3sDQudzR zw;&v0@ZLB19hYwML8eCpQYKP+15*pmOGpwe=EeI65@Av10}XP_GjR3-t`p-Rn3&nd zkO}Tniont7>FFebaao@HmWzW$%F5ExRz3O0@4X20h(I`jG+L%p?B^{=7Nh|(J=PT0 zOcBuu-u?6&et55CnZ(r<4onj;l|R0i{!&$2yc&SCbmyoQ2Ef9)oE%B-1Bt$}{I-Qglj2ST`{UI8+jO=DY72i}s3`)xcqKK-B zv*H!%zx2}<1}?|Wv0U@U=k;cZt&e@jnblO?&U~{G7WP4t<%I?Bu>IEFUX)5IPkuvL z*&c0}%@39OHY3O0Z@~{}QDEq*D7^00&zJ@0-DeCh=CUK01DU`5*Fc&r2IBA0t6)-P z@)l>-Gn13%U5Z{cn}#1lf1K ziAwQajC`BL|AwLi@9ooGHGGov^zb@|J2BUD0v63ye-@;VY9Y_*8rNwS@6c#r+(h#? z9n#rzU;4p2-=U!%VS!n735mb5&$C2d;6=`+S+^ppcR&yQgmZt5;$3?sEjJi?O7M4 z3%Rr4Pl_?(>u3tHg2HqMILC+QmMP&!whMK(8c|_E;G&stq(OnHv{4B7yHLq&Y0wzG z@A>(jKM%@J(CIa+ZggC1aUbJ!Fr3-_Z!tT(g?sV*^SDi2PIWam8OB_1?}mUsH~-hu z&`=Na!yCE4RJUGwJ!vyQKGlR;X#eh=?s<01U<_P)4jzKPM_!-~bA=||8Y{5y%@Z$h zpbKYEU2QlwRq?Yq&pVy!Qt!2M+q>|+Zuq3ha^3N2^9vkJHNL`P!At2W6}%{q`+RTi zBu^{4v9WOoJQ7`hfB(4t&xX^3fH~M50+Ntv$d^k@0>L&gf-i@pGJYoc%&7DlW#!lP zd;9D#bsy5T4%oiFQR47AC^}ct5WShPzi<=?Wt+~Nf^_wY{^1M8Yp6-uWndCMU zF9V~T_dcjTa|5E$4L5H9u@%LLm~`$qC$Ocle^!4>DCujpl152Mc@LtO&$ooZSP4Up zwVGKSJjr^E=HQvl@eP7B2x4)^wcnMaJ*{ug0ra1BVq&s}Z%L?v@)-hdA6P znJ8r;+xE8?z+giFap9SZAO&eX9y=S(oJeJlc|e(=kDs0S0x%K;X6RP7koDD7;l6L5 zTb}52I^TR?+CBXQSgnyCYqO5EO$qwS@0pxYn+=%yzj5#Rs@ZJ8I)&y91+YSw@BI%3 zt`CLBMW2w>cF@b3*w(AGilggiI3j;A4}BX5sk3FY|CQ1nKuutzHuqQy z_Iv%V^QELJ%GeaZjM&753F)GKuiwtqtWNqDha=MKmE2Rf(J%8P42 zJT@nsyOjxUJWlTvrxtqUNWbT0Ogyl?sLU~tAu}1`E8=vcD>9-oPC*#*{>bLyHx&YF z`A?gG|DAgAUcbqVSK{B{lQ%vR4Ewo+0LO3M)dk$&-4~WDYO(|uW_a(&@ud0|mzA;o z=Z_%NgjW8e6$_USXG|lgmr#nuGJr)#R1zUb>E+dK^spd>uxrINWwz1Lc=A0O7R{)8 z=dGaAinuRmzW<-T;Sb^&S&OlGe#H~W8pw-lr;2?n37!wK*8WZcx+Oz-x7%V=2{;6R z+%eir4X%^355$OZ{rb3~%ApA8G*7*lHFw-*Bqt*>@^e=2t^$hU<9+`>NSN?*n*kkG zNRjIOlCIJ;ze(riu%ow*qF|kg^JTR{X=H5sZu~^jBP6SByQ{=NH6_On$Lr`pW&Eeh zpTmp|e%(AuCgxujs?0kZxy)zMHdJ@{voj=blqRagC(;I3sbvtLBc{>99Eg4$XC*Vxy-TmtqJAlR@4OQD!>(=y zu*18{gDF435vz*-b^;X&z#NlDJo*-;82;c14b`AOXa=0AmucHJ#mPVo`a}KFqbKgBl8q zG}q#(l`}Ov?=((?I$sXGJ6d+s6LntuR;QY?5$_zId~#(b zc3Kh_HRDHIhCH$77*-UWlg@3=o@;7XZj_=ZTJ@zPt26KP9FHp+dDjM!cX@~x1XfBmUdqQ}X#{nF4Lb7Z3bZg@dc~l|vum2Kqfrl9 zTU0$39Bvpzz7fbsBaw)o4_3NzV@16WqxqNq<%4yzMv2kOuN)mY#m;_eFd6w@u6K4D zl)W7t8uD?h7-xPAjNjEOfH^o6c3%DN3`CTl`g(e)#+sU^j;c>h9`}uDR83|Y;&sI> z-yXcPOXf6Q(g)V>jQ7m1q$~kWuLi()Uol^O6zv~tAR6SoxJCSVettd`C@KHMKhDZM zb*U*R*kI{gzGsDdV+Go(4{m}N*_u1PHI4N6PYY%@XmSc)KD_7PUFONUd<(x)m6Gc5 z>RARxy!Dr!M3=>MPH#~YjmQl8kczo^=(&3WW=-LMAl0-nfaehrf5rOCn$9; zL0yG!+Y=if+Um0knP4F8Asei!U7gOWspL$+$n*mr=bUKNg*kAuR?E`*xm^r#cHZDA zc18?CF?kqR4A@U>et!!teW9d}t1r(Ue0%N?}lwT69GqdcQw-~ zdb25Zf4L02Dj{07S%rnNqToW82mI@y%>ctu0Ca>G$O!FkH$T4kIX$h7`-E?OeO;t< z_ewuw92fl9iDp%9S< zO+Q}UAe}R1Wuw62WlNvYwck3~3ByjrL#D%X_#h?Vskt8?8>@OjjNAThBwer`1a(q$ zRaK9Yj_Vp43V`)uxfal&GqJQ{9avo)DVP$ipE!EIBRBo$lQ9?=7}g_6*{|fx&DX+v zBgu?GUQx8P=GKCT*|cC5?-ED%s&*GT`dbRTwX@)ld4Yht8%p4f*5U{Gyl~+0WzRHZ zNn8bW?kPSXn!LdzkAaU2)?s#kKHd|>HeXRQ0NCvFy7V&~s}UIa=lT(_UWA}pFewHY zgWf%CSxk|wd+lC_25u18_M@F_5%3FdgdMH!11MW_*+ z&V!K@cB;M_Uk%GfHTl~Yt=Zwi&{+I71)H4|W4&*tOrl?v-yQuys1aNuh8SuMC)BXI8T)Ba? zkq=&kF()f)YoJZo*+HlrOJY2ipCumN+MD#dy%uN>ZL9;NEIzirJFFm-ME=L6>*(qV zFoWeNT%?f$OG`_h`uYponk?>s$4kjvG=f4+{F%?1;+P#7fp2Ag_sr-AQYdgveXu-R zb?Y2pKt`hPOc|cvpd$bgAEExEfM|K|D=T(206yZcoolSvNOM2RWJRT(GAfWh2mj}$u?;IJJ02)qg^y*Nxy$4&AG1cj6pzV1;pQ)U zz491J;52|BVGneDTbj^KpB53Tn8{P!{?;tB#COvJB&@T9w67>$s;Q^Siw)BLl@BM4 zL==+Z(Fe?Pe;5pm5X7UyTtN@SPceISxjk8^ppq$Sh)4HmV|JD6tLIB7J;dw%wsPl; zc*{*$g3AxwpH5dVO~0WlAW?|IgHY(+o8qzrrV1sV=L%w;@CrW5kIE2oFWCd)j3tC? z;_tx>wR@gezZ1IsLYe47>ajQL>^7bw%?c>M*py2~C>VL8031Fb7C=MOhnd;Xw=LiJTk70LdsThGeAlk{{t^jXsN>LrYlKeAyI(`r;G(zp7 za@E5COA(51uO@!*mXVc}^>XW#m#%v&w8B8YG(Mi~TmMRd_DfK;Df$~8kBMZLj~0>A z<1|b<6?HrBXUGZd-@k!WGByv*9m-Uq0YOLffc`NXfy^YcEt%f|HOB zrR5ljbzwQ(dxak3(q!v^Ybvd4YHIqTh$W?|7=FcHhr1D-!|&2X2dU(A-E=+ZE{jTIbN3q>pTs^h!<6S zhd(O1o|%D&eAKn;$h;ip8I|A%!7rGdBo48d7IB~6PPP5z>dbUtErP{0os7KXOy@HF zW(`b?%eG(mq_7E8n`7U#txykZgY!L;RfULo|r?Z2sdjwSW!uNc{?y99xIuK#>xF*%2qASUk;nrVpK@T$d(`RYFVqYu&^itkyV98)Yp?W z&!a-J)EQ3Fy;L8glR!^ zRQQhA!IG6+CzU8jsLB9)oE&iWKx1lrG<*IIJhF^b+NtOJS6~Kx$XM`;Gyld#C}*b_ zlvg9xe!zq2M!jl%qD+P9)NS)l`r*yB>m73l=y@-ae!wTuYNaW}XbG%}KppHI6!L4Tcx zu}N9$)A0}kZWklbiY(nnCxPdv_^uLV147}RR5Hq@2rvaWC8ebV;RscA^$+57CPQ+G zz;X(GDyppPECy!N_rKd_HcynA_G*S`1bzPC~OxrV+&I|^d$had9z5uYBFqxz zLWU|?ZzL+9z+v*;ih(Im6~0|C0yUpl9@*?S)K-I%MHKIo6>eqVG$0uJ`xxEP zaN(7^v2vGUqxQh7-u={nx14Z-T}ajJ)ipgHL5A2SEry494w3lrkFy^_BQK|&C5>s7 zFWGgq2=z36hhjfOS{)O!&ePhalnY`K;iUi7&9dTp|=s$Zo{n^=B@;i6;Td2zciU`}{ z2e4oWyiLP<2P`6uH+FVn3_(A_m}3F`_DFx)nJk$bmEXUEq{sJ-!i!zMABFo>ESg`A zE%C*wjJ#^+V%?db$TlGxcK%=YBzE&OqVL56MI;%C)E&MB)6Hq?>e>v{NAp)YbaT0$ z75n=^B6SbC>{+kSb2yJ0u4$|D_K$mPq0gFpKkSu)Y5jlGwmxez3T1rLor2ws@hR`U z0J~6LuSgg1MT)$*0c3(wM#hMr7jP8@Gv~WcB;ln}49j0)zpA94?uJkJx zS_YF!?Cs&bIy(U=VRroEO9Tv2kTnpc4*!(!i~#k+<6f@O+F)|CX~`rmWJzTxiW|X` z-l(_mr}>Cjn4Fw##ExW_iA*WXh5&U`cRckm@0iDp0J&<~r)S@fHm0;DZ zDEuQf=eZ>%xWG6hZfr~oMAm)v0AQN2pU8Vf1}^Ad`vqNKvRMFd`ns_JED3?Q;Spbz z{>T+x{R6kLQwpIMX+UP+)Exm*Ga^_k*hqN^b9vQbV0GXO^28#j2j<8^kAq)xllO;d zd=3!=A zhc;V>sGaG1f~?rrHE2CXK=4U;z_QK9{yx|40);#Yi-6t87?-mhJyM+@{AjGa@h_QH zfG;r;sn zEMdvb=vX=SR8>=ZpOHb6r_Mafo&qP0>;=!$+Ny-m^5e|z8Jls(jTBdAM-s}WuR7Dx z{oTd#`k8m-kD68}5Fq*iE~!C<(OOQ~oZTxi>?cO3N98c z8zu4w9i*%A`gMyH_H|P?SJXo;l38nz%0FZ2Us+vsAx(+Vn{IedpH%<#p>_<(m-0Re zY;;}vT*o8!(9jhN@XcI4d+t3Z>unoe4lgS4dn0;NEI-Ke9RV-3$xV03dH#2q(s>$= zo0)56H2ZRoeWx%ed^#@>=yex4_Pc5FD5WhG<9A1#5xB z(4t^w_iMV`( zVxfWz3*ceBkjMHB9+pQ~j6SgZP|#_WwV3@ zCkhc1=JYd17eed8QFuKP%?I(4Gzyk^)oZE_U^9ck_=_PJq`8$Q@078*Gclhr0E?vp zxLRKkZs7EbRAyyCqM47r6hwb1;_>=xVGnS?fCZttyng=ece83y;Ff=q3?}tRGEV;s z@J@}w`qzfJ6quN<^6xyslz!|EXBn;^_3t$P$XtMKGNt7n1P)R;v7|5WtsO0IKya89 z+CMJjR^>JHb7pF4ae8dbDeL~f`T1M2k+&^1Z)4^tzx2#mB+AYE)E8Du)X_5TrF~$H z3=hofTTW%E_EO!n(Z;Xu{p|AJ?SC_AXH4eWJ-2!L)+(COt?2Dc<@or{&KvO5R@O*g z`2H%V%7Ky`RDCl`Z9RxJzdP&Jep4tja)@TO!Pj*k>2+*>MgUUYifuQ4hdT9NzrKne-E7sF1Y?YuytjVl^5G+} zNK@bAa48ymMb>}#IIP#~lX{H&ppt|H%5x^jCO1yoA!L#p%SF& zj>QSLBmD58j!cKkcE`Bb;jITO|BI8Xf}$~ORC&Pxr*Ij;sxZP4lBi*5az$@yOG@61V~`mfy@RYEY*-xFoy_r!jqOI~8KD?n z54kHD3iJ9O<)iJzPy)y@tBL zWU>b-Vbw503nj;#w-}hQq_s18LUValiG1`}At+*avtbZX(c?kw5 zG4`6eYI)QLb3AH8`{H1S!kU?sJe;HcYEs%bETp(E1Wn(ErRz4ww_+{tJp^SQ@f3Jv zNx;`t1Tf^3m7d8lJO4W}r4n>O2SRHuVX?Zlb_fD)%4$9j{-pc*C6|R-9$P{onWJ54 zvM!iwu@Vh{kVu+XS-oDY9xh0{AfONZOM%14jj{ZtGz63MMF9=!9w3qnLbU*n6Z(gD*x*^R@#EyTUP|M~(QYyb_od&+j)P_wK% zG&qYjn42L4&0ToOTfH8yX$G#~@f|wRr>_vpqnU8CzI*xf%xt z`D$?Cb4j1L@~s{>q0sdqYOff%>m9?4Lb{1aSis7A^*Z=Cx)3wwbhY=#Jq#vx)%4_B>z06btg8mims4zqyrYu^K| zVc$PM!MfXany3qrU|9$K z{_~jz`L&t?0r?+NGBvrmJr$20{2YD%P+CIvoBG)Yr2jZG)MV>`s_IC?nt$7&;B^Q* zh*!^HFJq=`byw<5hfanMWgj3TgypO45)yWP<;N05hc>Ib;Nk|!e#iy%0D1>!j7P#4mA`7_oq-=2 z@tXMW>)GVxFa3Z6F_ZuK^PAdvwdSTKi}x7tkGDB|6Gfb%HeVlGPJ>yZwx2#09BrbS z(Zh>{vw16tRE290nTs0~(X_w(E*$;WyszSca8zZr5N3}mYvAkzL?JHpuvp8zm5=mH z#?MGgrpOZzVg1An?=YXBD`$#E18X5cd5aX{*|TQ?8bWjUpuwRBiZWYX+axB8gt!IC zQ(5gq8afJ%nvl!z2U3I2LNjJ-_&I@%}(Cj^(;D<2} zEgb1!RonH$5$3c0Cp&V&d2SL`GZ-{b;FRo(Ib92KmAL2_3HMjdtRk&kZZni4LHLy?xR$6^cNGaWYBOhN|G7TiAKJcovqLIr5Zag# z_7&>z?YISj!ez7+JUXzgG$6Ia8PIWmA~04%r3-=urAYIfbuDC4A0UzW?+@r%>iwcE zbif)3B@B`W8(N+Y{FO05FY+ItL=J|sNV3Ex)Kq8X_?Ah|dX&X56a23j z6#;)00U$m&>2d-i&PPHG@hUYb>>Z^6j$i$6>X>@1?Eg3+<6$eYY2waNH#lc%h2MyxwJp6Bw{5n}u+|l%TGv`mct~Gz>F(yDubQ1rdGz-ygZASnQs}`}!xI!er0h z?3Q^7)3~|2>scwL5vW^@q=(PdTALsIYW@LKzabA0rI9u_rw5+%4;vd+p6y09Uqa&K zJHz|e{2*`OSFZi6?!S8MiHc98c|{bC5CxNxHnfbQinBrpjbZ^4=JoBJ%Eg7u9H1~C z1dcw;Uj%YhTS#gr4um+pm3#U(0b}uI{ojnZSRa7aa_Jh2#_KtTz*A&$dxr zuH4Q<3FPUVsou=66r*9W6-~bwN#RCw=#TxFeIUu7G192Ps#C*Wxyis_v%8}{LomUp#CSf&cx!cD$LYXTGuc+i8~Y5uA)HnTjhx%(m`OL*{IWqk-BEMAzFSSy}~& zB{SGqS!=iJ9d3}NQfkf5YWIm;AE=MM)-E&gDTpiO2au~ZY2S2X%VeToq467|gHMMZ zEZc11@OHOi%_!y3z81H)mOo%sBTE`aLK6N)g@&{IhEGnf_C`9dMf01jeh-)OuY{oj zy0w3%@C`iSH=KP2ZnE3P#s zlKj1RcpZPb-xdRgOPThKK0sEe;*SG60JAq#zEugDPQ|l}h^l?1a2H3i2a3vwY52f`23{q2Rdt-H$(sH$BNDLWCu z$ObV?S$CsE92Su43)QT52Y5l?xspbb(PsjUik2M~10Y`OHR`FV23{YuK6*gPR%M_G z(qQqaym2%*tny6y(vFUfv{W?N6PaMDdLDQQ(ezQ)FI6h!t1AKDx)fql1jNAt_<1|Y zpp?rPFvAHBTFmxZ{^Dva!Ej7p!>w|5PxzT&RdniF<;;)*a$Pj>?IrV*==?g`+Vdy# z8_e3mkIuj9gyz_*S#4s_s1FV|Irvh&S+gk{k#x4CS-?#xq1UvxhrUY8wOP?CmJ(`4 z0b+t$E?-@K2zFjrTT28uI6$}#qJ#b?WZ*KuAlN94XaZ~qxBHIf>FKF%(j6$dcqwW$ z&d@7n%h11HbrIk*aUwgIWLr5)!VvIwP-8^lxF}%-#vCY4Xe0C#Q!_JIDVNreI6?)W zLgUxV`rx?P%lSwbMRnCVv@imm5j|mJd%>d&Y}hM{(@b*TClSyF3vLyF>1Hlhy{>T| z1l6?vJ9?;(ia#9Jc1=bd^J;Hq^Tc;IY%X}pU!we!*^Dm8`UaVS7ZafVb4eczEMVzP z$ns$*tl2#+Rn5pK27Dmtb~I35MQ^uNa$8#|t96lt5)3r4g(eY%IFLPgh=aRR>iI(w=pm(FQ6FoA&rBIKP~lc3PPY)W-#WU zLSJjGhAA2@z?P_?u-pTg58Ej<4P_F)l|K9R&jWKLMRiRm;Zq`6t$IrwmY({74$usV zWfErvC4+$@{t;veFCeir)#}!t@jz82MX}zj7J^xBhK*V;pRki^_#kI*$u%z*la;3E z7(U2*ACrr@ZH)y`gk(?bVL@X{OZc73u|QY_dBb(KA^_^w6Lna27AX}oMX5nB<6%o{ zYn&ouVkFD$EK2>rzWW9mAn05_#2=FG3r1$P)Bi--2d&-A^Z1qOYH4cy^5?tj+QgpeM&0yz($^`|EYtt+R{e--T^H5oPFrH?>M2{@tGq+nk-B}*ywZ`HSMn#8w>9dQ?pzv* z_1o944^sgIX`-nlY8CqQ^((d;A6jl(S9j)P|FmL5g7?r|LB0Klw5aLW%kAMqW9@M% zGcU<$YXQ<$`iDl@pIOgEsm4FPDW6NHu=1S?n-3WTFizx%b(Jrp`W4OGVsHm;w+|X71?F9U>QP%8k;I?@ujjek zo#hp;q7a1Rw*0+fv2J;J`67?qbB5xkV`&vtRbiWMYHB*VtApilzQ<}?0?(7L_K|*; zMoMI^PIh{6F}ZeLp)+k%$FvZB9G;p&TV>jvqZ{5$BYn>ShkVF~xdpbr0gTGq#acQf z#P*t3OhaN;Z=@o-5;}wg@xgZr;eTbDScx53&~B6{%MW2g(V14wtmi+)Y}6Y4WI?%AoykX1wjVHPCEpmvZ0M7St^1VIN;Zavdl?b*bCO9YpXd zndMFoF8mg$%&4tRY(V#(k+{ePRpt8|K?S94X8caZGE2_3uQpQq)IJ|;d>jfLG&Lmj zCh`8Qecsw8v$x~7K&(K$o_<^jaoR6Ng47>43+h%J=uDPVAN%UdL4PP1dgGd)8L+fN zC_*8nvt#-J7H;V6?FAJ%5y*vu6E59NFE7`|bJ{)T>4E?}-^DW5Z+px9X{3eT5N|K2D z(b||4OffwdT7#C$(^>VR>!7KyA=Un7Xi~QB<}4+Xm-l|8CSCtjuAs>0?P1rTjp(7B z9Och_{mmcM6nW!SJaryDdUUYzqwe)(=-&lU$p$h`S0L+0189Az?78+_rZ(>fOJRs- z2L`ku`Ars1gT6MP9d{Y2Eoj`m%MHsOTOslM0rChk7N;|xB@ol3V;xz{JgB1JLO;bxC9pB+kzcjR8j9fqqwlipy!(c> zOKp0xaCW`1@Qf@I*{Ipn(aF*ePY=_r#}|)xb_87S3<(;QI(T**Jh|X-m1y$NSpUq6 za%ZQ38FA7Zb{ppp2R6qq+d1jHK(`#t+I_uMIm+cPo~cQNPRw||rrIoV{b_HUqrSrN+UCwqiWz9{+RyXgv!kVxZcZ1T{)n=1??Q=lZ zV2rmw_ga!Hp4o14Muf73K|$=5pWXI4I1(Q3a>>K^hmCPouV(gVrm*QZSLl;> z_rvKMK|DGY{&4lxk@u$uLQCko6wQklj*gnT zS5zJ3LYn6{XqfXTC^KT6nFs(~1V5f}Y(sEcufY1c>maHzKn#fjKf*wekA zlNd)5vdOYQMkx8?0hV~bL&#PcDdx~vu^D%%UB#l{ZXn5({O*(N1Gmj{XYTvF{bfFp z@B&m7w9m9j$PD5s;rh!P6>Bmq{+MpTi~r+CZje|q-0n7|Im?n`yD}E9*Gy>8{OMwn zeIaY4>y1Lq8tclnT1k=d*YM?D(f&1cK=4oh*ZFUx$jhs8vC%*K-py zDZiC1OWq4;ay*!OX@WESd*|SWPKJ#N^_J@ebxL3#R2SgJ3130J(zpi_dzkTmA;hF# z)8t!uc1w`qyPt;X(*A)KMOYG<*7oXEuWcO;%lV1y^{+dT8+zNr#y4cwa6X)a@pqbI z69+jMc}{Bdt(Ir>4JdR&rmFDRt5HqEC93Kma@|0R-(YyLJnzOVp6!$(DPEc4mQtx;mtFFj`N~MUt zq7y$bK7MS3R3N1QtzRY4yJ%IQh*zsnU7urheLfPdbYKlm)E8h<*G+s)6bEa}}ITCZg4YHN=tvAyq7Kdi<*rk|}MYiG2|!Dp0_7@o5#(8ar1=Nu8X zn}vtwJvLS^Tq*{paWtQG>BuzU!W%~i2Z0lLe8KvndqMTV{Lg|VQ0I8|ublruRIM5n zMlQ^pjV`KqQcd}^T2e17Bamd`k*%>!JwcE&=Zx{EEa2n1Z=GmUXRfr6Um(@f`#d-p zFf}zLRoqU2hNE?zcfHrix9nH090c^$0DXWSm)5OYQ7}6rdx%#tP>~(Patz!yVtj5T zfT9i*W~Cf+6ECo%RaHs8kB*v2jf3>GASj<4$dcdYaOoKsTNqsO&o8RYyGgii4j_76 zLs78s996od)3vf+)!8R4j2`8DoCc&lVxmy6q_vyy3?icW@*Z zuU#N%E*p05lUPF&mOvUYo0!$$Ez9i|6HA4Qi|cBh`NHYpS>mAQUDj)R{eI^FsZ1K) zYuZR!oxIAjPXSyv$d&`aO#G^qg?CR-JC(I?Enw%(VNHLMOt3EB>^>f=o?eOlu%Ll= zd3jaUt>cwPO$WH0%VMOli+HId!s;8ro%rZ%vU8Vr9~UoLMAT%Bv=4NIjwPfSxuB`N z3ybwzDnQ3xJ5XSSn-8Jp9^FXj_sLo+uKG2sH>vlE&tjf~Z~t1Vwy)(1x>LyOU|E+^ zqD-*BA!5Q;rp+`r=-GVx%apL)4X!XBa$^5WRTDRrG+Ipv?;kQtPVj1O)Y$2rZr#O= zeb0wV=?{MYULhhfvQJ91b4MEz#cPsG?NyCi7kpM+Q(E(j&36y*M=RF{Q;w;@W3)*$ zu9J$2il)}oFo5RZ#`oVbDl`p2-c;&?(E4jOvConD;VJ1^6%n?D?NO&D_2I4MPW1uj zyDEpM?~RWSPO;aLA=FBHXQF!Gr9-4wq=+ZK?Xe&e&c%rX>2$J3?3nqv#|T^Fg1J~` z%*|}(t0l=7=jfl_8|_uuoOQ9!k)@GdTOdQ2H)JsdZ+4v9*tFc_Z;$dwGnrCoH=55- zhCM!RVbgLbEUwWekh%5QZ~X9>cyB|0#ycd(<+#4)U7TvN>@&~8mN)(C`FVN2hc={) zc){PEkGU~Yd1YR>ZTcz=e39sA$}zu_qferwu+J1tOwK~73DQ-e%aPAKaoj@A=f?wugs@`4zJ)j=*NnGcwD$UphB8w+6I> z`(D3uvm;TlY?@CT6#rZa|w5sUQayQIdSnyS7m-dikyBT9!{Bko~Bdl$-Aqy zM`hoQBVN`UR`GlE7jrbTAi${zdGof|0=Wsi~?+4ZL@6%~~|f90{M_@L}Vd zzj8e=pl$3oRoY^*x2?Iv>;|cBW&gZ&CTpO)NJ5}pB6L5Rr}<~u0do_KB!t}b%*<`j zZ21%v^4Q{3XuQgE^1=)SxNvwbT(|)KKmqy>`{x7Fd0b_yVyP0;7EU$q`pBLpB?TYD zPEFivAF<(~7zlwSlx4MpVwT4n4*o!c-aUMm(BC|mFvB~Q;K_PIYzYvG&j6CW55Qh6IH4pDZryY0NP?D^a`xjS6!QH<;;0(W zd^oJk=je>&QTGql@|#w z_D(8&G0rXEQ51EZtT#XFxY*FVx=GTuF%5oeN0dQdh5n1*_byXEV?U3_i1X2|^b}<} zdXkQluh(7ThvK*3b5s(<{;%ivO_dZ@{f>$^S2J_+soj{#rODi8p1%3G=g!&U*S9lf z8QE*9WN&Z(19nzFFA$WII-r(-tY?&Wk z3|0}s?eta=afLNc+0%1#?R07adFAh$sPe_t-cEV$HeDwCG9UW+ZsO0&5- zyw&nDWx*?YCLnx!8~P1O-e#ES|2cK))Y{RiAIrtYUG_uYlky|8jM$=^JyH`R>b@3n z>cW5gb$NkOjW3Uf@h2wIbr|)PpE3VHN6sSa)4AvcZ~ULv9yfI|q|wu>ipzMxE*W{r zf~MVL@79D%&xH|)yPpK|BA;OVLeqYJQ_Jen_$uU$)cfxQL?yTn5uPr^^!2B~!JICu zJp-9)g5PUg=e2=tfJx`6mk#>RTeJ&Ox{~Tb4MpN5T%VBb`OWO?(-%SrWgadygC5(J z++`Tlpa`sN?c6W1`HCtv()gW0>U)mL_vx80EDHrd2humB6j^$a+{vl9`FN%!b@VG%*>KHhGv1Q<~YE|$c6{BD^?15 z@z)h&mnWK=VLY{xnHe+6AH(lY3VOn z%+F&K{rpaJlp~q;4y;9_B!{iePZ3a}>@YRSj2hkrp+~GGRg1 z=KYT6i&?ICxmnA0NO^A;9QHIF_UJ%gWPb|I+6j&%l1gsVD6K@ej*n<_5r2{3d> zJ?b_dCMv|#B<)4E9iymv3}kWHvfCw5N0UjbKJzahH7uG9S5{P*ITL?bTYGo-p4^w> z@!@*Mt*$#|7f~K$HHET2kOAGi5@o>=Y>20%rH_;9CVeFQKdU?U?As~6FbjIu#I+c5 zt(GYv$Y?bU41zUzbm-u|_g*>WOaW)Ya7$*VP?#!KUH|idH2MW3QBv7VqootNk9zErUY zOx#zdASQoM7l zqcDse{Y}j}9RIbnfaq-uPIIZi*&6vaw4m+{gdYFXnW&B^D3ItQ7m(jb;PcTu8=xrC z%NK>(lVf}lt(nS?Gv2SC+ZefyqeagyxP8BN-=-JA7~s^eYxij*;W(m54tnMBT!h)+ znqlGH_G1~z?SqFk!MsqlZ9oLr_j86T{@TcmJ_lUzU_)DUUKErtTys1MFn7<0yS!I+#`iWksmsq6X3rqhf zImJDJ2LMb10KBe(iiH0B#r0GWV0tW-bg*U$6zC@u9%ir%ibDP>H_u4h5=O)C4C&>_ z!=hJq;;(}!T40h-tv&R=dZ`Zzu;JlgC|WKC3L%8--NB^OR|%-l&tpXroFe%GS=kxm zwA(XdIl$A5OireL`|<@(eeh1jKKDcbm)tX+6bnMOR69nsK|BOlou~4jmMj?`H-}geRu&ZV?XJ?W;eoY#20I@3YF7tEfepK`o@Hn0;UQUS z(fahq$!^riF8_@F+jy(#$c^`15rGulSIMtzZbMo8z}@UtVcxy8h2Cu0EnWmOEosMV zBOcTB2BdDAuws{uJDnU+OehK(v~@^MPD$_IGAOI;vhkX7P$b=?b zuPA=(Xy)p=F&&n!Cew9YZwQl@hhsKu58tX5I{-x=Gz0d4lCwsMI1#fAFy;L{ASSkD zM*C@i04xWxu(yDupjk?eE0p8Yp_636&Fkw_01&^pVib6&pIFcreVsnl@xb}#2crIa zXV8<-FnIkuRnP@xPi++kn1QTs(Y*&_nIcEwGLLXEoJa)87Mc@{d|glgA3ux)H^geIeF6XD1h6HkFQwXkU|r}T?le@?+xg_ zNr3R?>C;ogi@dayQ&5Ne_51gq0-zFR#7aV-52r3L73jKe3mx0d%m!i1*mq^wKhfm4 zBN1cg(@6?_w3{|FFFyXVx&s6$9Z4p#F<^bK;=W^)*CZ4^xF+*=Ipaz0xN^WVq#Sx! zr}WRe7)ikha7-*!mR+B;CM7!7CiSNzneU&N6oFs*DY=l=0rQ6_U-u7b(EKGmUZ;(@ zURCTz*g+WvF`&uV0nPThuP{l(`by7z?Yc7*@F_gvz)B2A-9L);;R zJufe~)?`#ckOab)tgm}p9=tKSqO3(NDk1TzAZxGG@hot?!-j2;PRCWCm<6SVg;0?7 z+s*gJjvtKgj8}WC|K!IhN7mHKwvFb=ZoPzi19Y)iC;|}&6l-|x)Ll6sd+gW3W2v0#*PjmCfa8V<&D?l=^BPCI zb0dEH*?#*gC0&}&kj)ZJCCJBC@4A^i;#_9*p2(dP`kTqb6A04h*d~hGT>W1E`Lh;X zPl5pBGup(=zAU?YHH9~ETuALEd^XgJd*bD>NuN%9>dc+8G2npdPk7EJ?eSiwM7|p| z{)uA-G|F$~tCYhi7qUnGH;r*nFyqnGqERxE8N>yh#zlC1_eYOFGn%J6Xw;fQ%jguJ zw#w$#mZw=eUTu*Eq3)P*+KZjOM~xeKpf`GmgQ=YDc{N;YR=1skR9CunimIa~k+p{o zRDYv-)d7df!-C|M7&IYPDNyj$=1V|`pcVl})d-&tQIU4Hl?@>T-LM&c&$(`)(~#C0 zzQk`nDl~z)2`RfDxL3wtUvFVM(M}e34(^UgiyP$Xs-WJ%R`-Y_{(B$%O!XZiwm`6C zWPD)*BCS?1W%%=tA7(GQr28*#oCZV^e!6-MlP_7=`Ra(|v{eAXZ&?)KT0c0VXJCMl zMy%=RcR#Zr#~FIO*K@1UuQsc_4IBg6II-@3*BW1Ju$25WRPfK$w5RCE$wU1r?AGz0 zS7nTLm+4^A6XaGb5cC5TxnMsVs@rYh*-2|lM7*3glcZQt}9grc4v4Lq=}`*$UgGXlWZ{16EB5TI-mg zg4GUKEd^OH_mz3@74Y$dK%gYb-ya9^d;ocYDF!(<#N+vQ%H;)Pd8?wkX1_ld?-x1^ z;C>72w8X99QG1}N;IiV5|7rbqi9g~F7HU%F8x%LH5eg3yzwFXrG|7cV&jY5BN>X+-#Ay?&JGBKy3=9l6aIXg#O=Qv>_=GX~{vu6Wa8+hf+JJJNVm z*v2HAl1aoe+?fa?9u_-+z62X2 zzk_b^uuG-v@dY=ti)#BfvIjGHdfl_^v_%rsIEG`trtL+>S^hm$b9Ub^$PKFRvat)8 z*V9XkdvJh+*8=g`QB*l-55g2HupN%Au%uBblR9$jz7C8w^Wn++gkPsCzjhA)GP{f-t#VDwgf-)o3KN35czK+dFk_NB=? zw*_rDLlBWoZ$OL%>OA#*QZa|;li^t*pn02?W-(x|pol$_i+a1 zq1a^$dRnsAg@$A&=A6^0cq0_8KFX+daj=7(X(<&L^I9x~zmE^iVG;a#D#BCBDxp9_ z0(;=oKBTbMoLN#r2?%=IS*Ln`II1^CM8p~;p2bqVv;nkU@58SdLxGp%y47qK{yvh1 zS{$L8)KqZDJD|nFo)C~X8uW%M-ddmlxeKcP_q%tU4U{*)#1lNMzqQGL4AI>Sbcta1^vv&? zP(sig?|@wJ2~>C_`!<(lpk%wc`e?Qu7@%+-3?UAxkAe;F+$%Oro%kt|Tn~(cT_P~2 zIT!bSWa87PQRDtSBwo{7*1F4S zkN45K$C%>%Amab$nS^JF<2JaVu@i*FrZ)Cya|#j);pAl5wNx(io*npJ`3&w7yL8B{ zk^G@6hFe%#T6#8&j2#Vxwa@ciw@d(m_}tOGac~5)B?!Pd2=t&R!MSj}?qyF<)Bivm z2k^gu;6#aUx{qtkO zC8eZ*kaxD9*=@ha2E>O|K3q12TpOY+)~ZbYiTKK~sw1c$Wg;2P{Qrv`W)9_*c*3;B zhH!iAf`}2|jlki6?W-2Q1|`f-pEPgu7xEBWmW-6EoBoJjyQ&C|iSIZ4C8K%|VL)mG zNVHWT-t8%cI8627&8jytj|7SSUua@GKpcl1Ai$o!xjVs;UP`J9B}A?u#!Ta(Xl2FD zJ7tjj&Bti}1VIR;lWo?Ro9~Sd;GWocEb~MYRM!BjoFiKf}Fv<0opk5oiCEXtb(fpw`DK0 z@$xV*#pAO17b%G0GOX%)L3$oVZ8jX;dxtWrqsObK9|}ncSqbQ(;ION+rUHM%&+xBU zAm=(^v?nyIun??CWAu>U_v@A`laQjF^yUQt<8s2V^wio~FEoc98y-}SPOA^z9({PD zFA1(p90V;-)HXlaStPg)DLw}}s%8G%*qf9j%ZL>^jSH=c-y4Ny*%_ZncLwn?AhQz+ zul`MWMwIOG8ictpWu1<>Ffcx&q2Z_$zwjPyAcY|S1R#uIk;nzKj6e!aJsL=;Y#klj zu)_j^h|jf{jqFv+|7T)S38MCx@f?c)d%h6&8q`HlCb1u8_ke?}j7S84uD6zD2$ zT+wZ>)U-z4;5rjGpN0JzPFr1Mgk5fGB?Yb+UOZehA^lT-{-Wyi^Yi77XVWyXa2~jf zL~Zw_6zFysoMbu+5a^hof+~_kbxH6 z&`#8Cm{YAsVme%a{f6rvObKdtTJng^hJig$^g?uinStRw06bU+4oa0^{i$W9lnHUz z@b(W5!lnDvO1}xfzmYWD#*A&IL%bcIWmLLBYcHTV^|buI=26Th^#ykz1wgE>(9l>R zsH@=m`OB9XP`1A@9WJJRRb8DF+}+~6i!a~`;Ge9Z8Uw)bRVZqIk^EXnB!?!1h@tY= zwAy^dusIZGp_Ch>#}_$m2uAZPFePp3mhW0ypC|c$C%~ay9v?FTlQ8cfnamQGG$7p3 z2YwZls<<7rDABC+r!666-#wZ*d2En1n=xny5C!yaF+tZ4mT(9Kr?q(4thS=Yn|py2 z^z`)3vxabD(xH0=IOMfObox0!(#mdXI3?xxXAp`e6Er@75pjaRIxo zdZ56Uz^y(=?BB7M4+Bo+feV9$rlwz-+=rQr$vTo2Mzp602(T_^xnkH7T7pO3S>OU) zFwHK8;CzkP6!)#BygaCHd0=5>DK5nA(W7ag2g(0KIe?l}kbIlaX)pnx3X$0@rpds_ zsN!GsKNmHkYZcR>1A|6t@pG+{0eMgVY?~&$yqnA$mJZXAq1l2Ia07_zuqg+C2G3P8 zvra385W-7>$A>k74$qNtyEE7(JxGNCQu7+nPXUJw+J@8LEB@hyK|d;~`rtc23DYAV z&3$AzoZ*%OJ_I)RI^7!o&PAEf|N8k-9>!;p-z%B9*bORGYwT{{X8r%>atZApW=Y?k zh<(UIU%%~FO@}tXE3*T!Z%t|?$|+|(AT!Bai%;hqvez}1g12bafL`7r8)z749c2?Lw2#BSEzw&m?xu;*D z#7a!T+z(}cytBM%Yd3Fv>0fKYZ!(w#)?$5pr?E<5c0Li`ua0wDl zATI~4x6C{7Ge(672?h7F=^atAvetBoi6}Au9 zscWzv5cS1c5F-E`{e~}M=sOVgTIWR=O;ktbv?K$q|RLP)YBtjK_Imf77_Wm zFE)2I4v4`H;^A0r3MjfMJbrw|*u(@lXYeBtV&XmmZ08&Df}TXTKF6Qc_q;p{$K=KL{(n;?v(h`ny0Mx(<(}{1m^Mum zgQRH&v{1>Mn*6xEJUT%O`kSeFzh}`Q_t+F~=gt3kH1XI~_7w#RbVk7bgZ*lS%IGtg zBajN9uWU+x1(Dofl8N3>OODl`XtYYE^X4zG$WTj;b~-O3ivjv0fY$#QPw`7zN<^mu zj>pHx6&tzLrKCWy}t+>fxKg+wNh7NvQOr)RFzl<;|aE=3n0bO|MNZo#K0H z5xWKWJ|LZ<(ZwdU-myo%o!4 zdZLM05cRcII!Z?3@^WGmUL`HAg4C`PFLBa4q^+M0_V-_aXuws);}_!-#LuFafg!_7Gjgg0b{c^**(^1fhcLema!qpYf z+x?OwPW#)pyHj zN_fxNMqIzZ&>ut)&@6H571;Q5m;l6C#Y{AkFEc#eoeE|lU==FrTE$ubCGyK_&9}g! zO*k~kx~>OZ^s(@OVpj!(hC-j9kSb^EeJHQGozSw#oFXkyz?Cw9@uVB zR0Ai3Ln5nsE?W8A-mp?QZQOZ>I^gHX3@&U=Bfhw|DF8oK5H!5OA<@M<-4>X#P8PcS zjH*<|;8mp?fqQ#>!Cy3cq$P1B($vo0p8tSI?jJwv!JLK2L%qb$Pfnnx_O{h`c~(r1 zV4XwXJjmm90CyB@29)9p7$>PH!9mV5!T%10?ZmV9tEXC#C&*Le&8am;%B|kL+hq`C z@Fv~d;ixK{r^iSjZ}2{mrqVT2P-Zre=^&FX(jGUFlT)lHLzcDLbALlX68rD+ZL2#@ z#-CK?6tDr^x#Aw=`KVXSMDnG;hzF|K<;jun|7!A; z&RHb7x~)QA1#CGtSThwx8MolJO)wD-2oHmIanN9w+eo`WK>-Z}NFWkLOsTU{#1HGI zY>0`97T|rtV?{7fIjTt~mkzQOy~jb9W7xT6pNqI%LboH%9Lf7q-=Z&bCYnQMl4Wf92u z@0v-id4g0-Xca0hEKPo|Ah2FR-p4CtWW#Cr^QFpRG2w^82T3C{J@P-4D27p%xR@Tq z_%thCYWMUXdj4y)^2E&u4mbXXeAF-29F5h~z89i_cfp&E9IDgg@IYbdd+B7{M@q`6 zv6>eGvGEd0TB$t5OdbBQ5P7oQC(AK{6bI|UAv6Y;35_3t;4BRryejPHOB`P#IS3vC zUAmlmEh%(4x*v#Xkm@&NvJ;$@S4bz9DHT`c@9&daeN;O5aITP;LxO6}SALYF8Tnv= zAv^Qot;&63BW-jSbZJ<%QKTA2o6vYM$S)FY%3^-keVA1y^teuNr96)8m9nxgeAp!_ z37b?va3usiI9<cs|f;mfsJc{B**4n-Y^kJoy-Jd4c&0!$z%ayUI<%Ox)2*!pS6*+bdF^ zmDG`Kq15rFq+0X!+RNC7))u$H9;;gXV(Z9^SU3^pFwe$VQ1O{Xk89A`IIE8ov3gMW^e2S ze+MRp0OmAumWDQ`d@${C($7D)NG1~lM)s9Q{goSvLQ7PJc`J|8$ba_4j=JpXvCK$_ z4@OfKFIqY%PB`%*i zzn>-C-og9u3~8jsJf1iuE&bcwEW$G~y&`1?Xziig=b zFlG;P6DV>bUayt4y!E={Xq|D{?>fWjQ(`kuf_;%<_NpLG4IE9*OtsuR#)pe<(1fP0 zy<$b;4a^r~y5i~Sau8>S(VNxGIZzW0Bh#%M4A*!R<|s$k{0#3v5V^He%hk@O9$bCM zhrhXsqSsAzsCz?p+_#uW&#%1fw)U#&%a>iSGWR~7gaKa?4e_y(7wu(3P7Uh~Es)S!k z&BEc%*9moc=x(l z0tB6=$?U>Gj@v1g$sCmt8yZx6@3WiD%U6so%D)cU{jhiT)w8IM+ zY6YM4s}APBfi@Rc7ht*g4D~YwXMc5cp{?H=D2{Qq+|05?I0k1vh~O?LZ--vd+3Lc2 zxA^cr=-8TAz4(uhS4{W06bktiX(|+}W)F*nzg04u?dHvKzwUium$)adqF$n=Cj- z;f~3t^5+Zv!T*ns6MQ&7v6TPR!gTHiXPKg6r?tpG{w9m&^r@>rp28DevA{a(ZC>8}1BhAa2wr*~se#v3WDI&?Z(K#z-z<^yL+e7-tcKT~-hT8xTjlX+?6`v|>vgn6sD zIemdg6W#k4-P`%pWSGAbOm5&EPUDm`j{n0qE(sqBe0@ajyA}{Gs-C}<7ys?Kwxz9Y z=c34+47)^7vNT2lAB@}Hn?c3>X~aAjSSWus#xuR{9|m-iAue&i(-rWe)RMc;8g4iu z!FazCZ#sBlsj~Vvr9V_YLsn>;m5Vdp(wq^wq|Zy0(?BPmLOgL~K8%h0%?jFKI|B*5 zr;%-WM3la`r#ck|yM~QruuRwAkh4ylOI5b%{brc@qWwc^0NgqMBAPw=-2=)(O&rYV zf|fFR3}2pjQWXxi5LSMGo_L@DF%o*cFax1f$TNr-yPJ7p)wnk1Yiz;6 zR6iker&wc_|3Wgd`soqfHj6U>W>a}YNX_E+JG5so%V6Oq+aV2^foA07DhD<`zdtHM|AT$X(Vw?R7^H zDo_Ox+Z@0Rm0P&m^2-|e1C-()M!MH+0SFR_ucuKyC+9mhM8gM~-ZBr*5zzdpNC;<^ zJiLh7^g|pXZ_nI^!}gIMZ!rpqpxR9FHY2fm^*k6^mn{yzjkR~;L1&M!SFETldbMSH zg`E!!foEP`7^K{IG2BO=KoMXda@zVbpW{t1KpRzupL8^?&~UJi7H)ta5D+ZQDnCO( znR56Ip+HvH-L3u-G13)feOfs|6m}Mot^# zEwD5nhBA=P$I_Iz91lty>(~X)gIt-Ar-R7zx>LioxG;E3RB(=l&#H2IjgIK&Fj9%T zon2oPToU9)F=~Kg`%a;0tCqH1kXKQ$*%j~mtUE8(fVX8(|>V!AvzedZj3&1pn%D zdz_3%KRfN<(U%4|B5`;Qrf}ivhMZj!Gx@S9PC?mmAK`ccdk+F7d)N|$skGBvM>D?H z@k$-*mg*L>w0UnR?q!wt87@O_W5*B4D92G?kTA?-9jZz9x831x@SvhdL8ad4^c&~a z-^B(%L2L%N9?XgZiz@VWo1F&#L0;zae9Ck!j9&6fbYyDZ0O|zr+cmUey?AXXFw!eJ z)<*i@qHf;gilM4mmgT~zr78%*?CcS(a+MkQWR_+IXjld7@Isa^tmae{enY&Kmj`bu zCvVmYw5tdRu=3rVm=guLm$zc#;``7OxiSkShe!KI#~1SQ#I4It(sS-PwTo7a>+HcT1L&1o71bI&4*s*Vm3$FV*B-S3s&&m3-`kV=|bBVtiVnr8fkTE$&MjCCAYf2n038A9OIwf%ai2kQ{|f z7V^1iI`I_n{8(2sowCDud9ZOyeN0nVRnwoi;>-AxS71=$i2-zqssPX0w`n5SwAGje z0Zn@!#SAEUGh?7oMhvjiFlgk)2?R>{9#*@;ByosxAg9U&94$w8o-YX8gs8N%@w1W} za?_QEo8D%lLGTqxQWeFEOigvafy99fNH>XTv40bO&_+wC~WMlIEk%Ytd@}mXibDrnpQWBz|bA42t^7A}mN+#bW zniHPAw2TbN$fYr?Mc+7k|9}J2zY*EL{Bbmp8~WmIc)~>Oa0$ono9|(m*0`y$vGD_! zGmX=~k$O)M7MfW3{oCsgP_(Nb04muJ;1cfO_Qb{aG1en)WXU=>Y6rJr@J}EQUINgB zKH;WjLMgSZxY$V$gCHz#3i*;Zt(1=$e4we2UE+t^;Hax`jiEq$)wtJUc$QryYNQF! zee9S_J1ouA_*C|wMwU<^K1NL4TdMfX*$MYthW5j4Pbuc69;YO4(@&S)ppi1g8+ zph|QxZgm%GVuLBkd*Rz*L^AdpUL6z>{ZVcgQw4O!xxD&*S|ehLJ|6l0 zD6{<>O)}pvw?Fd)Uv;%%F44Z|1c>IBG(-5A2l%yp(TcA-JVWRv^O5>!anU1`?^eL! zuttr3&Sg3%wE7sBK4^P7Tt6qa1N_TJQy!5(gBu4jt*Ho1OkxI_O`jvtz&gwzJda3?Jg zKOMa-tNU`wMIg2(h0Oh&k#CD^v&3h~IZs7I+D9B$Qh8WCkjv9hVf(dEvnwQR>80hS zBjS96c>E%6HSdHg75a@c)KU)w8+U)&4;Py3nCa;qow+hTEgToeza#M!y`I<>4n&0z zGP(i$y<*?3{Ch|f{yPV%;4|{8nB=^)?^zNL+!jd$HTr1){5}S{V*LpyI~-nvqTO1a zaY}zSP-=cB<>h_N%iA|*|1FT=$^(UykVDCHPu{g!&z-+Sj{FKJyO(+PW~U2vbB{Cn z6(ppn5r{RCd-N1WfdzKu$h5!MyutYO{n5vm=_FqjoIvNF2aYUKE;HAU?}*7_6)LlN zmUB!%_%DNB$r0E~A{EBhyptJtoilXN3eJ3<{9jGIZ!t0u28CH_C9e&VV(A zu8T@aAp3Wx*<)qQ9PDh?7NW(Q9s@ns)N3Xq(-b<2MdxO1W0HNUcVjr8yowi0613nQVHb2*t0 zB{iSpLEZVpu+A&W1cWtdDZ}XT7)BS`D;=@%e8P3W&-&pNpZyN-LT~AKs$?OyKI;@f zjG;%p@(P@ixi;U^y_5DdsT*`cgQ1_c3(O3UtA}?gb2h(LR;DM40iwQH&w~wKo-E3u zsrZQy|A$a)sk?g@4i142PJ73#nq0IluH&$N8tp*~mwxWx-;!Z#sq|)lxo{`0_zdRg z=!is|ek-qi)-W+*K8X}0iZ)S9Yg=*6qeALcSqJh|l$4Y+N)+)ifbImFztR%T=WSNr z`x0tmpHq7rzE#8rnxpS5h3$x4=}Rs(!zaG*IqcazsJQYbUN-z=RMW0c8*%3H??VTX zv)x$IFi;VYBA*tPU`*Q+%|0ZeSa9_k0%Z>VhdvL=hKs@5b$SVuIZ6&A&)^1AP;7D? z6q4Fa80Kj~I#2~}G$EVo{-X^hoojl7buQ?5HA^F8+Qc#b5rBQ5QuHvV<}gy*H#!rb zXEoJ__gowb?j*JG>LN&2$%QQq!~>~yLuS@~`lu>&T?fmzW&*M^)b0QIRpy)$wh;Q!C%()ticTK0iulU0M!Kb;c2F#qEgx%26y;0iO^*9 zPh6`!hwC+G(BRdBS6wJjIiMk#R?gS?wc{&`7;r;ip~jF%UjHHE^Y`LJ0iLk9c)^F! zKf=5b{ZVc-avAuI&L|gRjE_;lzRq4o9CcMU1`}9TTf4hmcXn#&>Z=g4ofcQ<-<5v1 zP3FQ@mwnw3Hc7{BXn^(8zN)Hf>6gJ>IL;eDuP4+uT@kiKg}F@LpzzWq347EyU?1_% zHv|2*PD#X(cd@wWETLv7O^7{3D;Mm1!KZEQ#oZe;LTwnXU&hX#Wnxmh=1`E9lVEIS zJKc?h5+CO3hnvJj%sFyXf2)7GB59k_9n)Ld9w>n(YjynR(Sw0QQfDB+O|Vmoao zRru?X*k{MQ>l$Rrr7yJSEHP>$^<3OQ9X^~`LofAT3R%qgI{7~ni(~`WO|k|i~}eSF!{I*(D7g@%FZ9@8hd=~ zf3An1iG`eSVnsoqO`3%YPLG&$|2xCm27kog8bBkKB64De^9hIGe z0&<;pM=E3&AJGf)3ph9U-A34qOfS9RtdB9tE_a}6U;r!zWCG9P4f=TMOwr`;kKaR* zh9Kz0R?7@6N*j!b+BDe+k#*S19@j={pLFUey^{3aDma`x_1_&<9|Hb~CA5?NBOtjh z^)uUou355ER5}$bW3p*lWGi3l$b~2VYll9!818)Ilst@NEJ(^r*2~IXlDwaiF#5-O ze!qLoO}BGp3cW6YxIP%6TFv<)5yzMx!XtM29udY)aF_Q|u-*4Z?e6c#kAE6D`4Hi; zBGebx=}r7l3TlcKcOuRfZy}HX&DcziMgTV#~G&R0Hc(=(UiQOA|rz2vl!@f z{BfrYp;jP{v4cGXOrq?5K%e6lR5OPWzFO7W)NyS%*`|Ld0>=3UH++Wzr{4T#LA<}DDp zXv-h~8s&O3?@{fzi9@2|xzvx6E1=^I^qxd%)MOVu4T6gP%~y;3Z+|8Xn5`=p_7HK& zp{XrKoJ(d+siOYYUMrYKpGU8``>ZOciB;TDV`XAGYy-t!URObXw%2)pquXgPKk+th z_6IENbf&9_XzQQxMA*k1;S{(IY}hh51lLDRB3UEaP65B;xU<^vvDCi}?Thd*n$C3C zM_12uwciWSJAKH-TdJxb!?Wk!sh;RESM`Tajq4La@~9v*nV!>S(L zEs<|)Tq(aP*t}s}VK6|F+E`^L>YQm-lRR@Phvl16;w|kwMXfKdX zut!TBT&dv@e>eGC0X6DXN zgcHNi0%sLeV7r=|n^!{46o5dY66n;)p|gm3s*5WUgs})AB26)EgIFS`?NKS*(&H3a ziOC$A63n*eba$MB7wo3rvh;32h7@H z?d)WiAD`|vKiV%E6D_JU%T94Q^Hccf8xTC-f#Y||u)$+R-6<+nmEc8B&me0PjQ2a} znzcJo%FvKcUq`4Kq)Q1tbDFZa_D3;E^t(d_cOp9*DJ=W@S1lN0U;*^p&gwNC&uwgC`5I#+_RPW#Qg2X0AswD?B^cmp_SIo)`phOY@mIO42#{PjV5V8WQKy{+a zb>9a?251c|7_YFY&489y2fKXL=f`OHI` z>Q5mV$d5F+1ZO|*84j%)yutsyy)eNz($?YdKyPGI5j{!fb$mAWEARcs!vk+vKgjgh z&yXR9zPmDxx>Z(JOQeu7z}tHDCy;{U?}&@4|0aDCF8MAqGrLgYl6VCBiV zJ!e5=L}iekciIv0#h0e+^CK6LLQ$4(1nZ*9lQN^ zKrt-gWO1Y2U~;nm&&!$5hn0g*)dj%Lk_wcx zMrKf|%^i(w>%!?dXn@qI7-YPpKmH3m1I9^pm+uNa{+?TbAOPA@M6`uppLe`oKcGR< zkM&O)Wy^*n=tun4O7hu@L2gUG)9`u1D4A6euQM1$#G`fLcbp+#_J@VW({{Ebs-$$n z!>1+~l;cUJFQHi+UN06e)~-~{P!<39%kHSVDS7Vi1i5eUYhN~DB(R-$SAoJ)`qg7! zIDd-+{i!fyeLfDgE1by(l3bPDZo$>A@=7m7hpj@bZBw89odN}~M1WiT4FXKe+q5q6 z>bL7bc)b2YlV&@w!&t`7cs@>v^8hg#Mk?T?riO)v9+P3*79vSJ)9=G^0uVpu(k2=<|Vx~5M1;D-l*I?XXlgogS8g9e7^U%Q&CU`CKE@@&Dx<9 z&0%-QNEMNH$+QLJOIvY;Z>(|^<1dH@5zc%{U~B>XRYT*>yF$riwE7#D`&}X zS@ykhgMJp%^&Zo$70!gWZiAK^R~=j{o~h2H2)J{#raJI<8dnj&?Ycv-(7lgNjCGFr z5YN5TxzC}58N53Fw{QJ`LX%ly_?8hbTYyElF8TqD%TC0d8uya3yjtPDkr)HKNvc7Y zEdtLL5`{Va{oq4qkgZmq07#=(J4EouJ!?DB2Rri^dHbE$inp958+Mj|fe;9XtHf}} zNaJI$z}@#*YuX7&-its!w=_MkI7b=~o;kLEkfz>8u;9A842UxwSMXb%sDngH3_`Mp z!-tD2D>BsqC&%Z^!9#kA_6O+Q!=B||d!_(DWcBdx&JNaPG2e?$ncEXi<8$8@=Dps= zSYmCX*x6tVC6;1=l@seyzx!$WyGl%M=fEAlnv)y6dQ^hDspQQK@kRRIUD{hRx6a!( zoZ00~E7N(Wr5-|YZ~-Ah?T5u!s`3t&URbB<5AX~6z=wbM;@X<+bX9Q$CvlolWMzC$ zF}}39WuGkF7;kB##f7{(^|rds=H^okU`>1CzW3*64Lv=*xfx9V>vMLzCCPR zH}vz%CGz&^Tpe#}SfoT0LtsWZ0$HLL66n;HV^HDxS;Pz(L?GT0qsK1HORDRIlsJcV3?U`zOn4-`z>aR6Gf(@SZ>{I~*v zonB;61(q$sJ|`60d^-1w8G>clYU5Jw(X})S5S803a(6+d1&z#^Sw|MKXjhybY z_y@dNJcAliM82ZNH6f<_IzFs07;tHw6=@`SgU|CMX~#rxzl<}<(QZ>%akTmNg+Cn3 z{`t>-hjgckwM@)!?im0p!U2?n6G0#QXJ|!EZ3EU-ceu&N+q=hm_X~|H$j2;1OIJFM zxe46AcdrjMPBPttODe&awa4NY$L6gjS*}BlJHM4^%%*P~I~rA!v3O9PRKqH++4Ge> zffnviSE|^W6+nDVv|b4fh)^xnA0L8n#7V4b?vEY`-@9XJ|8gib=3yvG9q-N_u^x=H zYqLaiCaqY2#vEZFEIlR{OD6(Q^E?;GdRzWcebzJB0Ne&dtj)^AirKv1;J~~XZlz*H zbUfpm1nkN8>sJ%8PM zr-@J{R?|oB!LgWHBEFex z_}R@CaHYts1Iq>IXZXlJQ%Z2rELlcY7XWN7lV=#a3TNpri%4qCni?7d3e}b1#Xjm zplHoXb#8tPA`zK8vA6h92-nxD2iPn9KicHo-T8#++rbT@2t*G(5A8~N=dD|&dLfHR z9*rHOsuP@a_3GrSxxBixw0XD3@-sx$TBfGm)s9pq?t^-Q692}B;YDgtc;S+_h5&;b zyJm-5GNU($C6w-XHyP|69ZP~)(XVZ9ysl+{D9R$?!%H&9oHX2KWyAE8Ve_Dh-`nBA zVqI~W4AcqL?NiQFIZCy4h1wYAIbstWv6qC6^XyZQ2LmGR10w3`1BA(Y)M*+A-bmzp zccLT1^?>sNV`u($Slg0QQrhYl+{_Zf8+_E+*-%h4iA)fzV~M@qg%rseL2Kab-U!r_ zxK!Pj?$gK=%CC5g&80t?yTS;9+~#j*tFd8IEfGZ@kt0fsP@tSiC$omlYJ|2PMNl*8 zbjU^R9a|^o{KfbqE*TT@L*m4$+h=&&&(0`_z;#}y-3kwD_tVmOyyTuOgcGcAb&*J=Ki8Tqi3;nkEJYJ3-mm*~(5`b~!-d`UKLDBZSlTNV+(U z+8vkR*qH#Mg#!`sVjW2oQ|mLfch(lzYM+UWmOT3hDYil~oVO;C9<}&!8lt{FNOJ^t zjq&TN;@J{?KCr4zd7ALmFi9_1u<&?782!6Rd>?NzJk`;c8^NUqjS zy#@1){3_s;V^Sx#@}hA?=T4|NU-Fg~PS2a9Yn>OS&Foz-cIcP0>zN)Uqh~q#GhR2r zYS!Q}5U=zuF?pqAiJiPP;^y{Q#?3icCJU)r&w>ru}^xVre?ZZ$z6sSFTd(b(;1v^<0 zWqLpA3$V#nhPwsgp~8 z!eG;lcTFLTzuI^y;`Ha~TZmimn$~bLi9*_EK&Up-L#%TZI7COdjl=Yti$Q$i&SlQU z-Oh$dcXf_5x=2HbrIM=VPhFXkN9-DZ2-)@x5cSjk3RFj&4Cij2U}nQV99|uBN$rr5 z-7!Dy-z*5dtB!_;v!83q0Ph+BYAN>D4q(3@RN6}1X`GkQbD6AyN+z|{8JA6Uu!QpX z{vrrGR(`nX7u@|w^di~XWin?A`AyhIV3*s@>!R<+gmR(AppYww*W`=3$m;{|_z@q} zGU2-Rz64e7d|z_Lz_%?XA7l&7aQBzE@VV1>Xg)%v=lJu3J6UX4KilVR z0(tpdd|nmFMt$=RK^M$MnG60_rC7u+?ahrLTDpGBS)RzfQssji8uig^toVIjFfwo^ z9?k6Ny`HrpOhA{D)G|*S5dWPG)M*q|jY;*pIYDWGLS+{IOkmV|Wkg$zgE?nD{LCnq zwkW^>MirB7c9|3VPr$dwMsMT@TDQj6lrodLD!L9w!6iN4fvvqSG;cWg;l$kxs_9Eb z2hp(|%sxd>J-=)M)-j&>pl_1|!d`!>dL);yKzDlRnOO><`vua3RA(kf(_!<6)>(jM zXSj{e(|%=l4`1rYhT=eIz+4h}kxUhR)xX-!lojbCvbz;4x?I<7xmgkBw{fv%u-p+_ zN345UJSd!mMA!C(k<&t{a{C#;Ib(?W#EfY6o(!DY({&&JD@VUE+c8t~UUSPL_Yen>>7hHF(p1|*!_bRd+VJCj6&9aZXkXz&4Zs#Y3m zs7#VIF?|i4j!H^FH`Do`pr8wP4Fm?OFE8D!c4d5F$?(8XKQC*^zGn6AbM*nHs)?1m zAdq)jp7c~fmu!~@U(M9@@t$rg(iVcq5(b$4g%-{4nk?Yb!PlnyaXSDr2Hgv)woZ7ar%1 zor}J*t z_!nT!YYN-djWW=IN&D`Ms}?I+KD??a;l1_y_yN(v!a~KvZ2zx!$?_iY#4mPv@V^lx zZw(f%p?zc?@YLP3S1*f=SJ$@UtiN|6<+cK003L=3?LVd(W4@eSv}et%6a4ys#4Um- zgD+X3it!qLGm!;fkW=Z;sG&H@i`oxHYg5F>! zRJbqxS0+b^;n6Mif~9@XgJLW=Vw`oUKDc}O&It5t!eXA3gH*=p+gaJI+@h(s;J~ZF zKA|*z&2|+YKVo;|F0-d^@U=wL78{$;>e(U`5f z?Vq1VI$_-EIK}wbgjSFBLjLxj8i%^0SEaHVeQi8==6HSin9WfKCm9#n8kQ?J&*c`8 zK~;$83CpEvIg;H3v{QukTu+4qCh{jq{T+hcCrCFV%gD3Q`_NUHgu<;^Tv`1&b~-wW zw}4(5Ezx|)&cO4>OL~fF={6hngMI!>E$@Hhe;$7j2I0U?SGv@WV|Z-hAF+Hc9v(@Z z0TB`q>`-`Shyl125S~=-He_e#=ij(dFG_MLprRKB0(eBT`2oK_F@#zoH!U1K65r0% zHuUsmP#F+m=Bz$^W>^}9Wf7(+K&|s3ZHS-s)xXk13NecV%m+;A#`t~u$Q4w^PIO~S z2#-PQ!q_HydN1+Y=XLgtUPK?|yHseYzI_hmjXxcNRHNPKf@BFSs4)jdT326l9HTBy zQf85tw}{2ee(K6CD!QRJ$ooeoIx;)^X}!OnuhyBX;^RgVkGq>d$7Zl#=Rxg?9|8bO z`;jjmPeFvt8!rg+)2Zt-1@v!}i}l~~JfqWq+5YqkUyWQ3OzJO-I#ZB((greAlIbEC zfE$UW)UZ7NcNymf65FE}~z@kRh2@xs8L>|+_r57;E zUGLImvxUnDF9pvdL-B9ie_r5{!_VR=pAs9>&*U29BXS`Nw6jX`XN zd2!OfZYxwayriYKUE-1dXQl!ACdl^GWjGU2i~bp$;Ej ziM^uC{iySfsb`wNuLb%WlkgOm5CiJnlcLANCsD_dzYLJ4#D^PkW5TDoNq=)9AMp>G z0N)~a$VG6teDBSB9d~fcD5*?FJ6$czl5&lAc(T6kbwxL+??WJr#P{$@hXPkWXBVM<>T3z|ZE zF$bPh2D+aqr_9O}a(O{&+rM#}S#Pjs+q)^QiGlTzD}R@- z4uq*c5qXgO>_#RRe(hS2XB=O%W@nQG4LP2VGcJ8^x$8h|Pxl&5X@uJ9vune>l*dzk zJMXW9hce*4h9Tt>o_71|HAp64I?Sg&5D5aTEY`nZ)nW=`1PbLtl9Qi}RF+uBNgNM? z?+@ntpe8CUUQ{r;U3hUZumcD+DmN2ZAD)dLe@Kow$kyGX2y7F zvrZv?XBDXIqEtR?GUo5{9YY~PF1=1h)qRbqix8neSc+%zJ#9AqXoPQATfdnvsp|1o zKeMg+h>bz*GG}&&S>#TGB;)*(M04{$rDXwlPc`bKMG;w>;%Oxyn)`r@p1HY2J~beE zIsSJNNY~)eos*vm!Xr8+ou&?a1OZL30hQhZarzw+$bTqNH`Oa`9uXQRxQj&0-pF0@ zX5w@xn5*xkLZEy=vF|H8oNxzlmb5usZyE9-ZV?F-Tg_RFpj%%-M0v_<-~eL?I(ZW+ zgCS2E;SFNkk{ zy7V;pz?GW+6-Dl{I`T2!Z%&EEh7Kt#TEs1g+N;bpApg-X;reTLQ-%uWhQeGzageIF z%`?JjI;06Xbdi0{*xS&cR*;R?mn4C`4d6>`X^paauC`**$Lx15!LLgal%i>29`Nek z?Tluq!9~W@renchYvKk*?bx5JI=?RBB>qZ&|JyP0nK}3o`uw?RRm`DaU_jUSY{6&n6%b3Ahde3jq$zZ#-YEK}noov>KrP!;9K(yL%-XFlF+Ee(KX@-xjVTEKTwX>4Lm7u& z$aPY0R|iX%KdoU@a^Z!B-8{H+T-rrOlab%ABBPAV!+3Z*QRAe1LzuiZbij{`AYbwJ zZ5xLVBh@Qo=jOn|O?v$!Z6l$eq9FDvMh026f1NUXY8i`|K&sOA+ovw1C}0}pm!D$X zewo})wq^yt+;wi{>?sWb8YaX=?-iRl-f{!27oObX@>(>SZG)1f?6w@=C zUItTNHfXs{K3Sw%9$`WZ_-(0M1sdTXw%N;Qzo)Ag4NCe!Rk1E?-mZd~XZ zn)y}TIc6D)6R`f)t)Yag>48&QqnY;^PM!#LpQN7S(e_IH}{} zq9j7nKXDTDhSiQc-qIOuPULw@^^}~N$wk5M0tbG!ugG&$*{GoDX6lJ+fR{aM{qEQm zg+HZ^xk2nk^W+M;%UP*#aTqzuIl~-4xS8~xpl9CB4CONBDEWk8OeZq-8lgE|?jn_N zi5!n68+dEoW=>E%aQU^iWa9h6YF|fh@H9E$l`lKepHGo;Jh?x7HW#_1s~C~oK>9Xh zy;xgd0lBHCr*WQ|Yvkm8M0mKuCUm!TYk<#Bt)NCF47>{@3F^4DSCdMY&gNCOQcXi7 z?5N?(6E8ILU@s=2gDqe5&y*G9;44N>a-D>ZcR889p}dI#!?Ft``xNwQYBcZSRo0?Q z=KZ*l8svOni=w94-D$Hx$~@LTt%Q@8wu3*ZG@6xxZ)<5U++;RaWNa*ZqL`@Y?Rz1h zO)_8~5+0RbeOvOux_48C{Q2^sZjw3`En1^SuZ_0TGXE;CNwT)ySs%NW$NV3)3dAPu z%M;X>HZT|DoWH93iB>Wb%ThM`cj*?jIikrPIE8oTW>&zZ=|Zj|N+s?;-CWB2sBcdL z_@Vl|L(6pz@eK;ZI`$FZJE1I)NvR2c8LNHXxm5v1|A56)$mu4AwYDv8@yTxKJ#hY= z1N3z~T|pg?DX&0#Cv{=%J#Mcsy#Lv0k8$Y2e3G$so_68IwCr~}MvBVA+d7hoYWgs6 zE>2>74j1eg0Mw({Zq;b_gal^cjJ z8K%ag&+sSdq4Pyeyue|+!wZCdUyv>?!O;fLs$GkrPHNHe9L1D!xQZNRY5R=Z2L@2*AFC`0KK8tX8=;QWg`jXp>|b6d ziUif%P!~2$#;T;e&SenMuG1&Fgo_C2c(O4MrYB?&f70oEt)kQ$%4pVGCqz>g3Zv;KP8 z;oPyZyu1aPUO$Ay?Bd8EMDh3ZtoaYkLwAqm{R~vUYs-n3r$9w7*`vx?F+U1m{+ z!1QqK9A*q9dZpa5X1TSVJ_jO=9P!2*Q6?fcWX)NZh^G zMf1epQR@T9N@doHsoZ4+T=>&=wBi@}ZPE&B8$>wPk$Pxbx%Gz)@r3$`b_IV?8nfgqwuB$=^x)lyZy@ z42LX+o(QmmZum?i;a-kf*UhU;ekcqX;-68+r|RB`T9OXzWzPz~W{209AWx5~CC+mD zu7H5m>7&R%Jo06`b^qYXObij@xJ~P7q;)}Y#!l{^Kj6p0WT0+dBz1?l$K@5jgJx6|Zhm^7ChWooByzTs9pZt-MUJAg@e1_k1)v z!I%;){%lMC0)oW!M}2wJNuu9_?1n=2{R@8`rg0Y)=p~ z!aik;7IH{^sOwT_j%2Ot3 z?Xh~uLO=5*c3Ra}jG=ip+j2nmpp7C5>17zXzZQ3h(Z^f+v0@ z^%|&yGGVCyyi;haUIAZ3T^^g(;_0xwJC5bT?L-_piNUNX!ZmUXs76 z=iV`3*wDZ53XpOJj3lxYdLr*4D>Uy$ZvBCbiX71j9|3R}Ir^EP`1Py{$Wf1@2)+w> zPcLJfydYBkK?R*_(7KK&R*+OHmlLJWZ(ia{dQ+OP@zL7Hg)NeUDW`Q~XOVvoF&`TrdZ6IBmJZ!JClT}bkDdVpP13op*-^(o3Q2y*W%{B?Vz ztfw~x4jqZNvyJ2aRjbD%DRqU4rPKzN$?+?BUZd3qetcO=$b`xzy0UpzFo6+uYlEvB!M_fBQg?m3YBs41Ok8Y^ZJcg$^Q zE$P{jzLcG<&`<(}B!b!Ht=Vnw=oH%zYd`wehcz@7cT#K&alydX6_TGIS_n8e_}uYh zwUYne)AU2Pl*&fxCN$>psh{ZdxfdCDmRmA_SE!07Pi#VmLhVJ<8$UJo?~k***>1b= zG@S2F8)@yA&>FQM(+5u?=(w&S7YOaNr?tg9!V)#y_DN}8*0nsvwt~{p;={K8Ux%zJqidfSS{uH(pCEtpx%Ry|9M2o{BV! z*vnEM1oNep<=&9{#0&Yhr&S7VfpAuKc`U>`_?D5}S7xs19&waq#0Ba&BS1}B8zZ-{ z4q`%`TLK#q8y`#Gd=y!rlmlIidNr-QVQeB~UQGYD18;fX5Rw>rtr+%~EvvfI5`jIH`#r zbipK1)jORV_j^lcdj5NcTUe$hms?D+PBK`A^o0C(wnqw|t3DJ6`~=h?IT_#!d8Xt& zrWEeAlzsmTb5Cs`l8S<2g|Ls*j>O&UAI7zc`C_sf)T<9~QqWzn7>_AQM4+p*TJ$0WJ{CJdMc5$$Tw zt=-}@fu^P4T$xS`HCr$7?%CFZ14$>9IUoMLzJY-^kUa@Q&9;M!`?6farPE!eM z5_6|%9_JauRa(r8Q*Y+8W_Jv7B}>L(|IET!4;Hc?S4Pzcz}E`d75ra0DAJGyC^!Y^ z^D0W*;(Rwby}XVSe&-pC=Bzeu_CWKH0plGR5Kl2(a$N=OMT21xZ*#{X@4I;5m^=o9 znO89S*Ux8_Wm@ECegq-%IOErqz+-UXqD|3f_7~FClR2k-<6lWq%T_%rHiq(g-mC{b z1;!G=qTb=HTU&k5%+vWMh>(o7@;yyb2Sv?S&=4Ga+%y@?e_1HOLf}2^=>~=?>+&I& zq+3AVw-@BxMQ_*et22TLtulnS6x|5!eHvO15%3Jq31gK+@a=LtXwY!&|>ZC>*=yp-e!RP$`<4bgH9T@JcUKxhKh<$8h8Gs+r)dh{J0t?I~zb- zOyCXNWvA{F1wd=p(~s}sQVawb0HNRKTf-?F51RGV+DZDjr1!r!E;tLceTuNwfy!2m z>#!}gf8zffJ?Fr0Xt|o!WeK?^jx+HRJCLmE-*U3-B7S+T2{*iq3jT#;@FU-FF9^&N zz+XOfsAUt4a+J7qra(HixbE(a0}U*Qll6EKxJgt+QMe1c5}>A!+(Xwr}~KR_s- z4U9JXHGrEufA@}bB^@cpFDt8{uczx$Zh0)Xb9yVmPSOr4QC)2h^0Z+N4Npw)!A=YD zm*P#FDTLK^T>eaq?*L2f0l^b)bLF*Y^X|U$ z_%Hiu=9|Or(Y^B#wW3whu-n$c{OtGbRm4S~t1qiNa7$1Gx(z^LwEN}5G73RL&q_-P zh)7c*OK#E5_wL<9d$oSS0#bH$Wp(xVlyHC${U$y_JrT^Dc|a;`VowDGo;RRI{Z__EvmMqkpfR{Cp_NB?5w;D1}Ft%$M~v+Vk<7q9#Z1ldDPU0qra*DhZGIL)i(v%=$A*}gRYjk}E!aH6pR zs-NA#(J|x3LC>1TTk!I6YD##+|3Vne?CSas_kp%>I(NY07y-dYQ_nr#ZU5it6w0_k zh-14lbc2XrJfLbI!K11vaLAU9SFO`K=^C7#6|XjBu7TX-G-cS8hj0hLf2QkSxPhC7 zjQ=(sL2F!nmhj0yGfYFSSAWV(MunZx>HeRU=2lf>XK5d~|LlbGh*nQ8-!CjPQj;r3 zA0B4jhXro_>6eWEhM@$`7x%r4Fdv2>OiU*b@G6gwy1VK~bRW3YNto<2mEta~O-leE zriR*z3N4(y-BaoTKr8f()(#cC#NmnHVKG`5_lIaS6QT zTPXbJTyq;N9gF>2T8IOCXE(Y~(+0G;T&|Q&W@{gzZ(9n5B8mGoOhBXr zy3mz733OGLc}uy%ol<^LBNNpt*N|!(!wIENUE`qV{{cYy`D{`SB4 zUl^y6mqnxX4)R&>8;n3KfR~Mr0Gt*d0bU5`kl2Hy94`1&Ku zaJzbDYdU1p-!?K7TLsYI3RHu0D#3H=C34YEkv?2+jjy<~9B&{M)>`uynk`t*@rPll z^P0G~{rKX4Z~KZLN@|twjM6KkT9+A(M|1_BX4}d}{x%w{ww&ZYf6i0``l@32F%j}@ zpTn;nNicYRoG%BkRz&-(C*Bv8EFl2_mmKh4`>jYN^Q!khg0Xb$*?)v5;;t^RH0bxo zR=ZZl$`AX=6zYEMX&adZlAF&Xfn~(`KG(Cc^UyJPzq2;g!f6n34S=FN+}s^Y|AS|% z;Pz96$n1CTzW2LNd}$jAosoceb+dkDR%Y$72C01iPfJ(5-yYg(18NKP8F7K_BHac+ zWBp&?AoyQDT?;%aheWzp0BU5BGRY1~h}8U_Cn)7fc{IO?bPtK}aXMDytKH;^Hfvq-*~e9 zcL;<-qGy~C9~X!bIl5A6)>ID{Gj&SusYUe&lW%@ET?(bKPl%{EO>(jcau6Xdg0gQ63IOVftuOVQx58CQ=AE0ihZOGE{7V9)WBxT$ z8I+}2YA9NNyZM;>qo&-Gn=d-*!l(WQ8Cn#J%+~~)rsco22{s#`sAuhBr$L4gNdP;?L_0&#rAM~0ZqZca;kfZOA1Jhs~Ms5rkiymIpyDziDZa(}zjEszEXXQzKib3&UKbWd;l>R~?fn@a1u0T4IGBbMzMEu$Y8!s-9 zzv1Hf@LA^F5@nVOSv$OLzRY3%qM*X`K$gX~kW|8s!GT3A$F5L*GD zvTWwhsr&J)DqlCHBeJQxk&K*w zy!x9mzVW4J!Oi}UAA{9n?|x`2xu`-3AktFJTm}SLf1*Hu1k$+y#o%(Mtx1>aK+nd9 z43)eT7bboTc~e6H~w6{GvIPHDaz8+)|)*Yw}&FYWIyafN4GSr>*mM{yl@ zpAF#n0{tbQdq3rD5+_UwbiH|qsLZy1udlmktuc<84(GoOo%kdk0Nm13-90_4;=?um zXMpB}<3=u_F?ub8WFkVQxzZ^j~ z^%z0!5k7#SbV&ec6Ul0CEoK9TH;{K6#tHY|Ity-~&o0QcIH2HvX=z}VWL;CccURIc zA2Ev28{+F|&bjZmd{Q}1nR%yy~AF(&(X;&gdnvF@Pqe=-}svK z8^Pa(UX{g*%u5jqu7edZrN~ugH)acF`Sh z0G+;eD5K~m)&ANwS_Bcn?dI}|4~8P*VsGF4&<(f1*T!I-lghD~w#M~;f49DKpW~?Y zX68CG!99*Q^{YlIiN91cH_~BI+y1*H23{FHdu+jI|Ed&OpJZ_FE$@Xlf8}oYa-!h+ zxQTi8lFslN$6F!Q)%A3Odl$?TwvyIh#*3W8UB1<~OSXn=BS2eYb~xLE$) z_?4}HS5U+~bb)*>tKq2B-=ytS_)Ll^ziVc^f9H}c49bmve^>YDO}cwxYr}%OfURA% zjuSVxSD)t@1WEZf+%xF-X5M7%^{zZA+z)(1xjNq9KT_+zB04HVH%J}akImJ!5 zVs6R_Rz^2kl&)^36WtSitvZ$1HFjsA>E8<~!Mz}}%MO+|`_)vKTVe!1d$MF1My9-| zF-l%DOm-f>Yn}#QgP~D|8(X*PYd&i<+Q6~7q2;*ydQDnhnBnSDS?mMDensQuNx6d_ zJVajj4IDOJRc%qsl|tq(x6)~R_n)0U1?_B?ZGp-H#x2*7?9X?w?xm_x$>lFuLmEIufqK_?MIfX8Dafj zp0O;^?-z}kh=Z!C+8;Ddd|iFjRdvg#)(7r!ANOhA>3CK|{(^~fd&aBfx3Nuc6$j^U zbcMnd(cuq1ntYRR5S6``n;+R#cFFxGJ+}@_d?ryCj*vgWb@gRAJ?5(W@9wft>iJCD z9{h=2Gm(#pOxn&AB4tT%i@Dp}Ji6-l)$m5w z9m`*7Wfkj!^)*GYw-OiDx3BM~#T!E%dXq4x zDk1auEkl)Jj+MlB8kMu!0yen=u@Wm{+%Bu=pB%idF|W$53K`7x4_>d=(k{zsiuF)+ zY!Jo9SZBO}MU9&(`~nT#Zyk%>7enR$p5dinSWs=+(>Y*Kq4$X*`u^rpA=^Suj=@D{ pp?)&Q%GRZo5t0^o1dP-X)yHp3T>d5p_PDJ4fP?&E&fr!K`9QS$pza6& zXg&Wf(12~R5#&b#C#i2vs3Z~nW@%C+Fz32H5h5dF@I&6hRO||ND#%0CxYTdZ3@D+lI01)jbFJK zZubxJOh_k1fDxzf*DH;*vSQ=uZ*m>3DQ{Wg;5>hLseY&Vhq1Nn#}~BoefMj#dd~Ay z&a&0a^NhRq`xu=0bdp9u6KYp7C=r?uX@d;FWxtwKg}VlUy`e>sIM?wG@q@*4@4tqY zCM$ui(3OSs3EswzJJ(?Vr%^0I7uyGD00hK6JL-IWn#+mhcRZX2w2Ln{DP&}j=&Fa~hb&rh5f2s!{c&ItTQkHeZ85e$&#>kFsg$R%oB z<=`qI=)_L_GbpyXu`?mh9lelzqZ0^H@VgU>@d%#x9xXV$+wIc-(G@>(Y%!m`;QQGA z)9#NI8%gN8GmOnTLEMF5`AR^llQ2H4UUmHZTKkRRK*=xV5KS#85Ionz3WLu`b0fy5 zJt}(iZdehf7UHDKmGHyU)H~e3Q$jx!j5)iWyivOTFYn{v-t*z|ICq(z2c)yWQsBhD zbst;APDOdrie7kCJ^K+^eDyhLnitB|pHFfWRYQx1-|VZYnE#xM&*&k2PzXg2bzymC zZBKH+2{c06fdDWLU-CQTU!cu5^@pvBHK>~>>}X=ZrD+Hpl9?CHhBc{ zN|JcyU%bIWb>LoKs4H9jX%99Bk-aEmU#$3fv7%-D$z|XbUb+e!Fx#7Y15QXFjfauJ z-+Px<_y!dVJ892AU6H$!e0W77^scYb)nj#G{qYal$OioZs@_>ul60Bj-@gvLY(J1!h#jgNLJUF!1Q5`%`~e{T zOpM+f9Z2hQm8x!yh|9LhU0Epf2yO;oBj5VYuVML?1ui2HU;$V0Wq?TV7=g{D&Ohi3lKVQSW zPL3-iAR82ivLU~E>j>2pkg996w-0(I-9%>ve+CtU>^M2!f>U*omoI>(lJsaTppoOs zdZaBRH5+;YN)MT{6Z>$G5gVy5EYO?^0HKc+G~YA>(z(21c#jn@VYXZKkrjR$^1sKw zUN4NJ>IsHb`q7eZa7U8DT&TG%zgwxgCxrRbDwzo5hE}QV1RK^t^jAhL%OaL#Bc#t1 z%E|D)xrB~Vy@-SEWFN0t|8k!E&;t;p_&DO*z696OQM>B}_?cxyOt`-4x2d+~rjy`_ z>h6a0C3HI}-8ZYGd=ZH#CH){lj{so2g%RQIi#yODw6n~E;@~f0DeTY?$ovm(FRob0 z!{wXwFU^2A5|0Q^I7FBn#lEFJtnP1M0a_OcWdh^`I*=K3jz8Ovz2_O!!tvm{=CpaH zEcC&BC_M~a!q+!OYzgskbffuoe}sM|_zhS)gHUT#77SFwuiIeUTmgFKqCp7R&yADlz zu~~^3^&(b`{+nLl1pr*METMNlGkKWe@Xo9amf=;34pOsrIZA}~D!WTr|Ea)654|H% ztUZcsiC*nN6dy>o7nkZ; zIC)n$xiTyaS+4evSc&J*dVWQDmdu&CcbK`HwO|Bc_)Ij>DS5!VS~)%QKBrTHV_xn) z@H3kkNze+~#5yo?Yqj;EEjeYe`5PLxhS(QY8G7is zz=`yxMnNt*rNS-fTyz^y*)H=EMMH`0l12UIotmDqWC3)S_ry2(YLsix-9WTkhUB_ukV!L5c@^9%+vmE zQ|ny47y@$uImRfg85)3GsD=BWB58T=Up4?IQ`tIfllM#UoL0{IE<9B8u4%$qk-9hO zJL4qSX9j7*U)6_e4JSc6m=X#C9j*Wu^g)@@;LP7l5NTw{71wMCO@9r6@}S5V~RQ(0=9c%oz{B_vq1VR%So-EAxZ0=rM~Q~ z5UJQcCWDqI{zhTmneXCJdm&4flY{Ph9fY|=Ph3r2n|h$&Jp0~kiQ<~yr5D%61u{!y zK5^2VXNNq|vZkn9@#|0MtSxil^6baGa7C^z_upYVTkk%siy}DvaJ0`)INuEETi=FU z(39EZ2Z-M)m|tSP(!+HRz>sjl1J8tAreOzHtBv4EQ?T4OH_GQ3B!JMb(skJsS6o+M zm`do?5~VMsj73k3U!+;-$j!=E6cXHI!yVvlTC)aA>0bXTdGGfz zlm>p~np2?6hv_rx17*s3@Xn98nmdHNe=tA%sRh2v1n8v7!wWwUqx2x8ptxi43kCV5 zxqApS;G%>f-tFh$koP-L{r>Z{obJL(82F<8!m;!4=;U*_1v)hjt`9*;voz& zBkRLtyV^`ifQ_{^l{if%kjc{}p$G)m(1FCJk37d5u46@^#pQJ(zE8H1wKSuP>bO}- z&%B0i{-_`5MhNHL64AfIMc#k|2t}2Hi!{MwChze*NC7@Zu>q8joa~^Oz+gQM&%(T&dLN$IyT0=XRR&(`#|Yn0X%9K3*6WetF9Q zQ}2PUvBhTzp#UBKf?9WL>*8gK!#)B^nP zRr++dua%X_;$XVsyAX`cXh{J-g`gURCvBrLh?OHr6-^b3As`pX%F0pddduM|6?Ry-yaU!GY8cHn?Z&lk|I|d!AQv zyZ;gNnE&xPG6yE}U#$>yigb!T2R2@@?I&d?3rJ&udF$Lx5Ojy!#E$r`tULMx=l{MH zA<9iKKpywc5clZCivGPB#0#Y5|MyW4?qME-`M;_~{Qp0Nk&xg0D~SSDnKu+3MT&H} zBjNLY5z&4*+j6>jbGm7bbbG4&ze3VOi+8*CPn-L_DcX*8&+v8_vBNmA>+GseSmEL~dhRxN4pGoH+ecWZ!!mJ{0rR)OI4{ zQ9B5m zGKCSn6lx)gjW3+KednEp!#cH8Hq&pfc&aBfUrug9NkjilZ(=6CVK%YlN^@;$-Jr8E zTW=kHTTdq``FPT@nADf-LA*uj_t!c^hRP->2R(rHZS{21RN%`DDd}}}Vvg!R9D`1K zSbfGeoq`ri7yhcU1^#R}E$LDkgWVX?phP62p~z)rT`eN8)9AdV>mjHzOe7srmCxWx z>;5U;mt1{CCFyvgY@o<8pM&JX)xpK1HL+#m#aPUjX8XpkgoIhuDYoZcwJx@KFK|HV zqfXky$~vC-%9(wf%UlY!O8mBXsZ5|bXH28!LfiZ>8Rg5(|Y8cizf~KXkoAGDR<3_a%X?2om?FLJEMCHIiGV16c|82y zSQsWXC3-uGEa|FOCZIQ-gU zOB6++#vDrS!y*3W4_DXi276}d;Ub-jf6h-1%n+COc$*w1L-d_)urnNw#@VMgc1zvh^08<&^7?X$IbAgR^6)eM`rC4Mj1_q7ot9VJc< zh*i$WEGVDuueFTb%s!5(CV#D8jIpKW*piy|joWr;&6*4@?r`y`;4^g)Kxuc~ho;@` zLmjwm{Gk}1s*8j$U;jMkx*WQ=i#3r*M#rBZ;5(2r%$l7_!%{I6FtGSk$1<*>IFp^CtTL?MNY$OY=^7GK?$wqQV!ocSMCCJj1=II|BGS^1c-FYIe!(!1S2de9rFd|D4B*1=Ncak(Bc(I=dn8u`vCw>BikTw8INsRucM$;mlgdJIKDErf6uZSX*(XmWE?qpg3A%q>5P_nbqCUKJv0Nv zvVI?9Vr@E)=={afo@lgfZTq0W9D8zQp%FEZO!k|ItPbv%o*r$d<9WYXY*~#K1fvXK zw$ob8qHN6GAkU01?j;6B_^EIjb<{RyU^~TTMg9;{;yncwuA~<5M>Tdfv57FU!vk1I z@0*^|IJBn^lw*#5s)qc5^jZC;L`l)t`j)`F!d6QQyE+BhkNtsVM)xbNQ#8wzslgyd z%OV|1(NoC^m(0V~u^bhyBM_IpDf)7=o47Ss)a;N>MkbE;)cZX^CSm0<>hXA(@?VLa zDZ71~zLal?iF*!HNTnXX&Z`zMa>q3spgB9P0?Xw871BEhs?`1F=Z>YCiB{wYJ6ft7 zeY@}v}E7Jtpe^{uk!(?vdq{W7AGNY)}d{YG;D@fQX` zTPfPSV(}@S>dv=0Ct9v9qzWb42@bd3{PqskqDZV|cMCk;Pm%k$C~{$$yfn~Cp*%X- z^+rl!q%0uk1SAD zjAS8PB~b);nMSB^w}{l#$v%J3K@|8W8I^qK@VUKL8^sSQ2Ky?lgJg={YxYS+`@4RAQ(y=ot1Wm{tR z2DW{&#+rUxwwJ6 zrT-3-%YRW-rl?=4SAj)7gu-moPO){Vf!pv?wWgWDMQ9n*CAk>|0ViEzZ+ATi@mtE# zRJU<+h1hbM+KIo>fpnp%0kIYlMo)qU1I;lGjcj1Ut_woqz5scu$-fE|lpHjlzw~#z zDq_&$y8mf7sm&w!FFZ$mr2ZI}N}TPys?Hz~lvCY96A`ba24-F7OmO}dUjv{-o})z% z)u`H$xyhB^~0&WLje{rfrY5-J|B#@%U=b!K5y!mwF|sTGVufg zCSE7%Jc0hjNYwBCLwcyNp>BEV`}Q?F>P98I5;a51-hT4>jml_j=aa=Yq))(-g-2E+ zuvwo7Od0g=I$NAokrNofR*R6{!Ud$DbGa^rg%)4I(g*~8LQo{eZ>#qQ2cWwLG6j6` zTFZlYdIm1*Z(g=qE~Z7f-Rm>B*#cA1%wjyu&2(w(|C{90=K6$etveNYtqL1dvic>T z$X77B=6A7obJmuT@=iuCF)sH3e-Ae?^V15;SK8*0InnG}TwR^JavhP^2uQ_}Dw=f0ZX!?8QmYVi_qPj-3nQm@EtXU1n!Atphr6^S4pvEJ7HQ_%$u z?yl13Dv$@bP}k7`kMjKwb-c@Nb8;`w-!7Im#eyS9b$vc!?!3r+nL!iw!k}o&o2wyk zeSO>wyw%&XP_D3oscsjVs4{YVZaXGh`+S@npY-}#-!nxP^|JLmm-OYt{BQb~II<`R zuo!Uqy3Wp_t$E~dnh;qwHg5MoXMW=Rh$k`*M~h#D+u1t&j`u9){qKb(^X>4)^aArM z?Vd%K(T3Z%z9fe?tas@K4U?OVmqomUKdq0E{fF2@=`CqKH&!mrtvw(0FXZ7W zmkSInqd(q0p-+0-yI6~k%%+nHdI?qSzI`E%Fn>;qU8*`+-HT~J^P(ApOrucNYZa^6 zx%YkQ3$eVzK!vmjsrO-A;zp~R_h~nUUA1yRnZ-Pj`0Jg7@_B+{`6T@OEeYzz_kFYv zlo}_Vj&A8ISAz152p19}-Y(ffE5t7zbvb=aZ-eb4OzZVT_r9SJcd+Rkn}$0b&D!Ru z6_RhIqOTDJpS?6tII3wB|6FM{@J?(Vni5m80P8#Wbuy%NHwqFrICT@9Ti!M}k35`4 zNT1iD%7D%5o#M*r=L(p8 zD+xN?UPZfVicOke!N5g>EgX~>(?ZSqvd4PD6JMJ7ImF0wUdLN${NLtvw4Z7zoNAS! z`Vu;DxE^N7UVW0E4{}(y?9Wec4KB%CpJ-^b1Z)%C|Ni*Kfsd!=!7o2ZCF?%j4TP z^(vJjKlL>X1@b5;L0$B$tjes6jHO&C`I2&n7Y|-C=w!mr-C6HF(=g=7(4g2tE%ht@ zjfvQFhi+2*iI1^bQrR^!^4~hn$HUXdvkJ6lh{?Ighc;K2*T0DSoagEfW1OO)vNL$!%B(IP43O!FFu9W6a;GJ^+vv?sG4~vw4&hROaWN`A6DCOUM`{Qp2dba+I^~GmlOmAkWKJr|jH0#s5b}{5*=bq5)MTJI|;txN^ z$Ht^|JkIMucM#jKeV1PKnD2tyD__oC?;L)seYZ&wa_^#O%;@dng68na^KKO{(al_f zGfQWdI@P^?{rnB3@=fLBD$8CpTiZ7kc=<`aeAsq&q9stv)jWUK#!G&=^=RnkGRi&} zhx&@9HFiGRf9?JviQHnhGitx)zOQ|9>DIAp$7cfm&e@gHd zM2CTj2HHk?)RJW&g!lKvZx8L`L|rF>B?&Z%0)=JN6a_7t0IlJKL_Vp4KM9 zONYtp4f9)rl9CJ_fngugtMB8flW)UD)%fa}WZ#WBtCnhpt|#(2t%RZq3NqP>J~9pK z7?E1O(%3#dRLzbaqnCP&VB}rmYVZI2MENt18j*%yX-I)*gO?^vkg2V+NSoB6A!xWu z(`ULRlPKwzV%@qnKIic`56WZ7c<;3eK?||&23VZ|jm^){TFi=nf+1ald2{Nrh50aM z<4Ee9dTF1E~!UM1qqXDS+#1<2u#I&2uFS> zW%m1rd4rliW3=zH)$M!RzOj|InD!u!-s}Iws8Bvm%gDuwrT`Tg8-DHDif&=ismb_z z`mK;5H1PW2&eZ8!H?mdaz5r^XWk3xS?YRM_Ciidoy`#H%_BZE=;3ARl0Wo2{&ktAc z9335XF~xUeIOiIy9k2FA(QQ^+ZW@7GPRAXrXNaZ&hMm{C3c8JbPb6=ZYs#hqM{Nmo zk@F(tnq-dTh7;%6=P*vfj9hY9CP-1-nlJxS?Q)?8ELcHSb>$z#MxYxa_T}ayqD`L1W=izs zC(KX%8vn}$_{1(h=7(`OGFhHX*9A3*OIc?YwCexaSukX5J=Z-tWb2I|W3bjI5s%!F zQocYU%qc0XC6~otlVXCBnm1L)DvEac28-?>EUZv5ou{;|?b%v!ddQ$!U;T^SXc~7t zJUZz!vUr}7VkaYZM3b1Kjcd`7xd`II*054$9d@!_tg7gA5CDY2;S=6G?2^=_C?K+N zS`F4rvrg_c4%YA&Bfd6&9mva#Fu|COENFI0hUriycP-W2rY`cUNFb*?fU-OCezK7* z6kXt4PMX4tGeiII7dACh{PpLH*?#%+CiJQOrL%{(Kih?Mve-UbKDM8UEFZ`W$U%0( zoQ(04jn%L`^AU1rz1uaDwhNyYOJ0bdDlmcuU{pjgmL)IbCTOR7&rd_7d?V&HxZ6Dj zZ$e_SpA?M*o#Sob#ikKt$Nt<9Lm!}g_=ekK%K?Rpoa`T1IQnK%Ug0fF>N5pFjH~c; zl;}!K$%K?eYxy~X9RLtRuz(sBL-uWSny2(RZUw(|hKuGsX4y77xnptSXvVK@?lVVY zPzS*36|MKmf7;Hz8d}=6=g%gHq-`SUKlh?FIS5!dC3nGxDH5BI+Ts7o$tm-1UG3Fwzyj-TedqaK2ZoH#=A;0!$oQv4NSS6{4)6t7@ zw~#+4)N_fBpL>CW+U%C>X8YVSMox38bJ-I2#X+?7U%;NW@GWtdxYN!-;HQU^TLzSv zd|uhl&!M^o>nb8To}E$w4>WI#9Y$5tBNfdz=*taFr%Mm~YO1LrT*_W)y=0cW)z9s? z&)%c#w0o^1+>vC2QSS-w!lr*XKBG#^m*T1wM*e1^6VmTK-K89mD zNlMn5j%R)R_U&F6jQY6R;c~hpa=zC71<9WEFFczM&N3oazLu)S zzm8+VL@W5^T}IR5zIY4=!$Rx$>8`It=yteG)IjeQ_|N?zs7(?|*_u4NA50zyqfVZy zT%{_fJ$pP=Iz-<3;yJn+EA36Gf2}TG0dpa_>im-{x9a?4zq`uE6rR+}f(*HPKc&n< zH*z-Si?(iZRspNWMr3}UXx^1uXz()GI?D^~S=~I-qpa`K)JPvE%%SDkqZPX%QRYge zwk8LuhX)yi;A>4k%;l+1W=q|ts2(|z$kv_a9jcdP>&6k4rTUnk)?K{3E%%)YUwwW3 zQO|qVcurT2mYI~4HAs)6_|edXMbUNw`ZGu}hH6DDg-c4m;<7@$Ti zHOcrsNW}Png+#WB$aLEkQB#R(@oxQP#-a{Q%KMRF%CXd_pfSn6E7(cv(3Cu z{yI8H$^j93{s{&FC5HvbkK8KW3QPWBALb7lEcbU&>GuF~PW1uB{b)?_4WG0xx^qRV z!8a|#6K_p9l-8ny*#j1v}KkD5&jj~UMVgGX{=B)Yh-9O|+0UfAZ&wPg*~4z%ddi&IiD4;k^`4)@rH@xcr z^#^tX?y>!8jNG%*%EFiH>pzAToV`Y8(&eIBkLj}I}E zHkzfZ#1XCSuH-|KR6a+hN~Y_Vh?sHaKUe`5Z^fm;t@|$Q39s6IWA{_dDmY4z7Xz8l zhE8h}&vvmTMb{2QJ0uLVUngI2#m4+*%Cy!Ti8O9IbHF(Y;G^Pik*!H*C6;RFU3~oY zbN*&UdirQM%x?VOY!8AZrCJlR�FhK%}x!C(= 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

epo*5MsV2_%8e`j1(B;+NW>rZ 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 diff --git a/docs/user-guide/analyses/partitioning/genotype/img/monoallelic-classifier.png b/docs/user-guide/analyses/partitioning/genotype/img/monoallelic-classifier.png new file mode 100644 index 0000000000000000000000000000000000000000..3dfc93e3faa5d78f74876a3ab7696bcbcd380911 GIT binary patch literal 61558 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 z zce<(rKtjfNO4wMz(_RR}!4bfdql0On1={bh(sm|TB97C2=b7wbsig8B)Gvt=YL4*q zQ|UB)x$Dz z@IRn|OdHcNnVOQ6ARLpw+KDYKcL!uPD1+KNz4{Ug7GP%x6H7qL*x&&+P~f5qK8?GK|N5w!J`8DSr(IOnzr%m@NQ8vl=YO%BAXG z{n!jq@77q^@o4eBsy2I|!MzvV!2j4VL!4YhnAb~I&QJ6|iUnU#D51@QGvJ={28)j& z&vyb^$;jk+$Uq`FkkoAi`2$J5u6*;Nn-t#0f_@Wd^Z3-ZpVr^g|Lv}=@j)o4W(dtw zxMDW~*!J2FS-c}|{MBC|yKIeOxi+d2Y}5ZteguIfJ&OE+*nss+7fp`J0?a)3c= ze8#;vuuO4|4CyA6JU!MOQ3BVZ6R=S3(peW22sGsp*|ZMWck#b{JJ6Bre0>Ce*d+8j zF<|^u)XR1ghdE}=*r}WP1Mh3_eyophB<a>Go z&41sAPlaFyD(zRoME1Wppq#FgO~$&uk|C&2{XC2Nn-_v}fV{IbqCMm7@y>%YeGv4% zzx3KtUL>7}*n(QucDk%*&@7ZiCuiN4eJxtyTBlHeDf37Tlp)foxwH6Vv=)a#J`{HH YH?M`YYh2=y2?YL>A8RO-%bWTC4-#E;mjD0& literal 0 HcmV?d00001 diff --git a/docs/user-guide/analyses/partitioning/genotype/img/monoallelic-predicate.png b/docs/user-guide/analyses/partitioning/genotype/img/monoallelic-predicate.png deleted file mode 100644 index af22c179e370df46737c0fa1fe2ac345a05bb137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84961 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

Variant alleles

Count - Variant key + Variant key HGVS Overlapping Exons Effects @@ -152,7 +148,7 @@

Variant alleles

22 - 12_114385521_114385521_C_T + 12_114385521_114385521_C_T c.710G>A (p.Arg237Gln) 7 missense @@ -160,7 +156,7 @@

Variant alleles

20 - 12_114401830_114401830_C_T + 12_114401830_114401830_C_T c.238G>A (p.Gly80Arg) 3 missense @@ -168,7 +164,7 @@

Variant alleles

8 - 12_114385563_114385563_G_A + 12_114385563_114385563_G_A c.668C>T (p.Thr223Met) 7 missense @@ -176,7 +172,7 @@

Variant alleles

6 - 12_114398675_114398675_G_T + 12_114398675_114398675_G_T c.408C>A (p.Tyr136Ter) 5 stop gained @@ -184,15 +180,15 @@

Variant alleles

5 - 12_114398682_114398682_C_CG - c.400dup (p.Arg134ProfsTer49) - 5 - frameshift + 12_114399514_114399514_A_C + c.361T>G (p.Trp121Gly) + 4 + missense, splice region 5 - 12_114403792_114403792_C_CG + 12_114403792_114403792_C_CG c.106_107insC (p.Ser36ThrfsTer25) 2 frameshift @@ -200,15 +196,23 @@

Variant alleles

5 - 12_114399514_114399514_A_C - c.361T>G (p.Trp121Gly) + 12_114398682_114398682_C_CG + c.400dup (p.Arg134ProfsTer49) + 5 + frameshift + + + 4 - missense, splice region + 12_114403798_114403798_G_GC + c.100dup (p.Ala34GlyfsTer27) + 2 + frameshift 4 - 12_114385522_114385522_G_A + 12_114385522_114385522_G_A c.709C>T (p.Arg237Trp) 7 missense @@ -216,15 +220,15 @@

Variant alleles

4 - 12_114398656_114398656_C_CG - c.426dup (p.Ala143ArgfsTer40) - 5 - frameshift + 12_114366360_114366360_C_T + c.787G>A (p.Val263Met) + 8 + missense 4 - 12_114385474_114385474_A_G + 12_114385474_114385474_A_G c.755+2T>C (-) - splice donor @@ -232,79 +236,87 @@

Variant alleles

4 - 12_114403798_114403798_G_GC - c.100dup (p.Ala34GlyfsTer27) + 12_114398656_114398656_C_CG + c.426dup (p.Ala143ArgfsTer40) + 5 + frameshift + + + + 3 + 12_114403798_114403799_GC_G + c.100del (p.Ala34ProfsTer32) 2 frameshift + 3 + 12_114399613_114399613_T_A + c.262A>T (p.Lys88Ter) 4 - 12_114366360_114366360_C_T - c.787G>A (p.Val263Met) - 8 - missense + stop gained 3 - 12_114401853_114401853_G_T - c.215C>A (p.Thr72Lys) + 12_114401827_114401827_T_A + c.241A>T (p.Arg81Trp) 3 - missense + missense, splice region 3 - 12_114385475_114385475_C_T - c.755+1G>A (-) - - - splice donor + 12_114401853_114401853_G_T + c.215C>A (p.Thr72Lys) + 3 + missense 3 - 12_114399613_114399613_T_A - c.262A>T (p.Lys88Ter) - 4 + 12_114366312_114366312_G_A + c.835C>T (p.Arg279Ter) + 8 stop gained 3 - 12_114403798_114403799_GC_G - c.100del (p.Ala34ProfsTer32) - 2 - frameshift + 12_114366366_114366366_T_A + c.781A>T (p.Ser261Cys) + 8 + missense 3 - 12_114401827_114401827_T_A - c.241A>T (p.Arg81Trp) - 3 - missense, splice region + 12_114385475_114385475_C_T + c.755+1G>A (-) + - + splice donor - 3 - 12_114366366_114366366_T_A - c.781A>T (p.Ser261Cys) + 2 + 12_114366207_114366208_GC_G + c.939del (p.Gln315ArgfsTer79) 8 - missense + frameshift - 3 - 12_114366312_114366312_G_A - c.835C>T (p.Arg279Ter) - 8 - stop gained + 2 + 12_114403754_114403754_G_T + c.145C>A (p.Gln49Lys) + 2 + missense, splice region 2 - 12_114385521_114385521_C_G + 12_114385521_114385521_C_G c.710G>C (p.Arg237Pro) 7 missense @@ -312,7 +324,7 @@

Variant alleles

2 - 12_114398666_114398667_TG_T + 12_114398666_114398667_TG_T c.416del (p.Pro139GlnfsTer11) 5 frameshift @@ -320,7 +332,7 @@

Variant alleles

2 - 12_114385550_114385550_A_AATTATTCTCAG + 12_114385550_114385550_A_AATTATTCTCAG c.680_681insCTGAGAATAAT (p.Ile227_Glu228insTer) 7 inframe insertion, stop retainined @@ -328,31 +340,23 @@

Variant alleles

2 - 12_114403754_114403754_G_T - c.145C>A (p.Gln49Lys) - 2 - missense, splice region - - - - 2 - 12_114366207_114366208_GC_G - c.939del (p.Gln315ArgfsTer79) + 12_114366274_114366274_G_T + c.873C>A (p.Tyr291Ter) 8 - frameshift + stop gained 2 - 12_114398568_114398568_C_A - c.510+5G>T (-) - - - splice donor 5th base, intronic + 12_114366267_114366267_C_A + c.880G>T (p.Glu294Ter) + 8 + stop gained 2 - 12_114394762_114394763_CA_C + 12_114394762_114394763_CA_C c.641del (p.Val214GlyfsTer12) 6 frameshift @@ -360,7 +364,7 @@

Variant alleles

2 - 12_114398578_114398579_CA_C + 12_114398578_114398579_CA_C c.504del (p.Phe168LeufsTer6) 5 frameshift @@ -368,143 +372,135 @@

Variant alleles

2 - 12_114366267_114366267_C_A - c.880G>T (p.Glu294Ter) - 8 - stop gained - - - - 2 - 12_114366274_114366274_G_T - c.873C>A (p.Tyr291Ter) - 8 - stop gained + 12_114398568_114398568_C_A + c.510+5G>T (-) + - + splice donor 5th base, intronic 1 - 12_114398632_114398632_G_A - c.451C>T (p.Gln151Ter) - 5 - stop gained + 12_114399594_114399594_A_C + c.281T>G (p.Leu94Arg) + 4 + missense 1 - 12_114355755_114355756_TG_T - c.1333del (p.His445MetfsTer137) - 9 + 12_114366348_114366349_CT_C + c.798del (p.Val267TrpfsTer127) + 8 frameshift 1 - 12_114356064_114356065_TA_T - c.1024del (p.Tyr342ThrfsTer52) - 9 - frameshift + 12_114403859_114403859_G_T + c.40C>A (p.Pro14Thr) + 2 + missense 1 - 12_114366348_114366349_CT_C - c.798del (p.Val267TrpfsTer127) - 8 + 12_114399625_114399629_ACATC_A + c.246_249del (p.Met83PhefsTer6) + 4 frameshift 1 - 12_114401921_114401921_C_G - c.148-1G>C (-) - - - splice acceptor + 12_114401907_114401907_A_G + c.161T>C (p.Ile54Thr) + 3 + missense 1 - 12_114398626_114398627_CG_C - c.456del (p.Val153SerfsTer21) - 5 - frameshift + 12_114394820_114394820_C_G + c.584G>C (p.Gly195Ala) + 6 + missense 1 - 12_114401873_114401874_TA_T - c.194del (p.Leu65GlnfsTer10) - 3 - frameshift + 12_114385553_114385553_C_A + c.678G>T (p.Lys226Asn) + 7 + missense 1 - 12_114394817_114394817_G_C - c.587C>G (p.Ser196Ter) - 6 + 12_114398632_114398632_G_A + c.451C>T (p.Gln151Ter) + 5 stop gained 1 - 12_114403859_114403859_G_T - c.40C>A (p.Pro14Thr) - 2 - missense + 12_114398708_114398709_GC_G + c.374del (p.Gly125AlafsTer25) + 5 + frameshift 1 - 12_114385553_114385553_C_A - c.678G>T (p.Lys226Asn) - 7 - missense + 12_114356064_114356065_TA_T + c.1024del (p.Tyr342ThrfsTer52) + 9 + frameshift 1 - 12_114399625_114399629_ACATC_A - c.246_249del (p.Met83PhefsTer6) - 4 - frameshift + 12_114401921_114401921_C_G + c.148-1G>C (-) + - + splice acceptor 1 - 12_114398708_114398709_GC_G - c.374del (p.Gly125AlafsTer25) + 12_114398602_114398602_T_G + c.481A>C (p.Thr161Pro) 5 - frameshift + missense 1 - 12_114366241_114366242_CT_C - c.905del (p.Gln302ArgfsTer92) - 8 + 12_114355755_114355756_TG_T + c.1333del (p.His445MetfsTer137) + 9 frameshift 1 - 12_114399594_114399594_A_C - c.281T>G (p.Leu94Arg) - 4 - missense + 12_114401873_114401874_TA_T + c.194del (p.Leu65GlnfsTer10) + 3 + frameshift 1 - 12_114399622_114399622_G_T - c.253C>A (p.Pro85Thr) - 4 - missense + 12_114398626_114398627_CG_C + c.456del (p.Val153SerfsTer21) + 5 + frameshift 1 - 12_114399633_114399633_C_G + 12_114399633_114399633_C_G c.243-1G>C (-) - splice acceptor @@ -512,31 +508,31 @@

Variant alleles

1 - 12_114401907_114401907_A_G - c.161T>C (p.Ile54Thr) - 3 + 12_114399559_114399559_T_C + c.316A>G (p.Ile106Val) + 4 missense 1 - 12_114394743_114394746_TGTG_T - c.658_660del (p.His220del) - 6 - inframe deletion + 12_114401846_114401846_C_G + c.222G>C (p.Met74Ile) + 3 + missense 1 - 12_114355784_114355785_CA_C - c.1304del (p.Leu435ArgfsTer147) - 9 + 12_114366241_114366242_CT_C + c.905del (p.Gln302ArgfsTer92) + 8 frameshift 1 - 12_114355723_114355723_G_A + 12_114355723_114355723_G_A c.1366C>T (p.Gln456Ter) 9 stop gained @@ -544,34 +540,34 @@

Variant alleles

1 - 12_114401846_114401846_C_G - c.222G>C (p.Met74Ile) - 3 - missense + 12_114355784_114355785_CA_C + c.1304del (p.Leu435ArgfsTer147) + 9 + frameshift 1 - 12_114398602_114398602_T_G - c.481A>C (p.Thr161Pro) - 5 - missense + 12_114394817_114394817_G_C + c.587C>G (p.Ser196Ter) + 6 + stop gained 1 - 12_114394820_114394820_C_G - c.584G>C (p.Gly195Ala) - 6 + 12_114399622_114399622_G_T + c.253C>A (p.Pro85Thr) + 4 missense 1 - 12_114399559_114399559_T_C - c.316A>G (p.Ile106Val) - 4 - missense + 12_114394743_114394746_TGTG_T + c.658_660del (p.His220del) + 6 + inframe deletion diff --git a/docs/report/tbx5_cohort_info.html b/docs/report/tbx5_cohort_info.html index 91ab199e..a1d74c81 100644 --- a/docs/report/tbx5_cohort_info.html +++ b/docs/report/tbx5_cohort_info.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; @@ -178,67 +174,67 @@

HPO terms

n - HPO Term + HPO Term 50 -
Atrial septal defect + Atrial septal defect 41 - Ventricular septal defect + Ventricular septal defect 40 - Hypoplasia of the radius + Hypoplasia of the radius 36 - Triphalangeal thumb + Triphalangeal thumb 32 - Short thumb + Short thumb 32 - Absent thumb + Absent thumb 30 - Abnormal carpal morphology + Abnormal carpal morphology 27 - Secundum atrial septal defect + Secundum atrial septal defect 15 - Absent radius + Absent radius 14 - Cardiac conduction abnormality + Cardiac conduction abnormality @@ -269,12 +265,12 @@

Diseases

n - Disease + Disease 156 - Holt-Oram syndrome + Holt-Oram syndrome @@ -298,77 +294,77 @@

Top 10 variants

n - Variant key + Variant key HGVS Variant Class 22 - 12_114385521_114385521_C_T + 12_114385521_114385521_C_T c.710G>A (p.Arg237Gln) MISSENSE_VARIANT 20 - 12_114401830_114401830_C_T + 12_114401830_114401830_C_T c.238G>A (p.Gly80Arg) MISSENSE_VARIANT 8 - 12_114385563_114385563_G_A + 12_114385563_114385563_G_A c.668C>T (p.Thr223Met) MISSENSE_VARIANT 6 - 12_114398675_114398675_G_T + 12_114398675_114398675_G_T c.408C>A (p.Tyr136Ter) STOP_GAINED 5 - 12_114399514_114399514_A_C + 12_114399514_114399514_A_C c.361T>G (p.Trp121Gly) MISSENSE_VARIANT, SPLICE_REGION_VARIANT 5 - 12_114398682_114398682_C_CG + 12_114398682_114398682_C_CG c.400dup (p.Arg134ProfsTer49) FRAMESHIFT_VARIANT 5 - 12_114403792_114403792_C_CG + 12_114403792_114403792_C_CG c.106_107insC (p.Ser36ThrfsTer25) FRAMESHIFT_VARIANT 4 - 12_114385474_114385474_A_G + 12_114385474_114385474_A_G c.755+2T>C (None) SPLICE_DONOR_VARIANT 4 - 12_114398656_114398656_C_CG + 12_114398656_114398656_C_CG c.426dup (p.Ala143ArgfsTer40) FRAMESHIFT_VARIANT 4 - 12_114403798_114403798_G_GC + 12_114403798_114403798_G_GC c.100dup (p.Ala34GlyfsTer27) FRAMESHIFT_VARIANT @@ -387,62 +383,62 @@

Variant effects

- + - + - + - + - + - + - + - + - + - + - + - + diff --git a/docs/report/tbx5_truncating_vs_missense.mtc_report.html b/docs/report/tbx5_truncating_vs_missense.mtc_report.html index 964786bc..e1ed68af 100644 --- a/docs/report/tbx5_truncating_vs_missense.mtc_report.html +++ b/docs/report/tbx5_truncating_vs_missense.mtc_report.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; diff --git a/docs/user-guide/analyses/report/tbx5_frameshift.mtc_report.html b/docs/user-guide/analyses/report/tbx5_frameshift.mtc_report.html index 02a43e97..3a135e2d 100644 --- a/docs/user-guide/analyses/report/tbx5_frameshift.mtc_report.html +++ b/docs/user-guide/analyses/report/tbx5_frameshift.mtc_report.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; diff --git a/docs/user-guide/reports/tbx5_cohort_info.html b/docs/user-guide/reports/tbx5_cohort_info.html index 417c6fc1..e3f8c577 100644 --- a/docs/user-guide/reports/tbx5_cohort_info.html +++ b/docs/user-guide/reports/tbx5_cohort_info.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; @@ -178,67 +174,67 @@

HPO terms

- + - - - - - - - - - - @@ -269,12 +265,12 @@

Diseases

- + - @@ -298,77 +294,77 @@

Top 10 variants

- + - + - + - + - + - + - + - + - + - + - + @@ -387,62 +383,62 @@

Variant effects

Variant effectVariant effect Count
MISSENSE_VARIANTMISSENSE_VARIANT 85 (50%)
FRAMESHIFT_VARIANTFRAMESHIFT_VARIANT 38 (22%)
STOP_GAINEDSTOP_GAINED 19 (11%)
SPLICE_REGION_VARIANTSPLICE_REGION_VARIANT 10 (6%)
SPLICE_DONOR_VARIANTSPLICE_DONOR_VARIANT 7 (4%)
INFRAME_INSERTIONINFRAME_INSERTION 2 (1%)
STOP_RETAINED_VARIANTSTOP_RETAINED_VARIANT 2 (1%)
SPLICE_ACCEPTOR_VARIANTSPLICE_ACCEPTOR_VARIANT 2 (1%)
SPLICE_DONOR_5TH_BASE_VARIANTSPLICE_DONOR_5TH_BASE_VARIANT 2 (1%)
INTRON_VARIANTINTRON_VARIANT 2 (1%)
INFRAME_DELETIONINFRAME_DELETION 1 (1%)
nHPO TermHPO Term
50Atrial septal defect + Atrial septal defect
41Ventricular septal defect + Ventricular septal defect
40Hypoplasia of the radius + Hypoplasia of the radius
36Triphalangeal thumb + Triphalangeal thumb
32Absent thumb + Absent thumb
32Short thumb + Short thumb
30Abnormal carpal morphology + Abnormal carpal morphology
27Secundum atrial septal defect + Secundum atrial septal defect
15Absent radius + Absent radius
14Cardiac conduction abnormality + Cardiac conduction abnormality
nDiseaseDisease
156Holt-Oram syndrome + Holt-Oram syndrome
nVariant keyVariant key HGVS Variant Class
2212_114385521_114385521_C_T12_114385521_114385521_C_T c.710G>A (p.Arg237Gln) MISSENSE_VARIANT
2012_114401830_114401830_C_T12_114401830_114401830_C_T c.238G>A (p.Gly80Arg) MISSENSE_VARIANT
812_114385563_114385563_G_A12_114385563_114385563_G_A c.668C>T (p.Thr223Met) MISSENSE_VARIANT
612_114398675_114398675_G_T12_114398675_114398675_G_T c.408C>A (p.Tyr136Ter) STOP_GAINED
512_114398682_114398682_C_CG12_114398682_114398682_C_CG c.400dup (p.Arg134ProfsTer49) FRAMESHIFT_VARIANT
512_114399514_114399514_A_C12_114399514_114399514_A_C c.361T>G (p.Trp121Gly) MISSENSE_VARIANT, SPLICE_REGION_VARIANT
512_114403792_114403792_C_CG12_114403792_114403792_C_CG c.106_107insC (p.Ser36ThrfsTer25) FRAMESHIFT_VARIANT
412_114385522_114385522_G_A12_114385522_114385522_G_A c.709C>T (p.Arg237Trp) MISSENSE_VARIANT
412_114398656_114398656_C_CG12_114398656_114398656_C_CG c.426dup (p.Ala143ArgfsTer40) FRAMESHIFT_VARIANT
412_114403798_114403798_G_GC12_114403798_114403798_G_GC c.100dup (p.Ala34GlyfsTer27) FRAMESHIFT_VARIANT
- + - + - + - + - + - + - + - + - + - + - + - + diff --git a/docs/user-guide/reports/tbx5_protein_info.html b/docs/user-guide/reports/tbx5_protein_info.html index 1280c8ce..2f0febfc 100644 --- a/docs/user-guide/reports/tbx5_protein_info.html +++ b/docs/user-guide/reports/tbx5_protein_info.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; @@ -157,7 +153,7 @@

T-box transcription factor TBX5: NP_852259.1

- + @@ -165,7 +161,7 @@

T-box transcription factor TBX5: NP_852259.1

- + @@ -173,7 +169,7 @@

T-box transcription factor TBX5: NP_852259.1

- + @@ -181,7 +177,7 @@

T-box transcription factor TBX5: NP_852259.1

- + diff --git a/src/gpsea/view/templates/all_variants.html b/src/gpsea/view/templates/all_variants.html index 73e8bb8c..3b0ea284 100644 --- a/src/gpsea/view/templates/all_variants.html +++ b/src/gpsea/view/templates/all_variants.html @@ -10,7 +10,7 @@

Variant alleles

- + @@ -18,7 +18,7 @@

Variant alleles

{% for vdata in variant_counts %} - + diff --git a/src/gpsea/view/templates/cohort.html b/src/gpsea/view/templates/cohort.html index 292a7d45..5ed67c91 100644 --- a/src/gpsea/view/templates/cohort.html +++ b/src/gpsea/view/templates/cohort.html @@ -52,13 +52,13 @@

HPO terms

- + {% for count in hpo_counts %} - {% endfor %} @@ -106,14 +106,14 @@

Measurements

- + {% for count in measurement_counts %} - + {% endfor %} @@ -140,12 +140,12 @@

Diseases

- + {% for count in disease_counts %} - {% endfor %} @@ -171,14 +171,14 @@

Top {{top_var_count}} variants

- + {% for count in var_counts %} - + @@ -197,12 +197,12 @@

Variant effects

Variant effectVariant effect Count
MISSENSE_VARIANTMISSENSE_VARIANT 85 (50%)
FRAMESHIFT_VARIANTFRAMESHIFT_VARIANT 38 (22%)
STOP_GAINEDSTOP_GAINED 19 (11%)
SPLICE_REGION_VARIANTSPLICE_REGION_VARIANT 10 (6%)
SPLICE_DONOR_VARIANTSPLICE_DONOR_VARIANT 7 (4%)
INFRAME_INSERTIONINFRAME_INSERTION 2 (1%)
STOP_RETAINED_VARIANTSTOP_RETAINED_VARIANT 2 (1%)
SPLICE_ACCEPTOR_VARIANTSPLICE_ACCEPTOR_VARIANT 2 (1%)
SPLICE_DONOR_5TH_BASE_VARIANTSPLICE_DONOR_5TH_BASE_VARIANT 2 (1%)
INTRON_VARIANTINTRON_VARIANT 2 (1%)
INFRAME_DELETIONINFRAME_DELETION 1 (1%)
Disordered Region 2 - 46p.Ala34GlyfsTer27; p.Ser36ThrfsTer25; p.Ala34ProfsTer32; p.Pro14Thrp.Ala34GlyfsTer27; p.Ala34ProfsTer32; p.Ser36ThrfsTer25; p.Pro14Thr
T-box DNA binding 59 - 238p.Trp121Gly; p.Ala143ArgfsTer40; p.Leu94Arg; p.Arg237Trp; p.Gly80Arg; p.Arg237Gln; p.Thr72Lys; p.Val214GlyfsTer12; p.Ile227_Glu228insTer; p.Phe168LeufsTer6; p.Arg81Trp; p.Tyr136Ter; p.Gln151Ter; p.Lys88Ter; p.Pro85Thr; p.His220del; p.Arg237Pro; p.Arg134ProfsTer49; p.Ile106Val; p.Met83PhefsTer6; p.Val153SerfsTer21; p.Met74Ile; p.Thr161Pro; p.Lys226Asn; p.Leu65GlnfsTer10; p.Thr223Met; p.Pro139GlnfsTer11; p.Gly125AlafsTer25; p.Ser196Ter; p.Gly195Alap.Pro139GlnfsTer11; p.Ile106Val; p.Phe168LeufsTer6; p.Ser196Ter; p.Arg237Trp; p.Arg237Pro; p.Gly195Ala; p.Ala143ArgfsTer40; p.Thr161Pro; p.Leu65GlnfsTer10; p.Met83PhefsTer6; p.Leu94Arg; p.His220del; p.Tyr136Ter; p.Gln151Ter; p.Ile227_Glu228insTer; p.Arg237Gln; p.Arg81Trp; p.Trp121Gly; p.Thr72Lys; p.Lys226Asn; p.Met74Ile; p.Gly125AlafsTer25; p.Gly80Arg; p.Arg134ProfsTer49; p.Pro85Thr; p.Val214GlyfsTer12; p.Lys88Ter; p.Val153SerfsTer21; p.Thr223Met
Disordered Region 251 - 356p.Glu294Ter; p.Val267TrpfsTer127; p.Tyr291Ter; p.Val263Met; p.Ser261Cys; p.Gln315ArgfsTer79; p.Arg279Ter; p.Gln302ArgfsTer92; p.Tyr342ThrfsTer52p.Tyr291Ter; p.Gln302ArgfsTer92; p.Val267TrpfsTer127; p.Val263Met; p.Gln315ArgfsTer79; p.Ser261Cys; p.Glu294Ter; p.Arg279Ter; p.Tyr342ThrfsTer52
Polar residues Compositional bias 264 - 299p.Arg279Ter; p.Tyr291Ter; p.Val267TrpfsTer127; p.Glu294Terp.Arg279Ter; p.Tyr291Ter; p.Glu294Ter; p.Val267TrpfsTer127
CountVariant keyVariant key HGVS Overlapping Exons Effects
{{ vdata['count'] }}{{ vdata['variant_key'] }}{{ vdata['variant_key'] }} {{ vdata['hgvs'] }} {{ vdata['exons'] }} {{ vdata['variant_effects'] }}
nHPO TermHPO Term
{{ count['count'] }}{{ count['label'] }} + {{ count['label'] }}
nMeasurementMeasurement ID
{{ count['count'] }}{{ count['label'] }}{{ count['label'] }} {{ count['term_id'] }}
nDiseaseDisease
{{ count['count'] }}{{ count['label'] }} + {{ count['label'] }}
nVariant keyVariant key HGVS Variant Class
{{ count['count'] }}{{ count['key'] }}{{ count['key'] }} {{ count['hgvsc'] }} ({{ count['hgvsp'] }}) {{ count['effects'] }}
- + {% for effect in variant_effects %} - + {% endfor %} diff --git a/src/gpsea/view/templates/minibase.html b/src/gpsea/view/templates/minibase.html index aa7594f6..656aa38b 100644 --- a/src/gpsea/view/templates/minibase.html +++ b/src/gpsea/view/templates/minibase.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left;
Variant effectVariant effect Count
{{ effect['effect'] }}{{ effect['effect'] }} {{ effect['count'] }} ({{ effect['percent'] }}%)

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 Ak^lez literal 0 HcmV?d00001 diff --git a/docs/user-guide/analyses/partitioning/genotype/img/sex-predicate.png b/docs/user-guide/analyses/partitioning/genotype/img/sex-predicate.png deleted file mode 100644 index a0011327816b468b4980d2c65db59d295310d8e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59785 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 diff --git a/docs/user-guide/analyses/partitioning/genotype/index.rst b/docs/user-guide/analyses/partitioning/genotype/index.rst index 40ec2ce5..3ef0ff04 100644 --- a/docs/user-guide/analyses/partitioning/genotype/index.rst +++ b/docs/user-guide/analyses/partitioning/genotype/index.rst @@ -1,20 +1,20 @@ -.. _genotype-predicates: +.. _genotype-classifiers: -################### -Genotype predicates -################### +#################### +Genotype classifiers +#################### -A genotype predicate partitions the individuals based on their genotype. -In GPSEA, genotype predicates leverage information from one of the three areas: +A genotype classifier assigns an individual into a class based on their genotype. +In GPSEA, genotype classifiers leverage information from one of the three areas: * Sex * Disease diagnosis * Presence of variant(s) that meet certain inclusion criteria (e.g. a missense variant in heterozygous genotype) -Partitioning based on sex or disease diagnosis is relatively straightforward - the individuals +Classification based on sex or disease diagnosis is relatively straightforward - the individuals are assigned by the biological sex or presence of a specific diagnosis. -See :ref:`group-by-sex` and :ref:`group-by-diagnosis` for more details. +See :ref:`group-by-sex` and :ref:`group-by-diagnosis` for more details. Partitioning based on variants is, however, much more flexible, to support the analysis of the broad spectrum of pathomechanisms diff --git a/docs/user-guide/analyses/partitioning/genotype/sex.rst b/docs/user-guide/analyses/partitioning/genotype/sex.rst index 32084436..6a7da2bd 100644 --- a/docs/user-guide/analyses/partitioning/genotype/sex.rst +++ b/docs/user-guide/analyses/partitioning/genotype/sex.rst @@ -4,23 +4,23 @@ Group by sex ============ -.. figure:: img/sex-predicate.png - :alt: Sex predicate +.. figure:: img/sex-classifier.png + :alt: Sex classifier :align: center :width: 600px It is easy to investigate the differences between males and females. -The :func:`~gpsea.analysis.predicate.genotype.sex_predicate` partitions -the individuals based on their :class:`~gpsea.model.Sex`: +The :func:`~gpsea.analysis.clf.sex_classifier` assigns +an individual into a class based on the :class:`~gpsea.model.Sex`: ->>> from gpsea.analysis.predicate.genotype import sex_predicate ->>> gt_predicate = sex_predicate() ->>> gt_predicate.group_labels +>>> from gpsea.analysis.clf import sex_classifier +>>> gt_clf = sex_classifier() +>>> gt_clf.class_labels ('FEMALE', 'MALE') The individuals with :class:`~gpsea.model.Sex.UNKNOWN_SEX` will be omitted from the analysis. -Note that we implemented this predicate as a genotype predicate. +Note that we implemented this classification as a :class:`~gpsea.analysis.clf.GenotypeClassifier`. Currently, it is not possible to compare the distribution of genotypes across sexes. diff --git a/docs/user-guide/analyses/partitioning/genotype/variant_category.rst b/docs/user-guide/analyses/partitioning/genotype/variant_category.rst index 963b41a0..a5153e91 100644 --- a/docs/user-guide/analyses/partitioning/genotype/variant_category.rst +++ b/docs/user-guide/analyses/partitioning/genotype/variant_category.rst @@ -11,41 +11,41 @@ with those harboring :math:`AC_{B}=1` (where :math:`B` is e.g. a missense mutati Similarly, in an autosomal recessive disease, we may be interested in comparing the individuals with :math:`AC_{A} \ge 1` with those with :math:`AC_{A} = 0`. In both analyses, we compare two variant categories :math:`A` and :math:`B` -which are described by a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` +which are described by a :class:`~gpsea.analysis.predicate.VariantPredicate` (see :ref:`variant-predicates` section), while ensuring the allele count sum of both variant categories is :math:`k`. :math:`k = \sum_{i \in \{A, B\}} AC_{i}` -GPSEA provides two predicates: +GPSEA provides two genotype classifiers: .. table:: - +-----------+-----------------------+------------------------------------------------------------------+ - | :math:`k` | Name | Function | - +===========+=======================+==================================================================+ - | 1 | Monoallelic predicate | :func:`~gpsea.analysis.predicate.genotype.monoallelic_predicate` | - +-----------+-----------------------+------------------------------------------------------------------+ - | 2 | Biallelic predicate | :func:`~gpsea.analysis.predicate.genotype.biallelic_predicate` | - +-----------+-----------------------+------------------------------------------------------------------+ + +-----------+------------------------+------------------------------------------------------------------+ + | :math:`k` | Name | Function | + +===========+========================+==================================================================+ + | 1 | Monoallelic classifier | :func:`~gpsea.analysis.clf.monoallelic_classifier` | + +-----------+------------------------+------------------------------------------------------------------+ + | 2 | Biallelic classifier | :func:`~gpsea.analysis.clf.biallelic_classifier` | + +-----------+------------------------+------------------------------------------------------------------+ -.. _monoallelic-predicate: +.. _monoallelic-classifier: -********************* -Monoallelic predicate -********************* +********************** +Monoallelic classifier +********************** -Monoallelic predicate compares the individuals who have *one* allele of a variants of interest. -The predicate uses a pair of variant predicates, `A` and `B`, +Monoallelic classifier compares the individuals who have *one* allele of a variants of interest. +The classifier uses a pair of variant predicates, `A` and `B`, to compute the allele counts :math:`AC_{A}` and :math:`AC_{B}`, -in order to assign an individual into a genotype group. +in order to assign an individual into a genotype class. -.. table:: Monoallelic predicate genotype groups +.. table:: Monoallelic genotype classes +-----------------+-------------------+-------------------+ - | Genotype group | :math:`AC_{A}` | :math:`AC_{B}` | + | Genotype class | :math:`AC_{A}` | :math:`AC_{B}` | +=================+===================+===================+ | A | 1 | 0 | +-----------------+-------------------+-------------------+ @@ -57,8 +57,8 @@ in order to assign an individual into a genotype group. The individuals with :math:`\sum_{i \in \{A, B\}} AC_{i} \neq 1` are omitted from the analysis. -.. figure:: img/monoallelic-predicate.png - :alt: Monoallelic predicate +.. figure:: img/monoallelic-classifier.png + :alt: Monoallelic classifier :align: center :width: 600px @@ -66,7 +66,7 @@ are omitted from the analysis. Example ======= -Let's create a predicate to categorize the individuals +Let's create a classifier to categorize the individuals to those having one missense allele or to those having one frameshift allele with respect to fictional transcript ``NM_1234.5``. @@ -76,11 +76,11 @@ We start by creating the variant predicates for missense (`A`) and frameshift (`B`) variants: >>> from gpsea.model import VariantEffect ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> is_missense = VariantPredicates.variant_effect(effect=VariantEffect.MISSENSE_VARIANT, tx_id=tx_id) ->>> is_frameshift = VariantPredicates.variant_effect(effect=VariantEffect.FRAMESHIFT_VARIANT, tx_id=tx_id) +>>> from gpsea.analysis.predicate import variant_effect +>>> is_missense = variant_effect(effect=VariantEffect.MISSENSE_VARIANT, tx_id=tx_id) +>>> is_frameshift = variant_effect(effect=VariantEffect.FRAMESHIFT_VARIANT, tx_id=tx_id) -Monoallelic predicate lets us customize the category names. +Monoallelic classifier lets us customize the category names. Let's use `Missense` and `Frameshift` instead of the defaults: >>> a_label = "Missense" @@ -88,39 +88,40 @@ Let's use `Missense` and `Frameshift` instead of the defaults: Now we have all we need to create the predicate: ->>> from gpsea.analysis.predicate.genotype import monoallelic_predicate ->>> gt_predicate = monoallelic_predicate( +>>> from gpsea.analysis.clf import monoallelic_classifier +>>> gt_clf = monoallelic_classifier( ... a_predicate=is_missense, ... b_predicate=is_frameshift, ... a_label=a_label, b_label=b_label, ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Missense', 'Frameshift') -.. _biallelic-predicate: +.. _biallelic-classifier: -******************* -Biallelic predicate -******************* +******************** +Biallelic classifier +******************** -Biallelic predicate compares the individuals with *two* alleles of the variants of interest. -The functionality is very similar to that of monoallelic predicate, with two differences. +Biallelic classifier compares the individuals with *two* alleles of the variants of interest. +The functionality is very similar to that of monoallelic classifier, with two differences: +(1) genotype classes and (2) partitions. -Categories -========== +Genotype classes +================ Biallelic locus can be present in one of three genotypes, allowing an individual -to be assigned into one of the three genotype groups: +to be assigned into one of the three genotype classes: -.. _biallelic-predicate-gt-groups: +.. _biallelic-gt-classes: -.. table:: Biallelic predicate genotype groups +.. table:: Biallelic genotype classes +-------+----------------+-------------------+-------------------+ - | Index | Genotype group | :math:`AC_{A}` | :math:`AC_{B}` | + | Index | Genotype class | :math:`AC_{A}` | :math:`AC_{B}` | +=======+================+===================+===================+ | 0 | A/A | 2 | 0 | +-------+----------------+-------------------+-------------------+ @@ -135,8 +136,8 @@ Note that :math:`\sum_{i \in \{A, B\}} AC_{i} = 2` and the individuals with a different allele count sum are omitted from the analysis. -.. figure:: img/biallelic-predicate.png - :alt: Biallelic predicate +.. figure:: img/biallelic-classifier.png + :alt: Biallelic classifier :align: center :width: 600px @@ -148,68 +149,68 @@ Let `A` and `B` correspond to *MISSENSE* and *FRAMESHIFT* variants, and let's reuse the variant predicates ``is_missense`` and ``is_frameshift`` from the previous section, to compare missense and frameshift variants in the context of an autosomal recessive disease. ->>> from gpsea.analysis.predicate.genotype import biallelic_predicate ->>> gt_predicate = biallelic_predicate( +>>> from gpsea.analysis.clf import biallelic_classifier +>>> gt_clf = biallelic_classifier( ... a_predicate=is_missense, ... b_predicate=is_frameshift, ... a_label="Missense", b_label="Frameshift", ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Missense/Missense', 'Missense/Frameshift', 'Frameshift/Frameshift') -The predicate will assign the individuals into one of three genotype groups: +The classifier assigns an individual into one of three genotype classes: -* `A/A` - two missense alleles -* `A/B` - one missense and one frameshift allele -* `B/B` - two frameshift alleles +* `Missense/Missense` - two missense alleles +* `Missense/Frameshift` - one missense and one frameshift allele +* `Frameshift/Frameshift` - two frameshift alleles Partitions ========== -Sometimes we are interested in lumping several genotype groups into a partition +Sometimes we are interested in lumping several genotype classes into a partition and then comparing the partitions. For instance, in the context of an autosomal recessive disease, we may want to compare individuals with two "mild" mutations with the individuals with at least one "severe" mutation. This comparison can be implemented using the `partitions` option. -A partition is a set of one or more genotype group indices -(see :ref:`biallelic-predicate-gt-groups` table). -Then, the `partitions` option needs two or more partitions. -Typically, two partitions should be provided. +A partition is a set of one or more genotype class indices +(see :ref:`biallelic-gt-classes` table). +Then, two (or more) partitions are provided to biallelic classifier +via the `partitions` option. For example, we can compare the individuals with two missense alleles with those harboring one frameshift and one missense alleles, or two frameshift alleles. Let `A` and `B` correspond to *MISSENSE* and *FRAMESHIFT* variant. -According to :ref:`biallelic-predicate-gt-groups` table, -the `A/A` genotype group corresponds to index `0`, -and the `A/B` and `B/B` genotype groups correspond to indices `1` and `2`, respectively. -We form the corresponding partitions as: +According to :ref:`biallelic-gt-classes` table, +the `A/A` genotype class corresponds to index `0`, +and the `A/B` and `B/B` genotype class correspond to indices `1` and `2`, respectively. +We form the partitions accordingly: >>> partitions = (0, {1, 2}) -Using the ``partitions``, the biallelic predicate splits the individuals -into two groups: +With the ``partitions``, the biallelic classifier splits the individuals +into two classes: * two missense alleles * one missense alelele and one frameshift allele or two frameshift alleles -.. figure:: img/biallelic-predicate-w-partitions.png - :alt: Biallelic predicate with partitions +.. figure:: img/biallelic-classifier-w-partitions.png + :alt: Biallelic classifier with partitions :align: center :width: 600px -This is how to use the ``partitions`` in code: +Using the ``partitions`` in code is a no-brainer: ->>> gt_predicate = biallelic_predicate( +>>> gt_clf = biallelic_classifier( ... a_predicate=is_missense, ... b_predicate=is_frameshift, ... a_label="Missense", b_label="Frameshift", ... partitions=partitions, ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Missense/Missense', 'Missense/Frameshift OR Frameshift/Frameshift') diff --git a/docs/user-guide/analyses/partitioning/genotype/variant_predicates.rst b/docs/user-guide/analyses/partitioning/genotype/variant_predicates.rst index cb3040f3..588d3da2 100644 --- a/docs/user-guide/analyses/partitioning/genotype/variant_predicates.rst +++ b/docs/user-guide/analyses/partitioning/genotype/variant_predicates.rst @@ -6,14 +6,14 @@ Variant Predicates ================== -Variant predicate is a core component to partition a cohort using the genomic variants identified in the cohort members. -A :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` +Variant predicate is a core component to classify a cohort using the genomic variants identified in the cohort members. +A :class:`~gpsea.analysis.predicate.VariantPredicate` tests if a :class:`~gpsea.model.Variant` meets the inclusion criteria. For instance, a predicate can test if a variant is a deletion, leads to a missense change, or overlaps with a protein domain. -An array of variant predicates is available as static methods -of the :class:`~gpsea.analysis.predicate.genotype.VariantPredicates` class. +An array of builtin variant predicates is available as functions +of the :mod:`gpsea.analysis.predicate` module. The predicates operate on several lines of information: @@ -32,7 +32,7 @@ The predicates operate on several lines of information: The scope of the builtin predicates is fairly narrow and likely insufficient for real-life analyses. -The predicates can, however, be chained into a compound predicate +However, the predicates can be chained into a compound predicate to achive more expressivity for testing complex conditions, such as "variant is a missense or synonymous variant located in exon 6 of `NM_013275.6`". @@ -42,7 +42,7 @@ Examples ******** Here we show examples of several simple variant predicates and -and how to combine them to test a complex condition. +how to chain them for testing complex conditions. Load cohort @@ -83,32 +83,32 @@ Let's use builtin predicates to verify the properties of the variant ``1_8358231 We can check that the variant overlaps with *RERE* ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> gene = VariantPredicates.gene('RERE') +>>> import gpsea.analysis.predicate as vp +>>> gene = vp.gene('RERE') >>> gene.test(variant) True it overlaps with the *MANE* transcript >>> rere_mane_tx_id = 'NM_001042681.2' ->>> tx = VariantPredicates.transcript(rere_mane_tx_id) +>>> tx = vp.transcript(rere_mane_tx_id) >>> tx.test(variant) True it in fact overlaps with the exon 20, ->>> exon20 = VariantPredicates.exon(exon=20, tx_id=rere_mane_tx_id) +>>> exon20 = vp.exon(exon=20, tx_id=rere_mane_tx_id) >>> exon20.test(variant) True and leads to a missense mutation with respect to the MANE transcript >>> from gpsea.model import VariantEffect ->>> missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=rere_mane_tx_id) +>>> missense = vp.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=rere_mane_tx_id) >>> missense.test(variant) True -See :class:`~gpsea.analysis.predicate.genotype.VariantPredicates` +See the :mod:`gpsea.analysis.predicate` module for a complete list of the builtin predicates. @@ -118,7 +118,8 @@ Predicate chain Using the builtin predicates, we can build a logical chain to test complex conditions. For instance, we can test if the variant meets any of several conditions: ->>> nonsense = VariantPredicates.variant_effect(VariantEffect.STOP_GAINED, tx_id=rere_mane_tx_id) +>>> import gpsea.analysis.predicate as vp +>>> nonsense = vp.variant_effect(VariantEffect.STOP_GAINED, tx_id=rere_mane_tx_id) >>> missense_or_nonsense = missense | nonsense >>> missense_or_nonsense.test(variant) True @@ -136,7 +137,7 @@ e.g. to test if the variant is a *"chromosomal deletion" or a deletion which rem >>> from gpsea.model import VariantClass >>> chromosomal_deletion = "SO:1000029" ->>> predicate = VariantPredicates.structural_type(chromosomal_deletion) | (VariantPredicates.variant_class(VariantClass.DEL) & VariantPredicates.change_length("<=", -50)) +>>> predicate = vp.structural_type(chromosomal_deletion) | (vp.variant_class(VariantClass.DEL) & vp.change_length("<=", -50)) >>> predicate.description '(structural type is SO:1000029 OR (variant class is DEL AND change length <= -50))' @@ -154,7 +155,7 @@ for all variant effects except of :class:`~gpsea.model.VariantEffect.FRAMESHIFT_ ... VariantEffect.SYNONYMOUS_VARIANT, VariantEffect.MISSENSE_VARIANT, VariantEffect.INTRON_VARIANT, ... # and many more effects.. ... ) ->>> non_frameshift_predicate = VariantPredicates.all(VariantPredicates.variant_effect(eff, tx_id=rere_mane_tx_id) for eff in non_frameshift_effects) +>>> non_frameshift_predicate = vp.allof(vp.variant_effect(eff, tx_id=rere_mane_tx_id) for eff in non_frameshift_effects) However, this is clearly much better implemented by a logical *not* of a "is frameshift" predicate. @@ -164,7 +165,7 @@ and results in an inverted predicate. This is how we can use the predicate inversion to build the predicate for non-frameshift deletions: ->>> non_frameshift_del = ~VariantPredicates.variant_effect(VariantEffect.FRAMESHIFT_VARIANT, tx_id=rere_mane_tx_id) & VariantPredicates.variant_class(VariantClass.DEL) +>>> non_frameshift_del = ~vp.variant_effect(VariantEffect.FRAMESHIFT_VARIANT, tx_id=rere_mane_tx_id) & vp.variant_class(VariantClass.DEL) >>> non_frameshift_del.description '(NOT FRAMESHIFT_VARIANT on NM_001042681.2 AND variant class is DEL)' @@ -180,7 +181,7 @@ However, if a predicate seems to be missing, feel free to submit an issue in our `GitHub tracker `_, or to implement a custom predicate -by extending the :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` class 😎. +by extending the :class:`~gpsea.analysis.predicate.VariantPredicate` class 😎. diff --git a/docs/user-guide/analyses/partitioning/index.rst b/docs/user-guide/analyses/partitioning/index.rst index 54c1f708..cd460173 100644 --- a/docs/user-guide/analyses/partitioning/index.rst +++ b/docs/user-guide/analyses/partitioning/index.rst @@ -4,32 +4,35 @@ Partitioning ############ -Searching for G/P associations usually requires to partition the individuals -into two or more discrete groups, to allow testing for the inter-group differences. -GPSEA reflects these requirements with its predicate API. +Searching for G/P associations usually requires to assign the individuals +into two or more discrete classes, to allow testing for the inter-class differences. +GPSEA reflects these requirements with its classifier API. -A *predicate* partitions an individual (:class:`~gpsea.model.Patient`) into one of several groups. -The groups must be *exclusive* - each individual must be assigned at most into one group. -In general, it is desirable that the groups cover all or at least the majority of the cohort being analyzed to maximize statistical power. -However, the predicate is allowed to return `None` if the individual cannot be assigned. +A *classifier* assigns an individual (:class:`~gpsea.model.Patient`) into one of several classes. +The classes must be *exclusive* - each individual must be assigned at most into one class. +In general, it is desirable that the classes cover all or at least the majority +of the cohort being analyzed to maximize statistical power. +However, the classifier is allowed to return `None` if the individual cannot be assigned. As a result, the individual will be omitted from the downstream analysis. -Predicates can be applied on both *genotype* and *phenotype*. -Genotype predicates (:class:`~gpsea.analysis.predicate.genotype.GenotypePolyPredicate`) -assign the individual into a group (mostly) based on the variant information, -while the phenotype predicates (:class:`~gpsea.analysis.predicate.phenotype.PhenotypePolyPredicate`) -decide on the group based on the HPO terms or a diagnosis. +Classifiers can be applied on both *genotype* and *phenotype*. +Genotype classifiers (:class:`~gpsea.analysis.clf.GenotypeClassifier`) +classify the individual (mostly) based on the variant information, +while the phenotype classifiers (:class:`~gpsea.analysis.clf.PhenotypeClassifier`) +decide on the class based on the HPO terms or a diagnosis. -Besides assigning an individual into a discrete group, -a continuous score (typically for phenotype) can also be computed. +Besides assigning an individual into a discrete phenotype class, +a continuous score or a survival can also be computed. A :class:`~gpsea.analysis.pscore.PhenotypeScorer` computes a phenotype score for an individual, and the differences in score distributions of genotype groups can be tested e.g. with Mann-Whitney U test. +An :class:`~gpsea.analysis.temporal.Endpoint` computes a survival +as time until death, disease onset, or onset of an HPO term. -Any GPSEA analysis needs a genotype predicate and a phenotype predicate/scorer. -The following sections show how to prepare the predicates and scorers -for your analyses. We also show a gallery with examples. +Any GPSEA analysis needs a genotype clasifier and a phenotype classifier/scorer/endpoint. +The following sections show how to prepare the classifiers, scorers, and endpoints +for your analysis. We also show a gallery with examples. .. toctree:: diff --git a/docs/user-guide/analyses/partitioning/phenotype/hpo_predicate.rst b/docs/user-guide/analyses/partitioning/phenotype/hpo_predicate.rst index b259feff..e11722f8 100644 --- a/docs/user-guide/analyses/partitioning/phenotype/hpo_predicate.rst +++ b/docs/user-guide/analyses/partitioning/phenotype/hpo_predicate.rst @@ -1,11 +1,11 @@ -.. _hpo-predicate: +.. _hpo-classifier: -HPO predicate -============= +HPO classifier +============== -When testing for presence or absence of an HPO term, the :class:`~gpsea.analysis.predicate.phenotype.HpoPredicate` +When testing for presence or absence of an HPO term, the :class:`~gpsea.analysis.clf.HpoClassifier` leverages the :ref:`true-path-rule` to take advantage of the HPO hierarchy. In result, an individual annotated with a term is implicitly annotated with all its ancestors. For instance, an individual annotated with `Ectopia lentis `_ @@ -16,10 +16,11 @@ is also annotated with `Abnormal lens morphology `_. We need to load :class:`~hpotk.ontology.MinimalOntology` with HPO data to access the HPO hierarchy: @@ -28,19 +29,19 @@ We need to load :class:`~hpotk.ontology.MinimalOntology` with HPO data to access >>> store = hpotk.configure_ontology_store() >>> hpo = store.load_minimal_hpo(release='v2024-07-01') -and now we can set up a predicate to test for presence of *Abnormal lens morphology*: +and now we can set up the classifier to test for presence of *Abnormal lens morphology*: ->>> from gpsea.analysis.predicate.phenotype import HpoPredicate +>>> from gpsea.analysis.clf import HpoClassifier >>> query = hpotk.TermId.from_curie('HP:0000517') ->>> pheno_predicate = HpoPredicate( +>>> pheno_clf = HpoClassifier( ... hpo=hpo, ... query=query, ... ) ->>> pheno_predicate.name -'HPO Predicate' ->>> pheno_predicate.description +>>> pheno_clf.name +'HPO Classifier' +>>> pheno_clf.description 'Test for presence of Abnormal lens morphology [HP:0000517]' ->>> pheno_predicate.group_labels +>>> pheno_clf.class_labels ('Yes', 'No') @@ -48,21 +49,29 @@ and now we can set up a predicate to test for presence of *Abnormal lens morphol missing_implies_phenotype_excluded ---------------------------------- -In many cases, published reports of clinical data about individuals with rare diseases describes phenotypic features that were observed, but do not -provide a comprehensive list of features that were explicitly excluded. By default, GPSEA will only include features that are recorded as observed or excluded in a phenopacket. -Setting this argument to True will cause "n/a" entries to be set to "excluded". We provide this option for exploration but do not recommend its use for the -final analysis unless the assumption behind it is known to be true. +In many cases, published reports of clinical data about individuals with rare diseases +describe phenotypic features that were observed, but do not provide +a comprehensive list of features that were explicitly excluded. +By default, GPSEA will only include features that are recorded as observed or excluded in a phenopacket. + +However, setting ``missing_implies_excluded=True`` will cause "n/a" entries to be set to "excluded". +We provide this option for exploration but do not recommend its use +for the final analysis unless the assumption behind it is known to be true. -Predicates for all cohort phenotypes -==================================== +Classifiers for all cohort phenotypes +===================================== -Constructing phenotype predicates for all HPO terms of a cohort sounds a bit tedious. -The :func:`~gpsea.analysis.predicate.phenotype.prepare_predicates_for_terms_of_interest` +Constructing phenotype classifiers for all HPO terms of a cohort sounds a bit tedious. +The :func:`~gpsea.analysis.clf.prepare_classifiers_for_terms_of_interest` function cuts down the tedium. -For a given phenopacket collection (e.g. 156 patients with mutations in *WWOX* gene included in Phenopacket Store version `0.1.18`) + +Example +------- + +For a phenopacket collection (e.g. 156 patients with mutations in *WWOX* gene included in Phenopacket Store version `0.1.18`) >>> from ppktstore.registry import configure_phenopacket_registry >>> registry = configure_phenopacket_registry() @@ -79,14 +88,14 @@ processed into a cohort Individuals Processed: ... -we can create HPO predicates for testing all 369 HPO terms used in the cohort +we can create HPO classifiers for testing all 369 HPO terms used in the cohort: ->>> from gpsea.analysis.predicate.phenotype import prepare_predicates_for_terms_of_interest ->>> pheno_predicates = prepare_predicates_for_terms_of_interest( +>>> from gpsea.analysis.clf import prepare_classifiers_for_terms_of_interest +>>> pheno_clfs = prepare_classifiers_for_terms_of_interest( ... cohort=cohort, ... hpo=hpo, ... ) ->>> len(pheno_predicates) +>>> len(pheno_clfs) 369 and subject the predicates into further analysis, such as :class:`~gpsea.analysis.pcats.HpoTermAnalysis`. diff --git a/docs/user-guide/analyses/partitioning/phenotype/index.rst b/docs/user-guide/analyses/partitioning/phenotype/index.rst index aa0cbe49..915ee402 100644 --- a/docs/user-guide/analyses/partitioning/phenotype/index.rst +++ b/docs/user-guide/analyses/partitioning/phenotype/index.rst @@ -1,10 +1,10 @@ .. _phenotype-predicates-and-scorers: -################################ -Phenotype predicates and scorers -################################ +################################# +Phenotype classifiers and scorers +################################# -GPSEA offers several phenotype predicates. +GPSEA offers several phenotype classifiers. TODO -- separate explanations for HPO (Fisher), scores (Mann Whitney) and survival (log rank test). diff --git a/docs/user-guide/analyses/phenotype-groups.rst b/docs/user-guide/analyses/phenotype-classes.rst similarity index 77% rename from docs/user-guide/analyses/phenotype-groups.rst rename to docs/user-guide/analyses/phenotype-classes.rst index 92b87bab..af1c879e 100644 --- a/docs/user-guide/analyses/phenotype-groups.rst +++ b/docs/user-guide/analyses/phenotype-classes.rst @@ -1,20 +1,20 @@ -.. _genotype-phenotype-groups: +.. _genotype-phenotype-classes: -===================================== -Compare genotype and phenotype groups -===================================== +====================================== +Compare genotype and phenotype classes +====================================== .. doctest:: :hide: >>> from gpsea import _overwrite -In this section, we show how to test the association between genotype and phenotype categories. +In this section, we show how to test the association between genotype and phenotype classes. We assume a cohort was preprocessed following the :ref:`input-data` section, -and we use predicates described in the :ref:`partitioning` to assign each cohort member -into a group along the genotype and phenotype axes. -We use Fisher exact test (FET) to test for differences between the groups +and we use classifiers described in the :ref:`partitioning` to assign each cohort member +into a class along the genotype and phenotype axes. +We use Fisher exact test (FET) to test for differences between the classes and we apply multiple testing correction to mitigate finding significant associations by chance. @@ -63,9 +63,9 @@ The ``p_value`` evaluates to `5.432292015291845e-06`, meaning there is a signifi The Fisher exact test evaluates whether the observed frequencies in a contingency table significantly deviate from the frequencies we would expect if there were no association between the variables. We want to test whether the frequency of `HP:0000486`` is significantly higher or lower in -one genotype group compared to what would be expected if there were no association. +one genotype class compared to what would be expected if there were no association. Note that by default, the *two-tailed* Fisher exact test is performed, meaning we have no -hypothesis as to whether there is a higher or lower frequency in one of the genotype groups. +hypothesis as to whether there is a higher or lower frequency in one of the genotype classes. However, we are typically interested in testing the associations between the genotype and multiple phenotypic features at once. GPSEA takes advantage of the HPO structure and simplifies the testing for all HPO terms encoded in the cohort. @@ -109,84 +109,95 @@ Configure analysis ================== We want to test the association between frameshift *TBX5* variants and phenotypic abnormalities. -GPSEA exposes a flexible predicate API that lets us create genotype and phenotype predicates +GPSEA exposes a flexible classifier API that lets us create genotype and phenotype classifiers to assign the cohort members into genotype and phenotype categories based on the variants -and the HPO terms. We need to create one genotype predicate and one or more phenotype predicates. +and the HPO terms. +We need to create one genotype classifier and one or more phenotype classifiers. -Genotype predicate ------------------- +Genotype classifier +------------------- -We want to separate the patients into two groups: a group *with* a frameshift variant -and a group *without* a frameshift variant (i.e. any other heterozygous variant). +We want to separate the patients into two classes: a class *with* a frameshift variant +and a class *without* a frameshift variant (i.e. any other heterozygous variant). We will use the *MANE* transcript for the analysis: >>> tx_id = 'NM_181486.4' -Building a genotype predicate is a two step process. -First, we create a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` +Building a genotype classifier is a two step process. +First, we create a :class:`~gpsea.analysis.predicate.VariantPredicate` to test if the variant is predicted to lead to a frameshift in `NM_181486.4`: >>> from gpsea.model import VariantEffect ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> is_frameshift = VariantPredicates.variant_effect(VariantEffect.FRAMESHIFT_VARIANT, tx_id) +>>> from gpsea.analysis.predicate import variant_effect +>>> is_frameshift = variant_effect(VariantEffect.FRAMESHIFT_VARIANT, tx_id) >>> is_frameshift.description 'FRAMESHIFT_VARIANT on NM_181486.4' -and then we wrap `is_frameshift` in a :class:`~gpsea.analysis.predicate.genotype.monoallelic_predicate` -to classify each *TBX5* cohort member either as an individual with one frameshift allele (`Frameshift`) -or as an idividual with one non-frameshift allele (`Other`): +.. note:: + + The :mod:`gpsea.analysis.predicate` documentation lists all available variant predicates + and :ref:`variant-predicates` exemplifies their usage. ->>> from gpsea.analysis.predicate.genotype import monoallelic_predicate ->>> gt_predicate = monoallelic_predicate( +To build a genotype classifier, we wrap `is_frameshift` +in a Monoallelic classifier (:class:`~gpsea.analysis.clf.monoallelic_classifier`), +to classify each *TBX5* cohort member either as an individual with one *frameshift* allele (`Frameshift`) +or as an individual with one *non-frameshift* allele (`Other`): + +>>> from gpsea.analysis.clf import monoallelic_classifier +>>> gt_clf = monoallelic_classifier( ... a_predicate=is_frameshift, ... a_label="Frameshift", ... b_label="Other", ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Frameshift', 'Other') -In the subsequent analysis, `gt_predicate` will assign a cohort member into the respective group. -Note, any patient with :math:`0` or :math:`\ge 2` alleles will be *omitted* from the analysis. +.. note:: + + See the :ref:`genotype-classifiers` for other genotype classifier examples. +In the subsequent analysis, `gt_clf` assigns an individual into a genotype class. +Note, any individual with :math:`0` or :math:`\ge 2` alleles will be *omitted* from the analysis. -Phenotype predicates --------------------- + +Phenotype classifiers +--------------------- We recommend testing the genotype phenotype association for all HPO terms that annotate the cohort members, while taking advantage of the HPO graph structure and of the :ref:`true-path-rule`. -We will use the :func:`~gpsea.analysis.predicate.phenotype.prepare_predicates_for_terms_of_interest` -utility function to generate phenotype predicates for all HPO terms. +We will use the :func:`~gpsea.analysis.clf.prepare_classifiers_for_terms_of_interest` +utility function to generate phenotype classifiers for all HPO terms. -The function needs HPO to prepare predicates, hence we need to load HPO: +The function needs HPO to prepare classifiers, hence we need to load HPO: >>> import hpotk >>> store = hpotk.configure_ontology_store() >>> hpo = store.load_minimal_hpo(release='v2024-07-01') -and then we can create the predicates +and then we can create the classifiers ->>> from gpsea.analysis.predicate.phenotype import prepare_predicates_for_terms_of_interest ->>> pheno_predicates = prepare_predicates_for_terms_of_interest( +>>> from gpsea.analysis.clf import prepare_classifiers_for_terms_of_interest +>>> pheno_clfs = prepare_classifiers_for_terms_of_interest( ... cohort=cohort, ... hpo=hpo, ... ) ->>> len(pheno_predicates) +>>> len(pheno_clfs) 369 The function finds 369 HPO terms that annotate at least one individual, including the *indirect* annotations whose presence is implied by the :ref:`true-path-rule`. -.. _phenotype-groups-statistical-analysis: +.. _phenotype-classes-statistical-analysis: Statistical analysis -------------------- We will use :ref:`fisher-exact-test` to test the association -between genotype and phenotype groups, as described previously. +between genotype and phenotype classes, as described previously. In the case of this cohort, we can test association between having a frameshift variant and one of 369 HPO terms. However, testing multiple hypotheses on the same dataset increases the risk of finding @@ -198,11 +209,12 @@ Phenotype MT filter selects a (sub)set of HPO terms for testing, for instance only the user-selected terms (see :class:`~gpsea.analysis.mtc_filter.SpecifiedTermsMtcFilter`) or the terms selected by :class:`~gpsea.analysis.mtc_filter.HpoMtcFilter`. -Multiple testing correction then adjusts the nominal p values for the increased risk +MTC then adjusts the nominal p values for the increased risk of false positive G/P associations. The available MTC procedures are listed in the :ref:`mtc-correction-procedures` section. -We must pick one of these to perform genotype-phenotype analysis. +We must choose a phenotype MT filter as well as a MTC procedure to perform genotype-phenotype analysis. + .. _default-hpo-analysis: @@ -210,7 +222,7 @@ Default analysis ^^^^^^^^^^^^^^^^ We recommend using HPO MT filter (:class:`~gpsea.analysis.mtc_filter.HpoMtcFilter`) as a phenotype MT filter -and Benjamini-Hochberg for multiple testing correction. +and Benjamini-Hochberg for MTC. The default analysis can be configured with :func:`~gpsea.analysis.pcats.configure_hpo_term_analysis` convenience method. >>> from gpsea.analysis.pcats import configure_hpo_term_analysis @@ -273,12 +285,12 @@ The ``analysis`` is identical to the one configured in the :ref:`default-hpo-ana Analysis ======== -We can now test associations between the genotype groups and the HPO terms: +We can now test associations between the genotype classes and the HPO terms: >>> result = analysis.compare_genotype_vs_phenotypes( ... cohort=cohort, -... gt_predicate=gt_predicate, -... pheno_predicates=pheno_predicates, +... gt_clf=gt_clf, +... pheno_clfs=pheno_clfs, ... ) >>> len(result.phenotypes) 369 @@ -286,8 +298,8 @@ We can now test associations between the genotype groups and the HPO terms: 24 -We tested the ``cohort`` for association between the genotype groups (``gt_predicate``) -and HPO terms (``pheno_predicates``). +We tested the ``cohort`` for association between the genotype classes (``gt_clf``) +and HPO terms (``pheno_clfs``). Thanks to phenotype MT filter, we only tested 24 out of 369 terms. The MT filter report shows the filtering details: @@ -299,7 +311,7 @@ The MT filter report shows the filtering details: .. raw:: html :file: report/tbx5_frameshift.mtc_report.html -.. doctest:: phenotype-groups +.. doctest:: phenotype-classes :hide: >>> if _overwrite: mtc_report.write('docs/user-guide/analyses/report/tbx5_frameshift.mtc_report.html') @@ -321,7 +333,7 @@ one HPO term per row. The rows are ordered by the corrected p value and nominal :file: report/tbx5_frameshift.csv :header-rows: 2 -.. doctest:: phenotype-groups +.. doctest:: phenotype-classes :hide: >>> if _overwrite: summary_df.to_csv('docs/user-guide/analyses/report/tbx5_frameshift.csv') diff --git a/docs/user-guide/analyses/phenotype-scores.rst b/docs/user-guide/analyses/phenotype-scores.rst index d10fbcc2..85347ed9 100644 --- a/docs/user-guide/analyses/phenotype-scores.rst +++ b/docs/user-guide/analyses/phenotype-scores.rst @@ -1,9 +1,9 @@ .. _phenotype-score-stats: -########################################### -Compare phenotype scores in genotype groups -########################################### +######################## +Compare phenotype scores +######################## .. doctest:: :hide: @@ -11,11 +11,11 @@ Compare phenotype scores in genotype groups >>> from gpsea import _overwrite -In this section, we show how to test for an association between genotype group and a phenotype score. +In this section, we show how to test for an association between a genotype class and a phenotype score. We assume a cohort was preprocessed following the :ref:`input-data` section, -and we use a genotype predicate and a phenotype scorer from the :ref:`partitioning` section to assign each cohort member -into a genotype group and to compute a phenotype score. -We use Mann-Whitney U test to test for differences in phenotype score distributions between the groups. +and we use a genotype classifier and a phenotype scorer from the :ref:`partitioning` section +to obtain a genotype class and phenotype score for each cohort member. +We use Mann-Whitney U test to test for differences in phenotype score distributions between the classes. .. _mann-whitney-u-test: @@ -24,25 +24,25 @@ We use Mann-Whitney U test to test for differences in phenotype score distributi Mann-Whitney U Test ******************* -We may want to compare the total number of occurences of a specific set of phenotypic features between two different genotype groups. +We may want to compare the total number of occurences of a specific set of phenotypic features between two different genotype classes. For instance, `Jordan et al (2018) `_ found that the total number of structural defects -of the brain, eye, heart, and kidney and sensorineural hearing loss seen in individuals with point mutations in the Atrophin-1 domain of the RERE gene +of the brain, eye, heart, and kidney and sensorineural hearing loss seen in individuals with point mutations in the Atrophin-1 domain of *RERE* is significantly higher than expected based on the number of similar defects seen in individuals with putative loss-of-function variants. Since there are five potential defects, each individual has a count ranging between 0 and 5. -We perform a Mann-Whitney U Test (or Wilcoxon Rank-Sum Test) to compare the distribution of such counts between genotype groups. -This is a non-parametric test that compares the medians of the two groups to determine if they come from the same distribution. +We perform a Mann-Whitney U Test (or Wilcoxon Rank-Sum Test) to compare the distribution of such counts between genotype classes. +This is a non-parametric test that compares the medians of the two classes to determine if they come from the same distribution. >>> import scipy.stats as stats ->>> group1 = [0, 0, 1, 0, 2, 0, 1, 1, 1, 0, 2, 0, 0, 3, 1, 1, 1, 0] ->>> group2 = [4, 5, 3, 4, 3, 3, 3, 4, 4, 5, 5, 2, 3, 0, 3, 5, 2, 3] ->>> r = stats.mannwhitneyu(x=group1, y=group2, alternative = 'two-sided') +>>> class1 = [0, 0, 1, 0, 2, 0, 1, 1, 1, 0, 2, 0, 0, 3, 1, 1, 1, 0] +>>> class2 = [4, 5, 3, 4, 3, 3, 3, 4, 4, 5, 5, 2, 3, 0, 3, 5, 2, 3] +>>> r = stats.mannwhitneyu(x=class1, y=class2, alternative = 'two-sided') >>> p_value = r.pvalue >>> float(p_value) 6.348081479150902e-06 -p value of `6.348081479150901e-06` suggests a significant difference between the groups. +p value of `6.348081479150901e-06` suggests a significant difference between the classes. **************** @@ -110,13 +110,13 @@ In this example, the point mutation is a mutation that meets the following condi * the :ref:`change-length-of-an-allele` is equal to `0` >>> from gpsea.model import VariantEffect ->>> from gpsea.analysis.predicate.genotype import VariantPredicates +>>> from gpsea.analysis.predicate import change_length, ref_length, anyof, variant_effect >>> point_mutation_effects = ( ... VariantEffect.MISSENSE_VARIANT, ... ) ->>> point_mutation = VariantPredicates.change_length('==', 0) \ -... & VariantPredicates.ref_length('==', 1) \ -... & VariantPredicates.any(VariantPredicates.variant_effect(effect, tx_id) for effect in point_mutation_effects) +>>> point_mutation = change_length('==', 0) \ +... & ref_length('==', 1) \ +... & anyof(variant_effect(effect, tx_id) for effect in point_mutation_effects) >>> point_mutation.description '((change length == 0 AND reference allele length == 1) AND MISSENSE_VARIANT on NM_001042681.2)' @@ -129,20 +129,20 @@ For the loss of function predicate, the following variant effects are considered ... VariantEffect.START_LOST, ... VariantEffect.STOP_GAINED, ... ) ->>> lof_mutation = VariantPredicates.any(VariantPredicates.variant_effect(eff, tx_id) for eff in lof_effects) +>>> lof_mutation = anyof(variant_effect(eff, tx_id) for eff in lof_effects) >>> lof_mutation.description '(TRANSCRIPT_ABLATION on NM_001042681.2 OR FRAMESHIFT_VARIANT on NM_001042681.2 OR START_LOST on NM_001042681.2 OR STOP_GAINED on NM_001042681.2)' -The genotype predicate will bin the patient into two groups: a point mutation group or the loss of function group: +The genotype predicate will bin the patient into two classes: a point mutation or the loss of function: ->>> from gpsea.analysis.predicate.genotype import monoallelic_predicate ->>> gt_predicate = monoallelic_predicate( +>>> from gpsea.analysis.clf import monoallelic_classifier +>>> gt_clf = monoallelic_classifier( ... a_predicate=point_mutation, ... b_predicate=lof_mutation, ... a_label="Point", b_label="LoF", ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Point', 'LoF') @@ -234,7 +234,7 @@ We execute the analysis by running >>> result = score_analysis.compare_genotype_vs_phenotype_score( ... cohort=cohort, -... gt_predicate=gt_predicate, +... gt_clf=gt_clf, ... pheno_scorer=pheno_scorer, ... ) @@ -263,7 +263,7 @@ Subject 2[PMID_29330883_Subject_2] 1 1 The data frame provides a `genotype` category and a `phenotype_score` for each patient. The genotype category should be interpreted in the context of the genotype predicate: ->>> gt_id_to_name = {c.category.cat_id: c.category.name for c in gt_predicate.get_categorizations()} +>>> gt_id_to_name = {c.category.cat_id: c.category.name for c in gt_clf.get_categorizations()} >>> gt_id_to_name {0: 'Point', 1: 'LoF'} @@ -285,7 +285,7 @@ to visualize the phenotype score distributions: ... ) -.. image:: /img/rere_phenotype_score_boxplot.png +.. image:: report/rere_phenotype_score_boxplot.png :alt: Phenotype score distribution :align: center :width: 600px @@ -293,7 +293,7 @@ to visualize the phenotype score distributions: .. doctest:: phenotype-scores :hide: - >>> if _overwrite: fig.savefig('docs/img/rere_phenotype_score_boxplot.png') + >>> if _overwrite: fig.savefig('docs/user-guide/analyses/report/rere_phenotype_score_boxplot.png') diff --git a/docs/img/rere_phenotype_score_boxplot.png b/docs/user-guide/analyses/report/rere_phenotype_score_boxplot.png similarity index 100% rename from docs/img/rere_phenotype_score_boxplot.png rename to docs/user-guide/analyses/report/rere_phenotype_score_boxplot.png diff --git a/docs/img/umod_km_curves.png b/docs/user-guide/analyses/report/umod_km_curves.png similarity index 100% rename from docs/img/umod_km_curves.png rename to docs/user-guide/analyses/report/umod_km_curves.png diff --git a/docs/user-guide/analyses/survival.rst b/docs/user-guide/analyses/survival.rst index 258fbe6b..616bfa46 100644 --- a/docs/user-guide/analyses/survival.rst +++ b/docs/user-guide/analyses/survival.rst @@ -46,26 +46,27 @@ Configure analysis >>> tx_id = 'NM_003361.4' -Genotype predicate ------------------- + +Genotype classifier +------------------- One allele of exon 3 vs. one allele of elsewhere. ->>> from gpsea.analysis.predicate.genotype import VariantPredicates ->>> is_in_exon3 = VariantPredicates.exon(exon=3, tx_id=tx_id) +>>> from gpsea.analysis.predicate import exon +>>> is_in_exon3 = exon(exon=3, tx_id=tx_id) >>> is_in_exon3.description 'overlaps with exon 3 of NM_003361.4' -Monoallelic predicate to compare one allele of *UMOD* exon 3 variant +Monoallelic classifier to compare one allele of *UMOD* exon 3 variant versus one allele of other *UMOD* variant: ->>> from gpsea.analysis.predicate.genotype import monoallelic_predicate ->>> gt_predicate = monoallelic_predicate( +>>> from gpsea.analysis.clf import monoallelic_classifier +>>> gt_clf = monoallelic_classifier( ... a_predicate=is_in_exon3, ... b_predicate=~is_in_exon3, ... a_label="Exon 3", b_label="Other", ... ) ->>> gt_predicate.group_labels +>>> gt_clf.class_labels ('Exon 3', 'Other') @@ -102,6 +103,7 @@ the genotype groups: >>> from gpsea.analysis.temporal.stats import LogRankTest >>> survival_statistic = LogRankTest() + Final analysis -------------- @@ -112,6 +114,7 @@ We will put the final analysis together into a :class:`~gpsea.analysis.temporal. ... statistic=survival_statistic, ... ) + Analysis ======== @@ -119,7 +122,7 @@ We execute the analysis by running >>> result = survival_analysis.compare_genotype_vs_survival( ... cohort=cohort, -... gt_predicate=gt_predicate, +... gt_clf=gt_clf, ... endpoint=endpoint, ... ) @@ -152,7 +155,7 @@ We can plot Kaplan-Meier curves: ... ) >>> _ = ax.grid(axis="y") -.. image:: /img/umod_km_curves.png +.. image:: report/umod_km_curves.png :alt: UMOD Kaplan-Meier curves :align: center :width: 600px @@ -160,7 +163,7 @@ We can plot Kaplan-Meier curves: .. doctest:: survival :hide: - >>> if _overwrite: fig.savefig('docs/img/umod_km_curves.png') + >>> if _overwrite: fig.savefig('docs/user-guide/analyses/report/umod_km_curves.png') Raw data @@ -179,7 +182,7 @@ AII.5[PMID_22034507_AII_5] 0 Survival(value=22280.25, is_censored=False AIII.4[PMID_22034507_AIII_4] 0 Survival(value=19723.5, is_censored=False) Each line corresponeds to an individual and the dataframe is indexed by the individual's identifier/label. -The `genotype` column contains the genotype group code, +The `genotype` column contains the genotype class code, and `phenotype` column includes a :class:`~gpsea.analysis.temporal.Survival` value or `None` if computing the survival was impossible (see :func:`~gpsea.analysis.temporal.endpoint.hpo_onset` for details). The `Survival` reports the number of days until attaining the endpoint, diff --git a/src/gpsea/analysis/_base.py b/src/gpsea/analysis/_base.py index 3aad2965..1725cf9e 100644 --- a/src/gpsea/analysis/_base.py +++ b/src/gpsea/analysis/_base.py @@ -6,8 +6,7 @@ import numpy as np import pandas as pd -from .predicate.phenotype import PhenotypePolyPredicate, P -from .predicate.genotype import GenotypePolyPredicate +from .clf import GenotypeClassifier, PhenotypeClassifier, P from ._partition import Partitioning @@ -34,7 +33,7 @@ def __init__( assert isinstance(pval, float) and (math.isnan(pval) or 0.0 <= pval <= 1.0) self._pval = float(pval) - + @property def statistic(self) -> typing.Optional[float]: """ @@ -57,7 +56,12 @@ def __eq__(self, value: object) -> bool: ) def __hash__(self) -> int: - return hash((self._statistic, self._pval,)) + return hash( + ( + self._statistic, + self._pval, + ) + ) def __str__(self) -> str: return repr(self) @@ -73,7 +77,7 @@ class AnalysisException(Exception): To aid troubleshooting, the exception includes :attr:`~gpsea.analysis.AnalysisException.data` - a mapping with any data that has been computed prior encountering the issues. """ - + def __init__( self, data: typing.Mapping[str, typing.Any], @@ -88,7 +92,7 @@ def data(self) -> typing.Mapping[str, typing.Any]: Get a mapping with (partial) data to aid troubleshooting. """ return self._data - + def __repr__(self) -> str: return f"AnalysisException(args={self.args}, data={self._data})" @@ -97,7 +101,7 @@ class Statistic(metaclass=abc.ABCMeta): """ Mixin for classes that are used to compute a nominal p value for a genotype-phenotype association. """ - + def __init__( self, name: str, @@ -110,12 +114,12 @@ def name(self) -> str: Get the name of the statistic (e.g. `Fisher Exact Test`, `Logrank test`). """ return self._name - + def __eq__(self, value: object) -> bool: if isinstance(value, Statistic): return self._name == value._name return NotImplemented - + def __hash__(self) -> int: return hash((self._name,)) @@ -127,22 +131,22 @@ class AnalysisResult(metaclass=abc.ABCMeta): def __init__( self, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, statistic: Statistic, ): - assert isinstance(gt_predicate, GenotypePolyPredicate) - self._gt_predicate = gt_predicate + assert isinstance(gt_clf, GenotypeClassifier) + self._gt_clf = gt_clf assert isinstance(statistic, Statistic) self._statistic = statistic @property - def gt_predicate(self) -> GenotypePolyPredicate: + def gt_clf(self) -> GenotypeClassifier: """ - Get the genotype predicate used in the survival analysis that produced this result. + Get the genotype classifier used in the survival analysis that produced this result. """ - return self._gt_predicate - + return self._gt_clf + @property def statistic(self) -> Statistic: """ @@ -151,15 +155,19 @@ def statistic(self) -> Statistic: return self._statistic def __eq__(self, value: object) -> bool: - return isinstance(value, AnalysisResult) \ - and self._gt_predicate == value._gt_predicate \ + return ( + isinstance(value, AnalysisResult) + and self._gt_clf == value._gt_clf and self._statistic == value._statistic - + ) + def __hash__(self) -> int: - return hash(( - self._gt_predicate, - self._statistic, - )) + return hash( + ( + self._gt_clf, + self._statistic, + ) + ) class MultiPhenotypeAnalysisResult(typing.Generic[P], AnalysisResult): @@ -167,24 +175,24 @@ class MultiPhenotypeAnalysisResult(typing.Generic[P], AnalysisResult): `MultiPhenotypeAnalysisResult` reports the outcome of an analysis that tested the association of genotype with two or more phenotypes. """ - + def __init__( self, - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[P]], statistic: Statistic, n_usable: typing.Sequence[int], all_counts: typing.Sequence[pd.DataFrame], - statistic_results: typing.Sequence[StatisticResult], + statistic_results: typing.Sequence[typing.Optional[StatisticResult]], corrected_pvals: typing.Optional[typing.Sequence[float]], - mtc_correction: typing.Optional[str] + mtc_correction: typing.Optional[str], ): super().__init__( - gt_predicate=gt_predicate, + gt_clf=gt_clf, statistic=statistic, ) - self._pheno_predicates = tuple(pheno_predicates) + self._pheno_clfs = tuple(pheno_clfs) self._n_usable = tuple(n_usable) self._all_counts = tuple(all_counts) @@ -205,44 +213,44 @@ def _check_sanity(self) -> typing.Sequence[str]: errors = [] # All sequences must have the same lengths ... for seq, name in ( - (self._n_usable, 'n_usable'), - (self._all_counts, 'all_counts'), - (self._statistic_results, 'statistic_results'), + (self._n_usable, "n_usable"), + (self._all_counts, "all_counts"), + (self._statistic_results, "statistic_results"), ): - if len(self._pheno_predicates) != len(seq): + if len(self._pheno_clfs) != len(seq): errors.append( - f"`len(pheno_predicates)` must be the same as `len({name})` but " - f"{len(self._pheno_predicates)}!={len(seq)}" + f"`len(pheno_clfs)` must be the same as `len({name})` but " + f"{len(self._pheno_clfs)}!={len(seq)}" ) # ... including the optional corrected p values - if self._corrected_pvals is not None and len(self._pheno_predicates) != len(self._corrected_pvals): + if self._corrected_pvals is not None and len(self._pheno_clfs) != len( + self._corrected_pvals + ): errors.append( f"`len(pheno_predicates)` must be the same as `len(corrected_pvals)` but " - f"{len(self._pheno_predicates)}!={len(self._corrected_pvals)}" + f"{len(self._pheno_clfs)}!={len(self._corrected_pvals)}" ) - if not isinstance(self._gt_predicate, GenotypePolyPredicate): - errors.append( - "`gt_predicate` must be an instance of `GenotypePolyPredicate`" - ) + if not isinstance(self._gt_clf, GenotypeClassifier): + errors.append("`gt_clf` must be an instance of `GenotypeClassifier`") return errors @property - def pheno_predicates( + def pheno_clfs( self, - ) -> typing.Sequence[PhenotypePolyPredicate[P]]: + ) -> typing.Sequence[PhenotypeClassifier[P]]: """ - Get the phenotype predicates used in the analysis. + Get the phenotype classifiers used in the analysis. """ - return self._pheno_predicates + return self._pheno_clfs @property def phenotypes(self) -> typing.Sequence[P]: """ Get the phenotypes that were tested for association with genotype in the analysis. """ - return tuple(p.phenotype for p in self._pheno_predicates) + return tuple(p.phenotype for p in self._pheno_clfs) @property def n_usable(self) -> typing.Sequence[int]: @@ -286,7 +294,9 @@ def pvals(self) -> typing.Sequence[float]: Get a sequence of nominal p values for each tested phenotype. The sequence includes a `NaN` value for each phenotype that was *not* tested. """ - return tuple(float('nan') if r is None else r.pval for r in self._statistic_results ) + return tuple( + float("nan") if r is None else r.pval for r in self._statistic_results + ) @property def corrected_pvals(self) -> typing.Optional[typing.Sequence[float]]: @@ -296,10 +306,10 @@ def corrected_pvals(self) -> typing.Optional[typing.Sequence[float]]: The sequence includes a `NaN` value for each phenotype that was *not* tested. """ return self._corrected_pvals - + def n_significant_for_alpha( self, - alpha: float = .05, + alpha: float = 0.05, ) -> typing.Optional[int]: """ Get the count of the corrected p values with the value being less than or equal to `alpha`. @@ -310,10 +320,10 @@ def n_significant_for_alpha( return None else: return sum(p_val <= alpha for p_val in self.corrected_pvals) - + def significant_phenotype_indices( self, - alpha: float = .05, + alpha: float = 0.05, pval_kind: typing.Literal["corrected", "nominal"] = "corrected", ) -> typing.Optional[typing.Sequence[int]]: """ @@ -328,10 +338,10 @@ def significant_phenotype_indices( vals = np.array(self.pvals) else: raise ValueError(f"Unsupported `pval_kind` value {pval_kind}") - + if vals is None: return None - + not_na = ~np.isnan(vals) significant = vals <= alpha selected = not_na & significant @@ -354,25 +364,29 @@ def mtc_correction(self) -> typing.Optional[str]: return self._mtc_correction def __eq__(self, value: object) -> bool: - return isinstance(value, MultiPhenotypeAnalysisResult) \ - and super(AnalysisResult, self).__eq__(value) \ - and self._pheno_predicates == value._pheno_predicates \ - and self._n_usable == value._n_usable \ - and self._all_counts == value._all_counts \ - and self._statistic_results == value._statistic_results \ - and self._corrected_pvals == value._corrected_pvals \ + return ( + isinstance(value, MultiPhenotypeAnalysisResult) + and super(AnalysisResult, self).__eq__(value) + and self._pheno_clfs == value._pheno_clfs + and self._n_usable == value._n_usable + and self._all_counts == value._all_counts + and self._statistic_results == value._statistic_results + and self._corrected_pvals == value._corrected_pvals and self._mtc_correction == value._mtc_correction - + ) + def __hash__(self) -> int: - return hash(( - super(AnalysisResult, self).__hash__(), - self._pheno_predicates, - self._n_usable, - self._all_counts, - self._statistic_results, - self._corrected_pvals, - self._mtc_correction, - )) + return hash( + ( + super(AnalysisResult, self).__hash__(), + self._pheno_clfs, + self._n_usable, + self._all_counts, + self._statistic_results, + self._corrected_pvals, + self._mtc_correction, + ) + ) class MonoPhenotypeAnalysisResult(AnalysisResult, metaclass=abc.ABCMeta): @@ -380,7 +394,7 @@ class MonoPhenotypeAnalysisResult(AnalysisResult, metaclass=abc.ABCMeta): `MonoPhenotypeAnalysisResult` reports the outcome of an analysis that tested a single genotype-phenotype association. """ - + GT_COL = "genotype" """ Name of column for storing genotype data. @@ -398,13 +412,13 @@ class MonoPhenotypeAnalysisResult(AnalysisResult, metaclass=abc.ABCMeta): def __init__( self, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, phenotype: Partitioning, statistic: Statistic, data: pd.DataFrame, statistic_result: StatisticResult, ): - super().__init__(gt_predicate, statistic) + super().__init__(gt_clf, statistic) assert isinstance(phenotype, Partitioning) self._phenotype = phenotype @@ -416,7 +430,7 @@ def __init__( assert isinstance(statistic_result, StatisticResult) self._statistic_result = statistic_result - + @property def phenotype(self) -> Partitioning: """ @@ -431,12 +445,12 @@ def data(self) -> pd.DataFrame: The index of the data frame contains the identifiers of the tested individuals, and the values are stored in `genotype` and `phenotype` columns. - + The `genotype` column includes the genotype category ID - (:attr:`~gpsea.analysis.predicate.PatientCategory.cat_id`) + (:attr:`~gpsea.analysis.clf.PatientCategory.cat_id`) or `None` if the individual could not be assigned into a genotype group. The `phenotype` contains the phenotype values, and the data type depends on the analysis. - + Here are some common phenotype data types: * a phenotype score computed in :class:`~gpsea.analysis.pscore.PhenotypeScoreAnalysis` is a `float` @@ -469,16 +483,20 @@ def pval(self) -> float: return self._statistic_result.pval def __eq__(self, value: object) -> bool: - return isinstance(value, MonoPhenotypeAnalysisResult) \ - and super(AnalysisResult, self).__eq__(value) \ - and self._phenotype == value._phenotype \ - and self._statistic_result == value._statistic_result \ + return ( + isinstance(value, MonoPhenotypeAnalysisResult) + and super(AnalysisResult, self).__eq__(value) + and self._phenotype == value._phenotype + and self._statistic_result == value._statistic_result and self._data.equals(value._data) - + ) + def __hash__(self) -> int: - return hash(( - super(AnalysisResult, self).__hash__(), - self._phenotype, - self._statistic_result, - self._data, - )) + return hash( + ( + super(AnalysisResult, self).__hash__(), + self._phenotype, + self._statistic_result, + self._data, + ) + ) diff --git a/src/gpsea/analysis/clf/__init__.py b/src/gpsea/analysis/clf/__init__.py new file mode 100644 index 00000000..3cf48eda --- /dev/null +++ b/src/gpsea/analysis/clf/__init__.py @@ -0,0 +1,38 @@ +from ._api import Classifier, PatientCategory, Categorization +from ._api import C, GenotypeClassifier +from ._api import P, PhenotypeClassifier, PhenotypeCategorization +from ._counter import AlleleCounter +from ._pheno import HpoClassifier, DiseasePresenceClassifier +from ._gt_classifiers import ( + sex_classifier, + diagnosis_classifier, + monoallelic_classifier, + biallelic_classifier, + allele_count, +) +from ._util import ( + prepare_classifiers_for_terms_of_interest, + prepare_hpo_terms_of_interest, +) + + +__all__ = [ + "Classifier", + "PatientCategory", + "Categorization", + "GenotypeClassifier", + "C", + "AlleleCounter", + "sex_classifier", + "diagnosis_classifier", + "monoallelic_classifier", + "biallelic_classifier", + "allele_count", + "PhenotypeClassifier", + "PhenotypeCategorization", + "P", + "HpoClassifier", + "DiseasePresenceClassifier", + "prepare_classifiers_for_terms_of_interest", + "prepare_hpo_terms_of_interest", +] diff --git a/src/gpsea/analysis/clf/_api.py b/src/gpsea/analysis/clf/_api.py new file mode 100644 index 00000000..ad94f587 --- /dev/null +++ b/src/gpsea/analysis/clf/_api.py @@ -0,0 +1,350 @@ +import abc +import os +import typing + +from collections import Counter + +import hpotk +import hpotk.util + +from gpsea.model import Patient + +from .._partition import Partitioning + + +class PatientCategory: + """ + `PatientCategory` represents one of several exclusive discrete classes. + + Patient class has :attr:`cat_id`, a unique numeric identifier of the class, + :attr:`name` with human-readable class name, and :attr:`description` with an optional verbose description. + """ + + def __init__( + self, + cat_id: int, + name: str, + description: typing.Optional[str] = None, + ): + self._cat_id = hpotk.util.validate_instance(cat_id, int, "cat_id") + self._name = hpotk.util.validate_instance(name, str, "name") + self._description = hpotk.util.validate_optional_instance( + description, str, "description" + ) + + @property + def cat_id(self) -> int: + """ + Get an `int` with the unique numeric identifier of the class. + """ + return self._cat_id + + @property + def name(self) -> str: + """ + Get a `str` with a human-readable name of the class. + """ + return self._name + + @property + def description(self) -> typing.Optional[str]: + """ + Get a `str` with an optional detailed class description. + """ + return self._description + + def __repr__(self) -> str: + return ( + f"PatientCategory(cat_id={self.cat_id}, " + f"name={self.name}, " + f"description={self.description})" + ) + + def __str__(self) -> str: + return self._name + + def __eq__(self, other) -> bool: + return ( + isinstance(other, PatientCategory) + and self.cat_id == other.cat_id + and self.name == other.name + and self.description == other.description + ) + + def __hash__(self) -> int: + return hash((self.cat_id, self.name, self.description)) + + +class Categorization: + """ + `Categorization` represents one of discrete classes a :class:`~gpsea.model.Patient` can be assigned into. + """ + + @staticmethod + def from_raw_parts( + cat_id: int, + name: str, + description: typing.Optional[str] = None, + ): + """ + Create `Categorization` from the `cat_id` identifier, `name`, and an optional `description`. + """ + return Categorization( + category=PatientCategory( + cat_id=cat_id, + name=name, + description=description, + ) + ) + + def __init__( + self, + category: PatientCategory, + ): + self._category = hpotk.util.validate_instance( + category, PatientCategory, "category" + ) + + @property + def category(self) -> PatientCategory: + return self._category + + def __eq__(self, other): + return isinstance(other, Categorization) and self._category == other._category + + def __hash__(self): + return hash((self._category,)) + + def __repr__(self): + return f"Categorization(category={self._category})" + + def __str__(self): + return repr(self) + + +C = typing.TypeVar("C", bound=Categorization) +""" +A generic bound for types that extend :class:`Categorization`. +""" + + +class Classifier(typing.Generic[C], Partitioning, metaclass=abc.ABCMeta): + """ + `Classifier` partitions a :class:`~gpsea.model.Patient` into one of several discrete classes + represented by a :class:`~gpsea.analysis.clf.Categorization`. + + The classes must be *exclusive* - the individual can be binned into one and only one class, + and *exhaustive* - the classes must cover all possible scenarios. + + However, if the individual cannot be assigned into any meaningful class, `None` can be returned. + As a rule of thumb, returning `None` will exclude the individual from the analysis. + """ + + @abc.abstractmethod + def get_categorizations(self) -> typing.Sequence[C]: + """ + Get a sequence of all categories which the classifier can produce. + """ + pass + + def get_categories(self) -> typing.Iterator[PatientCategory]: + """ + Get an iterator with :class:`PatientCategory` instances that the classifier can produce. + """ + return (c.category for c in self.get_categorizations()) + + @property + def class_labels(self) -> typing.Collection[str]: + """ + Get a collection with names of the :class:`PatientCategory` items that the classifier can produce. + """ + return tuple(cat.name for cat in self.get_categories()) + + def summarize_classes(self) -> str: + cat_names = ", ".join(self.class_labels) + return f"{self.variable_name}: {cat_names}" + + def summarize( + self, + out: typing.TextIO, + ): + """ + Summarize the predicate into the `out` handle. + + The summary includes the name, summary, and the groups the predicate can assign individuals into. + """ + Partitioning.summarize(self, out) + out.write(self.summarize_classes()) + out.write(os.linesep) + + def n_categorizations(self) -> int: + """ + Get the number of categorizations the classifier can produce. + """ + return len(self.get_categorizations()) + + def get_category( + self, + cat_id: int, + ) -> PatientCategory: + """ + Get the category name for a :attr:`PatientCategory.cat_id`. + + :param cat_id: an `int` with the id. + :raises: ValueError if there is no such category was defined. + """ + for ctg in self.get_categories(): + if ctg.cat_id == cat_id: + return ctg + raise ValueError(f"No category for {cat_id} was found") + + def get_category_name( + self, + cat_id: int, + ) -> str: + """ + Get the category name for a :attr:`PatientCategory.cat_id`. + + :param cat_id: an `int` with the id. + :raises: ValueError if there is no such category was defined. + """ + return self.get_category(cat_id).name + + @staticmethod + def _check_categorizations( + categorizations: typing.Sequence[Categorization], + ) -> typing.Sequence[str]: + """ + Check that the categorizations meet the requirements. + + The requirements include: + + * the `cat_id` must be unique within the predicate + """ + issues = [] + # There must be at least one category + + # `cat_id` must be unique for a predicate! + cat_id_counts = Counter() + for c in categorizations: + cat_id_counts[c.category.cat_id] += 1 + + for cat_id, count in cat_id_counts.items(): + if count > 1: + issues.append(f"`cat_id` {cat_id} is present {count}>1 times") + + return issues + + @abc.abstractmethod + def test(self, individual: Patient) -> typing.Optional[C]: + """ + Assign an `individual` into a class. + + Return `None` if the individual cannot be assigned into any meaningful class. + """ + pass + + +class GenotypeClassifier(Classifier[Categorization], metaclass=abc.ABCMeta): + """ + `GenotypeClassifier` is a base class for all types + that assign an individual into a group based on the genotype. + """ + + pass + + +P = typing.TypeVar("P") +""" +Phenotype entity of interest, such as :class:`~hpotk.model.TermId`, representing an HPO term or an OMIM/MONDO term. + +However, phenotype entity can be anything as long as it is :class:`~typing.Hashable` and comparable +(have `__eq__` and `__lt__` magic methods). +""" + +YES = PatientCategory(1, 'Yes', 'The patient belongs to the group.') +""" +Category for a patient who *belongs* to the tested group. +""" + +NO = PatientCategory(0, 'No', 'The patient does not belong to the group.') +""" +Category for a patient who does *not* belong to the tested group. +""" + + +class PhenotypeCategorization(typing.Generic[P], Categorization): + """ + On top of the attributes of the `Categorization`, `PhenotypeCategorization` keeps track of the target phenotype `P`. + """ + + def __init__( + self, + category: PatientCategory, + phenotype: P, + ): + super().__init__(category) + self._phenotype = phenotype + + @property + def phenotype(self) -> P: + return self._phenotype + + def __repr__(self) -> str: + return ( + "PhenotypeCategorization(" + f"category={self._category}, " + f"phenotype={self._phenotype})" + ) + + def __str__(self) -> str: + return repr(self) + + def __eq__(self, other) -> bool: + return isinstance(other, PhenotypeCategorization) \ + and self._category == other._category \ + and self._phenotype == other._phenotype + + def __hash__(self) -> int: + return hash((self._category, self._phenotype)) + + +class PhenotypeClassifier( + typing.Generic[P], Classifier[PhenotypeCategorization[P]], + metaclass=abc.ABCMeta, +): + """ + Phenotype classifier assigns an individual into a class `P` based on the phenotype. + + The class `P` can be a :class:`~hpotk.model.TermId` representing an HPO term or an OMIM/MONDO term. + + Only one class can be investigated, and :attr:`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 :attr:`present_phenotype_categorization` property. + """ + + @property + @abc.abstractmethod + def phenotype(self) -> P: + """ + Get the phenotype entity of interest. + """ + pass + + @property + @abc.abstractmethod + def present_phenotype_categorization(self) -> PhenotypeCategorization[P]: + """ + Get the categorization which represents the group of the patients who exibit the investigated phenotype. + """ + pass + + @property + def present_phenotype_category(self) -> PatientCategory: + """ + Get the patient category that correspond to the group of the patients who exibit the investigated phenotype. + """ + return self.present_phenotype_categorization.category diff --git a/src/gpsea/analysis/predicate/genotype/_counter.py b/src/gpsea/analysis/clf/_counter.py similarity index 97% rename from src/gpsea/analysis/predicate/genotype/_counter.py rename to src/gpsea/analysis/clf/_counter.py index 8ad77d55..9b21ed33 100644 --- a/src/gpsea/analysis/predicate/genotype/_counter.py +++ b/src/gpsea/analysis/clf/_counter.py @@ -1,5 +1,6 @@ from gpsea.model import Patient, Genotype -from ._api import VariantPredicate + +from ..predicate import VariantPredicate class AlleleCounter: diff --git a/src/gpsea/analysis/predicate/genotype/_gt_predicates.py b/src/gpsea/analysis/clf/_gt_classifiers.py similarity index 82% rename from src/gpsea/analysis/predicate/genotype/_gt_predicates.py rename to src/gpsea/analysis/clf/_gt_classifiers.py index 36d47052..51a4ce28 100644 --- a/src/gpsea/analysis/predicate/genotype/_gt_predicates.py +++ b/src/gpsea/analysis/clf/_gt_classifiers.py @@ -5,12 +5,11 @@ import hpotk from gpsea.model import Patient +from ..predicate import VariantPredicate, true -from .._api import Categorization, PatientCategory -from ._api import GenotypePolyPredicate -from ._api import VariantPredicate +from ._api import Categorization, PatientCategory +from ._api import GenotypeClassifier from ._counter import AlleleCounter -from ._variant import VariantPredicates def _fixate_partitions( @@ -22,10 +21,14 @@ def _fixate_partitions( fixed.append((partition,)) elif isinstance(partition, typing.Iterable): vals = tuple(partition) - assert all(isinstance(val, int) for val in vals), 'All indices must be `int`s!' + assert all( + isinstance(val, int) for val in vals + ), "All indices must be `int`s!" fixed.append(vals) else: - raise ValueError(f'Partition {i} is neither an `int` nor an iterable of `int`s: {partition}') + raise ValueError( + f"Partition {i} is neither an `int` nor an iterable of `int`s: {partition}" + ) return fixed @@ -125,7 +128,7 @@ def _compute_hash( return hash_value -class PolyCountingGenotypePredicate(GenotypePolyPredicate): +class PolyCountingGenotypeClassifier(GenotypeClassifier): # NOT PART OF THE PUBLIC API @staticmethod @@ -134,7 +137,7 @@ def monoallelic( b_predicate: VariantPredicate, a_label: str, b_label: str, - ) -> "PolyCountingGenotypePredicate": + ) -> "PolyCountingGenotypeClassifier": count2cat = { (1, 0): Categorization( PatientCategory( @@ -148,7 +151,7 @@ def monoallelic( ), } - return PolyCountingGenotypePredicate.for_predicates_and_categories( + return PolyCountingGenotypeClassifier.for_predicates_and_categories( total_count=1, count2cat=count2cat, a_predicate=a_predicate, @@ -162,14 +165,14 @@ def biallelic( a_label: str, b_label: str, partitions: typing.Iterable[typing.Iterable[int]], - ) -> "PolyCountingGenotypePredicate": + ) -> "PolyCountingGenotypeClassifier": count2cat = _build_count_to_cat( a_label=a_label, b_label=b_label, partitions=partitions, ) - return PolyCountingGenotypePredicate.for_predicates_and_categories( + return PolyCountingGenotypeClassifier.for_predicates_and_categories( total_count=2, count2cat=count2cat, a_predicate=a_predicate, @@ -182,8 +185,8 @@ def for_predicates_and_categories( count2cat: typing.Mapping[typing.Tuple[int, int], Categorization], a_predicate: VariantPredicate, b_predicate: VariantPredicate, - ) -> "PolyCountingGenotypePredicate": - return PolyCountingGenotypePredicate( + ) -> "PolyCountingGenotypeClassifier": + return PolyCountingGenotypeClassifier( total_count=total_count, a_counter=AlleleCounter(a_predicate), b_counter=AlleleCounter(b_predicate), @@ -209,12 +212,12 @@ def get_categorizations(self) -> typing.Sequence[Categorization]: @property def name(self) -> str: - return "Allele Group Predicate" + return "Allele Group Classifier" @property def description(self) -> str: allele = "allele" if self._total_count == 1 else "alleles" - return f"Partition by allele group ({self._total_count} {allele} per group)" + return f"Classify by allele group ({self._total_count} {allele} per group)" @property def variable_name(self) -> str: @@ -231,7 +234,7 @@ def test(self, patient: Patient) -> typing.Optional[Categorization]: def __eq__(self, value: object) -> bool: return ( - isinstance(value, PolyCountingGenotypePredicate) + isinstance(value, PolyCountingGenotypeClassifier) and self._count2cat == value._count2cat and self._a_counter == value._a_counter and self._b_counter == value._b_counter @@ -241,18 +244,18 @@ def __hash__(self) -> int: return self._hash -def monoallelic_predicate( +def monoallelic_classifier( a_predicate: VariantPredicate, b_predicate: typing.Optional[VariantPredicate] = None, a_label: str = "A", b_label: str = "B", -) -> GenotypePolyPredicate: +) -> GenotypeClassifier: """ - The predicate bins patient into one of two groups, `A` and `B`, + Monoallelic classifier bins patient into one of two groups, `A` and `B`, based on presence of *exactly one* allele of a variant that meets the predicate criteria. - See :ref:`monoallelic-predicate` for more information and an example usage. + See :ref:`monoallelic-classifier` for more information and an example usage. :param a_predicate: predicate to test if the variants meet the criteria of the first group (named `A` by default). @@ -268,7 +271,7 @@ def monoallelic_predicate( if b_predicate is None: b_predicate = ~a_predicate - return PolyCountingGenotypePredicate.monoallelic( + return PolyCountingGenotypeClassifier.monoallelic( a_predicate=a_predicate, b_predicate=b_predicate, a_label=a_label, @@ -276,20 +279,24 @@ def monoallelic_predicate( ) -def biallelic_predicate( +def biallelic_classifier( a_predicate: VariantPredicate, b_predicate: typing.Optional[VariantPredicate] = None, a_label: str = "A", b_label: str = "B", - partitions: typing.Collection[typing.Union[int, typing.Collection[int]]] = (0, 1, 2), -) -> GenotypePolyPredicate: + partitions: typing.Collection[typing.Union[int, typing.Collection[int]]] = ( + 0, + 1, + 2, + ), +) -> GenotypeClassifier: """ - The predicate bins patient into one of the three groups, + Biallelic classifier assigns an individual into one of the three classes, `AA`, `AB`, and `BB`, based on presence of *two* variant alleles - that meet the predicate criteria. + that meet the criteria. - See :ref:`biallelic-predicate` for more information and an example usage. + See :ref:`biallelic-classifier` for more information and an example usage. :param a_predicate: predicate to test if the variants meet the criteria of the first group (named `A` by default). @@ -310,7 +317,7 @@ def biallelic_predicate( if b_predicate is None: b_predicate = ~a_predicate - return PolyCountingGenotypePredicate.biallelic( + return PolyCountingGenotypeClassifier.biallelic( a_predicate=a_predicate, b_predicate=b_predicate, a_label=a_label, @@ -344,9 +351,9 @@ def _build_ac_to_cat( def allele_count( counts: typing.Collection[typing.Union[int, typing.Collection[int]]], target: typing.Optional[VariantPredicate] = None, -) -> GenotypePolyPredicate: +) -> GenotypeClassifier: """ - Create a predicate to assign the patient into a group based on the allele count + Allele count classifier assigns the individual into a group based on the allele count of the target variants. The `counts` option takes an `int` collection or a collection of `int` collections. @@ -361,22 +368,22 @@ def allele_count( The following counts will partition the cohort into individuals with zero allele or one target allele: - >>> from gpsea.analysis.predicate.genotype import allele_count + >>> from gpsea.analysis.clf import allele_count >>> zero_vs_one = allele_count(counts=(0, 1)) - >>> zero_vs_one.summarize_groups() + >>> zero_vs_one.summarize_classes() 'Allele count: 0, 1' - These counts will create three groups for individuals with zero, one or two alleles: + These counts will create three classes for individuals with zero, one or two alleles: >>> zero_vs_one_vs_two = allele_count(counts=(0, 1, 2)) - >>> zero_vs_one_vs_two.summarize_groups() + >>> zero_vs_one_vs_two.summarize_classes() 'Allele count: 0, 1, 2' Last, the counts below will create two groups, one for the individuals with zero target variant type alleles, and one for the individuals with one or two alleles: >>> zero_vs_one_vs_two = allele_count(counts=(0, {1, 2})) - >>> zero_vs_one_vs_two.summarize_groups() + >>> zero_vs_one_vs_two.summarize_classes() 'Allele count: 0, 1 OR 2' Note that we wrap the last two allele counts in a set. @@ -386,7 +393,7 @@ def allele_count( or `None` if *all* variants in the individual should be used. """ if target is None: - target = VariantPredicates.true() + target = true() else: assert isinstance(target, VariantPredicate) @@ -396,15 +403,14 @@ def allele_count( count2cat = _build_ac_to_cat(counts) counter = AlleleCounter(predicate=target) - - return AlleleCountPredicate( + + return AlleleCountClassifier( count2cat=count2cat, counter=counter, ) -class AlleleCountPredicate(GenotypePolyPredicate): - +class AlleleCountClassifier(GenotypeClassifier): def __init__( self, count2cat: typing.Mapping[int, Categorization], @@ -415,7 +421,9 @@ def __init__( assert isinstance(counter, AlleleCounter) self._counter = counter - self._categorizations = tuple(_deduplicate_categorizations(self._count2cat.values())) + self._categorizations = tuple( + _deduplicate_categorizations(self._count2cat.values()) + ) self._hash = _compute_hash(self._count2cat, (self._counter,)) def get_categorizations(self) -> typing.Sequence[Categorization]: @@ -423,11 +431,11 @@ def get_categorizations(self) -> typing.Sequence[Categorization]: @property def name(self) -> str: - return "Allele Count Predicate" + return "Allele Count Classifier" @property def description(self) -> str: - return "Partition by the allele count" + return "Classify by the allele count" @property def variable_name(self) -> str: @@ -440,15 +448,17 @@ def test(self, patient: Patient) -> typing.Optional[Categorization]: return self._count2cat.get(count, None) def __eq__(self, value: object) -> bool: - return isinstance(value, AlleleCountPredicate) \ - and self._count2cat == value._count2cat \ + return ( + isinstance(value, AlleleCountClassifier) + and self._count2cat == value._count2cat and self._counter == value._counter + ) def __hash__(self) -> int: return self._hash -class SexGenotypePredicate(GenotypePolyPredicate): +class SexGenotypeClassifier(GenotypeClassifier): # NOT PART OF THE PUBLIC API def __init__(self): @@ -474,11 +484,11 @@ def get_categorizations(self) -> typing.Sequence[Categorization]: @property def name(self) -> str: - return "Sex Predicate" + return "Sex Classifier" @property def description(self) -> str: - return "Partition by sex" + return "Classify by sex" @property def variable_name(self) -> str: @@ -496,16 +506,16 @@ def test(self, patient: Patient) -> typing.Optional[Categorization]: return None def __eq__(self, value: object) -> bool: - return isinstance(value, SexGenotypePredicate) + return isinstance(value, SexGenotypeClassifier) def __hash__(self) -> int: return 31 -INSTANCE = SexGenotypePredicate() +INSTANCE = SexGenotypeClassifier() -def sex_predicate() -> GenotypePolyPredicate: +def sex_classifier() -> GenotypeClassifier: """ Get a genotype predicate for categorizing patients by their :class:`~gpsea.model.Sex`. @@ -514,13 +524,12 @@ def sex_predicate() -> GenotypePolyPredicate: return INSTANCE -class DiagnosisPredicate(GenotypePolyPredicate): - +class DiagnosisClassifier(GenotypeClassifier): @staticmethod def create( diagnoses: typing.Iterable[typing.Union[str, hpotk.TermId]], labels: typing.Optional[typing.Iterable[str]] = None, - ) -> "DiagnosisPredicate": + ) -> "DiagnosisClassifier": # First, collect the iterables and check sanity. diagnosis_ids = [] for d in diagnoses: @@ -538,10 +547,12 @@ def create( else: labels = tuple(labels) - assert (len(diagnosis_ids) >= 2), \ - f"We need at least 2 diagnoses: {len(diagnosis_ids)}" - assert len(diagnosis_ids) == len(labels), \ - f"The number of labels must match the number of diagnose IDs: {len(diagnosis_ids)}!={len(labels)}" + assert ( + len(diagnosis_ids) >= 2 + ), f"We need at least 2 diagnoses: {len(diagnosis_ids)}" + assert ( + len(diagnosis_ids) == len(labels) + ), f"The number of labels must match the number of diagnose IDs: {len(diagnosis_ids)}!={len(labels)}" # Then, prepare the categorizations. categorizations = { @@ -554,7 +565,7 @@ def create( } # Last, put the predicate together. - return DiagnosisPredicate(categorizations) + return DiagnosisClassifier(categorizations) def __init__( self, @@ -568,12 +579,12 @@ def __init__( @property def name(self) -> str: - return "Diagnosis Predicate" + return "Diagnosis Classifier" @property def description(self) -> str: diagnoses = ", ".join(cat.category.name for cat in self._categorizations) - return f"Partition the individual by presence of {diagnoses}" + return f"Classify the individual by presence of {diagnoses}" @property def variable_name(self) -> str: @@ -599,25 +610,24 @@ def test(self, patient: Patient) -> typing.Optional[Categorization]: return None return categorization - + def __eq__(self, value: object) -> bool: - return isinstance(value, DiagnosisPredicate) \ - and self._id2cat == value._id2cat - + return isinstance(value, DiagnosisClassifier) and self._id2cat == value._id2cat + def __hash__(self) -> int: return self._hash -def diagnosis_predicate( +def diagnosis_classifier( diagnoses: typing.Iterable[typing.Union[str, hpotk.TermId]], labels: typing.Optional[typing.Iterable[str]] = None, -) -> GenotypePolyPredicate: +) -> GenotypeClassifier: """ - Create a genotype predicate that bins the patient based on presence of a disease diagnosis, + Genotype classifier bins an individual based on presence of a disease diagnosis, as listed in :attr:`~gpsea.model.Patient.diseases` attribute. - If an individual is diagnosed with more than one disease from the provided `diagnoses`, - the individual will be assigned into no group (`None`). + If the individual is diagnosed with more than one disease from the provided `diagnoses`, + the individual is assigned into no group (`None`). See the :ref:`group-by-diagnosis` section for an example. @@ -626,7 +636,7 @@ def diagnosis_predicate( :param labels: an iterable with diagnose names or `None` if disease IDs should be used instead. The number of labels must match the number of predicates. """ - return DiagnosisPredicate.create( + return DiagnosisClassifier.create( diagnoses=diagnoses, labels=labels, ) diff --git a/src/gpsea/analysis/clf/_pheno.py b/src/gpsea/analysis/clf/_pheno.py new file mode 100644 index 00000000..a137d1a3 --- /dev/null +++ b/src/gpsea/analysis/clf/_pheno.py @@ -0,0 +1,185 @@ +import typing + +import hpotk + +from gpsea.model import Patient + +from ._api import PhenotypeClassifier, PhenotypeCategorization, YES, NO + + +class HpoClassifier(PhenotypeClassifier[hpotk.TermId]): + """ + `HpoClassifier` tests if a patient is annotated with an HPO term. + + Note, `query` must be a term of the provided `hpo`! + + See :ref:`hpo-classifier` section for an example usage. + + :param hpo: HPO ontology + :param query: the HPO term to test + :param missing_implies_phenotype_excluded: `True` if lack of an explicit annotation implies term's absence`. + """ + + def __init__( + self, + hpo: hpotk.MinimalOntology, + query: hpotk.TermId, + missing_implies_phenotype_excluded: bool = False, + ): + assert isinstance(hpo, hpotk.MinimalOntology) + self._hpo = hpo + assert isinstance(query, hpotk.TermId) + self._query = query + self._query_label = self._hpo.get_term_name(query) + assert self._query_label is not None, f"Query {query} is in HPO" + assert isinstance(missing_implies_phenotype_excluded, bool) + self._missing_implies_phenotype_excluded = missing_implies_phenotype_excluded + self._phenotype_observed = PhenotypeCategorization( + category=YES, + phenotype=self._query, + ) + self._phenotype_excluded = PhenotypeCategorization( + category=NO, + phenotype=self._query, + ) + # Some tests depend on the order of `self._categorizations`. + self._categorizations = (self._phenotype_observed, self._phenotype_excluded) + + @property + def name(self) -> str: + return "HPO Classifier" + + @property + def description(self) -> str: + return f"Test for presence of {self._query_label} [{self._query.value}]" + + @property + def variable_name(self) -> str: + return self._query.value + + @property + def phenotype(self) -> hpotk.TermId: + return self._query + + @property + def present_phenotype_categorization(self) -> PhenotypeCategorization[hpotk.TermId]: + return self._phenotype_observed + + def get_categorizations( + self, + ) -> typing.Sequence[PhenotypeCategorization[hpotk.TermId]]: + return self._categorizations + + def test( + self, patient: Patient, + ) -> typing.Optional[PhenotypeCategorization[hpotk.TermId]]: + self._check_patient(patient) + + if len(patient.phenotypes) == 0: + return None + + for phenotype in patient.phenotypes: + if phenotype.is_present: + if self._query == phenotype.identifier or any( + self._query == anc + for anc in self._hpo.graph.get_ancestors(phenotype) + ): + return self._phenotype_observed + else: + if self._missing_implies_phenotype_excluded: + return self._phenotype_excluded + else: + if phenotype.identifier == self._query or any( + phenotype.identifier == anc + for anc in self._hpo.graph.get_ancestors(self._query) + ): + return self._phenotype_excluded + + return None + + def __eq__(self, value: object) -> bool: + return isinstance(value, HpoClassifier) \ + and self._hpo.version == value._hpo.version \ + and self._query == value._query \ + and self._missing_implies_phenotype_excluded == value._missing_implies_phenotype_excluded + + def __hash__(self) -> int: + return hash((self._hpo.version, self._query, self._missing_implies_phenotype_excluded)) + + def __repr__(self): + return f"HpoClassifier(query={self._query})" + + +class DiseasePresenceClassifier(PhenotypeClassifier[hpotk.TermId]): + """ + `DiseasePresenceClassifier` tests if an individual was diagnosed with a disease. + + :param disease_id_query: a disease identifier formatted either as a CURIE `str` (e.g. ``OMIM:256000``) + or as a :class:`~hpotk.TermId`. + """ + + def __init__( + self, + disease_id_query: typing.Union[str, hpotk.TermId], + ): + if isinstance(disease_id_query, str): + self._query = hpotk.TermId.from_curie(disease_id_query) + elif isinstance(disease_id_query, hpotk.TermId): + self._query = disease_id_query + else: + raise AssertionError + + self._diagnosis_present = PhenotypeCategorization( + category=YES, + phenotype=disease_id_query, + ) + self._diagnosis_excluded = PhenotypeCategorization( + category=NO, + phenotype=disease_id_query, + ) + + @property + def name(self) -> str: + return "Disease Classifier" + + @property + def description(self) -> str: + return f"Partition based on a diagnosis of {self._query.value}" + + @property + def variable_name(self) -> str: + return self._query.value + + @property + def phenotype(self) -> hpotk.TermId: + return self._query + + @property + def present_phenotype_categorization(self) -> PhenotypeCategorization[hpotk.TermId]: + return self._diagnosis_present + + def get_categorizations( + self, + ) -> typing.Sequence[PhenotypeCategorization[hpotk.TermId]]: + return self._diagnosis_present, self._diagnosis_excluded + + def test( + self, patient: Patient + ) -> typing.Optional[PhenotypeCategorization[hpotk.TermId]]: + self._check_patient(patient) + + for dis in patient.diseases: + if dis.is_present and dis.identifier == self._query: + return self._diagnosis_present + + return self._diagnosis_excluded + + def __eq__(self, value: object) -> bool: + return isinstance(value, DiseasePresenceClassifier) \ + and self._query == value._query + + def __hash__(self) -> int: + return hash((self._query,)) + + def __repr__(self): + return f"DiseasePresenceClassifier(query={self._query})" diff --git a/src/gpsea/analysis/predicate/genotype/_test__gt_predicates.py b/src/gpsea/analysis/clf/_test__gt_classifiers.py similarity index 97% rename from src/gpsea/analysis/predicate/genotype/_test__gt_predicates.py rename to src/gpsea/analysis/clf/_test__gt_classifiers.py index 0eb50d0c..a165d057 100644 --- a/src/gpsea/analysis/predicate/genotype/_test__gt_predicates.py +++ b/src/gpsea/analysis/clf/_test__gt_classifiers.py @@ -1,7 +1,7 @@ import typing import pytest -from ._gt_predicates import _build_count_to_cat, _build_ac_to_cat, _qc_partitions +from ._gt_classifiers import _build_count_to_cat, _build_ac_to_cat, _qc_partitions @pytest.mark.parametrize( diff --git a/src/gpsea/analysis/predicate/phenotype/_util.py b/src/gpsea/analysis/clf/_util.py similarity index 86% rename from src/gpsea/analysis/predicate/phenotype/_util.py rename to src/gpsea/analysis/clf/_util.py index 95ae2b21..7235252a 100644 --- a/src/gpsea/analysis/predicate/phenotype/_util.py +++ b/src/gpsea/analysis/clf/_util.py @@ -4,18 +4,18 @@ import hpotk -from ._pheno import PhenotypePolyPredicate, HpoPredicate +from ._pheno import PhenotypeClassifier, HpoClassifier from gpsea.model import Patient -def prepare_predicates_for_terms_of_interest( +def prepare_classifiers_for_terms_of_interest( cohort: typing.Iterable[Patient], hpo: hpotk.MinimalOntology, missing_implies_excluded: bool = False, -) -> typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]]: +) -> typing.Sequence[PhenotypeClassifier[hpotk.TermId]]: """ - A convenience method for creating a battery of :class:`PhenotypePolyPredicate` predicates + A convenience method for creating a suite of phenotype classifiers for testing all phenotypes of interest. :param cohort: a cohort of individuals to investigate. @@ -23,12 +23,14 @@ def prepare_predicates_for_terms_of_interest( :param missing_implies_excluded: `True` if absence of an annotation should be counted as its explicit exclusion. """ return tuple( - HpoPredicate( + HpoClassifier( hpo=hpo, query=term, missing_implies_phenotype_excluded=missing_implies_excluded, - ) for term in prepare_hpo_terms_of_interest( - cohort, hpo, + ) + for term in prepare_hpo_terms_of_interest( + cohort, + hpo, ) ) diff --git a/src/gpsea/analysis/mtc_filter/_impl.py b/src/gpsea/analysis/mtc_filter/_impl.py index 2166bd73..83387ead 100644 --- a/src/gpsea/analysis/mtc_filter/_impl.py +++ b/src/gpsea/analysis/mtc_filter/_impl.py @@ -9,8 +9,7 @@ from hpotk.constants.hpo.base import PHENOTYPIC_ABNORMALITY -from ..predicate.genotype import GenotypePolyPredicate -from ..predicate.phenotype import PhenotypePolyPredicate, P +from ..clf import GenotypeClassifier, PhenotypeClassifier, P @dataclasses.dataclass(eq=True, frozen=True) @@ -38,6 +37,7 @@ class PhenotypeMtcResult: of be filtered out (:meth:`is_filtered_out`) in which case :attr:`mtc_issue` with more context regarding the culprit must be available. """ + # The following is used as a singleton for the "OK" result __ok_instance = None @@ -45,7 +45,9 @@ class PhenotypeMtcResult: def ok() -> "PhenotypeMtcResult": # singleton if PhenotypeMtcResult.__ok_instance is None: - PhenotypeMtcResult.__ok_instance = PhenotypeMtcResult(status=True, issue=None) + PhenotypeMtcResult.__ok_instance = PhenotypeMtcResult( + status=True, issue=None + ) return PhenotypeMtcResult.__ok_instance @staticmethod @@ -60,9 +62,13 @@ def __init__( ): assert isinstance(status, bool) if status: - assert issue is None, '`issue` must NOT be provided if the HPO term passed the MTC filter' + assert ( + issue is None + ), "`issue` must NOT be provided if the HPO term passed the MTC filter" else: - assert issue is not None, '`issue` must be provided if the HPO term failed the MTC filter' + assert ( + issue is not None + ), "`issue` must be provided if the HPO term failed the MTC filter" self._status = status self._issue = issue @@ -85,15 +91,17 @@ def reason(self) -> typing.Optional[str]: return self.mtc_issue.reason def __eq__(self, value: object) -> bool: - return isinstance(value, PhenotypeMtcResult) \ - and self._status == value._status \ + return ( + isinstance(value, PhenotypeMtcResult) + and self._status == value._status and self._issue == value._issue + ) def __hash__(self) -> int: return hash((self._status, self._issue)) def __str__(self) -> str: - return f'PhenotypeMtcResult(status={self._status}, issue={self._issue})' + return f"PhenotypeMtcResult(status={self._status}, issue={self._issue})" def __repr__(self) -> str: return str(self) @@ -121,16 +129,16 @@ class PhenotypeMtcFilter(typing.Generic[P], metaclass=abc.ABCMeta): @abc.abstractmethod def filter( self, - gt_predicate: GenotypePolyPredicate, - ph_predicates: typing.Sequence[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Sequence[PhenotypeClassifier[P]], counts: typing.Sequence[pd.DataFrame], cohort_size: int, ) -> typing.Sequence[PhenotypeMtcResult]: """ Test if the phenotype with given counts should be included in the downstream analysis. - :param gt_predicate: the predicate that produced the columns of the `count` data frame. - :param ph_predicates: the phenotype predicates that produced the rows of the `counts` data frames. + :param gt_clf: the clsasifier that produced the columns of the `count` data frame. + :param pheno_clfs: the phenotype classifiers that produced the rows of the `counts` data frames. :param counts: a sequence of 2D data frames for the tested phenotypes. Each data frame corresponds to a genotype/phenotype contingency matrix. :param cohort_size: the size of the cohort. @@ -162,13 +170,13 @@ class UseAllTermsMtcFilter(PhenotypeMtcFilter[typing.Any]): def filter( self, - gt_predicate: GenotypePolyPredicate, - ph_predicates: typing.Sequence[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Sequence[PhenotypeClassifier[P]], counts: typing.Sequence[pd.DataFrame], cohort_size: int, ) -> typing.Sequence[PhenotypeMtcResult]: # Always OK! 😏 - return tuple(PhenotypeMtcFilter.OK for _ in ph_predicates) + return tuple(PhenotypeMtcFilter.OK for _ in pheno_clfs) def possible_results(self) -> typing.Collection[PhenotypeMtcResult]: return (PhenotypeMtcFilter.OK,) @@ -189,7 +197,9 @@ class SpecifiedTermsMtcFilter(PhenotypeMtcFilter[hpotk.TermId]): See :ref:`specified-terms-mt-filter` section for more info. """ - NON_SPECIFIED_TERM = PhenotypeMtcResult.fail(code="ST1", reason="Non-specified term") + NON_SPECIFIED_TERM = PhenotypeMtcResult.fail( + code="ST1", reason="Non-specified term" + ) """ The MTC filtering result returned when an HPO term does not belong among the selection of terms to be tested. @@ -210,14 +220,14 @@ def terms_to_test(self) -> typing.Collection[hpotk.TermId]: def filter( self, - gt_predicate: GenotypePolyPredicate, - ph_predicates: typing.Sequence[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Sequence[PhenotypeClassifier[P]], counts: typing.Sequence[pd.DataFrame], cohort_size: int, ) -> typing.Sequence[PhenotypeMtcResult]: results = [] - for predicate in ph_predicates: - if predicate.phenotype in self._terms_to_test: + for pclf in pheno_clfs: + if pclf.phenotype in self._terms_to_test: results.append(SpecifiedTermsMtcFilter.OK) else: results.append(SpecifiedTermsMtcFilter.NON_SPECIFIED_TERM) @@ -231,7 +241,7 @@ def possible_results(self) -> typing.Collection[PhenotypeMtcResult]: def filter_method_name(self) -> str: return "Specified terms MTC filter" - + @staticmethod def verify_term_id(val: typing.Union[str, hpotk.TermId]) -> hpotk.TermId: if isinstance(val, str): @@ -253,15 +263,19 @@ class HpoMtcFilter(PhenotypeMtcFilter[hpotk.TermId]): """ NO_GENOTYPE_HAS_MORE_THAN_ONE_HPO = PhenotypeMtcResult.fail( - "HMF02", "Skipping term because no genotype has more than one observed HPO count", + "HMF02", + "Skipping term because no genotype has more than one observed HPO count", ) SAME_COUNT_AS_THE_ONLY_CHILD = PhenotypeMtcResult.fail( - "HMF03", "Skipping term because of a child term with the same individual counts", + "HMF03", + "Skipping term because of a child term with the same individual counts", ) SKIPPING_SINCE_ONE_GENOTYPE_HAD_ZERO_OBSERVATIONS = PhenotypeMtcResult.fail( "HMF05", "Skipping term because one genotype had zero observations" ) - SKIPPING_NON_PHENOTYPE_TERM = PhenotypeMtcResult.fail("HMF07", "Skipping non phenotype term") + SKIPPING_NON_PHENOTYPE_TERM = PhenotypeMtcResult.fail( + "HMF07", "Skipping non phenotype term" + ) SKIPPING_GENERAL_TERM = PhenotypeMtcResult.fail("HMF08", "Skipping general term") @staticmethod @@ -289,14 +303,14 @@ def default_filter( """ # The very top of the ontology is completely uninteresting. # Knowing about association between `All`, or `Phenotypic abnormality` tells us very little - top_level_terms = {phenotypic_abnormality, } + top_level_terms = { + phenotypic_abnormality, + } top_level_terms.update(hpo.graph.get_ancestors(phenotypic_abnormality)) # Collect sets of the 1st level terms # e.g., Abnormality of the cardiovascular system (HP:0001626) - first_level_terms = set( - hpo.graph.get_children(phenotypic_abnormality) - ) + first_level_terms = set(hpo.graph.get_children(phenotypic_abnormality)) # the second level (children of the top level), contains terms we want to keep, # such as HP:0001611 Hypernasal speech, but it also contains "general" terms that @@ -349,13 +363,13 @@ def __init__( self._below_frequency_threshold = PhenotypeMtcResult.fail( code="HMF01", reason="Skipping term with maximum frequency that was" - f" less than threshold {self._hpo_term_frequency_filter}", + f" less than threshold {self._hpo_term_frequency_filter}", ) self._below_annotation_frequency_threshold = PhenotypeMtcResult.fail( code="HMF09", reason="Skipping term with maximum annotation frequency that was" - f" less than threshold {self._hpo_annotation_frequency_threshold}", + f" less than threshold {self._hpo_annotation_frequency_threshold}", ) # Do not perform a test if the counts in the genotype categories do not even have nominal statistical power @@ -375,28 +389,30 @@ def __init__( self._not_powered_for_2_by_2 = PhenotypeMtcResult.fail( code="HMF06", reason=f"Skipping term with less than {self._min_observations_for_2_by_2} observations" - " (not powered for 2x2)", + " (not powered for 2x2)", ) self._min_observations_for_2_by_3 = 6 self._not_powered_for_2_by_3 = PhenotypeMtcResult.fail( code="HMF06", reason=f"Skipping term with less than {self._min_observations_for_2_by_3} observations" - " (not powered for 2x3)", + " (not powered for 2x3)", ) def filter( self, - gt_predicate: GenotypePolyPredicate, - ph_predicates: typing.Sequence[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], counts: typing.Sequence[pd.DataFrame], cohort_size: int, ) -> typing.Sequence[PhenotypeMtcResult]: - phenotypes = [p.phenotype for p in ph_predicates] + phenotypes = [p.phenotype for p in pheno_clfs] p_to_idx = {p: i for i, p in enumerate(phenotypes)} annotation_count_thr = self._hpo_annotation_frequency_threshold * cohort_size - results: typing.MutableSequence[typing.Optional[PhenotypeMtcResult]] = [None for _ in range(len(phenotypes))] + results: typing.MutableSequence[typing.Optional[PhenotypeMtcResult]] = [ + None for _ in range(len(phenotypes)) + ] for term_id in self._get_ordered_terms(phenotypes): try: idx = p_to_idx[term_id] @@ -410,18 +426,16 @@ def filter( results[idx] = HpoMtcFilter.SKIPPING_GENERAL_TERM continue - if not self._hpo.graph.is_ancestor_of( - PHENOTYPIC_ABNORMALITY, term_id - ): + if not self._hpo.graph.is_ancestor_of(PHENOTYPIC_ABNORMALITY, term_id): results[idx] = HpoMtcFilter.SKIPPING_NON_PHENOTYPE_TERM continue - ph_predicate = ph_predicates[idx] + ph_clf = pheno_clfs[idx] contingency_matrix = counts[idx] max_freq = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( contingency_matrix, - ph_predicate=ph_predicate, + ph_clf=ph_clf, ) if max_freq < self._hpo_term_frequency_filter: results[idx] = self._below_frequency_threshold @@ -432,25 +446,33 @@ def filter( results[idx] = self._below_annotation_frequency_threshold continue - if contingency_matrix.shape == (2, 2) and total_count < self._min_observations_for_2_by_2: + if ( + contingency_matrix.shape == (2, 2) + and total_count < self._min_observations_for_2_by_2 + ): results[idx] = self._not_powered_for_2_by_2 continue - elif contingency_matrix.shape == (2, 3) and total_count < self._min_observations_for_2_by_3: + elif ( + contingency_matrix.shape == (2, 3) + and total_count < self._min_observations_for_2_by_3 + ): results[idx] = self._not_powered_for_2_by_3 continue if not HpoMtcFilter.some_cell_has_greater_than_one_count( counts=contingency_matrix, - ph_predicate=ph_predicate, + ph_clf=ph_clf, ): results[idx] = HpoMtcFilter.NO_GENOTYPE_HAS_MORE_THAN_ONE_HPO continue elif HpoMtcFilter.one_genotype_has_zero_hpo_observations( counts=contingency_matrix, - gt_predicate=gt_predicate, + gt_clf=gt_clf, ): - results[idx] = HpoMtcFilter.SKIPPING_SINCE_ONE_GENOTYPE_HAD_ZERO_OBSERVATIONS + results[idx] = ( + HpoMtcFilter.SKIPPING_SINCE_ONE_GENOTYPE_HAD_ZERO_OBSERVATIONS + ) continue # Check if the term has exactly one child with a very similar number of individuals @@ -469,7 +491,9 @@ def filter( break if child_contingency_matrix is not None: - if (contingency_matrix - child_contingency_matrix).abs().max(axis=None) < 1: + if (contingency_matrix - child_contingency_matrix).abs().max( + axis=None + ) < 1: # Do not test if the count is exactly the same to the counts in the only child term. results[idx] = HpoMtcFilter.SAME_COUNT_AS_THE_ONLY_CHILD continue @@ -486,7 +510,7 @@ def filter( term_name = self._hpo.get_term_name(phenotypes[i]) missing.append(term_name) - msg = 'Missing results for {}'.format(', '.join(missing)) + msg = "Missing results for {}".format(", ".join(missing)) raise ValueError(msg) # Ignoring the type hint, because we checked the type match above. @@ -512,14 +536,14 @@ def filter_method_name(self) -> str: @staticmethod def get_number_of_observed_hpo_observations( counts_frame: pd.DataFrame, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + ph_clf: PhenotypeClassifier[hpotk.TermId], ) -> int: - return counts_frame.loc[ph_predicate.present_phenotype_category].sum() + return counts_frame.loc[ph_clf.present_phenotype_category].sum() @staticmethod def get_maximum_group_observed_HPO_frequency( counts_frame: pd.DataFrame, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + ph_clf: PhenotypeClassifier[hpotk.TermId], ) -> float: """ Returns: @@ -528,22 +552,22 @@ def get_maximum_group_observed_HPO_frequency( all_hpo_count_per_gt = counts_frame.sum() if (all_hpo_count_per_gt == 0).all(): # Prevent division by zeros - return 0. + return 0.0 - present_hpo_count_per_gt = counts_frame.loc[ph_predicate.present_phenotype_category] + present_hpo_count_per_gt = counts_frame.loc[ph_clf.present_phenotype_category] return (present_hpo_count_per_gt / all_hpo_count_per_gt).max() @staticmethod def one_genotype_has_zero_hpo_observations( counts: pd.DataFrame, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, ): - return any(counts.loc[:, c].sum() == 0 for c in gt_predicate.get_categories()) + return any(counts.loc[:, c].sum() == 0 for c in gt_clf.get_categories()) @staticmethod def some_cell_has_greater_than_one_count( counts: pd.DataFrame, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + ph_clf: PhenotypeClassifier[hpotk.TermId], ) -> bool: """ If no genotype has more than one HPO count, we do not want to do a test. For instance, if MISSENSE has one @@ -551,12 +575,12 @@ def some_cell_has_greater_than_one_count( Args: counts: pandas DataFrame with counts - ph_predicate: the phenotype predicate that produced the counts + ph_clf: the phenotype classifier that produced the counts Returns: true if at least one of the genotypes has more than one observed HPO count """ - return (counts.loc[ph_predicate.present_phenotype_category] > 1).any() + return (counts.loc[ph_clf.present_phenotype_category] > 1).any() def _get_ordered_terms( self, diff --git a/src/gpsea/analysis/pcats/__init__.py b/src/gpsea/analysis/pcats/__init__.py index ae5317d3..fe0d35bf 100644 --- a/src/gpsea/analysis/pcats/__init__.py +++ b/src/gpsea/analysis/pcats/__init__.py @@ -1,10 +1,10 @@ """ -The `gpsea.analysis.pcats` tests the association between genotype and phenotype groups, -if the groups can be defined in terms of discrete, unique, and non-overlapping categories. +The `gpsea.analysis.pcats` tests the association between genotype and phenotype classes, +if the classess can be defined in terms of discrete, unique, and non-overlapping categories. -Each individual is assigned into a genotype and phenotype group -using :class:`~gpsea.analysis.predicate.genotype.GenotypePolyPredicate` -and :class:`~gpsea.analysis.predicate.phenotype.PhenotypePolyPredicate` respectively. +Each individual is assigned into a genotype and phenotype class +using :class:`~gpsea.analysis.clf.GenotypeClassifier` +and :class:`~gpsea.analysis.clf.PhenotypeClassifier` respectively. A contingency matrix with group counts is prepared and the counts are tested for association using :class:`~gpsea.analysis.pcats.stats.CountStatistic`, @@ -24,13 +24,15 @@ from ._impl import MultiPhenotypeAnalysis, MultiPhenotypeAnalysisResult from ._impl import DiseaseAnalysis from ._impl import HpoTermAnalysis, HpoTermAnalysisResult -from ._impl import apply_predicates_on_patients +from ._impl import apply_classifiers_on_individuals from ._config import configure_hpo_term_analysis __all__ = [ - 'MultiPhenotypeAnalysis', 'MultiPhenotypeAnalysisResult', - 'DiseaseAnalysis', - 'HpoTermAnalysis', 'HpoTermAnalysisResult', - 'apply_predicates_on_patients', - 'configure_hpo_term_analysis', + "MultiPhenotypeAnalysis", + "MultiPhenotypeAnalysisResult", + "DiseaseAnalysis", + "HpoTermAnalysis", + "HpoTermAnalysisResult", + "apply_classifiers_on_individuals", + "configure_hpo_term_analysis", ] diff --git a/src/gpsea/analysis/pcats/_impl.py b/src/gpsea/analysis/pcats/_impl.py index 080bd487..c6ae4889 100644 --- a/src/gpsea/analysis/pcats/_impl.py +++ b/src/gpsea/analysis/pcats/_impl.py @@ -12,44 +12,44 @@ from gpsea.model import Patient -from ..predicate.genotype import GenotypePolyPredicate -from ..predicate.phenotype import P, PhenotypePolyPredicate +from ..clf import GenotypeClassifier +from ..clf import P, PhenotypeClassifier from ..mtc_filter import PhenotypeMtcFilter, PhenotypeMtcResult from .stats import CountStatistic from .._base import MultiPhenotypeAnalysisResult, StatisticResult -DEFAULT_MTC_PROCEDURE = 'fdr_bh' + +DEFAULT_MTC_PROCEDURE = "fdr_bh" """ Use Benjamini-Hochberg as the default MTC procedure. """ -def apply_predicates_on_patients( - patients: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Sequence[PhenotypePolyPredicate[P]], +def apply_classifiers_on_individuals( + individuals: typing.Iterable[Patient], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Sequence[PhenotypeClassifier[P]], ) -> typing.Tuple[ typing.Sequence[int], typing.Sequence[pd.DataFrame], ]: """ - Apply the phenotype predicates `pheno_predicates` and the genotype predicate `gt_predicate` - to bin the `patients` into categories. + Classify individuals with the genotype and phenotype classifiers. - Note, it may not be possible to bin *all* patients with a genotype/phenotype pair, - since a predicate is allowed to return `None` (e.g. if it bins the patient into MISSENSE or NONSENSE groups - but the patient has no MISSENSE or NONSENSE variants). If this happens, the patient will not be "usable" + Note, it may not be possible to classify *all* individuals with a genotype/phenotype pair, + since a clasifier is allowed to return `None` (e.g. if it assigns the individual into MISSENSE or NONSENSE groups + but the patient has no MISSENSE or NONSENSE variants). If this happens, the individual will not be "usable" for the phenotype `P`. Args: - patients: a sequence of the patients to bin into categories - gt_predicate: a genotype predicate to apply - pheno_predicates: a sequence with the phenotype predicates to apply + individuals: a sequence of individuals to classify + gt_clf: classifier to assign a genotype class + pheno_clfs: a sequence of phenotype classifiers to apply Returns: a tuple with 2 items: - - a sequence with counts of patients that could be binned according to the phenotype `P`. + - a sequence with counts of individuals that could be classified according to the phenotype `P`. - a sequence with data frames with counts of patients in i-th phenotype category and j-th genotype category where i and j are rows and columns of the data frame. """ @@ -57,7 +57,7 @@ def apply_predicates_on_patients( # Apply genotype and phenotype predicates count_dict = {} - for ph_predicate in pheno_predicates: + for ph_predicate in pheno_clfs: if ph_predicate.phenotype not in count_dict: # Make an empty frame for keeping track of the counts. count_dict[ph_predicate.phenotype] = pd.DataFrame( @@ -67,14 +67,14 @@ def apply_predicates_on_patients( name=ph_predicate.variable_name, ), columns=pd.Index( - data=gt_predicate.get_categories(), - name=gt_predicate.variable_name, + data=gt_clf.get_categories(), + name=gt_clf.variable_name, ), ) - for patient in patients: + for patient in individuals: pheno_cat = ph_predicate.test(patient) - geno_cat = gt_predicate.test(patient) + geno_cat = gt_clf.test(patient) if pheno_cat is not None and geno_cat is not None: count_dict[pheno_cat.phenotype].loc[ @@ -84,17 +84,15 @@ def apply_predicates_on_patients( # Convert dicts to numpy arrays n_usable_patients = [ - n_usable_patient_counter[ph_predicate.phenotype] - for ph_predicate in pheno_predicates + n_usable_patient_counter[ph_predicate.phenotype] for ph_predicate in pheno_clfs ] - counts = [count_dict[ph_predicate.phenotype] for ph_predicate in pheno_predicates] + counts = [count_dict[ph_predicate.phenotype] for ph_predicate in pheno_clfs] return n_usable_patients, counts class MultiPhenotypeAnalysis(typing.Generic[P], metaclass=abc.ABCMeta): - def __init__( self, count_statistic: CountStatistic, @@ -112,48 +110,50 @@ def __init__( (e.g. Bonferroni MTC) or false discovery rate for the FDR procedures (e.g. Benjamini-Hochberg). """ assert isinstance(count_statistic, CountStatistic) - assert len(count_statistic.supports_shape) == 2, "The statistic must support 2D contingency tables" + assert ( + len(count_statistic.supports_shape) == 2 + ), "The statistic must support 2D contingency tables" self._count_statistic = count_statistic self._mtc_correction = mtc_correction - assert isinstance(mtc_alpha, float) and 0. <= mtc_alpha <= 1. + assert isinstance(mtc_alpha, float) and 0.0 <= mtc_alpha <= 1.0 self._mtc_alpha = mtc_alpha def compare_genotype_vs_phenotypes( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[P]], ) -> MultiPhenotypeAnalysisResult[P]: # Check compatibility between the count statistic and predicate. issues = MultiPhenotypeAnalysis._check_compatibility( count_statistic=self._count_statistic, - gt_predicate=gt_predicate, - pheno_predicates=pheno_predicates, + gt_clf=gt_clf, + pheno_clfs=pheno_clfs, ) if len(issues) != 0: msg = os.linesep.join(issues) - raise ValueError(f'Cannot execute the analysis: {msg}') + raise ValueError(f"Cannot execute the analysis: {msg}") return self._compute_result( cohort=cohort, - gt_predicate=gt_predicate, - pheno_predicates=pheno_predicates, + gt_clf=gt_clf, + pheno_clfs=pheno_clfs, ) @abc.abstractmethod def _compute_result( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[P]], ) -> MultiPhenotypeAnalysisResult[P]: pass @staticmethod def _check_compatibility( count_statistic: CountStatistic, - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[P]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[P]], ) -> typing.Collection[str]: # There should be 2 items due to check in `__init__`. (pheno, geno) = count_statistic.supports_shape @@ -165,16 +165,16 @@ def _check_compatibility( elif isinstance(pheno, typing.Sequence): pheno_accepted = pheno else: - issues.append('Cannot use a count statistic that does not check phenotypes') + issues.append("Cannot use a count statistic that does not check phenotypes") pheno_failed = [] - for i, ph_predicate in enumerate(pheno_predicates): + for i, ph_predicate in enumerate(pheno_clfs): if ph_predicate.n_categorizations() not in pheno_accepted: pheno_failed.append(i) if len(pheno_failed) != 0: issues.append( - 'Phenotype predicates {} are incompatible with the count statistic'.format( - ', '.join(str(i) for i in pheno_failed) + "Phenotype predicates {} are incompatible with the count statistic".format( + ", ".join(str(i) for i in pheno_failed) ) ) @@ -184,12 +184,16 @@ def _check_compatibility( elif isinstance(geno, typing.Sequence): geno_accepted = geno elif pheno is None: - raise ValueError('Cannot use a count statistic that does not check genotypes') + raise ValueError( + "Cannot use a count statistic that does not check genotypes" + ) else: - raise ValueError(f'Cannot use a count statistic that supports shape {pheno, geno}') + raise ValueError( + f"Cannot use a count statistic that supports shape {pheno, geno}" + ) - if gt_predicate.n_categorizations() not in geno_accepted: - issues.append('Genotype predicate is incompatible with the count statistic') + if gt_clf.n_categorizations() not in geno_accepted: + issues.append("Genotype predicate is incompatible with the count statistic") return issues @@ -229,22 +233,21 @@ def _apply_mtc( class DiseaseAnalysis(MultiPhenotypeAnalysis[hpotk.TermId]): - def _compute_result( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[hpotk.TermId]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[P]], ) -> MultiPhenotypeAnalysisResult[hpotk.TermId]: - pheno_predicates = tuple(pheno_predicates) - if len(pheno_predicates) == 0: + pheno_clfs = tuple(pheno_clfs) + if len(pheno_clfs) == 0: raise ValueError("No phenotype predicates were provided") # 1 - Count the patients - n_usable, all_counts = apply_predicates_on_patients( - patients=cohort, - gt_predicate=gt_predicate, - pheno_predicates=pheno_predicates, + n_usable, all_counts = apply_classifiers_on_individuals( + individuals=cohort, + gt_clf=gt_clf, + pheno_clfs=pheno_clfs, ) # 2 - Compute nominal p values @@ -257,10 +260,10 @@ def _compute_result( corrected_pvals = self._apply_mtc(stats=stats) return MultiPhenotypeAnalysisResult( - gt_predicate=gt_predicate, + gt_clf=gt_clf, statistic=self._count_statistic, mtc_correction=self._mtc_correction, - pheno_predicates=pheno_predicates, + pheno_clfs=pheno_clfs, n_usable=n_usable, all_counts=all_counts, statistic_results=stats, @@ -278,21 +281,20 @@ class HpoTermAnalysisResult(MultiPhenotypeAnalysisResult[hpotk.TermId]): def __init__( self, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, statistic: CountStatistic, mtc_correction: typing.Optional[str], - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[hpotk.TermId]], + pheno_clfs: typing.Iterable[PhenotypeClassifier[hpotk.TermId]], n_usable: typing.Sequence[int], all_counts: typing.Sequence[pd.DataFrame], statistic_results: typing.Sequence[typing.Optional[StatisticResult]], corrected_pvals: typing.Optional[typing.Sequence[float]], mtc_filter_name: str, mtc_filter_results: typing.Sequence[PhenotypeMtcResult], - ): super().__init__( - gt_predicate=gt_predicate, - pheno_predicates=pheno_predicates, + gt_clf=gt_clf, + pheno_clfs=pheno_clfs, statistic=statistic, n_usable=n_usable, all_counts=all_counts, @@ -309,10 +311,10 @@ def __init__( def _check_hpo_result_sanity(self) -> typing.Sequence[str]: errors = [] - if len(self._pheno_predicates) != len(self._mtc_filter_results): + if len(self._pheno_clfs) != len(self._mtc_filter_results): errors.append( f"`len(pheno_predicates)` must be the same as `len(mtc_filter_results)` but " - f"{len(self._pheno_predicates)}!={len(self._mtc_filter_results)}" + f"{len(self._pheno_clfs)}!={len(self._mtc_filter_results)}" ) return errors @@ -338,17 +340,24 @@ def n_filtered_out(self) -> int: return sum(result.is_filtered_out() for result in self.mtc_filter_results) def __eq__(self, other): - return isinstance(other, HpoTermAnalysisResult) \ - and super(MultiPhenotypeAnalysisResult, self).__eq__(other) \ - and self._mtc_filter_name == other._mtc_filter_name \ + return ( + isinstance(other, HpoTermAnalysisResult) + and super(MultiPhenotypeAnalysisResult, self).__eq__(other) + and self._mtc_filter_name == other._mtc_filter_name and self._mtc_filter_results == other._mtc_filter_results + ) def __hash__(self): - return hash(( - super(MultiPhenotypeAnalysisResult, self).__hash__(), - self._pheno_predicates, self._n_usable, self._all_counts, - self._mtc_filter_name, self._mtc_filter_results, - )) + return hash( + ( + super(MultiPhenotypeAnalysisResult, self).__hash__(), + self._pheno_clfs, + self._n_usable, + self._all_counts, + self._mtc_filter_name, + self._mtc_filter_results, + ) + ) class HpoTermAnalysis(MultiPhenotypeAnalysis[hpotk.TermId]): @@ -381,25 +390,25 @@ def __init__( def _compute_result( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, - pheno_predicates: typing.Iterable[PhenotypePolyPredicate[hpotk.TermId]], + gt_clf: GenotypeClassifier, + pheno_clfs: typing.Iterable[PhenotypeClassifier[hpotk.TermId]], ) -> HpoTermAnalysisResult: - pheno_predicates = tuple(pheno_predicates) - if len(pheno_predicates) == 0: + pheno_clfs = tuple(pheno_clfs) + if len(pheno_clfs) == 0: raise ValueError("No phenotype predicates were provided") # 1 - Count the patients - n_usable, all_counts = apply_predicates_on_patients( + n_usable, all_counts = apply_classifiers_on_individuals( cohort, - gt_predicate, - pheno_predicates, + gt_clf, + pheno_clfs, ) # 2 - Apply MTC filter and select p values to MTC cohort_size = sum(1 for _ in cohort) mtc_filter_results = self._mtc_filter.filter( - gt_predicate=gt_predicate, - ph_predicates=pheno_predicates, + gt_clf=gt_clf, + pheno_clfs=pheno_clfs, counts=all_counts, cohort_size=cohort_size, ) @@ -424,10 +433,10 @@ def _compute_result( corrected_pvals[mtc_mask] = self._apply_mtc(stats=results[mtc_mask]) return HpoTermAnalysisResult( - gt_predicate=gt_predicate, + gt_clf=gt_clf, statistic=self._count_statistic, mtc_correction=self._mtc_correction, - pheno_predicates=pheno_predicates, + pheno_clfs=pheno_clfs, n_usable=n_usable, all_counts=all_counts, statistic_results=results, @@ -437,7 +446,7 @@ def _compute_result( ) -WHATEVER = typing.TypeVar('WHATEVER') +WHATEVER = typing.TypeVar("WHATEVER") def slice_list_in_numpy_style( diff --git a/src/gpsea/analysis/predicate/__init__.py b/src/gpsea/analysis/predicate/__init__.py index 5b459240..4e618633 100644 --- a/src/gpsea/analysis/predicate/__init__.py +++ b/src/gpsea/analysis/predicate/__init__.py @@ -1,5 +1,43 @@ -from ._api import PolyPredicate, PatientCategory, Categorization +from ._api import VariantPredicate +from ._variant import ( + allof, + anyof, + change_length, + exon, + gene, + is_large_imprecise_sv, + is_structural_deletion, + is_structural_variant, + protein_feature, + protein_feature_type, + protein_region, + ref_length, + structural_type, + transcript, + true, + variant_class, + variant_effect, + variant_key, +) __all__ = [ - 'PolyPredicate', 'PatientCategory', 'Categorization', + "VariantPredicate", + "true", + "allof", + "anyof", + "variant_effect", + "variant_key", + "gene", + "transcript", + "exon", + "protein_region", + "is_large_imprecise_sv", + "is_structural_variant", + "structural_type", + "variant_class", + "ref_length", + "change_length", + "is_structural_deletion", + "protein_feature_type", + "protein_feature", ] diff --git a/src/gpsea/analysis/predicate/_api.py b/src/gpsea/analysis/predicate/_api.py index 1e528340..7afa33a8 100644 --- a/src/gpsea/analysis/predicate/_api.py +++ b/src/gpsea/analysis/predicate/_api.py @@ -1,234 +1,223 @@ import abc -import os +import warnings import typing -from collections import Counter - -import hpotk -import hpotk.util - -from gpsea.model import Patient +from gpsea.model import Variant from .._partition import Partitioning -class PatientCategory: +class VariantPredicate(Partitioning, metaclass=abc.ABCMeta): """ - `PatientCategory` represents one of several exclusive discrete groups. + `VariantPredicate` tests if a variant meets a certain criterion. - Patient category has :attr:`cat_id`, a unique numeric identifier of the group, - :attr:`name` with human-readable group name, and :attr:`description` with an optional verbose description. - """ + The subclasses *MUST* implement all abstract methods of this class + *plus* ``__eq__`` and ``__hash__``, to support building the compound predicates. - def __init__(self, cat_id: int, - name: str, - description: typing.Optional[str] = None): - self._cat_id = hpotk.util.validate_instance(cat_id, int, 'cat_id') - self._name = hpotk.util.validate_instance(name, str, 'name') - self._description = hpotk.util.validate_optional_instance(description, str, 'description') + We *strongly* recommend implementing ``__str__`` and ``__repr__`` as well. + """ - @property - def cat_id(self) -> int: + def get_question(self) -> str: """ - Get an `int` with the unique numeric identifier of the group. + Prepare a `str` with the question the predicate can answer. """ - return self._cat_id + # TODO: remove in `v1.0.0` + warnings.warn( + "`get_question` will be removed soon. Use `description` property instead", + DeprecationWarning, + stacklevel=2, + ) + return self.description - @property - def name(self) -> str: + @abc.abstractmethod + def test(self, variant: Variant) -> bool: """ - Get a `str` with a human-readable name of the group. + Test if the `variant` meets a criterion. + + Args: + variant: an instance of :class:`~gpsea.model.Variant` to test. + + Returns: + bool: `True` if the variant meets the criterion and `False` otherwise. """ - return self._name + pass - @property - def description(self) -> typing.Optional[str]: + def __and__(self, other): """ - Get a `str` with an optional detailed group description. + Create a variant predicate which passes if *BOTH* `self` and `other` pass. """ - return self._description - - def __repr__(self) -> str: - return f"PatientCategory(cat_id={self.cat_id}, " \ - f"name={self.name}, " \ - f"description={self.description})" - - def __str__(self) -> str: - return self._name + if isinstance(other, VariantPredicate): + if self == other: + return self - def __eq__(self, other) -> bool: - return isinstance(other, PatientCategory) \ - and self.cat_id == other.cat_id \ - and self.name == other.name \ - and self.description == other.description + if isinstance(self, AllVariantPredicate) and isinstance( + other, AllVariantPredicate + ): + # Merging two *all* variant predicates is equivalent + # to chaining their predicates + return AllVariantPredicate(*self.predicates, *other.predicates) + else: + return AllVariantPredicate(self, other) + else: + return NotImplemented - def __hash__(self) -> int: - return hash((self.cat_id, self.name, self.description)) + def __or__(self, other): + """ + Create a variant predicate which passes if *EITHER* `self` *OR* `other` passes. + """ + if isinstance(other, VariantPredicate): + if self == other: + return self + if isinstance(self, AnyVariantPredicate) and isinstance( + other, AnyVariantPredicate + ): + # Merging two any variant predicates is equivalent + # to chaining their predicates + return AnyVariantPredicate(*self.predicates, *other.predicates) + else: + return AnyVariantPredicate(self, other) + else: + return NotImplemented -class Categorization: - """ - `Categorization` represents one of discrete group a :class:`~gpsea.model.Patient` can be assigned into. - """ - - @staticmethod - def from_raw_parts( - cat_id: int, - name: str, - description: typing.Optional[str] = None, - ): + def __invert__(self): """ - Create `Categorization` from the `cat_id` identifier, `name`, and an optional `description`. + Create a variant predicate that passes if the underlying predicate fails. """ - return Categorization( - category=PatientCategory( - cat_id=cat_id, - name=name, - description=description, - ) - ) + if isinstance(self, InvVariantPredicate): + # Unwrap to prevent double negation + return self._inner + else: + return InvVariantPredicate(self) + + +class LogicalVariantPredicate(VariantPredicate, metaclass=abc.ABCMeta): + # NOT PART OF THE PUBLIC API def __init__( self, - category: PatientCategory, + *predicates, ): - self._category = hpotk.util.validate_instance(category, PatientCategory, 'category') + if len(predicates) == 0: + raise ValueError("Predicates must not be empty!") + self._predicates = tuple(predicates) @property - def category(self) -> PatientCategory: - return self._category + def predicates(self) -> typing.Sequence[VariantPredicate]: + return self._predicates - def __eq__(self, other): - return isinstance(other, Categorization) and self._category == other._category + @property + def name(self) -> str: + sep = f" {self._separator_symbol()} " + return "(" + sep.join(p.name for p in self._predicates) + ")" - def __hash__(self): - return hash((self._category,)) + @property + def description(self) -> str: + sep = f" {self._separator_word().upper()} " + return "(" + sep.join(p.description for p in self._predicates) + ")" - def __repr__(self): - return f'Categorization(category={self._category})' + @property + def variable_name(self) -> str: + sep = f" {self._separator_symbol()} " + return "(" + sep.join(p.variable_name for p in self._predicates) + ")" - def __str__(self): - return repr(self) + @abc.abstractmethod + def _separator_symbol(self) -> str: + pass + @abc.abstractmethod + def _separator_word(self) -> str: + pass -C = typing.TypeVar('C', bound=Categorization) -""" -A generic bound for types that extend :class:`Categorization`. -""" +class AnyVariantPredicate(LogicalVariantPredicate): + # NOT PART OF THE PUBLIC API -class PolyPredicate(typing.Generic[C], Partitioning, metaclass=abc.ABCMeta): - """ - `PolyPredicate` partitions a :class:`~gpsea.model.Patient` into one of several discrete groups - represented by a :class:`~gpsea.analysis.predicate.Categorization`. + def _separator_symbol(self) -> str: + return "|" - The groups must be *exclusive* - the patient can be binned into one and only one group, - and *exhaustive* - the groups must cover all possible scenarios. + def _separator_word(self) -> str: + return "or" - However, if the patient cannot be assigned into any meaningful category, `None` can be returned. - As a rule of thumb, returning `None` will exclude the patient from the analysis. - """ + def test(self, variant: Variant) -> bool: + return any(predicate.test(variant) for predicate in self._predicates) - @abc.abstractmethod - def get_categorizations(self) -> typing.Sequence[C]: - """ - Get a sequence of all categories which the predicate can produce. - """ - pass + def __eq__(self, value: object) -> bool: + if isinstance(value, AnyVariantPredicate): + return self._predicates == value._predicates + return False - def get_categories(self) -> typing.Iterator[PatientCategory]: - """ - Get an iterator with :class:`PatientCategory` instances that the predicate can produce. - """ - return (c.category for c in self.get_categorizations()) + def __hash__(self) -> int: + return 17 * hash(self._predicates) - @property - def group_labels(self) -> typing.Collection[str]: - """ - Get a collection with names of the :class:`PatientCategory` items that the predicate can produce. - """ - return tuple(cat.name for cat in self.get_categories()) + def __str__(self) -> str: + return "(" + " OR ".join(str(p) for p in self._predicates) + ")" - def summarize_groups(self) -> str: - cat_names = ', '.join(self.group_labels) - return f"{self.variable_name}: {cat_names}" + def __repr__(self) -> str: + return f"AnyVariantPredicate(predicates={self._predicates})" - def summarize( - self, - out: typing.TextIO, - ): - """ - Summarize the predicate into the `out` handle. - The summary includes the name, summary, and the groups the predicate can assign individuals into. - """ - Partitioning.summarize(self, out) - out.write(self.summarize_groups()) - out.write(os.linesep) +class AllVariantPredicate(LogicalVariantPredicate): + # NOT PART OF THE PUBLIC API - def n_categorizations(self) -> int: - """ - Get the number of categorizations the predicate can produce. - """ - return len(self.get_categorizations()) + def _separator_symbol(self) -> str: + return "&" - def get_category( - self, - cat_id: int, - ) -> PatientCategory: - """ - Get the category name for a :class:`PatientCategory.cat_id`. + def _separator_word(self) -> str: + return "and" - :param cat_id: an `int` with the id. - :raises: ValueError if there is no such category was defined. - """ - for ctg in self.get_categories(): - if ctg.cat_id == cat_id: - return ctg - raise ValueError(f'No category for {cat_id} was found') + def test(self, variant: Variant) -> bool: + return all(predicate.test(variant) for predicate in self._predicates) + + def __eq__(self, value: object) -> bool: + if isinstance(value, AllVariantPredicate): + return self._predicates == value._predicates + return False + + def __hash__(self) -> int: + return 31 * hash(self._predicates) + + def __str__(self) -> str: + return "(" + " AND ".join(str(p) for p in self._predicates) + ")" + + def __repr__(self) -> str: + return f"AllVariantPredicate(predicates={self._predicates})" + + +class InvVariantPredicate(VariantPredicate): + # NOT PART OF THE PUBLIC API - def get_category_name( + def __init__( self, - cat_id: int, - ) -> str: - """ - Get the category name for a :class:`PatientCategory.cat_id`. + inner: VariantPredicate, + ): + self._inner = inner - :param cat_id: an `int` with the id. - :raises: ValueError if there is no such category was defined. - """ - return self.get_category(cat_id).name - - @staticmethod - def _check_categorizations( - categorizations: typing.Sequence[Categorization], - ) -> typing.Sequence[str]: - """ - Check that the categorizations meet the requirements. + @property + def name(self) -> str: + return "NOT " + self._inner.name - The requirements include: + @property + def description(self) -> str: + return "NOT " + self._inner.description - * the `cat_id` must be unique within the predicate - """ - issues = [] - # There must be at least one category + @property + def variable_name(self) -> str: + return "NOT " + self._inner.variable_name - # `cat_id` must be unique for a predicate! - cat_id_counts = Counter() - for c in categorizations: - cat_id_counts[c.category.cat_id] += 1 + def test(self, variant: Variant) -> bool: + return not self._inner.test(variant) - for cat_id, count in cat_id_counts.items(): - if count > 1: - issues.append(f'`cat_id` {cat_id} is present {count}>1 times') - - return issues + def __eq__(self, value: object) -> bool: + if isinstance(value, InvVariantPredicate): + return self._inner == value._inner + return False - @abc.abstractmethod - def test(self, patient: Patient) -> typing.Optional[C]: - """ - Assign a `patient` into a categorization. + def __hash__(self) -> int: + return -hash(self._inner) - Return `None` if the patient cannot be assigned into any meaningful category. - """ - pass + def __str__(self) -> str: + return f"NOT {self._inner}" + + def __repr__(self) -> str: + return f"NotVariantPredicate(inner={self._inner})" diff --git a/src/gpsea/analysis/predicate/genotype/_predicates.py b/src/gpsea/analysis/predicate/_predicates.py similarity index 100% rename from src/gpsea/analysis/predicate/genotype/_predicates.py rename to src/gpsea/analysis/predicate/_predicates.py diff --git a/src/gpsea/analysis/predicate/_variant.py b/src/gpsea/analysis/predicate/_variant.py new file mode 100644 index 00000000..a1a3a1ea --- /dev/null +++ b/src/gpsea/analysis/predicate/_variant.py @@ -0,0 +1,442 @@ +import typing + +import hpotk + +from gpsea.model import VariantClass, VariantEffect, ProteinMetadata, FeatureType +from gpsea.model.genome import Region +from ._api import VariantPredicate, AllVariantPredicate, AnyVariantPredicate +from ._predicates import ( + AlwaysTrueVariantPredicate, + ChangeLengthPredicate, + IsLargeImpreciseStructuralVariantPredicate, + ProteinFeaturePredicate, + ProteinFeatureTypePredicate, + ProteinRegionPredicate, + RefAlleleLengthPredicate, + StructuralTypePredicate, + VariantClassPredicate, + VariantEffectPredicate, + VariantExonPredicate, + VariantGenePredicate, + VariantKeyPredicate, + VariantTranscriptPredicate, +) + + +# We do not need more than just one instance of these predicates. +IS_TRANSLOCATION = VariantClassPredicate(VariantClass.TRANSLOCATION) +IS_LARGE_IMPRECISE_SV = IsLargeImpreciseStructuralVariantPredicate() + + +def true() -> VariantPredicate: + """ + The most inclusive variant predicate - returns `True` for any variant whatsoever. + """ + return AlwaysTrueVariantPredicate.get_instance() + + +def allof(predicates: typing.Iterable[VariantPredicate]) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that returns `True` if ALL `predicates` evaluate to `True`. + + This is useful for building compound predicates programmatically. + + **Example** + + Build a predicate to test if variant has a functional annotation to genes *SURF1* and *SURF2*: + + >>> from gpsea.analysis.predicate import allof, gene + + >>> genes = ('SURF1', 'SURF2',) + >>> predicate = allof(gene(g) for g in genes) + >>> predicate.description + '(affects SURF1 AND affects SURF2)' + + Args: + predicates: an iterable of predicates to test + """ + predicates = tuple(predicates) + if len(predicates) == 1: + # No need to wrap one predicate into a logical predicate. + return predicates[0] + else: + return AllVariantPredicate(*predicates) + + +def anyof(predicates: typing.Iterable[VariantPredicate]) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that returns `True` if ANY of the `predicates` evaluates to `True`. + + This can be useful for building compound predicates programmatically. + + **Example** + + Build a predicate to test if variant leads to a missense + or nonsense change on a fictional transcript `NM_123456.7`: + + >>> from gpsea.model import VariantEffect + >>> from gpsea.analysis.predicate import anyof, variant_effect + + >>> tx_id = 'NM_123456.7' + >>> effects = (VariantEffect.MISSENSE_VARIANT, VariantEffect.STOP_GAINED,) + >>> predicate = anyof(variant_effect(e, tx_id) for e in effects) + >>> predicate.description + '(MISSENSE_VARIANT on NM_123456.7 OR STOP_GAINED on NM_123456.7)' + + Args: + predicates: an iterable of predicates to test + """ + predicates = tuple(predicates) + if len(predicates) == 1: + # No need to wrap one predicate into a logical predicate. + return predicates[0] + else: + return AnyVariantPredicate(*predicates) + + +def variant_effect( + effect: VariantEffect, + tx_id: str, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` to test if the functional annotation predicts the variant to lead to + a certain variant effect. + + **Example** + + Make a predicate for testing if the variant leads to a missense change on transcript `NM_123.4`: + + >>> from gpsea.model import VariantEffect + >>> from gpsea.analysis.predicate import variant_effect + >>> predicate = variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id='NM_123.4') + >>> predicate.description + 'MISSENSE_VARIANT on NM_123.4' + + Args: + effect: the target :class:`~gpsea.model.VariantEffect` + tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) + """ + return VariantEffectPredicate(effect, tx_id) + + +def variant_key(key: str) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that tests if the variant matches the provided `key`. + + Args: + key: a `str` with the variant key (e.g. `X_12345_12345_C_G` or `22_10001_20000_INV`) + """ + return VariantKeyPredicate(key) + + +def gene(symbol: str) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that tests if the variant affects a given gene. + + Args: + symbol: a `str` with the gene symbol (e.g. ``'FBN1'``). + """ + return VariantGenePredicate(symbol) + + +def transcript(tx_id: str) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that tests if the variant affects a transcript. + + Args: + tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) + """ + return VariantTranscriptPredicate(tx_id) + + +def exon( + exon: int, + tx_id: str, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that tests if the variant overlaps with an exon of a specific transcript. + + .. warning:: + + We use 1-based numbering to number the exons, + not the usual 0-based numbering of the computer science. + Therefore, the first exon of the transcript + has ``exon_number==1``, the second exon is ``2``, and so on ... + + .. warning:: + + We do not check if the `exon_number` spans + beyond the number of exons of the given `transcript_id`! + Therefore, ``exon_number==10,000`` will effectively return `False` + for *all* variants!!! 😱 + Well, at least the genome variants of the *Homo sapiens sapiens* taxon... + + Args: + exon: a positive `int` with the index of the target exon + (e.g. `1` for the 1st exon, `2` for the 2nd, ...) + tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) + """ + return VariantExonPredicate(exon, tx_id) + + +def protein_region( + region: typing.Union[typing.Tuple[int, int], Region], + tx_id: str, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` that tests if the variant + overlaps with a region on a protein of a specific transcript. + + + Example + ------- + + Create a predicate to test if the variant overlaps with the 5th aminoacid + of the protein encoded by a fictional transcript `NM_1234.5`: + + >>> from gpsea.analysis.predicate import protein_region + >>> overlaps_with_fifth_aa = protein_region(region=(5, 5), tx_id="NM_1234.5") + >>> overlaps_with_fifth_aa.description + 'overlaps with [5,5] region of the protein encoded by NM_1234.5' + + Create a predicate to test if the variant overlaps with the first 20 aminoacid residues of the same transcript: + + >>> overlaps_with_first_20 = protein_region(region=(1, 20), tx_id="NM_1234.5") + >>> overlaps_with_first_20.description + 'overlaps with [1,20] region of the protein encoded by NM_1234.5' + + Args: + region: a :class:`~gpsea.model.genome.Region` that gives the start and end coordinate + of the region of interest on a protein strand or a tuple with 1-based coordinates. + """ + if isinstance(region, Region): + pass + elif ( + isinstance(region, tuple) + and len(region) == 2 + and all(isinstance(r, int) and r > 0 for r in region) + ): + start = region[0] - 1 # Convert to 0-based + end = region[1] + region = Region(start=start, end=end) + else: + raise ValueError( + f"region must be a `Region` or a tuple with two positive `int`s, but got {region}" + ) + + return ProteinRegionPredicate(region, tx_id) + + +def is_large_imprecise_sv() -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant is a large structural variant (SV) + without exact breakpoint coordinates. + """ + return IS_LARGE_IMPRECISE_SV + + +def is_structural_variant( + threshold: int = 50, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant is a structural variant (SV). + + SVs are usually defined as variant affecting more than a certain number of base pairs. + The thresholds vary in the literature, but here we use 50bp as a default. + + Any variant that affects at least `threshold` base pairs is considered an SV. + Large SVs with unknown breakpoint coordinates or translocations + (:class:`~gpsea.model.VariantClass.TRANSLOCATION`) are always considered as an SV. + + Args: + threshold: a non-negative `int` with the number of base pairs that must be affected + """ + assert threshold >= 0, "`threshold` must be non-negative!" + return ( + change_length("<=", -threshold) + | change_length(">=", threshold) + | is_large_imprecise_sv() + | IS_TRANSLOCATION + ) + + +def structural_type( + curie: typing.Union[str, hpotk.TermId], +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant has a certain structural type. + + We recommend using a descendant of `structural_variant` + (`SO:0001537 `_) + as the structural type. + + **Example** + + Make a predicate for testing if the variant is a chromosomal deletion (`SO:1000029`): + + >>> from gpsea.analysis.predicate import structural_type + >>> predicate = structural_type('SO:1000029') + >>> predicate.description + 'structural type is SO:1000029' + + Args: + curie: compact uniform resource identifier (CURIE) with the structural type to test. + """ + return StructuralTypePredicate.from_curie(curie) + + +def variant_class( + variant_class: VariantClass, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant + is of a certain :class:`~gpsea.model.VariantClass`. + + **Example** + + Make a predicate to test if the variant is a deletion: + + >>> from gpsea.model import VariantClass + >>> from gpsea.analysis.predicate import variant_class + >>> predicate = variant_class(VariantClass.DEL) + >>> predicate.description + 'variant class is DEL' + + Args: + variant_class: the variant class to test. + """ + return VariantClassPredicate( + query=variant_class, + ) + + +def ref_length( + operator: typing.Literal["<", "<=", "==", "!=", ">=", ">"], + length: int, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the reference (REF) allele + of variant is above, below, or (not) equal to certain `length`. + + .. seealso:: + + See :ref:`length-of-the-reference-allele` for more info. + + **Example** + + Prepare a predicate that tests that the REF allele includes more than 5 base pairs: + + >>> from gpsea.analysis.predicate import ref_length + >>> predicate = ref_length('>', 5) + >>> predicate.description + 'reference allele length > 5' + + Args: + operator: a `str` with the desired test. Must be one of ``{ '<', '<=', '==', '!=', '>=', '>' }``. + length: a non-negative `int` with the length threshold. + """ + return RefAlleleLengthPredicate(operator, length) + + +def change_length( + operator: typing.Literal["<", "<=", "==", "!=", ">=", ">"], + threshold: int, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant's change length + is above, below, or (not) equal to certain `threshold`. + + .. seealso:: + + See :ref:`change-length-of-an-allele` for more info. + + **Example** + + Make a predicate for testing if the change length is less than or equal to `-10`, + e.g. to test if a variant is a *deletion* leading to removal of at least 10 base pairs: + + >>> from gpsea.analysis.predicate import change_length + >>> predicate = change_length('<=', -10) + >>> predicate.description + 'change length <= -10' + + Args: + operator: a `str` with the desired test. Must be one of ``{ '<', '<=', '==', '!=', '>=', '>' }``. + threshold: an `int` with the threshold. Can be negative, zero, or positive. + """ + return ChangeLengthPredicate(operator, threshold) + + +def is_structural_deletion( + threshold: int = -50, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` for testing if the variant + is a `chromosomal deletion `_ or a structural variant deletion + that leads to removal of at least *n* base pairs (50bp by default). + + .. note:: + + The predicate uses :meth:`~gpsea.model.VariantCoordinates.change_length` + to determine if the length of the variant is above or below `threshold`. + + **IMPORTANT**: the change lengths of deletions are *negative*, since the alternate allele + is shorter than the reference allele. See :ref:`change-length-of-an-allele` for more info. + + **Example** + + Prepare a predicate for testing if the variant is a chromosomal deletion that removes at least 20 base pairs: + + >>> from gpsea.analysis.predicate import is_structural_deletion + >>> predicate = is_structural_deletion(-20) + >>> predicate.description + '(structural type is SO:1000029 OR (variant class is DEL AND change length <= -20))' + + Args: + threshold: an `int` with the change length threshold to determine if a variant is "structural" + (-50 bp by default). + """ + chromosomal_deletion = "SO:1000029" + return structural_type(chromosomal_deletion) | ( + variant_class(VariantClass.DEL) & change_length("<=", threshold) + ) + + +def protein_feature_type( + feature_type: typing.Union[FeatureType, str], + protein_metadata: ProteinMetadata, +) -> VariantPredicate: + """ + Prepare a :class:`~gpsea.analysis.predicate.VariantPredicate` + to test if the variant affects a `feature_type` of a protein. + + Args: + feature_type: the target protein :class:`~gpsea.model.FeatureType` + (e.g. :class:`~gpsea.model.FeatureType.DOMAIN`). + protein_metadata: the information about the protein. + """ + if isinstance(feature_type, FeatureType): + FeatureType.deprecation_warning() + feature_type = feature_type.name + return ProteinFeatureTypePredicate( + feature_type=feature_type, + protein_metadata=protein_metadata, + ) + + +def protein_feature( + feature_id: str, + protein_metadata: ProteinMetadata, +) -> VariantPredicate: + """ + Prepare a :class:`VariantPredicate` to test if the variant affects a protein feature + labeled with the provided `feature_id`. + + Args: + feature_id: the id of the target protein feature (e.g. `ANK 1`) + protein_metadata: the information about the protein. + """ + return ProteinFeaturePredicate( + feature_id=feature_id, + protein_metadata=protein_metadata, + ) diff --git a/src/gpsea/analysis/predicate/genotype/__init__.py b/src/gpsea/analysis/predicate/genotype/__init__.py deleted file mode 100644 index c35fcaa5..00000000 --- a/src/gpsea/analysis/predicate/genotype/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from ._api import GenotypePolyPredicate -from ._api import VariantPredicate -from ._counter import AlleleCounter -from ._gt_predicates import sex_predicate, diagnosis_predicate -from ._gt_predicates import monoallelic_predicate, biallelic_predicate -from ._gt_predicates import allele_count -from ._variant import VariantPredicates - -__all__ = [ - 'GenotypePolyPredicate', - 'sex_predicate', 'diagnosis_predicate', - 'monoallelic_predicate', 'biallelic_predicate', - 'allele_count', - 'AlleleCounter', 'VariantPredicate', - 'VariantPredicates', -] diff --git a/src/gpsea/analysis/predicate/genotype/_api.py b/src/gpsea/analysis/predicate/genotype/_api.py deleted file mode 100644 index 9d11072f..00000000 --- a/src/gpsea/analysis/predicate/genotype/_api.py +++ /dev/null @@ -1,226 +0,0 @@ -import abc -import warnings -import typing - -from gpsea.model import Variant -from .._api import PolyPredicate, Categorization -from ..._partition import Partitioning - - -class GenotypePolyPredicate(PolyPredicate[Categorization], metaclass=abc.ABCMeta): - """ - `GenotypePolyPredicate` is a base class for all :class:`~gpsea.analysis.predicate.PolyPredicate` - that assign an individual into a group based on the genotype. - """ - pass - - -class VariantPredicate(Partitioning, metaclass=abc.ABCMeta): - """ - `VariantPredicate` tests if a variant meets a certain criterion. - - The subclasses *MUST* implement all abstract methods of this class - *plus* ``__eq__`` and ``__hash__``, to support building the compound predicates. - - We *strongly* recommend implementing ``__str__`` and ``__repr__`` as well. - """ - - def get_question(self) -> str: - """ - Prepare a `str` with the question the predicate can answer. - """ - # TODO: remove in `v1.0.0` - warnings.warn( - "`get_question` will be removed soon. Use `description` property instead", - DeprecationWarning, stacklevel=2, - ) - return self.description - - @abc.abstractmethod - def test(self, variant: Variant) -> bool: - """ - Test if the `variant` meets a criterion. - - Args: - variant: an instance of :class:`~gpsea.model.Variant` to test. - - Returns: - bool: `True` if the variant meets the criterion and `False` otherwise. - """ - pass - - def __and__(self, other): - """ - Create a variant predicate which passes if *BOTH* `self` and `other` pass. - """ - if isinstance(other, VariantPredicate): - if self == other: - return self - - if isinstance(self, AllVariantPredicate) and isinstance(other, AllVariantPredicate): - # Merging two *all* variant predicates is equivalent - # to chaining their predicates - return AllVariantPredicate(*self.predicates, *other.predicates) - else: - return AllVariantPredicate(self, other) - else: - return NotImplemented - - def __or__(self, other): - """ - Create a variant predicate which passes if *EITHER* `self` *OR* `other` passes. - """ - if isinstance(other, VariantPredicate): - if self == other: - return self - - if isinstance(self, AnyVariantPredicate) and isinstance(other, AnyVariantPredicate): - # Merging two any variant predicates is equivalent - # to chaining their predicates - return AnyVariantPredicate(*self.predicates, *other.predicates) - else: - return AnyVariantPredicate(self, other) - else: - return NotImplemented - - def __invert__(self): - """ - Create a variant predicate that passes if the underlying predicate fails. - """ - if isinstance(self, InvVariantPredicate): - # Unwrap to prevent double negation - return self._inner - else: - return InvVariantPredicate(self) - - -class LogicalVariantPredicate(VariantPredicate, metaclass=abc.ABCMeta): - # NOT PART OF THE PUBLIC API - - def __init__( - self, - *predicates, - ): - if len(predicates) == 0: - raise ValueError('Predicates must not be empty!') - self._predicates = tuple(predicates) - - @property - def predicates(self) -> typing.Sequence[VariantPredicate]: - return self._predicates - - @property - def name(self) -> str: - sep = f" {self._separator_symbol()} " - return "(" + sep.join(p.name for p in self._predicates) + ")" - - @property - def description(self) -> str: - sep = f" {self._separator_word().upper()} " - return "(" + sep.join(p.description for p in self._predicates) + ")" - - @property - def variable_name(self) -> str: - sep = f" {self._separator_symbol()} " - return "(" + sep.join(p.variable_name for p in self._predicates) + ")" - - @abc.abstractmethod - def _separator_symbol(self) -> str: - pass - - @abc.abstractmethod - def _separator_word(self) -> str: - pass - - -class AnyVariantPredicate(LogicalVariantPredicate): - # NOT PART OF THE PUBLIC API - - def _separator_symbol(self) -> str: - return "|" - - def _separator_word(self) -> str: - return "or" - - def test(self, variant: Variant) -> bool: - return any(predicate.test(variant) for predicate in self._predicates) - - def __eq__(self, value: object) -> bool: - if isinstance(value, AnyVariantPredicate): - return self._predicates == value._predicates - return False - - def __hash__(self) -> int: - return 17 * hash(self._predicates) - - def __str__(self) -> str: - return '(' + ' OR '.join(str(p) for p in self._predicates) + ')' - - def __repr__(self) -> str: - return f'AnyVariantPredicate(predicates={self._predicates})' - - -class AllVariantPredicate(LogicalVariantPredicate): - # NOT PART OF THE PUBLIC API - - def _separator_symbol(self) -> str: - return "&" - - def _separator_word(self) -> str: - return "and" - - def test(self, variant: Variant) -> bool: - return all(predicate.test(variant) for predicate in self._predicates) - - def __eq__(self, value: object) -> bool: - if isinstance(value, AllVariantPredicate): - return self._predicates == value._predicates - return False - - def __hash__(self) -> int: - return 31 * hash(self._predicates) - - def __str__(self) -> str: - return '(' + ' AND '.join(str(p) for p in self._predicates) + ')' - - def __repr__(self) -> str: - return f'AllVariantPredicate(predicates={self._predicates})' - - -class InvVariantPredicate(VariantPredicate): - # NOT PART OF THE PUBLIC API - - def __init__( - self, - inner: VariantPredicate, - ): - self._inner = inner - - @property - def name(self) -> str: - return "NOT " + self._inner.name - - @property - def description(self) -> str: - return "NOT " + self._inner.description - - @property - def variable_name(self) -> str: - return "NOT " + self._inner.variable_name - - def test(self, variant: Variant) -> bool: - return not self._inner.test(variant) - - def __eq__(self, value: object) -> bool: - if isinstance(value, InvVariantPredicate): - return self._inner == value._inner - return False - - def __hash__(self) -> int: - return -hash(self._inner) - - def __str__(self) -> str: - return f'NOT {self._inner}' - - def __repr__(self) -> str: - return f'NotVariantPredicate(inner={self._inner})' diff --git a/src/gpsea/analysis/predicate/genotype/_variant.py b/src/gpsea/analysis/predicate/genotype/_variant.py deleted file mode 100644 index 0a39d170..00000000 --- a/src/gpsea/analysis/predicate/genotype/_variant.py +++ /dev/null @@ -1,445 +0,0 @@ -import typing - -import hpotk - -from gpsea.model import VariantClass, VariantEffect, ProteinMetadata, FeatureType -from gpsea.model.genome import Region -from ._api import VariantPredicate, AllVariantPredicate, AnyVariantPredicate -from ._predicates import ( - AlwaysTrueVariantPredicate, - ChangeLengthPredicate, - IsLargeImpreciseStructuralVariantPredicate, - ProteinFeaturePredicate, - ProteinFeatureTypePredicate, - ProteinRegionPredicate, - RefAlleleLengthPredicate, - StructuralTypePredicate, - VariantClassPredicate, - VariantEffectPredicate, - VariantExonPredicate, - VariantGenePredicate, - VariantKeyPredicate, - VariantTranscriptPredicate, -) - - -# We do not need more than just one instance of these predicates. -IS_TRANSLOCATION = VariantClassPredicate(VariantClass.TRANSLOCATION) -IS_LARGE_IMPRECISE_SV = IsLargeImpreciseStructuralVariantPredicate() - - -class VariantPredicates: - """ - `VariantPredicates` is a static utility class to provide the variant predicates - that are relatively simple to configure. - """ - - @staticmethod - def true() -> VariantPredicate: - """ - Prepare an absolutely inclusive :class:`VariantPredicate` - a predicate that returns `True` - for any variant whatsoever. - """ - return AlwaysTrueVariantPredicate.get_instance() - - @staticmethod - def all(predicates: typing.Iterable[VariantPredicate]) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that returns `True` if ALL `predicates` evaluate to `True`. - - This is useful for building compound predicates programmatically. - - **Example** - - Build a predicate to test if variant has a functional annotation to genes *SURF1* and *SURF2*: - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - - >>> genes = ('SURF1', 'SURF2',) - >>> predicate = VariantPredicates.all(VariantPredicates.gene(g) for g in genes) - >>> predicate.description - '(affects SURF1 AND affects SURF2)' - - Args: - predicates: an iterable of predicates to test - """ - predicates = tuple(predicates) - if len(predicates) == 1: - # No need to wrap one predicate into a logical predicate. - return predicates[0] - else: - return AllVariantPredicate(*predicates) - - @staticmethod - def any(predicates: typing.Iterable[VariantPredicate]) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that returns `True` if ANY of the `predicates` evaluates to `True`. - - This can be useful for building compound predicates programmatically. - - **Example** - - Build a predicate to test if variant leads to a missense - or nonsense change on a fictional transcript `NM_123456.7`: - - >>> from gpsea.model import VariantEffect - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - - >>> tx_id = 'NM_123456.7' - >>> effects = (VariantEffect.MISSENSE_VARIANT, VariantEffect.STOP_GAINED,) - >>> predicate = VariantPredicates.any(VariantPredicates.variant_effect(e, tx_id) for e in effects) - >>> predicate.description - '(MISSENSE_VARIANT on NM_123456.7 OR STOP_GAINED on NM_123456.7)' - - Args: - predicates: an iterable of predicates to test - """ - predicates = tuple(predicates) - if len(predicates) == 1: - # No need to wrap one predicate into a logical predicate. - return predicates[0] - else: - return AnyVariantPredicate(*predicates) - - @staticmethod - def variant_effect( - effect: VariantEffect, - tx_id: str, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` to test if the functional annotation predicts the variant to lead to - a certain variant effect. - - **Example** - - Make a predicate for testing if the variant leads to a missense change on transcript `NM_123.4`: - - >>> from gpsea.model import VariantEffect - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id='NM_123.4') - >>> predicate.description - 'MISSENSE_VARIANT on NM_123.4' - - Args: - effect: the target :class:`~gpsea.model.VariantEffect` - tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) - """ - return VariantEffectPredicate(effect, tx_id) - - @staticmethod - def variant_key(key: str) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that tests if the variant matches the provided `key`. - - Args: - key: a `str` with the variant key (e.g. `X_12345_12345_C_G` or `22_10001_20000_INV`) - """ - return VariantKeyPredicate(key) - - @staticmethod - def gene(symbol: str) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that tests if the variant affects a given gene. - - Args: - symbol: a `str` with the gene symbol (e.g. ``'FBN1'``). - """ - return VariantGenePredicate(symbol) - - @staticmethod - def transcript(tx_id: str) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that tests if the variant affects a transcript. - - Args: - tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) - """ - return VariantTranscriptPredicate(tx_id) - - @staticmethod - def exon( - exon: int, - tx_id: str, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that tests if the variant overlaps with an exon of a specific transcript. - - .. warning:: - - We use 1-based numbering to number the exons, - not the usual 0-based numbering of the computer science. - Therefore, the first exon of the transcript - has ``exon_number==1``, the second exon is ``2``, and so on ... - - .. warning:: - - We do not check if the `exon_number` spans - beyond the number of exons of the given `transcript_id`! - Therefore, ``exon_number==10,000`` will effectively return `False` - for *all* variants!!! 😱 - Well, at least the genome variants of the *Homo sapiens sapiens* taxon... - - Args: - exon: a positive `int` with the index of the target exon - (e.g. `1` for the 1st exon, `2` for the 2nd, ...) - tx_id: a `str` with the accession ID of the target transcript (e.g. `NM_123.4`) - """ - return VariantExonPredicate(exon, tx_id) - - @staticmethod - def region( - region: typing.Union[typing.Tuple[int, int], Region], - tx_id: str, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` that tests if the variant - overlaps with a region on a protein of a specific transcript. - - - Example - ------- - - Create a predicate to test if the variant overlaps with the 5th aminoacid - of the protein encoded by a fictional transcript `NM_1234.5`: - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> overlaps_with_fifth_aa = VariantPredicates.region(region=(5, 5), tx_id="NM_1234.5") - >>> overlaps_with_fifth_aa.description - 'overlaps with [5,5] region of the protein encoded by NM_1234.5' - - Create a predicate to test if the variant Overlaps with the first 20 aminoacid residues of the same transcript: - - >>> overlaps_with_first_20 = VariantPredicates.region(region=(1, 20), tx_id="NM_1234.5") - >>> overlaps_with_first_20.description - 'overlaps with [1,20] region of the protein encoded by NM_1234.5' - - Args: - region: a :class:`~gpsea.model.genome.Region` that gives the start and end coordinate - of the region of interest on a protein strand or a tuple with 1-based coordinates. - """ - if isinstance(region, Region): - pass - elif isinstance(region, tuple) and len(region) == 2 and all(isinstance(c, int) and c > 0 for c in region): - start = region[0] - 1 # Convert to 0-based - end = region[1] - region = Region(start=start, end=end) - else: - raise ValueError(f'region must be a `Region` or a tuple with two positive `int`s, but got {region}') - - return ProteinRegionPredicate(region, tx_id) - - @staticmethod - def is_large_imprecise_sv() -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant is a large structural variant (SV) - without exact breakpoint coordinates. - """ - return IS_LARGE_IMPRECISE_SV - - @staticmethod - def is_structural_variant( - threshold: int = 50, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant is a structural variant (SV). - - SVs are usually defined as variant affecting more than a certain number of base pairs. - The thresholds vary in the literature, but here we use 50bp as a default. - - Any variant that affects at least `threshold` base pairs is considered an SV. - Large SVs with unknown breakpoint coordinates or translocations - (:class:`~gpsea.model.VariantClass.TRANSLOCATION`) are always considered as an SV. - - Args: - threshold: a non-negative `int` with the number of base pairs that must be affected - """ - assert threshold >= 0, "`threshold` must be non-negative!" - return ( - VariantPredicates.change_length("<=", -threshold) - | VariantPredicates.change_length(">=", threshold) - | VariantPredicates.is_large_imprecise_sv() - | IS_TRANSLOCATION - ) - - @staticmethod - def structural_type( - curie: typing.Union[str, hpotk.TermId], - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant has a certain structural type. - - We recommend using a descendant of `structural_variant` - (`SO:0001537 `_) - as the structural type. - - **Example** - - Make a predicate for testing if the variant is a chromosomal deletion (`SO:1000029`): - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.structural_type('SO:1000029') - >>> predicate.description - 'structural type is SO:1000029' - - Args: - curie: compact uniform resource identifier (CURIE) with the structural type to test. - """ - return StructuralTypePredicate.from_curie(curie) - - @staticmethod - def variant_class( - variant_class: VariantClass, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant - is of a certain :class:`~gpsea.model.VariantClass`. - - **Example** - - Make a predicate to test if the variant is a deletion: - - >>> from gpsea.model import VariantClass - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.variant_class(VariantClass.DEL) - >>> predicate.description - 'variant class is DEL' - - Args: - variant_class: the variant class to test. - """ - return VariantClassPredicate( - query=variant_class, - ) - - @staticmethod - def ref_length( - operator: typing.Literal["<", "<=", "==", "!=", ">=", ">"], - length: int, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the reference (REF) allele - of variant is above, below, or (not) equal to certain `length`. - - .. seealso:: - - See :ref:`length-of-the-reference-allele` for more info. - - **Example** - - Prepare a predicate that tests that the REF allele includes more than 5 base pairs: - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.ref_length('>', 5) - >>> predicate.description - 'reference allele length > 5' - - Args: - operator: a `str` with the desired test. Must be one of ``{ '<', '<=', '==', '!=', '>=', '>' }``. - length: a non-negative `int` with the length threshold. - """ - return RefAlleleLengthPredicate(operator, length) - - @staticmethod - def change_length( - operator: typing.Literal["<", "<=", "==", "!=", ">=", ">"], - threshold: int, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant's change length - is above, below, or (not) equal to certain `threshold`. - - .. seealso:: - - See :ref:`change-length-of-an-allele` for more info. - - **Example** - - Make a predicate for testing if the change length is less than or equal to `-10`, - e.g. to test if a variant is a *deletion* leading to removal of at least 10 base pairs: - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.change_length('<=', -10) - >>> predicate.description - 'change length <= -10' - - Args: - operator: a `str` with the desired test. Must be one of ``{ '<', '<=', '==', '!=', '>=', '>' }``. - threshold: an `int` with the threshold. Can be negative, zero, or positive. - """ - return ChangeLengthPredicate(operator, threshold) - - @staticmethod - def is_structural_deletion( - threshold: int = -50, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` for testing if the variant - is a `chromosomal deletion `_ or a structural variant deletion - that leads to removal of at least *n* base pairs (50bp by default). - - .. note:: - - The predicate uses :meth:`~gpsea.model.VariantCoordinates.change_length` - to determine if the length of the variant is above or below `threshold`. - - **IMPORTANT**: the change lengths of deletions are *negative*, since the alternate allele - is shorter than the reference allele. See :ref:`change-length-of-an-allele` for more info. - - **Example** - - Prepare a predicate for testing if the variant is a chromosomal deletion that removes at least 20 base pairs: - - >>> from gpsea.analysis.predicate.genotype import VariantPredicates - >>> predicate = VariantPredicates.is_structural_deletion(-20) - >>> predicate.description - '(structural type is SO:1000029 OR (variant class is DEL AND change length <= -20))' - - Args: - threshold: an `int` with the change length threshold to determine if a variant is "structural" - (-50 bp by default). - """ - chromosomal_deletion = "SO:1000029" - return VariantPredicates.structural_type(chromosomal_deletion) | ( - VariantPredicates.variant_class(VariantClass.DEL) - & VariantPredicates.change_length("<=", threshold) - ) - - @staticmethod - def protein_feature_type( - feature_type: typing.Union[FeatureType, str], - protein_metadata: ProteinMetadata, - ) -> VariantPredicate: - """ - Prepare a :class:`~gpsea.analysis.predicate.genotype.VariantPredicate` - to test if the variant affects a `feature_type` of a protein. - - Args: - feature_type: the target protein :class:`~gpsea.model.FeatureType` - (e.g. :class:`~gpsea.model.FeatureType.DOMAIN`). - protein_metadata: the information about the protein. - """ - if isinstance(feature_type, FeatureType): - FeatureType.deprecation_warning() - feature_type = feature_type.name - return ProteinFeatureTypePredicate( - feature_type=feature_type, - protein_metadata=protein_metadata, - ) - - @staticmethod - def protein_feature( - feature_id: str, - protein_metadata: ProteinMetadata, - ) -> VariantPredicate: - """ - Prepare a :class:`VariantPredicate` to test if the variant affects a protein feature - labeled with the provided `feature_id`. - - Args: - feature_id: the id of the target protein feature (e.g. `ANK 1`) - protein_metadata: the information about the protein. - """ - return ProteinFeaturePredicate( - feature_id=feature_id, - protein_metadata=protein_metadata, - ) diff --git a/src/gpsea/analysis/predicate/phenotype/__init__.py b/src/gpsea/analysis/predicate/phenotype/__init__.py deleted file mode 100644 index b322ca9d..00000000 --- a/src/gpsea/analysis/predicate/phenotype/__init__.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -The `gpsea.analysis.predicate.phenotype` package provides the :class:`PhenotypePolyPredicate` -for assigning :class:`~gpsea.model.Patient` into a phenotype group. - -An individual can be assigned based on presence/absence of a disease diagnosis (:class:`DiseasePresencePredicate`) -or using the phenotype features encoded into HPO terms (:class:`~gpsea.analysis.predicate.phenotype.HpoPredicate`). -""" - -from ._pheno import PhenotypePolyPredicate, HpoPredicate -from ._pheno import DiseasePresencePredicate -from ._pheno import PhenotypeCategorization, P -from ._util import prepare_predicates_for_terms_of_interest, prepare_hpo_terms_of_interest - -__all__ = [ - 'PhenotypePolyPredicate', 'HpoPredicate', - 'DiseasePresencePredicate', - 'PhenotypeCategorization', 'P', - 'prepare_predicates_for_terms_of_interest', 'prepare_hpo_terms_of_interest', -] diff --git a/src/gpsea/analysis/predicate/phenotype/_pheno.py b/src/gpsea/analysis/predicate/phenotype/_pheno.py deleted file mode 100644 index 08d34a7b..00000000 --- a/src/gpsea/analysis/predicate/phenotype/_pheno.py +++ /dev/null @@ -1,316 +0,0 @@ -import abc -import typing - -import hpotk -from hpotk.util import validate_instance - -from gpsea.model import Patient - -from .._api import PolyPredicate, PatientCategory, Categorization - -P = typing.TypeVar("P") -""" -Phenotype entity of interest, such as :class:`~hpotk.model.TermId`, representing an HPO term or an OMIM/MONDO term. - -However, phenotype entity can be anything as long as it is :class:`~typing.Hashable` and comparable -(have `__eq__` and `__lt__` magic methods). -""" - -YES = PatientCategory(1, 'Yes', 'The patient belongs to the group.') -""" -Category for a patient who *belongs* to the tested group. -""" - -NO = PatientCategory(0, 'No', 'The patient does not belong to the group.') -""" -Category for a patient who does *not* belong to the tested group. -""" - - -class PhenotypeCategorization(typing.Generic[P], Categorization): - """ - On top of the attributes of the `Categorization`, `PhenotypeCategorization` keeps track of the target phenotype `P`. - """ - - def __init__( - self, - category: PatientCategory, - phenotype: P, - ): - super().__init__(category) - self._phenotype = phenotype - - @property - def phenotype(self) -> P: - return self._phenotype - - def __repr__(self) -> str: - return ( - "PhenotypeCategorization(" - f"category={self._category}, " - f"phenotype={self._phenotype})" - ) - - def __str__(self) -> str: - return repr(self) - - def __eq__(self, other) -> bool: - return isinstance(other, PhenotypeCategorization) \ - and self._category == other._category \ - and self._phenotype == other._phenotype - - def __hash__(self) -> int: - return hash((self._category, self._phenotype)) - - -class PhenotypePolyPredicate( - typing.Generic[P], PolyPredicate[PhenotypeCategorization[P]], metaclass=abc.ABCMeta -): - """ - `PhenotypePolyPredicate` is a base class for all :class:`~gpsea.analysis.predicate.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 :class:`~hpotk.model.TermId` representing an HPO term or an OMIM/MONDO term. - - Only one category can be investigated, and :attr:`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 :attr:`present_phenotype_categorization` property. - """ - - @property - @abc.abstractmethod - def phenotype(self) -> P: - """ - Get the phenotype entity of interest. - """ - pass - - @property - @abc.abstractmethod - def present_phenotype_categorization(self) -> PhenotypeCategorization[P]: - """ - Get the categorization which represents the group of the patients who exibit the investigated phenotype. - """ - pass - - @property - def present_phenotype_category(self) -> PatientCategory: - """ - Get the patient category that correspond to the group of the patients who exibit the investigated phenotype. - """ - return self.present_phenotype_categorization.category - - -class HpoPredicate(PhenotypePolyPredicate[hpotk.TermId]): - """ - `HpoPredicate` tests if a patient is annotated with an HPO term. - - Note, `query` must be a term of the provided `hpo`! - - See :ref:`hpo-predicate` section for an example usage. - - :param hpo: HPO ontology - :param query: the HPO term to test - :param missing_implies_phenotype_excluded: `True` if lack of an explicit annotation implies term's absence`. - """ - - def __init__( - self, - hpo: hpotk.MinimalOntology, - query: hpotk.TermId, - missing_implies_phenotype_excluded: bool = False, - ): - self._hpo = validate_instance(hpo, hpotk.MinimalOntology, "hpo") - self._query = validate_instance( - query, hpotk.TermId, "phenotypic_feature" - ) - self._query_label = self._hpo.get_term_name(query) - assert self._query_label is not None, f"Query {query} is in HPO" - self._missing_implies_phenotype_excluded = validate_instance( - missing_implies_phenotype_excluded, - bool, - "missing_implies_phenotype_excluded", - ) - self._phenotype_observed = PhenotypeCategorization( - category=YES, - phenotype=self._query, - ) - self._phenotype_excluded = PhenotypeCategorization( - category=NO, - phenotype=self._query, - ) - # Some tests depend on the order of `self._categorizations`. - self._categorizations = (self._phenotype_observed, self._phenotype_excluded) - - @property - def name(self) -> str: - return "HPO Predicate" - - @property - def description(self) -> str: - return f"Test for presence of {self._query_label} [{self._query.value}]" - - @property - def variable_name(self) -> str: - return self._query.value - - @property - def phenotype(self) -> hpotk.TermId: - return self._query - - @property - def present_phenotype_categorization(self) -> PhenotypeCategorization[hpotk.TermId]: - return self._phenotype_observed - - def get_categorizations( - self, - ) -> typing.Sequence[PhenotypeCategorization[hpotk.TermId]]: - return self._categorizations - - def test( - self, patient: Patient - ) -> typing.Optional[PhenotypeCategorization[hpotk.TermId]]: - """An HPO TermID is given when initializing the class. - Given a Patient class, this function tests whether the patient has the - given phenotype. - - Args: - patient (Patient): A Patient class representing a patient. - - Returns: - typing.Optional[PhenotypeCategorization[P]]: 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. - """ - self._check_patient(patient) - - if len(patient.phenotypes) == 0: - return None - - for phenotype in patient.phenotypes: - if phenotype.is_present: - if self._query == phenotype.identifier or any( - self._query == anc - for anc in self._hpo.graph.get_ancestors(phenotype) - ): - return self._phenotype_observed - else: - if self._missing_implies_phenotype_excluded: - return self._phenotype_excluded - else: - if phenotype.identifier == self._query or any( - phenotype.identifier == anc - for anc in self._hpo.graph.get_ancestors(self._query) - ): - return self._phenotype_excluded - - return None - - def __eq__(self, value: object) -> bool: - return isinstance(value, HpoPredicate) \ - and self._hpo.version == value._hpo.version \ - and self._query == value._query \ - and self._missing_implies_phenotype_excluded == value._missing_implies_phenotype_excluded - - def __hash__(self) -> int: - return hash((self._hpo.version, self._query, self._missing_implies_phenotype_excluded)) - - def __repr__(self): - return f"HpoPredicate(query={self._query})" - - -class DiseasePresencePredicate(PhenotypePolyPredicate[hpotk.TermId]): - """ - `DiseasePresencePredicate` tests if an individual was diagnosed with a disease. - - :param disease_id_query: a disease identifier formatted either as a CURIE `str` (e.g. ``OMIM:256000``) - or as a :class:`~hpotk.TermId`. - """ - - def __init__( - self, - disease_id_query: typing.Union[str, hpotk.TermId], - ): - if isinstance(disease_id_query, str): - self._query = hpotk.TermId.from_curie(disease_id_query) - elif isinstance(disease_id_query, hpotk.TermId): - self._query = disease_id_query - else: - raise AssertionError - - self._diagnosis_present = PhenotypeCategorization( - category=YES, - phenotype=disease_id_query, - ) - self._diagnosis_excluded = PhenotypeCategorization( - category=NO, - phenotype=disease_id_query, - ) - - @property - def name(self) -> str: - return "Disease Predicate" - - @property - def description(self) -> str: - return f"Partition based on a diagnosis of {self._query.value}" - - @property - def variable_name(self) -> str: - return self._query.value - - @property - def phenotype(self) -> hpotk.TermId: - return self._query - - @property - def present_phenotype_categorization(self) -> PhenotypeCategorization[hpotk.TermId]: - return self._diagnosis_present - - def get_categorizations( - self, - ) -> typing.Sequence[PhenotypeCategorization[hpotk.TermId]]: - return self._diagnosis_present, self._diagnosis_excluded - - def test( - self, patient: Patient - ) -> typing.Optional[PhenotypeCategorization[hpotk.TermId]]: - """ - Test if the `patient` was diagnosed with a disease. - - Args: - patient (Patient): a `patient` instance to be tested. - - Returns: - typing.Optional[PhenotypeCategorization[P]]: PhenotypeCategorization, - either "YES" if the phenotype - is listed and is not excluded, or - "NO" if the disease is not listed - or is excluded. - """ - self._check_patient(patient) - - for dis in patient.diseases: - if dis.is_present and dis.identifier == self._query: - return self._diagnosis_present - - return self._diagnosis_excluded - - def __eq__(self, value: object) -> bool: - return isinstance(value, DiseasePresencePredicate) \ - and self._query == value._query - - def __hash__(self) -> int: - return hash((self._query,)) - - def __repr__(self): - return f"DiseasePresencePredicate(query={self._query})" diff --git a/src/gpsea/analysis/pscore/_api.py b/src/gpsea/analysis/pscore/_api.py index 8c622ed2..72049f04 100644 --- a/src/gpsea/analysis/pscore/_api.py +++ b/src/gpsea/analysis/pscore/_api.py @@ -4,7 +4,7 @@ import pandas as pd from gpsea.model import Patient -from ..predicate.genotype import GenotypePolyPredicate +from ..clf import GenotypeClassifier from .stats import PhenotypeScoreStatistic from .._base import MonoPhenotypeAnalysisResult, Statistic, StatisticResult @@ -59,6 +59,7 @@ class FunctionPhenotypeScorer(PhenotypeScorer): """ `FunctionPhenotypeScorer` computes the phenotype score using the provided function/closure. """ + # NOT PART OF THE PUBLIC API @property @@ -95,7 +96,7 @@ class PhenotypeScoreAnalysisResult(MonoPhenotypeAnalysisResult): The :attr:`~gpsea.analysis.MonoPhenotypeAnalysisResult.data` property provides a data frame with phenotype score for each tested individual: - + ========== ======== ========= patient_id genotype phenotype ========== ======== ========= @@ -109,22 +110,22 @@ class PhenotypeScoreAnalysisResult(MonoPhenotypeAnalysisResult): The DataFrame index includes the identifiers of the tested individuals and the values are stored in `genotype` and `phenotype` columns. - The `genotype` includes the genotype category ID (:attr:`~gpsea.analysis.predicate.PatientCategory.cat_id`) + The `genotype` includes the genotype category ID (:attr:`~gpsea.analysis.clf.PatientCategory.cat_id`) or `None` if the patient cannot be assigned into any genotype category. - + The `phenotype` contains a `float` with the phenotype score. A `NaN` value is used if the phenotype score is impossible to compute. """ def __init__( self, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, phenotype: PhenotypeScorer, statistic: Statistic, data: pd.DataFrame, statistic_result: StatisticResult, ): - super().__init__(gt_predicate, phenotype, statistic, data, statistic_result) + super().__init__(gt_clf, phenotype, statistic, data, statistic_result) assert isinstance(phenotype, PhenotypeScorer) def phenotype_scorer(self) -> PhenotypeScorer: @@ -150,25 +151,24 @@ def plot_boxplots( """ # skip the patients with unassigned genotype group bla = self._data.notna() - not_na_gts = bla.all(axis='columns') + not_na_gts = bla.all(axis="columns") data = self._data.loc[not_na_gts] - + # Check that the provided genotype predicate defines the same categories # as those found in `data.` actual = set(data[MonoPhenotypeAnalysisResult.GT_COL].unique()) - expected = set(c.cat_id for c in self._gt_predicate.get_categories()) - assert actual == expected, 'Mismatch in the genotype categories' - + expected = set(c.cat_id for c in self._gt_clf.get_categories()) + assert actual == expected, "Mismatch in the genotype classes" + x = [ data.loc[ - data[MonoPhenotypeAnalysisResult.GT_COL] == c.category.cat_id, MonoPhenotypeAnalysisResult.PH_COL + data[MonoPhenotypeAnalysisResult.GT_COL] == c.category.cat_id, + MonoPhenotypeAnalysisResult.PH_COL, ].to_list() - for c in self._gt_predicate.get_categorizations() - ] - - gt_cat_names = [ - c.category.name for c in self._gt_predicate.get_categorizations() + for c in self._gt_clf.get_categorizations() ] + + gt_cat_names = [c.category.name for c in self._gt_clf.get_categorizations()] bplot = ax.boxplot( x=x, patch_artist=True, @@ -179,16 +179,17 @@ def plot_boxplots( patch.set_facecolor(color) def __eq__(self, value: object) -> bool: - return isinstance(value, PhenotypeScoreAnalysisResult) \ - and super(MonoPhenotypeAnalysisResult, self).__eq__(value) - + return isinstance(value, PhenotypeScoreAnalysisResult) and super( + MonoPhenotypeAnalysisResult, self + ).__eq__(value) + def __hash__(self) -> int: return super(MonoPhenotypeAnalysisResult, self).__hash__() def __str__(self) -> str: return ( "PhenotypeScoreAnalysisResult(" - f"gt_predicate={self._gt_predicate}, " + f"gt_clf={self._gt_clf}, " f"phenotype_scorer={self._phenotype}, " f"statistic={self._statistic}, " f"data={self._data}, " @@ -201,11 +202,11 @@ def __repr__(self) -> str: class PhenotypeScoreAnalysis: """ - `PhenotypeScoreAnalysis` tests the association between two or more genotype groups + `PhenotypeScoreAnalysis` tests the association between two or more genotype classes and a phenotype score. - The genotype groups are created by a :class:`~gpsea.analysis.predicate.genotype.GenotypePolyPredicate` - and the phenotype score is computed with :class:`~gpsea.analysis.pscore.PhenotypeScorer`. + A genotype class is assigned by a :class:`~gpsea.analysis.clf.GenotypeClassifier` + and the phenotype score is computed with a :class:`~gpsea.analysis.pscore.PhenotypeScorer`. The association is tested with a :class:`~gpsea.analysis.pscore.stats.PhenotypeScoreStatistic` and the results are reported as a :class:`PhenotypeScoreAnalysisResult`. @@ -221,18 +222,18 @@ def __init__( def compare_genotype_vs_phenotype_score( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, pheno_scorer: PhenotypeScorer, ) -> PhenotypeScoreAnalysisResult: """ Compute the association between genotype groups and phenotype score. :param cohort: the cohort to analyze. - :param gt_predicate: a predicate for assigning an individual into a genotype group. + :param gt_clf: a classifier for assigning an individual into a genotype class. :param pheno_scorer: the scorer to compute phenotype score. """ assert ( - gt_predicate.n_categorizations() == 2 + gt_clf.n_categorizations() == 2 ), "We only support 2 genotype categories at this point" assert isinstance(pheno_scorer, PhenotypeScorer) @@ -243,29 +244,37 @@ def compare_genotype_vs_phenotype_score( columns=MonoPhenotypeAnalysisResult.DATA_COLUMNS, ) - # Apply the predicates on the patients - for patient in cohort: - gt_cat = gt_predicate.test(patient) + # Apply the classifier and scorer on the individuals + for individual in cohort: + gt_cat = gt_clf.test(individual) if gt_cat is None: - data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = None + data.loc[individual.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = None else: - data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = gt_cat.category.cat_id - - data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.PH_COL] = pheno_scorer.score(patient) + data.loc[individual.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = ( + gt_cat.category.cat_id + ) + + data.loc[individual.patient_id, MonoPhenotypeAnalysisResult.PH_COL] = ( + pheno_scorer.score(individual) + ) # Sort by PatientCategory.cat_id and unpack. # For now, we only allow to have up to 2 groups. - x_key, y_key = sorted(data[MonoPhenotypeAnalysisResult.GT_COL].dropna().unique()) + x_key, y_key = sorted( + data[MonoPhenotypeAnalysisResult.GT_COL].dropna().unique() + ) x = data.loc[ - data[MonoPhenotypeAnalysisResult.GT_COL] == x_key, MonoPhenotypeAnalysisResult.PH_COL + data[MonoPhenotypeAnalysisResult.GT_COL] == x_key, + MonoPhenotypeAnalysisResult.PH_COL, ].to_numpy(dtype=float) # type: ignore y = data.loc[ - data[MonoPhenotypeAnalysisResult.GT_COL] == y_key, MonoPhenotypeAnalysisResult.PH_COL + data[MonoPhenotypeAnalysisResult.GT_COL] == y_key, + MonoPhenotypeAnalysisResult.PH_COL, ].to_numpy(dtype=float) # type: ignore result = self._statistic.compute_pval(scores=(x, y)) return PhenotypeScoreAnalysisResult( - gt_predicate=gt_predicate, + gt_clf=gt_clf, phenotype=pheno_scorer, statistic=self._statistic, data=data, diff --git a/src/gpsea/analysis/temporal/_api.py b/src/gpsea/analysis/temporal/_api.py index 05d12e96..0ecffec1 100644 --- a/src/gpsea/analysis/temporal/_api.py +++ b/src/gpsea/analysis/temporal/_api.py @@ -8,12 +8,12 @@ import scipy.stats from gpsea.model import Patient -from ..predicate.genotype import GenotypePolyPredicate from ._base import Survival from ._util import prepare_censored_data from .stats import SurvivalStatistic +from ..clf import GenotypeClassifier from .._base import MonoPhenotypeAnalysisResult, StatisticResult, AnalysisException from .._partition import ContinuousPartitioning @@ -56,7 +56,7 @@ class SurvivalAnalysisResult(MonoPhenotypeAnalysisResult): ============ =========== ============================================ The index includes the individual IDs (`patient_id`), and then there are 2 columns - with the `genotype` group id (:attr:`~gpsea.analysis.predicate.PatientCategory.cat_id`) + with the `genotype` group id (:attr:`~gpsea.analysis.clf.PatientCategory.cat_id`) and the `phenotype` with the survival represented as :class:`~gpsea.analysis.temporal.Survival` object. A `genotype` value may be missing (`None`) if the individual cannot be assigned @@ -66,14 +66,14 @@ class SurvivalAnalysisResult(MonoPhenotypeAnalysisResult): def __init__( self, - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, endpoint: Endpoint, statistic: SurvivalStatistic, data: pd.DataFrame, statistic_result: StatisticResult, ): super().__init__( - gt_predicate=gt_predicate, + gt_clf=gt_clf, phenotype=endpoint, statistic=statistic, data=data, @@ -103,7 +103,7 @@ def plot_kaplan_meier_curves( :param ax: a Matplotlib `Axes` to draw on. """ - for pat_cat in self._gt_predicate.get_categories(): + for pat_cat in self._gt_clf.get_categories(): survivals = self._data.loc[ self._data[MonoPhenotypeAnalysisResult.GT_COL] == pat_cat.cat_id, MonoPhenotypeAnalysisResult.PH_COL, @@ -113,14 +113,13 @@ def plot_kaplan_meier_curves( censored_data = prepare_censored_data(survivals=non_na) data = scipy.stats.ecdf(censored_data) data.sf.plot(ax, label=pat_cat.name) - + ax.legend() def __eq__(self, value: object) -> bool: - return ( - isinstance(value, SurvivalAnalysisResult) - and super(MonoPhenotypeAnalysisResult, self).__eq__(value) - ) + return isinstance(value, SurvivalAnalysisResult) and super( + MonoPhenotypeAnalysisResult, self + ).__eq__(value) def __hash__(self) -> int: return super(MonoPhenotypeAnalysisResult, self).__hash__() @@ -128,7 +127,7 @@ def __hash__(self) -> int: def __str__(self) -> str: return ( "SurvivalAnalysisResult(" - f"gt_predicate={self._gt_predicate}, " + f"gt_clf={self._gt_clf}, " f"endpoint={self._phenotype}, " f"statistic={self._statistic}, " f"data={self._data}, " @@ -143,7 +142,7 @@ class SurvivalAnalysis: """ `SurvivalAnalysis` compares the survivals of genotype groups with respect to an :class:`~gpsea.analysis.temporal.Endpoint`. - + The cohort is partitioned into groups using a genotype predicate and survival is computed for each cohort member. The difference between survivals is tested with selected :class:`~gpsea.analysis.temporal.stats.SurvivalStatistic`. @@ -162,13 +161,13 @@ def __init__( def compare_genotype_vs_survival( self, cohort: typing.Iterable[Patient], - gt_predicate: GenotypePolyPredicate, + gt_clf: GenotypeClassifier, endpoint: Endpoint, ) -> SurvivalAnalysisResult: """ Execute the survival analysis on a given `cohort`. """ - + idx = pd.Index((patient.patient_id for patient in cohort), name="patient_id") data = pd.DataFrame( None, @@ -178,11 +177,13 @@ def compare_genotype_vs_survival( survivals = defaultdict(list) # Apply the predicate and the survival metric on the cohort for patient in cohort: - gt_cat = gt_predicate.test(patient) + gt_cat = gt_clf.test(patient) if gt_cat is None: data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = None else: - data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = gt_cat.category.cat_id + data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.GT_COL] = ( + gt_cat.category.cat_id + ) survival = endpoint.compute_survival(patient) data.loc[patient.patient_id, MonoPhenotypeAnalysisResult.PH_COL] = survival # type: ignore @@ -190,7 +191,7 @@ def compare_genotype_vs_survival( if gt_cat is not None and survival is not None: survivals[gt_cat].append(survival) - vals = tuple(survivals[gt_cat] for gt_cat in gt_predicate.get_categorizations()) + vals = tuple(survivals[gt_cat] for gt_cat in gt_clf.get_categorizations()) result = self._statistic.compute_pval(vals) if math.isnan(result.pval): raise AnalysisException( @@ -199,7 +200,7 @@ def compare_genotype_vs_survival( ) return SurvivalAnalysisResult( - gt_predicate=gt_predicate, + gt_clf=gt_clf, endpoint=endpoint, statistic=self._statistic, data=data, diff --git a/src/gpsea/preprocessing/_vep.py b/src/gpsea/preprocessing/_vep.py index a4d3d53d..7c959602 100644 --- a/src/gpsea/preprocessing/_vep.py +++ b/src/gpsea/preprocessing/_vep.py @@ -10,13 +10,9 @@ class VepFunctionalAnnotator(FunctionalAnnotator): - """A `FunctionalAnnotator` that uses Variant Effect Predictor (VEP) REST API to - do functional variant annotation. - - Args: - include_computational_txs (bool): Include computational transcripts, such as - RefSeq `XM_`. - timeout (int): Timeout in seconds + """ + `VepFunctionalAnnotator` uses the Variant Effect Predictor (VEP) REST API + to perform functional variant annotation. """ NONCODING_EFFECTS = { @@ -51,16 +47,6 @@ def __init__(self, self._timeout = timeout def annotate(self, variant_coordinates: VariantCoordinates) -> typing.Sequence[TranscriptAnnotation]: - """Perform functional annotation using Variant Effect Predictor (VEP) REST API. - - Args: - variant_coordinates (VariantCoordinates): A VariantCoordinates object - Returns: - typing.Sequence[TranscriptAnnotation]: A sequence of transcript - annotations for the variant coordinates - Raises: - ValueError if VEP times out or does not return a response or if the response is not formatted as we expect. - """ response = self.fetch_response(variant_coordinates) return self.process_response(variant_coordinates.variant_key, response) diff --git a/src/gpsea/view/_phenotype_analysis.py b/src/gpsea/view/_phenotype_analysis.py index d2645e34..8be59735 100644 --- a/src/gpsea/view/_phenotype_analysis.py +++ b/src/gpsea/view/_phenotype_analysis.py @@ -22,23 +22,23 @@ def summarize_hpo_analysis( pheno_idx = pd.Index(result.phenotypes) # Column index: multiindex of counts and percentages for all genotype predicate groups gt_idx = pd.MultiIndex.from_product( - iterables=(result.gt_predicate.get_categories(), ("Count", "Percent")), - names=(result.gt_predicate.variable_name, None), + iterables=(result.gt_clf.get_categories(), ("Count", "Percent")), + names=(result.gt_clf.variable_name, None), ) # We'll fill this frame with data df = pd.DataFrame(index=pheno_idx, columns=gt_idx) - for ph_predicate, count in zip(result.pheno_predicates, result.all_counts): + for ph_clf, count in zip(result.pheno_clfs, result.all_counts): # Sum across the phenotype categories (collapse the rows). gt_totals = count.sum() for gt_cat in count.columns: - cnt = count.loc[ph_predicate.present_phenotype_category, gt_cat] + cnt = count.loc[ph_clf.present_phenotype_category, gt_cat] total = gt_totals[gt_cat] - df.loc[ph_predicate.phenotype, (gt_cat, "Count")] = f"{cnt}/{total}" + df.loc[ph_clf.phenotype, (gt_cat, "Count")] = f"{cnt}/{total}" pct = 0 if total == 0 else round(cnt * 100 / total) - df.loc[ph_predicate.phenotype, (gt_cat, "Percent")] = f"{pct}%" + df.loc[ph_clf.phenotype, (gt_cat, "Percent")] = f"{pct}%" # Add columns with p values and corrected p values (if present) p_val_col_name = "p values" @@ -56,7 +56,9 @@ def summarize_hpo_analysis( # and only report the tested HPO terms with_p_value = df[("", p_val_col_name)].notna() if result.corrected_pvals is not None: - return df.sort_values(by=[("", corrected_p_val_col_name), ("", p_val_col_name)]).loc[with_p_value] + return df.sort_values( + by=[("", corrected_p_val_col_name), ("", p_val_col_name)] + ).loc[with_p_value] else: return df.sort_values(by=("", p_val_col_name)).loc[with_p_value] diff --git a/tests/analysis/predicate/genotype/conftest.py b/tests/analysis/clf/conftest.py similarity index 73% rename from tests/analysis/predicate/genotype/conftest.py rename to tests/analysis/clf/conftest.py index 27da841e..b270d955 100644 --- a/tests/analysis/predicate/genotype/conftest.py +++ b/tests/analysis/clf/conftest.py @@ -1,17 +1,13 @@ import pytest -import hpotk - from gpsea.model import ( Genotype, Genotypes, - ImpreciseSvInfo, Patient, SampleLabels, Sex, TranscriptAnnotation, Variant, - VariantClass, VariantCoordinates, VariantEffect, VariantInfo, @@ -21,182 +17,9 @@ GenomicRegion, Region, Strand, - ) -@pytest.fixture(scope="package") -def sample_labels() -> SampleLabels: - return SampleLabels("jim") - - -@pytest.fixture(scope="package") -def missense_variant( - genome_build: GenomeBuild, - sample_labels: SampleLabels, -) -> Variant: - chr22 = genome_build.contig_by_name("chr22") - assert chr22 is not None - return Variant( - variant_info=VariantInfo( - variant_coordinates=VariantCoordinates( - region=GenomicRegion( - contig=chr22, - start=100, - end=101, - strand=Strand.POSITIVE, - ), - ref="C", - alt="G", - change_length=0, - ) - ), - tx_annotations=( - TranscriptAnnotation( - gene_id="a_gene", - tx_id="tx:xyz", - hgvs_cdna=None, - is_preferred=False, - variant_effects=( - VariantEffect.MISSENSE_VARIANT, - VariantEffect.SPLICE_DONOR_VARIANT, - ), - affected_exons=(4,), - protein_id="pt:xyz", - hgvsp=None, - protein_effect_coordinates=Region(40, 41), - ), - TranscriptAnnotation( - gene_id="a_gene", - tx_id="tx:abc", - hgvs_cdna=None, - is_preferred=False, - variant_effects=(VariantEffect.INTRON_VARIANT,), - affected_exons=None, - protein_id=None, - hgvsp=None, - protein_effect_coordinates=None, - ), - ), - genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), - ) - - -@pytest.fixture(scope="package") -def frameshift_variant( - genome_build: GenomeBuild, - sample_labels: SampleLabels, -) -> Variant: - chr22 = genome_build.contig_by_name("chr22") - assert chr22 is not None - return Variant( - variant_info=VariantInfo( - variant_coordinates=VariantCoordinates( - region=GenomicRegion( - contig=chr22, - start=110, - end=113, - strand=Strand.POSITIVE, - ), - ref="CCC", - alt="C", - change_length=-2, - ) - ), - tx_annotations=( - TranscriptAnnotation( - gene_id="a_gene", - tx_id="tx:xyz", - hgvs_cdna=None, - is_preferred=False, - variant_effects=(VariantEffect.FRAMESHIFT_VARIANT,), - affected_exons=(5,), - protein_id="pt:xyz", - hgvsp=None, - protein_effect_coordinates=Region(43, 44), - ), - TranscriptAnnotation( - gene_id="a_gene", - tx_id="tx:abc", - hgvs_cdna=None, - is_preferred=False, - variant_effects=(VariantEffect.INTRON_VARIANT,), - affected_exons=None, - protein_id=None, - hgvsp=None, - protein_effect_coordinates=None, - ), - ), - genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), - ) - - -@pytest.fixture(scope="package") -def structural_variant( - sample_labels: SampleLabels, -) -> Variant: - return Variant( - variant_info=VariantInfo( - sv_info=ImpreciseSvInfo( - structural_type=hpotk.TermId.from_curie( - "SO:1000029" - ), # chromosomal_deletion - variant_class=VariantClass.DEL, - gene_id="HGNC:21316", - gene_symbol="ANKRD11", - ), - ), - tx_annotations=( - TranscriptAnnotation( - gene_id="ANKRD11", - tx_id="NM_013275.6", - hgvs_cdna=None, - is_preferred=True, - variant_effects=(VariantEffect.TRANSCRIPT_ABLATION,), - affected_exons=range(13), # I counted 13 exons - protein_id=None, - hgvsp=None, - protein_effect_coordinates=None, - ), - ), - genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), - ) - - -@pytest.fixture(scope="package") -def patient_w_missense( - sample_labels: SampleLabels, - missense_variant: Variant, -) -> Patient: - return Patient.from_raw_parts( - labels=sample_labels, - sex=Sex.UNKNOWN_SEX, - age=None, - vital_status=None, - phenotypes=(), - measurements=(), - diseases=(), - variants=(missense_variant,), - ) - - -@pytest.fixture(scope="package") -def patient_w_frameshift( - sample_labels: SampleLabels, - frameshift_variant: Variant, -) -> Patient: - return Patient.from_raw_parts( - labels=sample_labels, - sex=Sex.UNKNOWN_SEX, - age=None, - vital_status=None, - phenotypes=(), - measurements=(), - diseases=(), - variants=(frameshift_variant,), - ) - - """ Genesis family - Autosomal dominant but can also be used as X dominant. diff --git a/tests/analysis/predicate/genotype/test_allele_counter.py b/tests/analysis/clf/test_allele_counter.py similarity index 96% rename from tests/analysis/predicate/genotype/test_allele_counter.py rename to tests/analysis/clf/test_allele_counter.py index 38bde819..98b90e53 100644 --- a/tests/analysis/predicate/genotype/test_allele_counter.py +++ b/tests/analysis/clf/test_allele_counter.py @@ -12,7 +12,9 @@ VariantInfo, ) from gpsea.model.genome import Contig, GenomeBuild, GenomicRegion, Region, Strand -from gpsea.analysis.predicate.genotype import AlleleCounter, VariantPredicates +from gpsea.analysis.clf import AlleleCounter +import gpsea.analysis.predicate as vp + @pytest.fixture(scope="module") @@ -209,7 +211,7 @@ def test_count_keys( variant_key: str, expected: int, ): - predicate = VariantPredicates.variant_key(key=variant_key) + predicate = vp.variant_key(key=variant_key) counter = AlleleCounter(predicate) assert counter.count(patient) == expected @@ -226,7 +228,7 @@ def test_count_keys( def test_count_effects( self, patient: Patient, variant_effect: VariantEffect, tx_id: str, expected: int ): - predicate = VariantPredicates.variant_effect(effect=variant_effect, tx_id=tx_id) + predicate = vp.variant_effect(effect=variant_effect, tx_id=tx_id) counter = AlleleCounter(predicate) assert counter.count(patient) == expected diff --git a/tests/analysis/predicate/genotype/test_gt_predicates.py b/tests/analysis/clf/test_gt_predicates.py similarity index 73% rename from tests/analysis/predicate/genotype/test_gt_predicates.py rename to tests/analysis/clf/test_gt_predicates.py index bf9957a6..82e1a0e1 100644 --- a/tests/analysis/predicate/genotype/test_gt_predicates.py +++ b/tests/analysis/clf/test_gt_predicates.py @@ -1,13 +1,13 @@ import pytest from gpsea.model import Patient, Sex, SampleLabels, VariantEffect -from gpsea.analysis.predicate.genotype import ( - sex_predicate, - monoallelic_predicate, - biallelic_predicate, +from gpsea.analysis.clf import ( + sex_classifier, + monoallelic_classifier, + biallelic_classifier, allele_count, - VariantPredicates, ) +from gpsea.analysis.predicate import variant_effect TX_ID = "tx:xyz" @@ -52,7 +52,7 @@ def test_ad_family__missense_subset( name: str, request: pytest.FixtureRequest, ): - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=TX_ID) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=TX_ID) patient = request.getfixturevalue(patient_name) predicate = allele_count( counts=((0,), (1,)), @@ -105,7 +105,7 @@ def test_ar_family__only_missense( request: pytest.FixtureRequest, ): patient = request.getfixturevalue(patient_name) - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=TX_ID) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, tx_id=TX_ID) predicate = allele_count( counts=((0,), (1,), (2,)), target=is_missense, @@ -127,7 +127,7 @@ def test_eq_and_hash(self): def test_summarize_groups(self): a = allele_count(counts=((0, 1), (2,))) - assert a.summarize_groups() == "Allele count: 0 OR 1, 2" + assert a.summarize_classes() == "Allele count: 0 OR 1, 2" class TestAllelePredicates: @@ -146,12 +146,12 @@ def test_monoallelic_predicate_ad_family( expected_name: str, request: pytest.FixtureRequest, ): - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) - is_synonymous = VariantPredicates.variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) - gt_predicate = monoallelic_predicate(is_missense, is_synonymous) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) + is_synonymous = variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) + gt_clf = monoallelic_classifier(is_missense, is_synonymous) individual = request.getfixturevalue(individual_name) - actual_cat = gt_predicate.test(individual) + actual_cat = gt_clf.test(individual) assert actual_cat is not None assert actual_cat.category.name == expected_name @@ -159,12 +159,12 @@ def test_monoallelic_predicate_ad_family( def test_monoallelic_predicate__general_stuff( self, ): - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) - is_synonymous = VariantPredicates.variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) + is_synonymous = variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) - gt_predicate = monoallelic_predicate(is_missense, is_synonymous) + gt_predicate = monoallelic_classifier(is_missense, is_synonymous) - assert gt_predicate.summarize_groups() == 'Allele group: A, B' + assert gt_predicate.summarize_classes() == 'Allele group: A, B' @pytest.mark.parametrize( "individual_name,expected_name", @@ -181,9 +181,9 @@ def test_biallelic_predicate( expected_name: str, request: pytest.FixtureRequest, ): - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) - is_synonymous = VariantPredicates.variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) - gt_predicate = biallelic_predicate(is_missense, is_synonymous) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) + is_synonymous = variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) + gt_predicate = biallelic_classifier(is_missense, is_synonymous) individual = request.getfixturevalue(individual_name) actual_cat = gt_predicate.test(individual) @@ -194,12 +194,12 @@ def test_biallelic_predicate( def test_biallelic_predicate__general_stuff( self, ): - is_missense = VariantPredicates.variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) - is_synonymous = VariantPredicates.variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) + is_missense = variant_effect(VariantEffect.MISSENSE_VARIANT, TX_ID) + is_synonymous = variant_effect(VariantEffect.SYNONYMOUS_VARIANT, TX_ID) - gt_predicate = biallelic_predicate(is_missense, is_synonymous) + gt_predicate = biallelic_classifier(is_missense, is_synonymous) - assert gt_predicate.summarize_groups() == 'Allele group: A/A, A/B, B/B' + assert gt_predicate.summarize_classes() == 'Allele group: A/A, A/B, B/B' class TestSexPredicate: @@ -211,7 +211,7 @@ def test_sex_predicate( jane = TestSexPredicate.make_patient('Jane', Sex.FEMALE) miffy = TestSexPredicate.make_patient('Miffy', Sex.UNKNOWN_SEX) - gt_predicate = sex_predicate() + gt_predicate = sex_classifier() female, male = gt_predicate.get_categorizations() assert gt_predicate.test(joe) == male @@ -219,9 +219,9 @@ def test_sex_predicate( assert gt_predicate.test(miffy) is None def test_summarize_groups(self): - gt_predicate = sex_predicate() + gt_predicate = sex_classifier() - assert gt_predicate.summarize_groups() == "Sex: FEMALE, MALE" + assert gt_predicate.summarize_classes() == "Sex: FEMALE, MALE" @staticmethod def make_patient(label: str, sex: Sex) -> Patient: diff --git a/tests/analysis/predicate/test_phenotype.py b/tests/analysis/clf/test_phenotype.py similarity index 59% rename from tests/analysis/predicate/test_phenotype.py rename to tests/analysis/clf/test_phenotype.py index 78ec8855..35f44f67 100644 --- a/tests/analysis/predicate/test_phenotype.py +++ b/tests/analysis/clf/test_phenotype.py @@ -2,8 +2,8 @@ from gpsea.model import Cohort -from gpsea.analysis.predicate.phenotype import PhenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import prepare_hpo_terms_of_interest, prepare_predicates_for_terms_of_interest +from gpsea.analysis.clf import PhenotypeClassifier +from gpsea.analysis.clf import prepare_hpo_terms_of_interest, prepare_classifiers_for_terms_of_interest def test_prepare_hpo_terms_of_interest( @@ -22,10 +22,10 @@ def test_prepare_predicates_for_terms_of_interest( suox_cohort: Cohort, hpo: hpotk.MinimalOntology, ): - predicates = prepare_predicates_for_terms_of_interest( + predicates = prepare_classifiers_for_terms_of_interest( cohort=suox_cohort, hpo=hpo, ) assert len(predicates) == 71 - assert all(isinstance(p, PhenotypePolyPredicate) for p in predicates) + assert all(isinstance(p, PhenotypeClassifier) for p in predicates) diff --git a/tests/analysis/conftest.py b/tests/analysis/conftest.py index bde9f2ac..b48d2998 100644 --- a/tests/analysis/conftest.py +++ b/tests/analysis/conftest.py @@ -2,22 +2,25 @@ import hpotk -from gpsea.model import * -from gpsea.model.genome import * -from gpsea.analysis.predicate.genotype import VariantPredicate - - -class AlwaysFalseVariantPredicate(VariantPredicate): - def get_question(self) -> str: - return "No question asked, just always returns False" - - def test(self, variant: Variant) -> bool: - return False +from gpsea.model import ( + Cohort, + SampleLabels, + Patient, + Sex, + Phenotype, + Variant, + Genotype, + Genotypes, + VariantCoordinates, + VariantEffect, +) +from gpsea.model.genome import GenomeBuild +from gpsea.analysis.predicate import VariantPredicate, true @pytest.fixture(scope="package") def always_false_variant_predicate() -> VariantPredicate: - return AlwaysFalseVariantPredicate() + return ~true() @pytest.fixture(scope="package") diff --git a/tests/analysis/pcats/test_disease.py b/tests/analysis/pcats/test_disease.py index 9e16b300..92da0a63 100644 --- a/tests/analysis/pcats/test_disease.py +++ b/tests/analysis/pcats/test_disease.py @@ -5,20 +5,18 @@ from gpsea.analysis.pcats import DiseaseAnalysis from gpsea.analysis.pcats.stats import CountStatistic, FisherExactTest -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import DiseasePresencePredicate +from gpsea.analysis.clf import GenotypeClassifier, DiseasePresenceClassifier class TestDiseaseAnalysis: - - @pytest.fixture(scope='class') + @pytest.fixture(scope="class") def count_statistic(self) -> CountStatistic: return FisherExactTest() - @pytest.fixture(scope='class') - def suox_disease(self) -> DiseasePresencePredicate: - sulfite_oxidase_deficiency = hpotk.TermId.from_curie('OMIM:272300') - return DiseasePresencePredicate( + @pytest.fixture(scope="class") + def suox_disease(self) -> DiseasePresenceClassifier: + sulfite_oxidase_deficiency = hpotk.TermId.from_curie("OMIM:272300") + return DiseasePresenceClassifier( disease_id_query=sulfite_oxidase_deficiency, ) @@ -29,21 +27,21 @@ def analysis( ) -> DiseaseAnalysis: return DiseaseAnalysis( count_statistic=count_statistic, - mtc_correction='fdr_bh', - mtc_alpha=.05, + mtc_correction="fdr_bh", + mtc_alpha=0.05, ) def test_compare_genotype_vs_phenotypes( self, analysis: DiseaseAnalysis, suox_cohort: Cohort, - suox_gt_predicate: GenotypePolyPredicate, - suox_disease: DiseasePresencePredicate, + suox_gt_clf: GenotypeClassifier, + suox_disease: DiseasePresenceClassifier, ): results = analysis.compare_genotype_vs_phenotypes( cohort=suox_cohort.all_patients, - gt_predicate=suox_gt_predicate, - pheno_predicates=(suox_disease,), + gt_clf=suox_gt_clf, + pheno_clfs=(suox_disease,), ) assert results is not None diff --git a/tests/analysis/pcats/test_hpo_term_analysis.py b/tests/analysis/pcats/test_hpo_term_analysis.py index cb9a46a1..45278867 100644 --- a/tests/analysis/pcats/test_hpo_term_analysis.py +++ b/tests/analysis/pcats/test_hpo_term_analysis.py @@ -9,12 +9,10 @@ from gpsea.analysis.mtc_filter import PhenotypeMtcFilter, HpoMtcFilter from gpsea.analysis.pcats import HpoTermAnalysis from gpsea.analysis.pcats.stats import CountStatistic, FisherExactTest -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import PhenotypePolyPredicate +from gpsea.analysis.clf import GenotypeClassifier, PhenotypeClassifier class TestHpoTermAnalysis: - @pytest.fixture(scope="class") def count_statistic(self) -> CountStatistic: return FisherExactTest() @@ -47,13 +45,13 @@ def test_compare_genotype_vs_phenotypes( self, analysis: HpoTermAnalysis, suox_cohort: Cohort, - suox_gt_predicate: GenotypePolyPredicate, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_gt_clf: GenotypeClassifier, + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], ): results = analysis.compare_genotype_vs_phenotypes( cohort=suox_cohort.all_patients, - gt_predicate=suox_gt_predicate, - pheno_predicates=suox_pheno_predicates, + gt_clf=suox_gt_clf, + pheno_clfs=suox_pheno_clfs, ) assert results is not None @@ -86,13 +84,13 @@ def test_compare_genotype_vs_phenotypes_can_handle_if_no_phenotypes_are_left_aft self, analysis: HpoTermAnalysis, degenerated_cohort: Cohort, - suox_gt_predicate: GenotypePolyPredicate, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_gt_clf: GenotypeClassifier, + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], ): result = analysis.compare_genotype_vs_phenotypes( cohort=degenerated_cohort, - gt_predicate=suox_gt_predicate, - pheno_predicates=suox_pheno_predicates, + gt_clf=suox_gt_clf, + pheno_clfs=suox_pheno_clfs, ) assert ( diff --git a/tests/analysis/predicate/conftest.py b/tests/analysis/predicate/conftest.py new file mode 100644 index 00000000..497479b6 --- /dev/null +++ b/tests/analysis/predicate/conftest.py @@ -0,0 +1,191 @@ +import pytest + +import hpotk + +from gpsea.model import ( + SampleLabels, + Patient, + Variant, + VariantInfo, + VariantCoordinates, + TranscriptAnnotation, + VariantEffect, + Genotype, + Genotypes, + VariantClass, + Sex, + ImpreciseSvInfo, +) +from gpsea.model.genome import GenomeBuild, GenomicRegion, Strand, Region + + +@pytest.fixture(scope="package") +def sample_labels() -> SampleLabels: + return SampleLabels("jim") + + +@pytest.fixture(scope="package") +def missense_variant( + genome_build: GenomeBuild, + sample_labels: SampleLabels, +) -> Variant: + chr22 = genome_build.contig_by_name("chr22") + assert chr22 is not None + return Variant( + variant_info=VariantInfo( + variant_coordinates=VariantCoordinates( + region=GenomicRegion( + contig=chr22, + start=100, + end=101, + strand=Strand.POSITIVE, + ), + ref="C", + alt="G", + change_length=0, + ) + ), + tx_annotations=( + TranscriptAnnotation( + gene_id="a_gene", + tx_id="tx:xyz", + hgvs_cdna=None, + is_preferred=False, + variant_effects=( + VariantEffect.MISSENSE_VARIANT, + VariantEffect.SPLICE_DONOR_VARIANT, + ), + affected_exons=(4,), + protein_id="pt:xyz", + hgvsp=None, + protein_effect_coordinates=Region(40, 41), + ), + TranscriptAnnotation( + gene_id="a_gene", + tx_id="tx:abc", + hgvs_cdna=None, + is_preferred=False, + variant_effects=(VariantEffect.INTRON_VARIANT,), + affected_exons=None, + protein_id=None, + hgvsp=None, + protein_effect_coordinates=None, + ), + ), + genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), + ) + + +@pytest.fixture(scope="package") +def frameshift_variant( + genome_build: GenomeBuild, + sample_labels: SampleLabels, +) -> Variant: + chr22 = genome_build.contig_by_name("chr22") + assert chr22 is not None + return Variant( + variant_info=VariantInfo( + variant_coordinates=VariantCoordinates( + region=GenomicRegion( + contig=chr22, + start=110, + end=113, + strand=Strand.POSITIVE, + ), + ref="CCC", + alt="C", + change_length=-2, + ) + ), + tx_annotations=( + TranscriptAnnotation( + gene_id="a_gene", + tx_id="tx:xyz", + hgvs_cdna=None, + is_preferred=False, + variant_effects=(VariantEffect.FRAMESHIFT_VARIANT,), + affected_exons=(5,), + protein_id="pt:xyz", + hgvsp=None, + protein_effect_coordinates=Region(43, 44), + ), + TranscriptAnnotation( + gene_id="a_gene", + tx_id="tx:abc", + hgvs_cdna=None, + is_preferred=False, + variant_effects=(VariantEffect.INTRON_VARIANT,), + affected_exons=None, + protein_id=None, + hgvsp=None, + protein_effect_coordinates=None, + ), + ), + genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), + ) + + +@pytest.fixture(scope="package") +def structural_variant( + sample_labels: SampleLabels, +) -> Variant: + return Variant( + variant_info=VariantInfo( + sv_info=ImpreciseSvInfo( + structural_type=hpotk.TermId.from_curie( + "SO:1000029" + ), # chromosomal_deletion + variant_class=VariantClass.DEL, + gene_id="HGNC:21316", + gene_symbol="ANKRD11", + ), + ), + tx_annotations=( + TranscriptAnnotation( + gene_id="ANKRD11", + tx_id="NM_013275.6", + hgvs_cdna=None, + is_preferred=True, + variant_effects=(VariantEffect.TRANSCRIPT_ABLATION,), + affected_exons=range(13), # I counted 13 exons + protein_id=None, + hgvsp=None, + protein_effect_coordinates=None, + ), + ), + genotypes=Genotypes.single(sample_labels, Genotype.HETEROZYGOUS), + ) + + +@pytest.fixture(scope="package") +def patient_w_missense( + sample_labels: SampleLabels, + missense_variant: Variant, +) -> Patient: + return Patient.from_raw_parts( + labels=sample_labels, + sex=Sex.UNKNOWN_SEX, + age=None, + vital_status=None, + phenotypes=(), + measurements=(), + diseases=(), + variants=(missense_variant,), + ) + + +@pytest.fixture(scope="package") +def patient_w_frameshift( + sample_labels: SampleLabels, + frameshift_variant: Variant, +) -> Patient: + return Patient.from_raw_parts( + labels=sample_labels, + sex=Sex.UNKNOWN_SEX, + age=None, + vital_status=None, + phenotypes=(), + measurements=(), + diseases=(), + variants=(frameshift_variant,), + ) diff --git a/tests/analysis/predicate/genotype/__init__.py b/tests/analysis/predicate/genotype/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/analysis/predicate/genotype/test_predicates.py b/tests/analysis/predicate/test_predicates.py similarity index 83% rename from tests/analysis/predicate/genotype/test_predicates.py rename to tests/analysis/predicate/test_predicates.py index b1991f1e..95434608 100644 --- a/tests/analysis/predicate/genotype/test_predicates.py +++ b/tests/analysis/predicate/test_predicates.py @@ -1,6 +1,6 @@ import pytest -from gpsea.analysis.predicate.genotype import VariantPredicates +import gpsea.analysis.predicate as vp from gpsea.model import ( Cohort, FeatureInfo, @@ -19,7 +19,7 @@ def test_always_true_predicate( self, suox_cohort: Cohort, ): - predicate = VariantPredicates.true() + predicate = vp.true() assert all(predicate.test(v) for v in suox_cohort.all_variants()) @pytest.mark.parametrize( @@ -37,7 +37,7 @@ def test_variant_effect_predicate( effect: VariantEffect, expected: bool, ): - predicate = VariantPredicates.variant_effect(effect, tx_id='tx:xyz') + predicate = vp.variant_effect(effect, tx_id='tx:xyz') assert predicate.test(missense_variant) == expected @@ -54,7 +54,7 @@ def test_variant_key_predicate( variant_key: str, expected: bool, ): - predicate = VariantPredicates.variant_key(variant_key) + predicate = vp.variant_key(variant_key) assert predicate.test(missense_variant) == expected @@ -72,13 +72,13 @@ def test_exon_predicate( exon: int, expected: bool, ): - predicate = VariantPredicates.exon(exon, tx_id='tx:xyz') + predicate = vp.exon(exon, tx_id='tx:xyz') assert predicate.test(missense_variant) == expected def test_exon_predicate_fails_on_invalid_exon(self): with pytest.raises(AssertionError) as e: - VariantPredicates.exon(0, tx_id='tx:xyz') + vp.exon(0, tx_id='tx:xyz') assert e.value.args[0] == '`exon` must be a positive `int`' @pytest.mark.parametrize( @@ -94,7 +94,7 @@ def test_transcript_predicate( tx_id: str, expected: bool, ): - predicate = VariantPredicates.transcript(tx_id) + predicate = vp.transcript(tx_id) assert predicate.test(missense_variant) == expected @@ -111,7 +111,7 @@ def test_gene_predicate( symbol: str, expected: bool, ): - predicate = VariantPredicates.gene(symbol) + predicate = vp.gene(symbol) assert predicate.test(missense_variant) == expected @@ -120,7 +120,7 @@ def test_is_large_imprecise_sv( missense_variant: Variant, structural_variant: Variant, ): - predicate = VariantPredicates.is_large_imprecise_sv() + predicate = vp.is_large_imprecise_sv() assert predicate.test(missense_variant) is False assert predicate.test(structural_variant) is True @@ -130,7 +130,7 @@ def test_is_structural_predicate( missense_variant: Variant, structural_variant: Variant, ): - predicate = VariantPredicates.is_structural_variant() + predicate = vp.is_structural_variant() assert predicate.test(missense_variant) is False assert predicate.test(structural_variant) is True @@ -140,7 +140,7 @@ def test_structural_type( missense_variant: Variant, structural_variant: Variant, ): - predicate = VariantPredicates.structural_type('SO:1000029') + predicate = vp.structural_type('SO:1000029') assert predicate.test(missense_variant) is False assert predicate.test(structural_variant) is True @@ -149,7 +149,7 @@ def test_variant_class( self, missense_variant: Variant, ): - predicate = VariantPredicates.variant_class(VariantClass.SNV) + predicate = vp.variant_class(VariantClass.SNV) assert predicate.test(missense_variant) is True @@ -158,7 +158,7 @@ def test_change_length( missense_variant: Variant, structural_variant: Variant, ): - predicate = VariantPredicates.change_length('==', 0) + predicate = vp.change_length('==', 0) # variant is an SNP assert predicate.test(missense_variant) is True @@ -171,14 +171,14 @@ def test_change_length_is_false_for_imprecise_SVs_no_matter_what( structural_variant: Variant, ): for op in ("<", "<=", "==", "!=", ">=", ">"): - predicate = VariantPredicates.change_length(op, 0) + predicate = vp.change_length(op, 0) assert predicate.test(structural_variant) is False def test_structural_deletion( self, structural_variant: Variant, ): - predicate = VariantPredicates.is_structural_deletion() + predicate = vp.is_structural_deletion() assert predicate.test(structural_variant) is True @@ -217,7 +217,7 @@ def test_protein_feature_type( protein_metadata: ProteinMetadata, expected: bool, ): - predicate = VariantPredicates.protein_feature_type( + predicate = vp.protein_feature_type( feature_type=feature_type, protein_metadata=protein_metadata, ) @@ -239,7 +239,7 @@ def test_protein_feature_id( protein_metadata: ProteinMetadata, expected: bool, ): - predicate = VariantPredicates.protein_feature( + predicate = vp.protein_feature( feature_id=feature_id, protein_metadata=protein_metadata, ) @@ -253,8 +253,8 @@ class TestLogicalVariantPredicate: """ def test_equivalent_predicates_are_not_chained(self): - a1 = VariantPredicates.gene(symbol='A') - a2 = VariantPredicates.gene(symbol='A') + a1 = vp.gene(symbol='A') + a2 = vp.gene(symbol='A') assert a1 & a2 is a1 assert a1 | a2 is a1 @@ -278,7 +278,7 @@ def test_und_predicate( right: str, expected: bool, ): - predicate = VariantPredicates.transcript(tx_id=left) & VariantPredicates.transcript(tx_id=right) + predicate = vp.transcript(tx_id=left) & vp.transcript(tx_id=right) assert predicate.test(missense_variant) == expected @@ -298,7 +298,7 @@ def test_or_predicate( right: str, expected: bool, ): - predicate = VariantPredicates.transcript(tx_id=left) | VariantPredicates.transcript(tx_id=right) + predicate = vp.transcript(tx_id=left) | vp.transcript(tx_id=right) assert predicate.test(missense_variant) == expected @@ -315,14 +315,14 @@ def test_inv_predicate( tx_id: str, expected: bool, ): - predicate = ~VariantPredicates.transcript(tx_id) + predicate = ~vp.transcript(tx_id) assert predicate.test(missense_variant) == expected def test_no_double_inv_happens( self, ): - predicate = VariantPredicates.gene('FBN1') + predicate = vp.gene('FBN1') # Inverting a predicate must produce a new predicate. inv_predicate = ~predicate @@ -337,7 +337,7 @@ def test_empty_all_predicate_raises_error( ): with pytest.raises(ValueError) as e: empty = () - VariantPredicates.all(empty) + vp.allof(empty) assert e.value.args[0] == 'Predicates must not be empty!' def test_empty_any_predicate_raises_error( @@ -345,12 +345,12 @@ def test_empty_any_predicate_raises_error( ): with pytest.raises(ValueError) as e: empty = () - VariantPredicates.any(empty) + vp.anyof(empty) assert e.value.args[0] == 'Predicates must not be empty!' def test_logical_predicates_are_hashable(self): - a = VariantPredicates.gene(symbol='A') - b = VariantPredicates.gene(symbol='B') + a = vp.gene(symbol='A') + b = vp.gene(symbol='B') a_and_b = a & b assert isinstance(hash(a_and_b), int) diff --git a/tests/analysis/pscore/test_pscore_api.py b/tests/analysis/pscore/test_pscore_api.py index 24040b46..2190eab2 100644 --- a/tests/analysis/pscore/test_pscore_api.py +++ b/tests/analysis/pscore/test_pscore_api.py @@ -4,13 +4,12 @@ import pandas as pd from gpsea.analysis import StatisticResult -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate +from gpsea.analysis.clf import GenotypeClassifier from gpsea.analysis.pscore import PhenotypeScoreAnalysisResult, PhenotypeScorer from gpsea.analysis.pscore.stats import MannWhitneyStatistic class TestPhenotypeScoreAnalysisResult: - @pytest.fixture(scope="class") def phenotype_scorer(self) -> PhenotypeScorer: return PhenotypeScorer.wrap_scoring_function( @@ -21,7 +20,7 @@ def phenotype_scorer(self) -> PhenotypeScorer: @pytest.fixture(scope="class") def result( self, - suox_gt_predicate: GenotypePolyPredicate, + suox_gt_clf: GenotypeClassifier, phenotype_scorer: PhenotypeScorer, ) -> PhenotypeScoreAnalysisResult: data = pd.DataFrame( @@ -29,25 +28,25 @@ def result( "patient_id": ["A", "B", "C"], "genotype": [0, 1, None], "phenotype": [ - 10., - float('nan'), - -4., + 10.0, + float("nan"), + -4.0, ], } ).set_index("patient_id") return PhenotypeScoreAnalysisResult( - gt_predicate=suox_gt_predicate, + gt_clf=suox_gt_clf, phenotype=phenotype_scorer, statistic=MannWhitneyStatistic(), data=data, - statistic_result=StatisticResult(statistic=.2, pval=0.1234), + statistic_result=StatisticResult(statistic=0.2, pval=0.1234), ) def test_properties( self, result: PhenotypeScoreAnalysisResult, ): - assert tuple(result.gt_predicate.group_labels) == ( + assert tuple(result.gt_clf.class_labels) == ( "0", "1", ) @@ -62,4 +61,4 @@ def test_complete_records( assert records.shape == (1, 2) assert records.loc["A", "genotype"] == 0 - assert records.loc["A", "phenotype"] == pytest.approx(10.) + assert records.loc["A", "phenotype"] == pytest.approx(10.0) diff --git a/tests/analysis/temporal/test_temporal_api.py b/tests/analysis/temporal/test_temporal_api.py index c486fbf7..3ca549c4 100644 --- a/tests/analysis/temporal/test_temporal_api.py +++ b/tests/analysis/temporal/test_temporal_api.py @@ -11,12 +11,8 @@ from gpsea.model import Cohort, Patient, Status, VitalStatus, Disease, Age from gpsea.io import GpseaJSONDecoder from gpsea.analysis import StatisticResult -from gpsea.analysis.predicate.genotype import ( - GenotypePolyPredicate, - VariantPredicates, - diagnosis_predicate, - monoallelic_predicate, -) +from gpsea.analysis.clf import GenotypeClassifier, diagnosis_classifier, monoallelic_classifier +from gpsea.analysis.predicate import exon from gpsea.analysis.temporal import SurvivalAnalysis, SurvivalAnalysisResult, Survival from gpsea.analysis.temporal.endpoint import hpo_onset, death from gpsea.analysis.temporal.stats import LogRankTest @@ -32,9 +28,9 @@ def umod_cohort( @pytest.fixture(scope="module") -def umod_gt_predicate() -> GenotypePolyPredicate: - in_exon_3 = VariantPredicates.exon(3, tx_id="NM_003361.4") - return monoallelic_predicate( +def umod_gt_clf() -> GenotypeClassifier: + in_exon_3 = exon(3, tx_id="NM_003361.4") + return monoallelic_classifier( a_predicate=in_exon_3, b_predicate=~in_exon_3, a_label="Exon 3", @@ -43,7 +39,6 @@ def umod_gt_predicate() -> GenotypePolyPredicate: class TestSurvivalAnalysis: - @pytest.fixture(scope="class") def survival_analysis(self) -> SurvivalAnalysis: return SurvivalAnalysis(statistic=LogRankTest()) @@ -53,9 +48,8 @@ def test_compare_genotype_vs_survival( survival_analysis: SurvivalAnalysis, hpo: hpotk.MinimalOntology, umod_cohort: Cohort, - umod_gt_predicate: GenotypePolyPredicate, + umod_gt_clf: GenotypeClassifier, ): - endpoint = hpo_onset( hpo=hpo, term_id="HP:0003774", # Stage 5 chronic kidney disease @@ -63,7 +57,7 @@ def test_compare_genotype_vs_survival( result = survival_analysis.compare_genotype_vs_survival( cohort=umod_cohort, - gt_predicate=umod_gt_predicate, + gt_clf=umod_gt_clf, endpoint=endpoint, ) @@ -75,7 +69,7 @@ def test_raises_an_exception_for_an_invalid_dataset( ): d_one = Disease.from_raw_parts("OMIM:100000", name="One", is_observed=True) d_two = Disease.from_raw_parts("OMIM:200000", name="Two", is_observed=True) - gt_predicate = diagnosis_predicate( + gt_predicate = diagnosis_classifier( diagnoses=(d.identifier for d in (d_one, d_two)), labels=(d.name for d in (d_one, d_two)), ) @@ -96,7 +90,7 @@ def test_raises_an_exception_for_an_invalid_dataset( with pytest.raises(AnalysisException) as e: survival_analysis.compare_genotype_vs_survival( cohort=cohort, - gt_predicate=gt_predicate, + gt_clf=gt_predicate, endpoint=endpoint, ) @@ -106,11 +100,10 @@ def test_raises_an_exception_for_an_invalid_dataset( class TestSurvivalAnalysisResult: - @pytest.fixture(scope="class") def result( self, - umod_gt_predicate: GenotypePolyPredicate, + umod_gt_clf: GenotypeClassifier, ) -> SurvivalAnalysisResult: data = pd.DataFrame( data={ @@ -129,7 +122,7 @@ def result( } ).set_index("patient_id") return SurvivalAnalysisResult( - gt_predicate=umod_gt_predicate, + gt_clf=umod_gt_clf, endpoint=death(), statistic=LogRankTest(), data=data, @@ -140,7 +133,7 @@ def test_properties( self, result: SurvivalAnalysisResult, ): - assert tuple(result.gt_predicate.group_labels) == ( + assert tuple(result.gt_clf.class_labels) == ( "Exon 3", "Other exon", ) diff --git a/tests/analysis/test_analysis_result.py b/tests/analysis/test_analysis_result.py index f256a8bd..3e8f9e65 100644 --- a/tests/analysis/test_analysis_result.py +++ b/tests/analysis/test_analysis_result.py @@ -5,37 +5,36 @@ import pytest from gpsea.analysis import MultiPhenotypeAnalysisResult, StatisticResult -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import HpoPredicate +from gpsea.analysis.clf import GenotypeClassifier, HpoClassifier from gpsea.analysis.pcats.stats import FisherExactTest @pytest.fixture(scope="class") def multi_phenotype_analysis_result( hpo: hpotk.MinimalOntology, - suox_gt_predicate: GenotypePolyPredicate, + suox_gt_clf: GenotypeClassifier, ) -> MultiPhenotypeAnalysisResult: - is_arachnodactyly = HpoPredicate( + is_arachnodactyly = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001166"), # Arachnodactyly ) - is_seizure = HpoPredicate( + is_seizure = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001250"), # Seizure ) - is_polydactyly = HpoPredicate( + is_polydactyly = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0100259"), # Postaxial polydactyly ) - is_clinodactyly = HpoPredicate( + is_clinodactyly = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0030084"), # Clinodactyly ) return MultiPhenotypeAnalysisResult( - gt_predicate=suox_gt_predicate, + gt_clf=suox_gt_clf, statistic=FisherExactTest(), mtc_correction="fdr_bh", - pheno_predicates=( + pheno_clfs=( is_arachnodactyly, is_seizure, is_polydactyly, @@ -46,27 +45,27 @@ def multi_phenotype_analysis_result( pd.DataFrame( data=[[10, 5], [10, 15]], index=pd.Index(is_arachnodactyly.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), pd.DataFrame( data=[[5, 0], [5, 10]], index=pd.Index(is_seizure.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), pd.DataFrame( data=[[50, 0], [5, 60]], index=pd.Index(is_polydactyly.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), pd.DataFrame( data=[[0, 0], [10, 0]], index=pd.Index(is_clinodactyly.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), ), statistic_results=( None, - StatisticResult(statistic=1., pval=0.005), + StatisticResult(statistic=1.0, pval=0.005), StatisticResult(statistic=10.0, pval=0.0005), StatisticResult(statistic=0.1, pval=0.05), ), @@ -75,7 +74,6 @@ def multi_phenotype_analysis_result( class TestMultiPhenotypeAnalysisResult: - def test_significant_phenotype_indices( self, multi_phenotype_analysis_result: MultiPhenotypeAnalysisResult, diff --git a/tests/analysis/test_mtc_filter.py b/tests/analysis/test_mtc_filter.py index 2599eedc..62664b08 100644 --- a/tests/analysis/test_mtc_filter.py +++ b/tests/analysis/test_mtc_filter.py @@ -6,28 +6,26 @@ import pytest from gpsea.analysis.mtc_filter import HpoMtcFilter, SpecifiedTermsMtcFilter -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import PhenotypePolyPredicate, HpoPredicate -from gpsea.analysis.pcats import apply_predicates_on_patients +from gpsea.analysis.clf import GenotypeClassifier, PhenotypeClassifier, HpoClassifier +from gpsea.analysis.pcats import apply_classifiers_on_individuals from gpsea.model import Cohort -@pytest.fixture(scope='module') +@pytest.fixture(scope="module") def patient_counts( suox_cohort: Cohort, - suox_gt_predicate: GenotypePolyPredicate, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_gt_clf: GenotypeClassifier, + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], ) -> typing.Sequence[pd.DataFrame]: - _, counts = apply_predicates_on_patients( - patients=suox_cohort.all_patients, - gt_predicate=suox_gt_predicate, - pheno_predicates=suox_pheno_predicates, + _, counts = apply_classifiers_on_individuals( + individuals=suox_cohort.all_patients, + gt_clf=suox_gt_clf, + pheno_clfs=suox_pheno_clfs, ) return counts class TestHpoMtcFilter: - @pytest.fixture def mtc_filter( self, @@ -36,26 +34,26 @@ def mtc_filter( return HpoMtcFilter.default_filter( hpo=hpo, term_frequency_threshold=0.2, - annotation_frequency_threshold=.1, + annotation_frequency_threshold=0.1, ) - @pytest.fixture(scope='class') - def gt_predicate( + @pytest.fixture(scope="class") + def gt_clf( self, - suox_gt_predicate: GenotypePolyPredicate, - ) -> GenotypePolyPredicate: - return suox_gt_predicate + suox_gt_clf: GenotypeClassifier, + ) -> GenotypeClassifier: + return suox_gt_clf - @pytest.fixture(scope='class') + @pytest.fixture(scope="class") def ph_predicate( self, hpo: hpotk.MinimalOntology, - ) -> PhenotypePolyPredicate[hpotk.TermId]: + ) -> PhenotypeClassifier[hpotk.TermId]: """ For the purpose of testing counts, let's pretend the counts were created by this predicate. """ - return HpoPredicate( + return HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001250"), # Seizure missing_implies_phenotype_excluded=False, @@ -64,8 +62,8 @@ def ph_predicate( @staticmethod def prepare_counts_df( counts, - gt_predicate: GenotypePolyPredicate, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + gt_predicate: GenotypeClassifier, + ph_predicate: PhenotypeClassifier[hpotk.TermId], ): values = np.array(counts).reshape((2, 2)) index = pd.Index(ph_predicate.get_categories()) @@ -79,20 +77,20 @@ def prepare_counts_df( ((10, 0, 15, 1), False), ((10, 0, 15, 0), True), ((0, 15, 0, 19), True), - ] + ], ) def test_one_genotype_has_zero_hpo_observations( self, counts: typing.Sequence[int], expected: bool, - gt_predicate: GenotypePolyPredicate, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + gt_clf: GenotypeClassifier, + ph_predicate: PhenotypeClassifier[hpotk.TermId], ): - counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_predicate, ph_predicate) + counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_clf, ph_predicate) actual = HpoMtcFilter.one_genotype_has_zero_hpo_observations( counts=counts_df, - gt_predicate=gt_predicate, + gt_clf=gt_clf, ) assert actual == expected @@ -102,26 +100,24 @@ def test_one_genotype_has_zero_hpo_observations( [ ((1, 0, 20, 30), False), ((2, 0, 20, 30), True), - ((0, 1, 20, 30), False), ((0, 2, 20, 30), True), - ((0, 0, 20, 30), False), ((2, 2, 20, 30), True), - ] + ], ) def test_some_cell_has_greater_than_one_count( - self, - counts: typing.Tuple[int], - expected: bool, - gt_predicate: GenotypePolyPredicate, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + self, + counts: typing.Tuple[int], + expected: bool, + gt_clf: GenotypeClassifier, + ph_predicate: PhenotypeClassifier[hpotk.TermId], ): - counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_predicate, ph_predicate) + counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_clf, ph_predicate) actual = HpoMtcFilter.some_cell_has_greater_than_one_count( counts=counts_df, - ph_predicate=ph_predicate, + ph_clf=ph_predicate, ) assert actual == expected @@ -129,25 +125,25 @@ def test_some_cell_has_greater_than_one_count( @pytest.mark.parametrize( "counts, expected", [ - ((1, 2, 99, 198), .01), - ((1, 3, 99, 197), .015), - ((0, 0, 100, 200), 0.), - ((0, 0, 0, 200), 0.), - ((0, 0, 0, 0), 0.), - ] + ((1, 2, 99, 198), 0.01), + ((1, 3, 99, 197), 0.015), + ((0, 0, 100, 200), 0.0), + ((0, 0, 0, 200), 0.0), + ((0, 0, 0, 0), 0.0), + ], ) def test_get_maximum_group_observed_HPO_frequency( self, counts: typing.Tuple[int], expected: float, - gt_predicate: GenotypePolyPredicate, - ph_predicate: PhenotypePolyPredicate[hpotk.TermId], + gt_clf: GenotypeClassifier, + ph_predicate: PhenotypeClassifier[hpotk.TermId], ): - counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_predicate, ph_predicate) + counts_df = TestHpoMtcFilter.prepare_counts_df(counts, gt_clf, ph_predicate) actual = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( counts_frame=counts_df, - ph_predicate=ph_predicate, + ph_clf=ph_predicate, ) assert actual == pytest.approx(expected) @@ -155,14 +151,14 @@ def test_get_maximum_group_observed_HPO_frequency( def test_filter_terms_to_test( self, mtc_filter: HpoMtcFilter, - suox_gt_predicate: GenotypePolyPredicate, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_gt_clf: GenotypeClassifier, + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], patient_counts: typing.Sequence[pd.DataFrame], suox_cohort: Cohort, ): mtc_report = mtc_filter.filter( - gt_predicate=suox_gt_predicate, - ph_predicates=suox_pheno_predicates, + gt_clf=suox_gt_clf, + pheno_clfs=suox_pheno_clfs, counts=patient_counts, cohort_size=len(suox_cohort), ) @@ -175,14 +171,16 @@ def test_filter_terms_to_test( reasons = [r.reason for r in mtc_report] assert reasons == [ - None, None, - 'Skipping term with less than 7 observations (not powered for 2x2)', - None, None, + None, + None, + "Skipping term with less than 7 observations (not powered for 2x2)", + None, + None, ] def test_min_observed_HPO_threshold( self, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], patient_counts: typing.Sequence[pd.DataFrame], ): """ @@ -196,68 +194,62 @@ def test_min_observed_HPO_threshold( for all of the HPO terms in the dictionary. """ EPSILON = 0.001 - curie2idx = { - p.phenotype.value: i - for i, p - in enumerate(suox_pheno_predicates) - } + curie2idx = {p.phenotype.value: i for i, p in enumerate(suox_pheno_clfs)} # Ectopia lentis HP:0001083 (1 2 3 1), freqs are 1/4=0.25 and 3/4=0.75 idx = curie2idx["HP:0001083"] ectopia = patient_counts[idx] - ectopia_predicate = suox_pheno_predicates[idx] + ectopia_predicate = suox_pheno_clfs[idx] max_f = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( ectopia, - ph_predicate=ectopia_predicate, + ph_clf=ectopia_predicate, ) assert max_f == pytest.approx(0.75, abs=EPSILON) # Seizure HP:0001250 (11 5 0 1), freqs are 11/11=1.0 and 5/6=0.8333333 idx = curie2idx["HP:0001250"] seizure = patient_counts[idx] - seizure_predicate = suox_pheno_predicates[idx] + seizure_predicate = suox_pheno_clfs[idx] max_f = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( - seizure, - ph_predicate=seizure_predicate + seizure, ph_clf=seizure_predicate ) assert max_f == pytest.approx(1.0, abs=EPSILON) # Sulfocysteinuria HP:0032350 (2 3 0 0), freqs are both 1 idx = curie2idx["HP:0032350"] sulfocysteinuria = patient_counts[idx] - sulfocysteinuria_predicate = suox_pheno_predicates[idx] + sulfocysteinuria_predicate = suox_pheno_clfs[idx] max_f = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( sulfocysteinuria, - ph_predicate=sulfocysteinuria_predicate, + ph_clf=sulfocysteinuria_predicate, ) assert max_f == pytest.approx(1.0, abs=EPSILON) # Neurodevelopmental delay HP:0012758 (4 0 4 5), freqs are 4/8 = 0.5 and 0/5=0.0 idx = curie2idx["HP:0012758"] ndelay = patient_counts[idx] - ndelay_predicate = suox_pheno_predicates[idx] + ndelay_predicate = suox_pheno_clfs[idx] max_f = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( ndelay, - ph_predicate=ndelay_predicate, + ph_clf=ndelay_predicate, ) assert max_f == pytest.approx(0.5, abs=EPSILON) # Hypertonia HP:0001276 (4 2 3 3) freqs are 4/7=0.4375 and 2/5=0.5714 idx = curie2idx["HP:0001276"] hypertonia = patient_counts[idx] - hypertonia_predicate = suox_pheno_predicates[idx] + hypertonia_predicate = suox_pheno_clfs[idx] max_f = HpoMtcFilter.get_maximum_group_observed_HPO_frequency( hypertonia, - ph_predicate=hypertonia_predicate, + ph_clf=hypertonia_predicate, ) assert max_f == pytest.approx(0.5714, abs=EPSILON) class TestSpecifyTermsMtcFilter: - def test_specified_term_mtc_filter( self, - suox_gt_predicate: GenotypePolyPredicate, - suox_pheno_predicates: typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]], + suox_gt_clf: GenotypeClassifier, + suox_pheno_clfs: typing.Sequence[PhenotypeClassifier[hpotk.TermId]], patient_counts: typing.Sequence[pd.DataFrame], suox_cohort: Cohort, ): @@ -268,14 +260,12 @@ def test_specified_term_mtc_filter( reason for filtering out is 'Non-specified term' """ specified_filter = SpecifiedTermsMtcFilter( - terms_to_test=( - hpotk.TermId.from_curie("HP:0032350"), - ), + terms_to_test=(hpotk.TermId.from_curie("HP:0032350"),), ) mtc_report = specified_filter.filter( - gt_predicate=suox_gt_predicate, - ph_predicates=suox_pheno_predicates, + gt_clf=suox_gt_clf, + pheno_clfs=suox_pheno_clfs, counts=patient_counts, cohort_size=len(suox_cohort), ) @@ -284,16 +274,20 @@ def test_specified_term_mtc_filter( is_passed = [r.is_passed() for r in mtc_report] assert is_passed == [ - False, False, True, False, False, + False, + False, + True, + False, + False, ] reasons = [r.reason for r in mtc_report] assert reasons == [ - 'Non-specified term', - 'Non-specified term', + "Non-specified term", + "Non-specified term", None, - 'Non-specified term', - 'Non-specified term', + "Non-specified term", + "Non-specified term", ] @pytest.mark.parametrize( @@ -301,13 +295,9 @@ def test_specified_term_mtc_filter( [ ("NotACurie", "The CURIE NotACurie has no colon `:` or underscore `_`"), (0, "0 is neither `str` nor `hpotk.TermId`"), - ] + ], ) - def test_explodes_if_invalid_terms_provided( - self, - val: typing.Any, - msg: str - ): + def test_explodes_if_invalid_terms_provided(self, val: typing.Any, msg: str): with pytest.raises(ValueError) as e: SpecifiedTermsMtcFilter( terms_to_test=(val,), diff --git a/tests/conftest.py b/tests/conftest.py index eb372566..ae9d9f21 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,13 +12,9 @@ ValidationRunner, ) -from gpsea.analysis.predicate.genotype import ( - GenotypePolyPredicate, - VariantPredicates, - biallelic_predicate, - allele_count, -) -from gpsea.analysis.predicate.phenotype import PhenotypePolyPredicate, HpoPredicate +from gpsea.analysis.clf import GenotypeClassifier, biallelic_classifier, allele_count +from gpsea.analysis.clf import PhenotypeClassifier, HpoClassifier +from gpsea.analysis.predicate import variant_effect from gpsea.io import GpseaJSONDecoder from gpsea.model import ( Cohort, @@ -155,45 +151,45 @@ def suox_mane_tx_id() -> str: @pytest.fixture(scope="session") -def suox_gt_predicate( +def suox_gt_clf( suox_mane_tx_id: str, -) -> GenotypePolyPredicate: +) -> GenotypeClassifier: return allele_count( counts=((0,), (1,)), - target=VariantPredicates.variant_effect( + target=variant_effect( effect=VariantEffect.MISSENSE_VARIANT, tx_id=suox_mane_tx_id ), ) @pytest.fixture(scope="session") -def suox_pheno_predicates( +def suox_pheno_clfs( hpo: hpotk.MinimalOntology, -) -> typing.Sequence[PhenotypePolyPredicate[hpotk.TermId]]: +) -> typing.Sequence[PhenotypeClassifier[hpotk.TermId]]: """ - Get predicates for test for presence of 5 HPO terms: + Get classifiers to test for presence of 5 HPO terms: Seizure, Ectopia lentis, Sulfocysteinuria, Neurodevelopmental delay, and Hypertonia. Note, these are just a *SUBSET* of all phenotypes that can be tested for in the *SUOX* cohort. """ return ( - HpoPredicate( + HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001250"), # Seizure ), - HpoPredicate( + HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001083"), # Ectopia lentis ), - HpoPredicate( + HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0032350"), # Sulfocysteinuria ), - HpoPredicate( + HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0012758"), # Neurodevelopmental delay ), - HpoPredicate( + HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001276"), # Hypertonia ), @@ -250,11 +246,11 @@ def cyp21a2_mane_tx_id() -> str: @pytest.fixture(scope="session") -def cyp21a2_gt_predicate( +def cyp21a2_gt_clf( cyp21a2_mane_tx_id: str, -) -> GenotypePolyPredicate: - return biallelic_predicate( - a_predicate=VariantPredicates.variant_effect( +) -> GenotypeClassifier: + return biallelic_classifier( + a_predicate=variant_effect( effect=VariantEffect.MISSENSE_VARIANT, tx_id=cyp21a2_mane_tx_id, ), diff --git a/tests/test_predicates.py b/tests/test_predicates.py index 43e8d8d2..ba71ffdf 100644 --- a/tests/test_predicates.py +++ b/tests/test_predicates.py @@ -1,7 +1,7 @@ import hpotk import pytest -from gpsea.analysis.predicate.phenotype import HpoPredicate, DiseasePresencePredicate +from gpsea.analysis.clf import HpoClassifier, DiseasePresenceClassifier from gpsea.model import Cohort, Patient @@ -42,7 +42,7 @@ def test_phenotype_predicate__present_or_excluded( ): patient = find_patient(patient_id, toy_cohort) term_id = hpotk.TermId.from_curie(curie) - predicate = HpoPredicate(hpo=hpo, query=term_id) + predicate = HpoClassifier(hpo=hpo, query=term_id) actual = predicate.test(patient) assert actual is not None @@ -57,7 +57,7 @@ def test_phenotype_predicate__unknown( # Not Measured and not Observed - 'HP:0006280', # Chronic pancreatitis patient = find_patient('HetSingleVar', toy_cohort) term_id = hpotk.TermId.from_curie('HP:0006280') - predicate = HpoPredicate(hpo=hpo, query=term_id) + predicate = HpoClassifier(hpo=hpo, query=term_id) actual = predicate.test(patient) assert actual is None @@ -80,7 +80,7 @@ def test_disease_predicate( ): patient = find_patient(patient_id, toy_cohort) disease_id = hpotk.TermId.from_curie("OMIM:148050") - predicate = DiseasePresencePredicate(disease_id) + predicate = DiseasePresenceClassifier(disease_id) actual = predicate.test(patient) assert actual is not None diff --git a/tests/view/test_view.py b/tests/view/test_view.py index ace650cd..9dea4296 100644 --- a/tests/view/test_view.py +++ b/tests/view/test_view.py @@ -8,16 +8,19 @@ from gpsea.analysis import StatisticResult from gpsea.analysis.pcats import HpoTermAnalysisResult from gpsea.analysis.pcats.stats import FisherExactTest -from gpsea.analysis.predicate.genotype import GenotypePolyPredicate -from gpsea.analysis.predicate.phenotype import HpoPredicate +from gpsea.analysis.clf import GenotypeClassifier, HpoClassifier from gpsea.analysis.mtc_filter import PhenotypeMtcResult from gpsea.model import Cohort -from gpsea.view import CohortViewer, CohortVariantViewer, MtcStatsViewer, summarize_hpo_analysis +from gpsea.view import ( + CohortViewer, + CohortVariantViewer, + MtcStatsViewer, + summarize_hpo_analysis, +) @pytest.mark.skip("Just for manual testing and debugging") class TestCohortViewer: - @pytest.fixture def cohort_viewer( self, @@ -69,26 +72,25 @@ def test_viewer( class TestMtcStatsViewer: - @pytest.fixture(scope="class") def hpo_term_analysis_result( self, hpo: hpotk.MinimalOntology, - suox_gt_predicate: GenotypePolyPredicate, + suox_gt_clf: GenotypeClassifier, ) -> HpoTermAnalysisResult: - is_arachnodactyly = HpoPredicate( + is_arachnodactyly = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001166"), # Arachnodactyly ) - is_seizure = HpoPredicate( + is_seizure = HpoClassifier( hpo=hpo, query=hpotk.TermId.from_curie("HP:0001250"), # Seizure ) return HpoTermAnalysisResult( - gt_predicate=suox_gt_predicate, + gt_clf=suox_gt_clf, statistic=FisherExactTest(), mtc_correction="fdr_bh", - pheno_predicates=( + pheno_clfs=( is_arachnodactyly, is_seizure, ), @@ -97,17 +99,17 @@ def hpo_term_analysis_result( pd.DataFrame( data=[[10, 5], [10, 15]], index=pd.Index(is_arachnodactyly.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), pd.DataFrame( data=[[5, 0], [5, 10]], index=pd.Index(is_seizure.get_categories()), - columns=pd.Index(suox_gt_predicate.get_categories()), + columns=pd.Index(suox_gt_clf.get_categories()), ), ), statistic_results=( - StatisticResult(statistic=None, pval=math.nan), - StatisticResult(statistic=1.23, pval=0.01), + StatisticResult(statistic=None, pval=math.nan), + StatisticResult(statistic=1.23, pval=0.01), ), corrected_pvals=(math.nan, 0.01), mtc_filter_name="Random MTC filter", From 6f23a075167b7504964311f236d841cd5fcd5f3e Mon Sep 17 00:00:00 2001 From: Daniel Danis Date: Thu, 12 Dec 2024 13:49:20 +0100 Subject: [PATCH 3/4] Make release `0.9.0`. --- docs/conf.py | 4 ++-- src/gpsea/__init__.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index c09271be..197ee141 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -61,9 +61,9 @@ # built documents. # # The short X.Y version. -version = u'0.8' +version = u'0.9' # The full version, including alpha/beta/rc tags. -release = u'0.8.1.dev0' +release = u'0.9.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/src/gpsea/__init__.py b/src/gpsea/__init__.py index 28100503..c774319e 100644 --- a/src/gpsea/__init__.py +++ b/src/gpsea/__init__.py @@ -2,7 +2,7 @@ GPSEA is a library for finding genotype-phenotype associations. """ -__version__ = "0.8.1.dev0" +__version__ = "0.9.0" _overwrite = False """ From 25f681d57974b4fd341f23c61ee1467e582fac7b Mon Sep 17 00:00:00 2001 From: Daniel Danis Date: Thu, 12 Dec 2024 13:55:07 +0100 Subject: [PATCH 4/4] Left align report tables by default. --- docs/report/tbx5_all_variants.html | 338 +++++++++--------- docs/report/tbx5_cohort_info.html | 78 ++-- ...bx5_truncating_vs_missense.mtc_report.html | 6 +- .../report/tbx5_frameshift.mtc_report.html | 6 +- docs/user-guide/reports/tbx5_cohort_info.html | 78 ++-- .../user-guide/reports/tbx5_protein_info.html | 14 +- src/gpsea/view/templates/all_variants.html | 4 +- src/gpsea/view/templates/cohort.html | 20 +- src/gpsea/view/templates/minibase.html | 6 +- 9 files changed, 261 insertions(+), 289 deletions(-) diff --git a/docs/report/tbx5_all_variants.html b/docs/report/tbx5_all_variants.html index e83216ca..2ff47df3 100644 --- a/docs/report/tbx5_all_variants.html +++ b/docs/report/tbx5_all_variants.html @@ -108,7 +108,7 @@ table td, tr { - text-align: right; + text-align: left; padding: 0px 5px; } @@ -120,10 +120,6 @@ background-color: var(--gpsea-color-surface-a20); } - .lft { - text-align: left; - } - caption { caption-side: top; text-align: left; @@ -144,7 +140,7 @@