pertpy 0.7.0__py3-none-any.whl → 0.8.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. pertpy/__init__.py +2 -1
  2. pertpy/data/__init__.py +61 -0
  3. pertpy/data/_dataloader.py +27 -23
  4. pertpy/data/_datasets.py +58 -0
  5. pertpy/metadata/__init__.py +2 -0
  6. pertpy/metadata/_cell_line.py +39 -70
  7. pertpy/metadata/_compound.py +3 -4
  8. pertpy/metadata/_drug.py +2 -6
  9. pertpy/metadata/_look_up.py +38 -51
  10. pertpy/metadata/_metadata.py +7 -10
  11. pertpy/metadata/_moa.py +2 -6
  12. pertpy/plot/__init__.py +0 -5
  13. pertpy/preprocessing/__init__.py +2 -0
  14. pertpy/preprocessing/_guide_rna.py +2 -3
  15. pertpy/tools/__init__.py +42 -4
  16. pertpy/tools/_augur.py +14 -15
  17. pertpy/tools/_cinemaot.py +2 -2
  18. pertpy/tools/_coda/_base_coda.py +118 -142
  19. pertpy/tools/_coda/_sccoda.py +16 -15
  20. pertpy/tools/_coda/_tasccoda.py +21 -22
  21. pertpy/tools/_dialogue.py +18 -23
  22. pertpy/tools/_differential_gene_expression/__init__.py +20 -0
  23. pertpy/tools/_differential_gene_expression/_base.py +657 -0
  24. pertpy/tools/_differential_gene_expression/_checks.py +41 -0
  25. pertpy/tools/_differential_gene_expression/_dge_comparison.py +86 -0
  26. pertpy/tools/_differential_gene_expression/_edger.py +125 -0
  27. pertpy/tools/_differential_gene_expression/_formulaic.py +189 -0
  28. pertpy/tools/_differential_gene_expression/_pydeseq2.py +95 -0
  29. pertpy/tools/_differential_gene_expression/_simple_tests.py +162 -0
  30. pertpy/tools/_differential_gene_expression/_statsmodels.py +72 -0
  31. pertpy/tools/_distances/_distance_tests.py +21 -16
  32. pertpy/tools/_distances/_distances.py +406 -70
  33. pertpy/tools/_enrichment.py +10 -15
  34. pertpy/tools/_kernel_pca.py +1 -1
  35. pertpy/tools/_milo.py +76 -53
  36. pertpy/tools/_mixscape.py +15 -11
  37. pertpy/tools/_perturbation_space/_clustering.py +5 -2
  38. pertpy/tools/_perturbation_space/_comparison.py +112 -0
  39. pertpy/tools/_perturbation_space/_discriminator_classifiers.py +20 -22
  40. pertpy/tools/_perturbation_space/_perturbation_space.py +23 -21
  41. pertpy/tools/_perturbation_space/_simple.py +3 -3
  42. pertpy/tools/_scgen/__init__.py +1 -1
  43. pertpy/tools/_scgen/_base_components.py +2 -3
  44. pertpy/tools/_scgen/_scgen.py +33 -28
  45. pertpy/tools/_scgen/_utils.py +2 -2
  46. {pertpy-0.7.0.dist-info → pertpy-0.8.0.dist-info}/METADATA +22 -13
  47. pertpy-0.8.0.dist-info/RECORD +57 -0
  48. {pertpy-0.7.0.dist-info → pertpy-0.8.0.dist-info}/WHEEL +1 -1
  49. pertpy/plot/_augur.py +0 -171
  50. pertpy/plot/_coda.py +0 -601
  51. pertpy/plot/_guide_rna.py +0 -64
  52. pertpy/plot/_milopy.py +0 -209
  53. pertpy/plot/_mixscape.py +0 -355
  54. pertpy/tools/_differential_gene_expression.py +0 -325
  55. pertpy-0.7.0.dist-info/RECORD +0 -53
  56. {pertpy-0.7.0.dist-info → pertpy-0.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,57 @@
1
+ pertpy/__init__.py,sha256=GMFyfRErEysnlkYKMqQxtO7QbqjGki7SpvgtLxIuG6o,658
2
+ pertpy/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ pertpy/data/__init__.py,sha256=ah3yvoxkgbdMUNAWxS3SyqcUuVamBOSeuWkF2QRAEwM,2703
4
+ pertpy/data/_dataloader.py,sha256=fl16n82nun01gGiP7qhr5sShfcDchp0szzZp7aXkfBI,2495
5
+ pertpy/data/_datasets.py,sha256=I-keaJSTsRBySCPjiVonKmC9rRIM0AEgo0_0UlEX804,65616
6
+ pertpy/metadata/__init__.py,sha256=zoE_VXNyuKa4nlXlUk2nTgsHRW3jSQSpDEulcCnzOT0,222
7
+ pertpy/metadata/_cell_line.py,sha256=-8KSqmP5XjmLEmNX3TavxSM_MtIHwLWS_x3MVkk6JEw,38595
8
+ pertpy/metadata/_compound.py,sha256=JEFwP_TOTyMzfd2qFMb2VkJJvPhCVIvu6gs9Bq_stgs,4756
9
+ pertpy/metadata/_drug.py,sha256=8QDSyxiFl25JdS80EQJC_krg6fEe5LIQEE6BsV1r8nY,9006
10
+ pertpy/metadata/_look_up.py,sha256=DoWp6OxIk_HyyyOhW1p8z5E68IZ31_nZDnqxk1rJqps,28778
11
+ pertpy/metadata/_metadata.py,sha256=pvarnv3X5pblnvG8AQ8Omu5jQcC5ORzCxRk3FRhOLgs,3276
12
+ pertpy/metadata/_moa.py,sha256=u_OcMonjOeeoW5P9xOltquVSoTH3Vs80ztHsXf-X1DY,4701
13
+ pertpy/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ pertpy/preprocessing/__init__.py,sha256=VAPFaeq2_qCvdFkQTCj_Hm460HC4Tersu8Rig_tnp_Y,71
15
+ pertpy/preprocessing/_guide_rna.py,sha256=Xrv0cN16Ub1U1z-3LDNTkm98zs9JOjc2h1N7IAt_FaE,7612
16
+ pertpy/tools/__init__.py,sha256=yhDyv5J-nd3SDqc3T08Nzca8dzj3SpoVG2m9VU1rFUk,1481
17
+ pertpy/tools/_augur.py,sha256=UWro1nIEZe_rWtjlQCBv4ucqeh3Vt1m8IRzKlux72Z8,55683
18
+ pertpy/tools/_cinemaot.py,sha256=BD_oYC1TktbFMX7fpp0A57QAF6frLEgNQ_2wFUpxjyo,39509
19
+ pertpy/tools/_dialogue.py,sha256=f2fbhKWdm4Co79ZzVgtVq9xYwjYWFLdGNDeGFOO_pfM,51990
20
+ pertpy/tools/_enrichment.py,sha256=rjPHK9YBCJZfpa5Rvfxo3Ii7W5Mvm5dOdolAD7QazVg,21440
21
+ pertpy/tools/_kernel_pca.py,sha256=_EJ9WlBLjHOafF34sZGdyBgZL6Fj0WiJ1elVT1XMmo4,1579
22
+ pertpy/tools/_milo.py,sha256=kGnfx-CMOpYSl85fOW62J2X3utVjOsQFne7ixEptDmI,43691
23
+ pertpy/tools/_mixscape.py,sha256=FtH3PKvbLTe03LPgN4O9sS70oj_6AHz4Mz5otzEwRl8,52406
24
+ pertpy/tools/decoupler_LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
25
+ pertpy/tools/transferlearning_MMD_LICENSE,sha256=MUvDA-o_j9htRpI8fStVdCRuyLdPkQUuIH0a_EIc57w,1069
26
+ pertpy/tools/_coda/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ pertpy/tools/_coda/_base_coda.py,sha256=jnoLPFfluxB0_CK8-T-qolPa7xPIEb6NpeEpGwHPiNg,113058
28
+ pertpy/tools/_coda/_sccoda.py,sha256=gGmyd0MGpchulV9d4PxKSmGORyZ8fCDS9tQVPOuF_Og,22622
29
+ pertpy/tools/_coda/_tasccoda.py,sha256=vNk43OQHn7pBLsez2rmSj0bMZKOf8jZTI7G8TfBByRg,30665
30
+ pertpy/tools/_differential_gene_expression/__init__.py,sha256=sabAXym8mMLwp19ZjyBN7wp-oJh32iVj9plvJ-AbXlE,521
31
+ pertpy/tools/_differential_gene_expression/_base.py,sha256=qnQkK_hyIcViHBSkgJcAazC26JQ72bEyafKiytZikCY,23624
32
+ pertpy/tools/_differential_gene_expression/_checks.py,sha256=SxNHJDsCYZ6rWLTMEymEBpigs_B9cnXyw0kkAe1l6e0,1675
33
+ pertpy/tools/_differential_gene_expression/_dge_comparison.py,sha256=9HjmWkrqZhj_ZJeR-ymyEDzpRJNx7JiYJoStvCfKuCU,4188
34
+ pertpy/tools/_differential_gene_expression/_edger.py,sha256=JziiW5rkXuQBJISAD_LvB2HOZUgJ1_qoqiR5Q4hEoP0,4321
35
+ pertpy/tools/_differential_gene_expression/_formulaic.py,sha256=X4rPv4j8SDu5VJnf6_AIYJCCquUQka7G2LGtDLa8FhE,8715
36
+ pertpy/tools/_differential_gene_expression/_pydeseq2.py,sha256=JK7H7u4va0q_TLE_sqi4JEzoPBd_xNRycYGu1507HS4,4117
37
+ pertpy/tools/_differential_gene_expression/_simple_tests.py,sha256=tTSr0Z2Qbpxdy9bcO8Gi_up6R616IcoK_e4_rlanyx4,6621
38
+ pertpy/tools/_differential_gene_expression/_statsmodels.py,sha256=zSOwJYDJyrl3hsEhMI5Q9Pyw2XLuEuj7T0zSAVcP6tQ,2585
39
+ pertpy/tools/_distances/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ pertpy/tools/_distances/_distance_tests.py,sha256=mNmNu5cX0Wj5IegR6x5K-CbBSid8EhrH2jZPQxuvK4U,13521
41
+ pertpy/tools/_distances/_distances.py,sha256=iuHpBtWZbJhMZNSEjQkZUu6KPJXCjs_fX6YjopIWvwY,50343
42
+ pertpy/tools/_perturbation_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
+ pertpy/tools/_perturbation_space/_clustering.py,sha256=m52-J8c8OnIXRCf3NoFabIO2yMHIuy1X0m0amtsK2vE,3556
44
+ pertpy/tools/_perturbation_space/_comparison.py,sha256=rLO-EGU0I7t5MnLw4k1gYU-ypRu-JsDPLat1t4h2U2M,4329
45
+ pertpy/tools/_perturbation_space/_discriminator_classifiers.py,sha256=BNMP-2g4X_9jhs3Vf2rwlIjSCAcADkxBAFYGlsQ5Irw,21609
46
+ pertpy/tools/_perturbation_space/_metrics.py,sha256=y8-baP8WRdB1iDgvP3uuQxSCDxA2lcxvEHHM2C_vWHY,3248
47
+ pertpy/tools/_perturbation_space/_perturbation_space.py,sha256=cZPPzzK4_UZV7ktcD5BQVXEy6ITHrfkg1CLFov3TzsY,18497
48
+ pertpy/tools/_perturbation_space/_simple.py,sha256=LH5EYvcAbzFMvgd9bH7AUPKFmdioPiy2xG8xGaXzmq0,12624
49
+ pertpy/tools/_scgen/__init__.py,sha256=uERFlFyF88TH0uLiwmsUGEfHfLVCiZMFuk8gO5f7164,45
50
+ pertpy/tools/_scgen/_base_components.py,sha256=Qq8myRUm43q9XBrZ9gBggfa2cSV2wbz_KYoLgH7iF1A,3009
51
+ pertpy/tools/_scgen/_scgen.py,sha256=HPvFVjY9SS9bGqgTkCDuPYjmA4QHW7rKgHnI2yuI_Q4,30608
52
+ pertpy/tools/_scgen/_scgenvae.py,sha256=v_6tZ4wY-JjdMH1QVd_wG4_N0PoaqB-FM8zC2JsDu1o,3935
53
+ pertpy/tools/_scgen/_utils.py,sha256=1upgOt1FpadfvNG05YpMjYYG-IAlxrC3l_ZxczmIczo,2841
54
+ pertpy-0.8.0.dist-info/METADATA,sha256=cLAhPubizJ7vgCThHv-kHsAAvepUyRTnTHTKRKX9kYQ,6054
55
+ pertpy-0.8.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
56
+ pertpy-0.8.0.dist-info/licenses/LICENSE,sha256=OZ-ZkXM5CmExJiEMM90b_7dGNNvRpj7kdE-49AnrLuI,1070
57
+ pertpy-0.8.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: hatchling 1.22.5
2
+ Generator: hatchling 1.25.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
pertpy/plot/_augur.py DELETED
@@ -1,171 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import warnings
4
- from typing import TYPE_CHECKING, Any
5
-
6
- from anndata import AnnData
7
- from matplotlib import pyplot as plt
8
-
9
- if TYPE_CHECKING:
10
- import pandas as pd
11
- from matplotlib.axes import Axes
12
- from matplotlib.figure import Figure
13
-
14
-
15
- class AugurpyPlot:
16
- """Plotting functions for Augurpy."""
17
-
18
- @staticmethod
19
- def dp_scatter(results: pd.DataFrame, top_n=None, ax: Axes = None) -> Figure | Axes:
20
- """Plot result of differential prioritization.
21
-
22
- Args:
23
- results: Results after running differential prioritization.
24
- top_n: optionally, the number of top prioritized cell types to label in the plot
25
- ax: optionally, axes used to draw plot
26
- return_figure: if `True` returns figure of the plot
27
-
28
- Returns:
29
- Axes of the plot.
30
-
31
- Examples:
32
- >>> import pertpy as pt
33
- >>> adata = pt.dt.bhattacherjee()
34
- >>> ag_rfc = pt.tl.Augur("random_forest_classifier")
35
-
36
- >>> data_15 = ag_rfc.load(adata, condition_label="Maintenance_Cocaine", treatment_label="withdraw_15d_Cocaine")
37
- >>> adata_15, results_15 = ag_rfc.predict(data_15, random_state=None, n_threads=4)
38
- >>> adata_15_permute, results_15_permute = ag_rfc.predict(data_15, augur_mode="permute", n_subsamples=100, random_state=None, n_threads=4)
39
-
40
- >>> data_48 = ag_rfc.load(adata, condition_label="Maintenance_Cocaine", treatment_label="withdraw_48h_Cocaine")
41
- >>> adata_48, results_48 = ag_rfc.predict(data_48, random_state=None, n_threads=4)
42
- >>> adata_48_permute, results_48_permute = ag_rfc.predict(data_48, augur_mode="permute", n_subsamples=100, random_state=None, n_threads=4)
43
-
44
- >>> pvals = ag_rfc.predict_differential_prioritization(augur_results1=results_15, augur_results2=results_48, \
45
- permuted_results1=results_15_permute, permuted_results2=results_48_permute)
46
- >>> ag_rfc.plot_dp_scatter(pvals)
47
- """
48
- warnings.warn(
49
- "This function is deprecated and will be removed in pertpy 0.8.0!"
50
- " Please use the corresponding 'pt.tl' object",
51
- FutureWarning,
52
- stacklevel=2,
53
- )
54
-
55
- from pertpy.tools import Augur
56
-
57
- ag = Augur("random_forest_classifier")
58
-
59
- return ag.plot_dp_scatter(results=results, top_n=top_n, ax=ax)
60
-
61
- @staticmethod
62
- def important_features(
63
- data: dict[str, Any], key: str = "augurpy_results", top_n=10, ax: Axes = None
64
- ) -> Figure | Axes:
65
- """Plot a lollipop plot of the n features with largest feature importances.
66
-
67
- Args:
68
- results: results after running `predict()` as dictionary or the AnnData object.
69
- key: Key in the AnnData object of the results
70
- top_n: n number feature importance values to plot. Default is 10.
71
- ax: optionally, axes used to draw plot
72
- return_figure: if `True` returns figure of the plot, default is `False`
73
-
74
- Returns:
75
- Axes of the plot.
76
-
77
- Examples:
78
- >>> import pertpy as pt
79
- >>> adata = pt.dt.sc_sim_augur()
80
- >>> ag_rfc = pt.tl.Augur("random_forest_classifier")
81
- >>> loaded_data = ag_rfc.load(adata)
82
- >>> v_adata, v_results = ag_rfc.predict(
83
- ... loaded_data, subsample_size=20, select_variance_features=True, n_threads=4
84
- ... )
85
- >>> ag_rfc.plot_important_features(v_results)
86
- """
87
- warnings.warn(
88
- "This function is deprecated and will be removed in pertpy 0.8.0!"
89
- " Please use the corresponding 'pt.tl' object",
90
- FutureWarning,
91
- stacklevel=2,
92
- )
93
-
94
- from pertpy.tools import Augur
95
-
96
- ag = Augur("random_forest_classifier")
97
-
98
- return ag.plot_important_features(data=data, key=key, top_n=top_n, ax=ax)
99
-
100
- @staticmethod
101
- def lollipop(data: dict[str, Any], key: str = "augurpy_results", ax: Axes = None) -> Figure | Axes | None:
102
- """Plot a lollipop plot of the mean augur values.
103
-
104
- Args:
105
- results: results after running `predict()` as dictionary or the AnnData object.
106
- key: Key in the AnnData object of the results
107
- ax: optionally, axes used to draw plot
108
- return_figure: if `True` returns figure of the plot
109
-
110
- Returns:
111
- Axes of the plot.
112
-
113
- Examples:
114
- >>> import pertpy as pt
115
- >>> adata = pt.dt.sc_sim_augur()
116
- >>> ag_rfc = pt.tl.Augur("random_forest_classifier")
117
- >>> loaded_data = ag_rfc.load(adata)
118
- >>> v_adata, v_results = ag_rfc.predict(
119
- ... loaded_data, subsample_size=20, select_variance_features=True, n_threads=4
120
- ... )
121
- >>> ag_rfc.plot_lollipop(v_results)
122
- """
123
- warnings.warn(
124
- "This function is deprecated and will be removed in pertpy 0.8.0!"
125
- " Please use the corresponding 'pt.tl' object",
126
- FutureWarning,
127
- stacklevel=2,
128
- )
129
-
130
- from pertpy.tools import Augur
131
-
132
- ag = Augur("random_forest_classifier")
133
-
134
- return ag.plot_lollipop(data=data, key=key, ax=ax)
135
-
136
- @staticmethod
137
- def scatterplot(results1: dict[str, Any], results2: dict[str, Any], top_n=None) -> Figure | Axes:
138
- """Create scatterplot with two augur results.
139
-
140
- Args:
141
- results1: results after running `predict()`
142
- results2: results after running `predict()`
143
- top_n: optionally, the number of top prioritized cell types to label in the plot
144
- return_figure: if `True` returns figure of the plot
145
-
146
- Returns:
147
- Axes of the plot.
148
-
149
- Examples:
150
- >>> import pertpy as pt
151
- >>> adata = pt.dt.sc_sim_augur()
152
- >>> ag_rfc = pt.tl.Augur("random_forest_classifier")
153
- >>> loaded_data = ag_rfc.load(adata)
154
- >>> h_adata, h_results = ag_rfc.predict(loaded_data, subsample_size=20, n_threads=4)
155
- >>> v_adata, v_results = ag_rfc.predict(
156
- ... loaded_data, subsample_size=20, select_variance_features=True, n_threads=4
157
- ... )
158
- >>> ag_rfc.plot_scatterplot(v_results, h_results)
159
- """
160
- warnings.warn(
161
- "This function is deprecated and will be removed in pertpy 0.8.0!"
162
- " Please use the corresponding 'pt.tl' object",
163
- FutureWarning,
164
- stacklevel=2,
165
- )
166
-
167
- from pertpy.tools import Augur
168
-
169
- ag = Augur("random_forest_classifier")
170
-
171
- return ag.plot_scatterplot(results1=results1, results2=results2, top_n=top_n)