pertpy 1.0.2__tar.gz → 1.0.3__tar.gz

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 (224) hide show
  1. {pertpy-1.0.2 → pertpy-1.0.3}/.github/release-drafter.yml +2 -2
  2. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/test.yml +1 -1
  3. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/test_tutorials.yml +3 -3
  4. {pertpy-1.0.2 → pertpy-1.0.3}/.gitignore +4 -3
  5. {pertpy-1.0.2 → pertpy-1.0.3}/.pre-commit-config.yaml +3 -3
  6. {pertpy-1.0.2 → pertpy-1.0.3}/.readthedocs.yml +1 -1
  7. {pertpy-1.0.2 → pertpy-1.0.3}/PKG-INFO +84 -51
  8. {pertpy-1.0.2 → pertpy-1.0.3}/docs/changelog.md +10 -2
  9. {pertpy-1.0.2 → pertpy-1.0.3}/docs/conf.py +1 -1
  10. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/__init__.py +1 -1
  11. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/data/_dataloader.py +2 -2
  12. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/data/_datasets.py +62 -62
  13. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_drug.py +4 -2
  14. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/preprocessing/_guide_rna.py +17 -10
  15. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/preprocessing/_guide_rna_mixture.py +9 -3
  16. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/__init__.py +12 -2
  17. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_augur.py +37 -14
  18. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_coda/_sccoda.py +0 -19
  19. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_coda/_tasccoda.py +12 -24
  20. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_mixscape.py +48 -39
  21. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/_comparison.py +3 -3
  22. pertpy-1.0.3/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +474 -0
  23. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/_perturbation_space.py +22 -14
  24. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/_simple.py +12 -6
  25. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_scgen/_scgenvae.py +2 -1
  26. pertpy-1.0.3/pertpy/tools/core.py +18 -0
  27. {pertpy-1.0.2 → pertpy-1.0.3}/pyproject.toml +9 -3
  28. {pertpy-1.0.2 → pertpy-1.0.3}/tests/preprocessing/test_grna_assignment.py +1 -1
  29. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_distances/test_distances.py +1 -2
  30. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_augur.py +1 -1
  31. pertpy-1.0.3/tests/tools/test_core.py +58 -0
  32. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_mixscape.py +3 -3
  33. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_scgen.py +9 -1
  34. pertpy-1.0.2/docs/tutorials/notebooks/.gitignore +0 -149
  35. pertpy-1.0.2/docs/tutorials/notebooks/.pre-commit-config.yaml +0 -37
  36. pertpy-1.0.2/docs/tutorials/notebooks/LICENSE +0 -203
  37. pertpy-1.0.2/docs/tutorials/notebooks/README.md +0 -23
  38. pertpy-1.0.2/docs/tutorials/notebooks/augur.ipynb +0 -1063
  39. pertpy-1.0.2/docs/tutorials/notebooks/cinemaot.ipynb +0 -696
  40. pertpy-1.0.2/docs/tutorials/notebooks/dialogue.ipynb +0 -840
  41. pertpy-1.0.2/docs/tutorials/notebooks/differential_gene_expression.ipynb +0 -2187
  42. pertpy-1.0.2/docs/tutorials/notebooks/distance_tests.ipynb +0 -349
  43. pertpy-1.0.2/docs/tutorials/notebooks/distances.ipynb +0 -725
  44. pertpy-1.0.2/docs/tutorials/notebooks/enrichment.ipynb +0 -736
  45. pertpy-1.0.2/docs/tutorials/notebooks/expression_prediction_evaluation.ipynb +0 -482
  46. pertpy-1.0.2/docs/tutorials/notebooks/guide_rna_assignment.ipynb +0 -809
  47. pertpy-1.0.2/docs/tutorials/notebooks/mcfarland_use_case.ipynb +0 -1985
  48. pertpy-1.0.2/docs/tutorials/notebooks/metadata_annotation.ipynb +0 -2480
  49. pertpy-1.0.2/docs/tutorials/notebooks/milo.ipynb +0 -2080
  50. pertpy-1.0.2/docs/tutorials/notebooks/mixscape.ipynb +0 -811
  51. pertpy-1.0.2/docs/tutorials/notebooks/norman_use_case.ipynb +0 -1089
  52. pertpy-1.0.2/docs/tutorials/notebooks/ontology_mapping.ipynb +0 -1893
  53. pertpy-1.0.2/docs/tutorials/notebooks/perturbation_space.ipynb +0 -1921
  54. pertpy-1.0.2/docs/tutorials/notebooks/pyproject.toml +0 -73
  55. pertpy-1.0.2/docs/tutorials/notebooks/sccoda.ipynb +0 -1376
  56. pertpy-1.0.2/docs/tutorials/notebooks/sccoda_extended.ipynb +0 -1205
  57. pertpy-1.0.2/docs/tutorials/notebooks/sccoda_tasccoda_case_study.ipynb +0 -2191
  58. pertpy-1.0.2/docs/tutorials/notebooks/scgen_perturbation_prediction.ipynb +0 -678
  59. pertpy-1.0.2/docs/tutorials/notebooks/tasccoda.ipynb +0 -1364
  60. pertpy-1.0.2/docs/tutorials/notebooks/zhang_use_case.ipynb +0 -1049
  61. pertpy-1.0.2/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +0 -566
  62. {pertpy-1.0.2 → pertpy-1.0.3}/.editorconfig +0 -0
  63. {pertpy-1.0.2 → pertpy-1.0.3}/.gitattributes +0 -0
  64. {pertpy-1.0.2 → pertpy-1.0.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  65. {pertpy-1.0.2 → pertpy-1.0.3}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  66. {pertpy-1.0.2 → pertpy-1.0.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  67. {pertpy-1.0.2 → pertpy-1.0.3}/.github/labels.yml +0 -0
  68. {pertpy-1.0.2 → pertpy-1.0.3}/.github/pull_request_template.md +0 -0
  69. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/build.yml +0 -0
  70. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/labeler.yml +0 -0
  71. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/release.yml +0 -0
  72. {pertpy-1.0.2 → pertpy-1.0.3}/.github/workflows/release_drafter.yml +0 -0
  73. {pertpy-1.0.2 → pertpy-1.0.3}/.gitmodules +0 -0
  74. {pertpy-1.0.2 → pertpy-1.0.3}/LICENSE +0 -0
  75. {pertpy-1.0.2 → pertpy-1.0.3}/README.md +0 -0
  76. {pertpy-1.0.2 → pertpy-1.0.3}/biome.jsonc +0 -0
  77. {pertpy-1.0.2 → pertpy-1.0.3}/codecov.yml +0 -0
  78. {pertpy-1.0.2 → pertpy-1.0.3}/docs/Makefile +0 -0
  79. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_ext/edit_on_github.py +0 -0
  80. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_ext/typed_returns.py +0 -0
  81. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/SCVI_LICENSE +0 -0
  82. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/css/overwrite.css +0 -0
  83. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/css/sphinx_gallery.css +0 -0
  84. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/augur_dp_scatter.png +0 -0
  85. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/augur_important_features.png +0 -0
  86. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/augur_lollipop.png +0 -0
  87. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/augur_scatterplot.png +0 -0
  88. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/de_fold_change.png +0 -0
  89. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/de_multicomparison_fc.png +0 -0
  90. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/de_paired_expression.png +0 -0
  91. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/de_volcano.png +0 -0
  92. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/dialogue_pairplot.png +0 -0
  93. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/dialogue_violin.png +0 -0
  94. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/enrichment_dotplot.png +0 -0
  95. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/enrichment_gsea.png +0 -0
  96. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/milo_da_beeswarm.png +0 -0
  97. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/milo_nhood.png +0 -0
  98. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/milo_nhood_graph.png +0 -0
  99. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/mixscape_barplot.png +0 -0
  100. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/mixscape_heatmap.png +0 -0
  101. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/mixscape_lda.png +0 -0
  102. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/mixscape_perturbscore.png +0 -0
  103. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/mixscape_violin.png +0 -0
  104. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/pseudobulk_samples.png +0 -0
  105. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/sccoda_boxplots.png +0 -0
  106. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/sccoda_effects_barplot.png +0 -0
  107. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/sccoda_rel_abundance_dispersion_plot.png +0 -0
  108. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/sccoda_stacked_barplot.png +0 -0
  109. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/scgen_reg_mean.png +0 -0
  110. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/tasccoda_draw_effects.png +0 -0
  111. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/tasccoda_draw_tree.png +0 -0
  112. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/docstring_previews/tasccoda_effects_umap.png +0 -0
  113. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/icons/code-24px.svg +0 -0
  114. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/icons/computer-24px.svg +0 -0
  115. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/icons/library_books-24px.svg +0 -0
  116. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/icons/play_circle_outline-24px.svg +0 -0
  117. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/pertpy_logo.png +0 -0
  118. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/pertpy_logo.svg +0 -0
  119. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/placeholder.png +0 -0
  120. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/augur.png +0 -0
  121. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/cinemaot.png +0 -0
  122. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/dge.png +0 -0
  123. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/dialogue.png +0 -0
  124. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/distances.png +0 -0
  125. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/distances_tests.png +0 -0
  126. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/enrichment.png +0 -0
  127. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/guide_rna_assignment.png +0 -0
  128. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/mcfarland.png +0 -0
  129. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/metadata.png +0 -0
  130. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/milo.png +0 -0
  131. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/mixscape.png +0 -0
  132. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/norman.png +0 -0
  133. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/ontology.png +0 -0
  134. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/perturbation_space.png +0 -0
  135. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/placeholder.png +0 -0
  136. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/sccoda.png +0 -0
  137. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/sccoda_extended.png +0 -0
  138. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/scgen_perturbation_prediction.png +0 -0
  139. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/tasccoda.png +0 -0
  140. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_static/tutorials/zhang.png +0 -0
  141. {pertpy-1.0.2 → pertpy-1.0.3}/docs/_templates/autosummary/class.rst +0 -0
  142. {pertpy-1.0.2 → pertpy-1.0.3}/docs/about/background.md +0 -0
  143. {pertpy-1.0.2 → pertpy-1.0.3}/docs/about/cite.md +0 -0
  144. {pertpy-1.0.2 → pertpy-1.0.3}/docs/api/datasets_index.md +0 -0
  145. {pertpy-1.0.2 → pertpy-1.0.3}/docs/api/metadata_index.md +0 -0
  146. {pertpy-1.0.2 → pertpy-1.0.3}/docs/api/preprocessing_index.md +0 -0
  147. {pertpy-1.0.2 → pertpy-1.0.3}/docs/api/tools_index.md +0 -0
  148. {pertpy-1.0.2 → pertpy-1.0.3}/docs/api.md +0 -0
  149. {pertpy-1.0.2 → pertpy-1.0.3}/docs/contributing.md +0 -0
  150. {pertpy-1.0.2 → pertpy-1.0.3}/docs/index.md +0 -0
  151. {pertpy-1.0.2 → pertpy-1.0.3}/docs/installation.md +0 -0
  152. {pertpy-1.0.2 → pertpy-1.0.3}/docs/make.bat +0 -0
  153. {pertpy-1.0.2 → pertpy-1.0.3}/docs/references.bib +0 -0
  154. {pertpy-1.0.2 → pertpy-1.0.3}/docs/references.md +0 -0
  155. {pertpy-1.0.2 → pertpy-1.0.3}/docs/tutorials/metadata.md +0 -0
  156. {pertpy-1.0.2 → pertpy-1.0.3}/docs/tutorials/preprocessing.md +0 -0
  157. {pertpy-1.0.2 → pertpy-1.0.3}/docs/tutorials/tools.md +0 -0
  158. {pertpy-1.0.2 → pertpy-1.0.3}/docs/tutorials.md +0 -0
  159. {pertpy-1.0.2 → pertpy-1.0.3}/docs/usecases.md +0 -0
  160. {pertpy-1.0.2 → pertpy-1.0.3}/docs/utils.py +0 -0
  161. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/_doc.py +0 -0
  162. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/_types.py +0 -0
  163. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/data/__init__.py +0 -0
  164. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/__init__.py +0 -0
  165. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_cell_line.py +0 -0
  166. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_compound.py +0 -0
  167. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_look_up.py +0 -0
  168. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_metadata.py +0 -0
  169. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/metadata/_moa.py +0 -0
  170. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/plot/__init__.py +0 -0
  171. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/preprocessing/__init__.py +0 -0
  172. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/py.typed +0 -0
  173. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_cinemaot.py +0 -0
  174. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_coda/__init__.py +0 -0
  175. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_coda/_base_coda.py +0 -0
  176. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_dialogue.py +0 -0
  177. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/__init__.py +0 -0
  178. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_base.py +0 -0
  179. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_checks.py +0 -0
  180. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_dge_comparison.py +0 -0
  181. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_edger.py +0 -0
  182. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_pydeseq2.py +0 -0
  183. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_simple_tests.py +0 -0
  184. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_differential_gene_expression/_statsmodels.py +0 -0
  185. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_distances/__init__.py +0 -0
  186. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_distances/_distance_tests.py +0 -0
  187. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_distances/_distances.py +0 -0
  188. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_enrichment.py +0 -0
  189. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_milo.py +0 -0
  190. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/__init__.py +0 -0
  191. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/_clustering.py +0 -0
  192. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_perturbation_space/_metrics.py +0 -0
  193. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_scgen/__init__.py +0 -0
  194. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_scgen/_base_components.py +0 -0
  195. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_scgen/_scgen.py +0 -0
  196. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/_scgen/_utils.py +0 -0
  197. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/decoupler_LICENSE +0 -0
  198. {pertpy-1.0.2 → pertpy-1.0.3}/pertpy/tools/transferlearning_MMD_LICENSE +0 -0
  199. {pertpy-1.0.2 → pertpy-1.0.3}/tests/conftest.py +0 -0
  200. {pertpy-1.0.2 → pertpy-1.0.3}/tests/metadata/test_cell_line.py +0 -0
  201. {pertpy-1.0.2 → pertpy-1.0.3}/tests/metadata/test_compound.py +0 -0
  202. {pertpy-1.0.2 → pertpy-1.0.3}/tests/metadata/test_drug.py +0 -0
  203. {pertpy-1.0.2 → pertpy-1.0.3}/tests/metadata/test_moa.py +0 -0
  204. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_coda/test_sccoda.py +0 -0
  205. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_coda/test_tasccoda.py +0 -0
  206. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/__init__.py +0 -0
  207. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/conftest.py +0 -0
  208. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_base.py +0 -0
  209. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_compare_groups.py +0 -0
  210. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_dge.py +0 -0
  211. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_edger.py +0 -0
  212. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_input_checks.py +0 -0
  213. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_pydeseq2.py +0 -0
  214. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_simple_tests.py +0 -0
  215. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_differential_gene_expression/test_statsmodels.py +0 -0
  216. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_distances/test_distance_tests.py +0 -0
  217. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_perturbation_space/test_comparison.py +0 -0
  218. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_perturbation_space/test_discriminator_classifiers.py +0 -0
  219. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_perturbation_space/test_simple_cluster_space.py +0 -0
  220. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/_perturbation_space/test_simple_perturbation_space.py +0 -0
  221. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_cinemaot.py +0 -0
  222. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_dialogue.py +0 -0
  223. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_enrichment.py +0 -0
  224. {pertpy-1.0.2 → pertpy-1.0.3}/tests/tools/test_milo.py +0 -0
@@ -1,5 +1,5 @@
1
- name-template: "1.0.2 🌈"
2
- tag-template: 1.0.2
1
+ name-template: "1.0.3 🌈"
2
+ tag-template: 1.0.3
3
3
  exclude-labels:
4
4
  - "skip-changelog"
5
5
 
@@ -77,7 +77,7 @@ jobs:
77
77
  - name: Install dependencies
78
78
  run: |
79
79
  uv pip install --system rpy2
80
- uv pip install --system ${{ matrix.pip-flags }} ".[dev,test,tcoda,de]"
80
+ uv pip install --system ${{ matrix.pip-flags }} ".[dev,test,all]"
81
81
 
82
82
  - name: Test
83
83
  env:
@@ -34,8 +34,8 @@ jobs:
34
34
  "guide_rna_assignment.ipynb",
35
35
  "milo.ipynb",
36
36
  "mixscape.ipynb",
37
- "perturbation_space.ipynb",
38
37
  "sccoda.ipynb",
38
+ # "perturbation_space.ipynb", seems to run OOM as of Jax implementation
39
39
  # "dialogue.ipynb", takes too long
40
40
  # "tasccoda.ipynb", a pain to get running because of the required QT dependency. The QT action leads to a dead kernel
41
41
  # also no use cases yet
@@ -48,7 +48,7 @@ jobs:
48
48
  fetch-depth: 0
49
49
  submodules: "true"
50
50
 
51
- - name: Cache .pertpy_cache
51
+ - name: Cache pertpy's cache folder
52
52
  uses: actions/cache@v4
53
53
  with:
54
54
  path: cache
@@ -87,7 +87,7 @@ jobs:
87
87
  - name: Install dependencies
88
88
  run: |
89
89
  uv pip install --system rpy2 decoupler muon
90
- uv pip install --system ${{ matrix.pip-flags }} ".[dev,test,tcoda,de]"
90
+ uv pip install --system ".[dev,test,all]"
91
91
  uv pip install --system nbconvert ipykernel
92
92
 
93
93
  - name: Run ${{ matrix.notebook }} Notebook
@@ -148,7 +148,6 @@ dmypy.json
148
148
 
149
149
  # Datasets
150
150
  *.h5ad
151
- *.h5md
152
151
  *.h5mu
153
152
 
154
153
  # Test cache
@@ -157,8 +156,7 @@ cache
157
156
  # Apple stuff
158
157
  .DS_Store
159
158
 
160
- lightning_logs/*
161
- */lightning_logs/*
159
+ lightning_logs/
162
160
 
163
161
  node_modules
164
162
 
@@ -169,3 +167,6 @@ test-bug
169
167
 
170
168
  # uv
171
169
  uv.lock
170
+
171
+ # Ruff
172
+ .ruff_cache
@@ -7,11 +7,11 @@ default_stages:
7
7
  minimum_pre_commit_version: 2.16.0
8
8
  repos:
9
9
  - repo: https://github.com/biomejs/pre-commit
10
- rev: v2.1.4
10
+ rev: v2.2.4
11
11
  hooks:
12
12
  - id: biome-format
13
13
  - repo: https://github.com/astral-sh/ruff-pre-commit
14
- rev: v0.12.8
14
+ rev: v0.13.1
15
15
  hooks:
16
16
  - id: ruff-check
17
17
  args: [--fix, --exit-non-zero-on-fix, --unsafe-fixes]
@@ -33,7 +33,7 @@ repos:
33
33
  - id: no-commit-to-branch
34
34
  args: ["--branch=main"]
35
35
  - repo: https://github.com/pre-commit/mirrors-mypy
36
- rev: v1.17.1
36
+ rev: v1.18.2
37
37
  hooks:
38
38
  - id: mypy
39
39
  args: [--no-strict-optional, --ignore-missing-imports]
@@ -9,7 +9,7 @@ build:
9
9
  - asdf install uv latest
10
10
  - asdf global uv latest
11
11
  - uv venv
12
- - uv pip install .[doc,tcoda,de]
12
+ - uv pip install .[doc,all]
13
13
  build:
14
14
  html:
15
15
  - uv run sphinx-build -T -W -b html docs $READTHEDOCS_OUTPUT/html
@@ -1,17 +1,41 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pertpy
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Summary: Perturbation Analysis in the scverse ecosystem.
5
+ Project-URL: Documentation, https://pertpy.readthedocs.io
6
+ Project-URL: Source, https://github.com/scverse/pertpy
7
+ Project-URL: Home-page, https://github.com/scverse/pertpy
5
8
  Author: Lukas Heumos, Lilly May, Stefan Peidli, Johannes Ostner, Gregor Sturm, Emma Dann, Yuge Ji, Xinyue Zhang, Xichen Wu, Tessa Green, Antonia Schumacher
6
9
  Maintainer-email: Lukas Heumos <lukas.heumos@posteo.net>
7
- Requires-Python: >=3.11,<3.14
8
- Description-Content-Type: text/markdown
9
- Classifier: License :: OSI Approved :: Apache Software License
10
+ License: MIT License
11
+
12
+ Copyright (c) 2021, Lukas Heumos
13
+ Copyright (c) 2025, scverse®
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
32
+ License-File: LICENSE
10
33
  Classifier: Development Status :: 5 - Production/Stable
11
34
  Classifier: Environment :: Console
12
35
  Classifier: Framework :: Jupyter
13
36
  Classifier: Intended Audience :: Developers
14
37
  Classifier: Intended Audience :: Science/Research
38
+ Classifier: License :: OSI Approved :: Apache Software License
15
39
  Classifier: Natural Language :: English
16
40
  Classifier: Operating System :: MacOS :: MacOS X
17
41
  Classifier: Operating System :: POSIX :: Linux
@@ -21,62 +45,72 @@ Classifier: Programming Language :: Python :: 3.12
21
45
  Classifier: Programming Language :: Python :: 3.13
22
46
  Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
23
47
  Classifier: Topic :: Scientific/Engineering :: Visualization
24
- License-File: LICENSE
25
- Requires-Dist: rich
26
- Requires-Dist: scanpy
27
- Requires-Dist: mudata
28
- Requires-Dist: requests
29
- Requires-Dist: scikit-misc
30
- Requires-Dist: scvi-tools
48
+ Requires-Python: <3.14,>=3.11
31
49
  Requires-Dist: adjusttext
32
- Requires-Dist: ott-jax
33
- Requires-Dist: sparsecca
50
+ Requires-Dist: arviz
51
+ Requires-Dist: blitzgsea
52
+ Requires-Dist: fast-array-utils[accel,sparse]
53
+ Requires-Dist: flax
54
+ Requires-Dist: funsor
55
+ Requires-Dist: lamin-utils
56
+ Requires-Dist: mudata
57
+ Requires-Dist: numpyro
34
58
  Requires-Dist: openpyxl
59
+ Requires-Dist: ott-jax
35
60
  Requires-Dist: pubchempy
36
61
  Requires-Dist: pyarrow
37
- Requires-Dist: blitzgsea
62
+ Requires-Dist: requests
63
+ Requires-Dist: rich
64
+ Requires-Dist: scanpy
38
65
  Requires-Dist: scikit-learn>=1.4
39
- Requires-Dist: fast-array-utils[accel, sparse]
40
- Requires-Dist: lamin_utils
41
- Requires-Dist: arviz
42
- Requires-Dist: formulaic-contrasts>=0.2.0 ; extra == "de"
43
- Requires-Dist: formulaic ; extra == "de"
44
- Requires-Dist: pydeseq2>=v0.5.0 ; extra == "de"
45
- Requires-Dist: pre-commit ; extra == "dev"
46
- Requires-Dist: docutils>=0.8 ; extra == "doc"
47
- Requires-Dist: sphinx>=8.1 ; extra == "doc"
48
- Requires-Dist: scanpydoc ; extra == "doc"
49
- Requires-Dist: sphinx-book-theme ; extra == "doc"
50
- Requires-Dist: myst-nb ; extra == "doc"
51
- Requires-Dist: sphinxcontrib-bibtex>=1.0.0 ; extra == "doc"
52
- Requires-Dist: sphinx-issues ; extra == "doc"
53
- Requires-Dist: sphinx-gallery ; extra == "doc"
54
- Requires-Dist: sphinx-autodoc-typehints ; extra == "doc"
55
- Requires-Dist: sphinx-copybutton ; extra == "doc"
56
- Requires-Dist: sphinx-remove-toctrees ; extra == "doc"
57
- Requires-Dist: sphinx-design ; extra == "doc"
58
- Requires-Dist: sphinx-last-updated-by-git ; extra == "doc"
59
- Requires-Dist: sphinx-automodapi ; extra == "doc"
60
- Requires-Dist: sphinxext-opengraph ; extra == "doc"
61
- Requires-Dist: pygments ; extra == "doc"
62
- Requires-Dist: nbsphinx ; extra == "doc"
63
- Requires-Dist: nbsphinx-link ; extra == "doc"
64
- Requires-Dist: ipykernel ; extra == "doc"
65
- Requires-Dist: ipython ; extra == "doc"
66
- Requires-Dist: toytree>=3.0 ; extra == "tcoda"
67
- Requires-Dist: ete4 ; extra == "tcoda"
68
- Requires-Dist: pyqt6 ; extra == "tcoda"
69
- Requires-Dist: pytest ; extra == "test"
70
- Requires-Dist: coverage ; extra == "test"
71
- Requires-Dist: leidenalg ; extra == "test"
72
- Project-URL: Documentation, https://pertpy.readthedocs.io
73
- Project-URL: Home-page, https://github.com/scverse/pertpy
74
- Project-URL: Source, https://github.com/scverse/pertpy
66
+ Requires-Dist: scikit-misc
67
+ Requires-Dist: sparsecca
68
+ Provides-Extra: all
69
+ Requires-Dist: ete4; extra == 'all'
70
+ Requires-Dist: formulaic; extra == 'all'
71
+ Requires-Dist: formulaic-contrasts>=0.2.0; extra == 'all'
72
+ Requires-Dist: pydeseq2>=v0.5.0; extra == 'all'
73
+ Requires-Dist: pyqt6; extra == 'all'
74
+ Requires-Dist: scvi-tools[jax]; extra == 'all'
75
+ Requires-Dist: toytree>=3.0; extra == 'all'
75
76
  Provides-Extra: de
77
+ Requires-Dist: formulaic; extra == 'de'
78
+ Requires-Dist: formulaic-contrasts>=0.2.0; extra == 'de'
79
+ Requires-Dist: pydeseq2>=v0.5.0; extra == 'de'
76
80
  Provides-Extra: dev
81
+ Requires-Dist: pre-commit; extra == 'dev'
77
82
  Provides-Extra: doc
83
+ Requires-Dist: docutils>=0.8; extra == 'doc'
84
+ Requires-Dist: ipykernel; extra == 'doc'
85
+ Requires-Dist: ipython; extra == 'doc'
86
+ Requires-Dist: myst-nb; extra == 'doc'
87
+ Requires-Dist: nbsphinx; extra == 'doc'
88
+ Requires-Dist: nbsphinx-link; extra == 'doc'
89
+ Requires-Dist: pygments; extra == 'doc'
90
+ Requires-Dist: scanpydoc; extra == 'doc'
91
+ Requires-Dist: sphinx-autodoc-typehints; extra == 'doc'
92
+ Requires-Dist: sphinx-automodapi; extra == 'doc'
93
+ Requires-Dist: sphinx-book-theme; extra == 'doc'
94
+ Requires-Dist: sphinx-copybutton; extra == 'doc'
95
+ Requires-Dist: sphinx-design; extra == 'doc'
96
+ Requires-Dist: sphinx-gallery; extra == 'doc'
97
+ Requires-Dist: sphinx-issues; extra == 'doc'
98
+ Requires-Dist: sphinx-last-updated-by-git; extra == 'doc'
99
+ Requires-Dist: sphinx-remove-toctrees; extra == 'doc'
100
+ Requires-Dist: sphinx>=8.1; extra == 'doc'
101
+ Requires-Dist: sphinxcontrib-bibtex>=1.0.0; extra == 'doc'
102
+ Requires-Dist: sphinxext-opengraph; extra == 'doc'
103
+ Provides-Extra: scgen
104
+ Requires-Dist: scvi-tools[jax]; extra == 'scgen'
78
105
  Provides-Extra: tcoda
106
+ Requires-Dist: ete4; extra == 'tcoda'
107
+ Requires-Dist: pyqt6; extra == 'tcoda'
108
+ Requires-Dist: toytree>=3.0; extra == 'tcoda'
79
109
  Provides-Extra: test
110
+ Requires-Dist: coverage; extra == 'test'
111
+ Requires-Dist: leidenalg; extra == 'test'
112
+ Requires-Dist: pytest; extra == 'test'
113
+ Description-Content-Type: text/markdown
80
114
 
81
115
  [![Build](https://github.com/scverse/pertpy/actions/workflows/build.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/build.yml)
82
116
  [![codecov](https://codecov.io/gh/scverse/pertpy/graph/badge.svg?token=1dTpIPBShv)](https://codecov.io/gh/scverse/pertpy)
@@ -183,4 +217,3 @@ If you like scverse® and want to support our mission, please consider making a
183
217
  >
184
218
  </a>
185
219
  </div>
186
-
@@ -5,14 +5,22 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## v1.0.3
9
+
10
+ ### 🚀 Features
11
+
12
+ * Move from figshare to scverse AWS S3 ([#848](https://github.com/scverse/pertpy/pull/848)) @Zethson
13
+ * Rename `label_transfer` `column` parameter to `target_column` ([#848](https://github.com/scverse/pertpy/pull/848)) @Zethson
14
+ * Rename `mixscape` `labels` parameter to `pert_key` ([#848](https://github.com/scverse/pertpy/pull/848)) @Zethson
15
+
8
16
  ## v1.0.2
9
17
 
10
18
  ### 🐛 Bug Fixes
11
19
 
12
- * Fix: Validate 'type' parameter in Tasccoda.load ([#839](https://github.com/scverse/pertpy/pull/839)) @JuanTejedor
20
+ * Fix Validate 'type' parameter in Tasccoda.load ([#839](https://github.com/scverse/pertpy/pull/839)) @JuanTejedor
13
21
  * Partial fixes for make_arviz ([#834](https://github.com/scverse/pertpy/pull/834)) @jpintar
14
22
  * Fix setting of `rng_key` in `make_arviz` ([#831](https://github.com/scverse/pertpy/pull/831)) @jpintar
15
- * Fixed GDSC and PRISM annotation warnings ([#835](https://github.com/scverse/pertpy/pull/835)) @Lilly-May
23
+ * Fix GDSC and PRISM annotation warnings ([#835](https://github.com/scverse/pertpy/pull/835)) @Lilly-May
16
24
 
17
25
  ## v1.0.1
18
26
 
@@ -14,7 +14,7 @@ needs_sphinx = "4.3"
14
14
  info = metadata("pertpy")
15
15
  project_name = info["Name"]
16
16
  author = info["Author"]
17
- copyright = f"{datetime.now():%Y}, {author}."
17
+ copyright = f"{datetime.now():%Y}, {author}"
18
18
  version = info["Version"]
19
19
  urls = dict(pu.split(", ") for pu in info.get_all("Project-URL"))
20
20
  repository_url = urls["Source"]
@@ -2,7 +2,7 @@
2
2
 
3
3
  __author__ = "Lukas Heumos"
4
4
  __email__ = "lukas.heumos@posteo.net"
5
- __version__ = "1.0.2"
5
+ __version__ = "1.0.3"
6
6
 
7
7
  import warnings
8
8
 
@@ -17,7 +17,7 @@ def _download( # pragma: no cover
17
17
  url: str,
18
18
  output_file_name: str | None = None,
19
19
  output_path: str | Path | None = None,
20
- block_size: int = 1024,
20
+ block_size: int = 8192,
21
21
  overwrite: bool = False,
22
22
  is_zip: bool = False,
23
23
  timeout: int = 30,
@@ -74,7 +74,7 @@ def _download( # pragma: no cover
74
74
  response.raise_for_status()
75
75
  total = int(response.headers.get("content-length", 0))
76
76
 
77
- with Progress(refresh_per_second=5) as progress:
77
+ with Progress(refresh_per_second=3) as progress:
78
78
  task = progress.add_task("[red]Downloading...", total=total)
79
79
  with Path(temp_file_name).open("wb") as file:
80
80
  for data in response.iter_content(block_size):