pertpy 0.11.0__tar.gz → 0.11.1__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 (194) hide show
  1. {pertpy-0.11.0 → pertpy-0.11.1}/.editorconfig +1 -1
  2. {pertpy-0.11.0 → pertpy-0.11.1}/.github/release-drafter.yml +2 -2
  3. {pertpy-0.11.0 → pertpy-0.11.1}/.github/workflows/release.yml +6 -4
  4. {pertpy-0.11.0 → pertpy-0.11.1}/.gitignore +4 -1
  5. pertpy-0.11.1/.readthedocs.yml +18 -0
  6. {pertpy-0.11.0 → pertpy-0.11.1}/PKG-INFO +8 -6
  7. {pertpy-0.11.0 → pertpy-0.11.1}/README.md +5 -3
  8. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/css/overwrite.css +6 -7
  9. pertpy-0.11.1/docs/api/datasets_index.md +70 -0
  10. pertpy-0.11.1/docs/api/metadata_index.md +55 -0
  11. pertpy-0.11.1/docs/api/preprocessing_index.md +37 -0
  12. pertpy-0.11.0/docs/api/api.md → pertpy-0.11.1/docs/api/tools_index.md +16 -189
  13. pertpy-0.11.1/docs/api.md +22 -0
  14. pertpy-0.11.1/docs/changelog.md +303 -0
  15. {pertpy-0.11.0 → pertpy-0.11.1}/docs/conf.py +7 -4
  16. {pertpy-0.11.0 → pertpy-0.11.1}/docs/index.md +15 -6
  17. pertpy-0.11.1/docs/tutorials/metadata.md +8 -0
  18. pertpy-0.11.1/docs/tutorials/preprocessing.md +7 -0
  19. pertpy-0.11.1/docs/tutorials/tools.md +64 -0
  20. pertpy-0.11.1/docs/tutorials.md +19 -0
  21. pertpy-0.11.1/docs/usecases.md +13 -0
  22. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/__init__.py +1 -1
  23. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/__init__.py +4 -3
  24. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_coda/_base_coda.py +5 -3
  25. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_coda/_sccoda.py +3 -1
  26. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_coda/_tasccoda.py +3 -1
  27. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_dialogue.py +0 -1
  28. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_distances/_distances.py +0 -1
  29. {pertpy-0.11.0 → pertpy-0.11.1}/pyproject.toml +3 -3
  30. pertpy-0.11.0/.readthedocs.yml +0 -18
  31. pertpy-0.11.0/docs/data/adamson_2016_pilot.h5ad.lock +0 -0
  32. pertpy-0.11.0/docs/tutorials/index.md +0 -57
  33. {pertpy-0.11.0 → pertpy-0.11.1}/.gitattributes +0 -0
  34. {pertpy-0.11.0 → pertpy-0.11.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  35. {pertpy-0.11.0 → pertpy-0.11.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  36. {pertpy-0.11.0 → pertpy-0.11.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  37. {pertpy-0.11.0 → pertpy-0.11.1}/.github/labels.yml +0 -0
  38. {pertpy-0.11.0 → pertpy-0.11.1}/.github/pull_request_template.md +0 -0
  39. {pertpy-0.11.0 → pertpy-0.11.1}/.github/workflows/build.yml +0 -0
  40. {pertpy-0.11.0 → pertpy-0.11.1}/.github/workflows/labeler.yml +0 -0
  41. {pertpy-0.11.0 → pertpy-0.11.1}/.github/workflows/release_drafter.yml +0 -0
  42. {pertpy-0.11.0 → pertpy-0.11.1}/.github/workflows/test.yml +0 -0
  43. {pertpy-0.11.0 → pertpy-0.11.1}/.gitmodules +0 -0
  44. {pertpy-0.11.0 → pertpy-0.11.1}/.pre-commit-config.yaml +0 -0
  45. {pertpy-0.11.0 → pertpy-0.11.1}/LICENSE +0 -0
  46. {pertpy-0.11.0 → pertpy-0.11.1}/biome.jsonc +0 -0
  47. {pertpy-0.11.0 → pertpy-0.11.1}/codecov.yml +0 -0
  48. {pertpy-0.11.0 → pertpy-0.11.1}/docs/Makefile +0 -0
  49. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_ext/edit_on_github.py +0 -0
  50. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_ext/typed_returns.py +0 -0
  51. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/SCVI_LICENSE +0 -0
  52. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/css/sphinx_gallery.css +0 -0
  53. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/augur_dp_scatter.png +0 -0
  54. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/augur_important_features.png +0 -0
  55. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/augur_lollipop.png +0 -0
  56. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/augur_scatterplot.png +0 -0
  57. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/de_fold_change.png +0 -0
  58. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/de_multicomparison_fc.png +0 -0
  59. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/de_paired_expression.png +0 -0
  60. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/de_volcano.png +0 -0
  61. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/dialogue_pairplot.png +0 -0
  62. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/dialogue_violin.png +0 -0
  63. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/enrichment_dotplot.png +0 -0
  64. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/enrichment_gsea.png +0 -0
  65. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/milo_da_beeswarm.png +0 -0
  66. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/milo_nhood.png +0 -0
  67. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/milo_nhood_graph.png +0 -0
  68. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/mixscape_barplot.png +0 -0
  69. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/mixscape_heatmap.png +0 -0
  70. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/mixscape_lda.png +0 -0
  71. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/mixscape_perturbscore.png +0 -0
  72. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/mixscape_violin.png +0 -0
  73. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/pseudobulk_samples.png +0 -0
  74. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/sccoda_boxplots.png +0 -0
  75. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/sccoda_effects_barplot.png +0 -0
  76. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/sccoda_rel_abundance_dispersion_plot.png +0 -0
  77. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/sccoda_stacked_barplot.png +0 -0
  78. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/scgen_reg_mean.png +0 -0
  79. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/tasccoda_draw_effects.png +0 -0
  80. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/tasccoda_draw_tree.png +0 -0
  81. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/docstring_previews/tasccoda_effects_umap.png +0 -0
  82. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/icons/code-24px.svg +0 -0
  83. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/icons/computer-24px.svg +0 -0
  84. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/icons/library_books-24px.svg +0 -0
  85. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/icons/play_circle_outline-24px.svg +0 -0
  86. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/pertpy_logo.png +0 -0
  87. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/pertpy_logo.svg +0 -0
  88. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/placeholder.png +0 -0
  89. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/augur.png +0 -0
  90. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/cinemaot.png +0 -0
  91. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/dge.png +0 -0
  92. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/dialogue.png +0 -0
  93. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/distances.png +0 -0
  94. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/distances_tests.png +0 -0
  95. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/enrichment.png +0 -0
  96. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/guide_rna_assignment.png +0 -0
  97. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/mcfarland.png +0 -0
  98. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/metadata.png +0 -0
  99. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/milo.png +0 -0
  100. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/mixscape.png +0 -0
  101. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/norman.png +0 -0
  102. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/ontology.png +0 -0
  103. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/perturbation_space.png +0 -0
  104. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/placeholder.png +0 -0
  105. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/sccoda.png +0 -0
  106. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/sccoda_extended.png +0 -0
  107. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/scgen_perturbation_prediction.png +0 -0
  108. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/tasccoda.png +0 -0
  109. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_static/tutorials/zhang.png +0 -0
  110. {pertpy-0.11.0 → pertpy-0.11.1}/docs/_templates/autosummary/class.rst +0 -0
  111. {pertpy-0.11.0 → pertpy-0.11.1}/docs/contributing.md +0 -0
  112. {pertpy-0.11.0 → pertpy-0.11.1}/docs/installation.md +0 -0
  113. {pertpy-0.11.0 → pertpy-0.11.1}/docs/make.bat +0 -0
  114. {pertpy-0.11.0 → pertpy-0.11.1}/docs/references.bib +0 -0
  115. {pertpy-0.11.0 → pertpy-0.11.1}/docs/references.md +0 -0
  116. {pertpy-0.11.0 → pertpy-0.11.1}/docs/utils.py +0 -0
  117. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/_doc.py +0 -0
  118. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/_types.py +0 -0
  119. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/data/__init__.py +0 -0
  120. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/data/_dataloader.py +0 -0
  121. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/data/_datasets.py +0 -0
  122. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/__init__.py +0 -0
  123. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_cell_line.py +0 -0
  124. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_compound.py +0 -0
  125. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_drug.py +0 -0
  126. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_look_up.py +0 -0
  127. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_metadata.py +0 -0
  128. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/metadata/_moa.py +0 -0
  129. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/plot/__init__.py +0 -0
  130. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/preprocessing/__init__.py +0 -0
  131. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/preprocessing/_guide_rna.py +0 -0
  132. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/preprocessing/_guide_rna_mixture.py +0 -0
  133. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/py.typed +0 -0
  134. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_augur.py +0 -0
  135. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_cinemaot.py +0 -0
  136. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_coda/__init__.py +0 -0
  137. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/__init__.py +0 -0
  138. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_base.py +0 -0
  139. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_checks.py +0 -0
  140. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_dge_comparison.py +0 -0
  141. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_edger.py +0 -0
  142. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_pydeseq2.py +0 -0
  143. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_simple_tests.py +0 -0
  144. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_differential_gene_expression/_statsmodels.py +0 -0
  145. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_distances/__init__.py +0 -0
  146. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_distances/_distance_tests.py +0 -0
  147. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_enrichment.py +0 -0
  148. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_milo.py +0 -0
  149. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_mixscape.py +0 -0
  150. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/__init__.py +0 -0
  151. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_clustering.py +0 -0
  152. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_comparison.py +0 -0
  153. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +0 -0
  154. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_metrics.py +0 -0
  155. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_perturbation_space.py +0 -0
  156. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_perturbation_space/_simple.py +0 -0
  157. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_scgen/__init__.py +0 -0
  158. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_scgen/_base_components.py +0 -0
  159. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_scgen/_scgen.py +0 -0
  160. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_scgen/_scgenvae.py +0 -0
  161. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/_scgen/_utils.py +0 -0
  162. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/decoupler_LICENSE +0 -0
  163. {pertpy-0.11.0 → pertpy-0.11.1}/pertpy/tools/transferlearning_MMD_LICENSE +0 -0
  164. {pertpy-0.11.0 → pertpy-0.11.1}/tests/conftest.py +0 -0
  165. {pertpy-0.11.0 → pertpy-0.11.1}/tests/metadata/test_cell_line.py +0 -0
  166. {pertpy-0.11.0 → pertpy-0.11.1}/tests/metadata/test_compound.py +0 -0
  167. {pertpy-0.11.0 → pertpy-0.11.1}/tests/metadata/test_drug.py +0 -0
  168. {pertpy-0.11.0 → pertpy-0.11.1}/tests/metadata/test_moa.py +0 -0
  169. {pertpy-0.11.0 → pertpy-0.11.1}/tests/preprocessing/test_grna_assignment.py +0 -0
  170. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_coda/test_sccoda.py +0 -0
  171. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_coda/test_tasccoda.py +0 -0
  172. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/__init__.py +0 -0
  173. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/conftest.py +0 -0
  174. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_base.py +0 -0
  175. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_compare_groups.py +0 -0
  176. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_dge.py +0 -0
  177. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_edger.py +0 -0
  178. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_input_checks.py +0 -0
  179. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_pydeseq2.py +0 -0
  180. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_simple_tests.py +0 -0
  181. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_differential_gene_expression/test_statsmodels.py +0 -0
  182. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_distances/test_distance_tests.py +0 -0
  183. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_distances/test_distances.py +0 -0
  184. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_perturbation_space/test_comparison.py +0 -0
  185. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_perturbation_space/test_discriminator_classifiers.py +0 -0
  186. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_perturbation_space/test_simple_cluster_space.py +0 -0
  187. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/_perturbation_space/test_simple_perturbation_space.py +0 -0
  188. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_augur.py +0 -0
  189. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_cinemaot.py +0 -0
  190. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_dialogue.py +0 -0
  191. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_enrichment.py +0 -0
  192. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_milo.py +0 -0
  193. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_mixscape.py +0 -0
  194. {pertpy-0.11.0 → pertpy-0.11.1}/tests/tools/test_scgen.py +0 -0
@@ -15,7 +15,7 @@ indent_style = tab
15
15
  end_of_line = crlf
16
16
 
17
17
  [LICENSE]
18
- insert_final_newline = false
18
+ insert_final_newline = true
19
19
 
20
20
  [Makefile]
21
21
  indent_style = tab
@@ -1,5 +1,5 @@
1
- name-template: "0.11.0 🌈"
2
- tag-template: 0.11.0
1
+ name-template: "0.11.1 🌈"
2
+ tag-template: 0.11.1
3
3
  exclude-labels:
4
4
  - "skip-changelog"
5
5
 
@@ -18,11 +18,13 @@ jobs:
18
18
  with:
19
19
  python-version: "3.x"
20
20
 
21
- - name: Install hatch
22
- run: pip install hatch
21
+ - name: Install uv
22
+ uses: astral-sh/setup-uv@v5
23
+ with:
24
+ cache-dependency-glob: pyproject.toml
23
25
 
24
- - name: Build project for distribution
25
- run: hatch build
26
+ - name: Build package
27
+ run: uv build
26
28
 
27
29
  - name: Publish a Python distribution to PyPI
28
30
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -72,7 +72,10 @@ instance/
72
72
 
73
73
  # Sphinx documentation
74
74
  docs/_build/
75
- docs/api/*
75
+ docs/api/data
76
+ docs/api/metadata
77
+ docs/api/tools
78
+ docs/api/preprocessing
76
79
  !docs/api/api.md
77
80
 
78
81
  # PyBuilder
@@ -0,0 +1,18 @@
1
+ version: 2
2
+ build:
3
+ os: ubuntu-24.04
4
+ tools:
5
+ python: "3.13"
6
+ jobs:
7
+ create_environment:
8
+ - asdf plugin add uv
9
+ - asdf install uv latest
10
+ - asdf global uv latest
11
+ - uv venv
12
+ - uv pip install .[doc,tcoda,de]
13
+ build:
14
+ html:
15
+ - uv run sphinx-build -T -W -b html docs $READTHEDOCS_OUTPUT/html
16
+
17
+ submodules:
18
+ include: all
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pertpy
3
- Version: 0.11.0
3
+ Version: 0.11.1
4
4
  Summary: Perturbation Analysis in the scverse ecosystem.
5
5
  Project-URL: Documentation, https://pertpy.readthedocs.io
6
6
  Project-URL: Source, https://github.com/scverse/pertpy
@@ -67,7 +67,7 @@ Requires-Dist: sparsecca
67
67
  Provides-Extra: de
68
68
  Requires-Dist: formulaic; extra == 'de'
69
69
  Requires-Dist: formulaic-contrasts>=0.2.0; extra == 'de'
70
- Requires-Dist: pydeseq2>=v0.5.0pre1; extra == 'de'
70
+ Requires-Dist: pydeseq2>=v0.5.0; extra == 'de'
71
71
  Provides-Extra: dev
72
72
  Requires-Dist: pre-commit; extra == 'dev'
73
73
  Provides-Extra: doc
@@ -88,7 +88,7 @@ Requires-Dist: sphinx-gallery; extra == 'doc'
88
88
  Requires-Dist: sphinx-issues; extra == 'doc'
89
89
  Requires-Dist: sphinx-last-updated-by-git; extra == 'doc'
90
90
  Requires-Dist: sphinx-remove-toctrees; extra == 'doc'
91
- Requires-Dist: sphinx>=6; extra == 'doc'
91
+ Requires-Dist: sphinx>=8.1; extra == 'doc'
92
92
  Requires-Dist: sphinxcontrib-bibtex>=1.0.0; extra == 'doc'
93
93
  Requires-Dist: sphinxext-opengraph; extra == 'doc'
94
94
  Provides-Extra: tcoda
@@ -101,7 +101,6 @@ Requires-Dist: leidenalg; extra == 'test'
101
101
  Requires-Dist: pytest; extra == 'test'
102
102
  Description-Content-Type: text/markdown
103
103
 
104
- [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
105
104
  [![Build](https://github.com/scverse/pertpy/actions/workflows/build.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/build.yml)
106
105
  [![codecov](https://codecov.io/gh/scverse/pertpy/graph/badge.svg?token=1dTpIPBShv)](https://codecov.io/gh/scverse/pertpy)
107
106
  [![License](https://img.shields.io/github/license/scverse/pertpy)](https://opensource.org/licenses/Apache2.0)
@@ -111,13 +110,16 @@ Description-Content-Type: text/markdown
111
110
  [![Test](https://github.com/scverse/pertpy/actions/workflows/test.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/test.yml)
112
111
  [![PyPI](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
113
112
 
114
- # pertpy
113
+ # pertpy - Perturbation Analysis in Python
114
+
115
+ Pertpy is a scverse ecosystem framework for analyzing large-scale single-cell perturbation experiments.
116
+ It provides tools for harmonizing perturbation datasets, automating metadata annotation, calculating perturbation distances, and efficiently analyzing how cells respond to various stimuli like genetic modifications, drug treatments, and environmental changes.
115
117
 
116
118
  ![fig1](https://github.com/user-attachments/assets/d2e32d69-b767-4be3-a938-77a9dce45d3f)
117
119
 
118
120
  ## Documentation
119
121
 
120
- Please read the [documentation](https://pertpy.readthedocs.io/en/latest).
122
+ Please read the [documentation](https://pertpy.readthedocs.io/en/latest) for installation, tutorials, use cases, and more.
121
123
 
122
124
  ## Installation
123
125
 
@@ -1,4 +1,3 @@
1
- [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
2
1
  [![Build](https://github.com/scverse/pertpy/actions/workflows/build.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/build.yml)
3
2
  [![codecov](https://codecov.io/gh/scverse/pertpy/graph/badge.svg?token=1dTpIPBShv)](https://codecov.io/gh/scverse/pertpy)
4
3
  [![License](https://img.shields.io/github/license/scverse/pertpy)](https://opensource.org/licenses/Apache2.0)
@@ -8,13 +7,16 @@
8
7
  [![Test](https://github.com/scverse/pertpy/actions/workflows/test.yml/badge.svg)](https://github.com/scverse/pertpy/actions/workflows/test.yml)
9
8
  [![PyPI](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
10
9
 
11
- # pertpy
10
+ # pertpy - Perturbation Analysis in Python
11
+
12
+ Pertpy is a scverse ecosystem framework for analyzing large-scale single-cell perturbation experiments.
13
+ It provides tools for harmonizing perturbation datasets, automating metadata annotation, calculating perturbation distances, and efficiently analyzing how cells respond to various stimuli like genetic modifications, drug treatments, and environmental changes.
12
14
 
13
15
  ![fig1](https://github.com/user-attachments/assets/d2e32d69-b767-4be3-a938-77a9dce45d3f)
14
16
 
15
17
  ## Documentation
16
18
 
17
- Please read the [documentation](https://pertpy.readthedocs.io/en/latest).
19
+ Please read the [documentation](https://pertpy.readthedocs.io/en/latest) for installation, tutorials, use cases, and more.
18
20
 
19
21
  ## Installation
20
22
 
@@ -1,10 +1,3 @@
1
- /*
2
- Furo CSS variables
3
- https://github.com/pradyunsg/furo/blob/main/src/furo/assets/styles/variables/_index.scss
4
- https://github.com/pradyunsg/furo/blob/main/src/furo/theme/partials/_head_css_variables.html
5
- https://github.com/streamlink/streamlink/blob/17a4088c38709123c0bcab4a150549bd16d19e07/docs/_static/styles/custom.css
6
- */
7
-
8
1
  /* for the sphinx design cards */
9
2
  body {
10
3
  --sd-color-shadow: dimgrey;
@@ -72,3 +65,9 @@ li.toctree-l3 {
72
65
  li.toctree-l4 {
73
66
  font-size: 75% !important;
74
67
  }
68
+
69
+ .bd-sidebar .caption-text {
70
+ color: #e63946;
71
+ font-weight: 600;
72
+ text-transform: uppercase;
73
+ }
@@ -0,0 +1,70 @@
1
+ ```{eval-rst}
2
+ .. currentmodule:: pertpy
3
+ ```
4
+
5
+ # Datasets
6
+
7
+ pertpy provides access to several curated single-cell datasets spanning several types of perturbations.
8
+ Many of the datasets originate from [scperturb](http://projects.sanderlab.org/scperturb/) {cite}`Peidli2024`.
9
+
10
+ ```{eval-rst}
11
+ .. autosummary::
12
+ :toctree: data
13
+
14
+ data.adamson_2016_pilot
15
+ data.adamson_2016_upr_epistasis
16
+ data.adamson_2016_upr_perturb_seq
17
+ data.aissa_2021
18
+ data.bhattacherjee
19
+ data.burczynski_crohn
20
+ data.chang_2021
21
+ data.combosciplex
22
+ data.cinemaot_example
23
+ data.datlinger_2017
24
+ data.datlinger_2021
25
+ data.dialogue_example
26
+ data.distance_example
27
+ data.dixit_2016
28
+ data.dixit_2016_raw
29
+ data.dong_2023
30
+ data.frangieh_2021
31
+ data.frangieh_2021_protein
32
+ data.frangieh_2021_raw
33
+ data.frangieh_2021_rna
34
+ data.gasperini_2019_atscale
35
+ data.gasperini_2019_highmoi
36
+ data.gasperini_2019_lowmoi
37
+ data.gehring_2019
38
+ data.haber_2017_regions
39
+ data.hagai_2018
40
+ data.kang_2018
41
+ data.mcfarland_2020
42
+ data.norman_2019
43
+ data.norman_2019_raw
44
+ data.papalexi_2021
45
+ data.replogle_2022_k562_essential
46
+ data.replogle_2022_k562_gwps
47
+ data.replogle_2022_rpe1
48
+ data.sc_sim_augur
49
+ data.schiebinger_2019_16day
50
+ data.schiebinger_2019_18day
51
+ data.schraivogel_2020_tap_screen_chr8
52
+ data.schraivogel_2020_tap_screen_chr11
53
+ data.sciplex_gxe1
54
+ data.sciplex3_raw
55
+ data.shifrut_2018
56
+ data.smillie_2019
57
+ data.srivatsan_2020_sciplex2
58
+ data.srivatsan_2020_sciplex3
59
+ data.srivatsan_2020_sciplex4
60
+ data.stephenson_2021_subsampled
61
+ data.tasccoda_example
62
+ data.tian_2019_day7neuron
63
+ data.tian_2019_ipsc
64
+ data.tian_2021_crispra
65
+ data.tian_2021_crispri
66
+ data.weinreb_2020
67
+ data.xie_2017
68
+ data.zhao_2021
69
+ data.zhang_2021
70
+ ```
@@ -0,0 +1,55 @@
1
+ ```{eval-rst}
2
+ .. currentmodule:: pertpy
3
+ ```
4
+
5
+ # Metadata
6
+
7
+ The metadata module provides tooling to annotate perturbations by querying databases.
8
+ Such metadata can aid with the development of biologically informed models and can be used for enrichment tests.
9
+
10
+ ## Cell line
11
+
12
+ This module allows for the retrieval of various types of information related to cell lines,
13
+ including cell line annotation, bulk RNA and protein expression data.
14
+
15
+ Available databases for cell line metadata:
16
+
17
+ - [The Cancer Dependency Map Project at Broad](https://depmap.org/portal/)
18
+ - [The Cancer Dependency Map Project at Sanger](https://depmap.sanger.ac.uk/)
19
+ - [Genomics of Drug Sensitivity in Cancer (GDSC)](https://www.cancerrxgene.org/)
20
+
21
+ ## Compound
22
+
23
+ The Compound module enables the retrieval of various types of information related to compounds of interest, including the most common synonym, pubchemID and canonical SMILES.
24
+
25
+ Available databases for compound metadata:
26
+
27
+ - [PubChem](https://pubchem.ncbi.nlm.nih.gov/)
28
+
29
+ ## Mechanism of Action
30
+
31
+ This module aims to retrieve metadata of mechanism of action studies related to perturbagens of interest, depending on the molecular targets.
32
+
33
+ Available databases for mechanism of action metadata:
34
+
35
+ - [CLUE](https://clue.io/)
36
+
37
+ ## Drug
38
+
39
+ This module allows for the retrieval of Drug target information.
40
+
41
+ Available databases for drug metadata:
42
+
43
+ - [chembl](https://www.ebi.ac.uk/chembl/)
44
+
45
+ ```{eval-rst}
46
+ .. autosummary::
47
+ :toctree: metadata
48
+ :recursive:
49
+
50
+ metadata.CellLine
51
+ metadata.Compound
52
+ metadata.Moa
53
+ metadata.Drug
54
+ metadata.LookUp
55
+ ```
@@ -0,0 +1,37 @@
1
+ ```{eval-rst}
2
+ .. currentmodule:: pertpy
3
+ ```
4
+
5
+ # Preprocessing
6
+
7
+ ## Guide Assignment
8
+
9
+ Guide assignment is essential for quality control in single-cell Perturb-seq data, ensuring accurate mapping of guide RNAs to cells for reliable interpretation of gene perturbation effects.
10
+ pertpy provides a simple function to assign guides based on thresholds and a Gaussian mixture model {cite}`Replogle2022`.
11
+
12
+ ```{eval-rst}
13
+ .. autosummary::
14
+ :toctree: preprocessing
15
+ :nosignatures:
16
+
17
+ preprocessing.GuideAssignment
18
+ ```
19
+
20
+ Example implementation:
21
+
22
+ ```python
23
+ import pertpy as pt
24
+ import scanpy as sc
25
+
26
+ mdata = pt.dt.papalexi_2021()
27
+ gdo = mdata.mod["gdo"]
28
+ gdo.layers["counts"] = gdo.X.copy()
29
+ sc.pp.log1p(gdo)
30
+
31
+ ga = pt.pp.GuideAssignment()
32
+ ga.assign_by_threshold(gdo, 5, layer="counts", output_layer="assigned_guides")
33
+
34
+ ga.plot_heatmap(gdo, layer="assigned_guides")
35
+ ```
36
+
37
+ See [guide assignment tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/guide_rna_assignment.html).
@@ -1,125 +1,10 @@
1
- # API
2
-
3
- Import the pertpy API as follows:
4
-
5
- ```python
6
- import pertpy as pt
7
- ```
8
-
9
- You can then access the respective modules like:
10
-
11
- ```python
12
- pt.tl.cool_fancy_tool()
13
- ```
14
-
15
1
  ```{eval-rst}
16
2
  .. currentmodule:: pertpy
17
3
  ```
18
4
 
19
- ## Datasets
20
-
21
- pertpy provides access to several curated single-cell datasets spanning several types of perturbations.
22
- Many of the datasets originate from [scperturb](http://projects.sanderlab.org/scperturb/) {cite}`Peidli2024`.
23
-
24
- ```{eval-rst}
25
- .. autosummary::
26
- :toctree: data
27
-
28
- data.adamson_2016_pilot
29
- data.adamson_2016_upr_epistasis
30
- data.adamson_2016_upr_perturb_seq
31
- data.aissa_2021
32
- data.bhattacherjee
33
- data.burczynski_crohn
34
- data.chang_2021
35
- data.combosciplex
36
- data.cinemaot_example
37
- data.datlinger_2017
38
- data.datlinger_2021
39
- data.dialogue_example
40
- data.distance_example
41
- data.dixit_2016
42
- data.dixit_2016_raw
43
- data.dong_2023
44
- data.frangieh_2021
45
- data.frangieh_2021_protein
46
- data.frangieh_2021_raw
47
- data.frangieh_2021_rna
48
- data.gasperini_2019_atscale
49
- data.gasperini_2019_highmoi
50
- data.gasperini_2019_lowmoi
51
- data.gehring_2019
52
- data.haber_2017_regions
53
- data.hagai_2018
54
- data.kang_2018
55
- data.mcfarland_2020
56
- data.norman_2019
57
- data.norman_2019_raw
58
- data.papalexi_2021
59
- data.replogle_2022_k562_essential
60
- data.replogle_2022_k562_gwps
61
- data.replogle_2022_rpe1
62
- data.sc_sim_augur
63
- data.schiebinger_2019_16day
64
- data.schiebinger_2019_18day
65
- data.schraivogel_2020_tap_screen_chr8
66
- data.schraivogel_2020_tap_screen_chr11
67
- data.sciplex_gxe1
68
- data.sciplex3_raw
69
- data.shifrut_2018
70
- data.smillie_2019
71
- data.srivatsan_2020_sciplex2
72
- data.srivatsan_2020_sciplex3
73
- data.srivatsan_2020_sciplex4
74
- data.stephenson_2021_subsampled
75
- data.tasccoda_example
76
- data.tian_2019_day7neuron
77
- data.tian_2019_ipsc
78
- data.tian_2021_crispra
79
- data.tian_2021_crispri
80
- data.weinreb_2020
81
- data.xie_2017
82
- data.zhao_2021
83
- data.zhang_2021
84
- ```
85
-
86
- ## Preprocessing
5
+ # Tools
87
6
 
88
- ### Guide Assignment
89
-
90
- Guide assignment is essential for quality control in single-cell Perturb-seq data, ensuring accurate mapping of guide RNAs to cells for reliable interpretation of gene perturbation effects.
91
- pertpy provides a simple function to assign guides based on thresholds and a Gaussian mixture model {cite}`Replogle2022`.
92
-
93
- ```{eval-rst}
94
- .. autosummary::
95
- :toctree: preprocessing
96
- :nosignatures:
97
-
98
- preprocessing.GuideAssignment
99
- ```
100
-
101
- Example implementation:
102
-
103
- ```python
104
- import pertpy as pt
105
- import scanpy as sc
106
-
107
- mdata = pt.dt.papalexi_2021()
108
- gdo = mdata.mod["gdo"]
109
- gdo.layers["counts"] = gdo.X.copy()
110
- sc.pp.log1p(gdo)
111
-
112
- ga = pt.pp.GuideAssignment()
113
- ga.assign_by_threshold(gdo, 5, layer="counts", output_layer="assigned_guides")
114
-
115
- ga.plot_heatmap(gdo, layer="assigned_guides")
116
- ```
117
-
118
- See [guide assignment tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/guide_rna_assignment.html).
119
-
120
- ## Tools
121
-
122
- ### Differential gene expression
7
+ ## Differential gene expression
123
8
 
124
9
  Differential gene expression involves the quantitative comparison of gene expression levels between two or more groups,
125
10
  such as different cell types, tissues, or conditions to discern genes that are significantly up- or downregulated in response to specific biological contexts or stimuli.
@@ -137,9 +22,9 @@ Pertpy enables differential gene expression tests through a common interface tha
137
22
  tools.Statsmodels
138
23
  ```
139
24
 
140
- ### Pooled CRISPR screens
25
+ ## Pooled CRISPR screens
141
26
 
142
- #### Perturbation assignment - Mixscape
27
+ ### Perturbation assignment - Mixscape
143
28
 
144
29
  CRISPR based screens can suffer from off-target effects but also limited efficacy of the guide RNAs.
145
30
  When analyzing CRISPR screen data, it is vital to know which perturbations were successful and which ones were not
@@ -174,7 +59,7 @@ ms.plot_lda(adata=mdata["rna"], control="NT")
174
59
 
175
60
  See [mixscape tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/mixscape.html).
176
61
 
177
- ### Compositional analysis
62
+ ## Compositional analysis
178
63
 
179
64
  Compositional data analysis focuses on identifying and quantifying variations in cell type composition across
180
65
  different conditions or samples to uncover biological differences driven by changes in cellular makeup.
@@ -186,7 +71,7 @@ Generally, there's two ways of approaching this question:
186
71
 
187
72
  For a more in-depth explanation we refer to the corresponding [sc-best-practices compositional chapter](https://www.sc-best-practices.org/conditions/compositional.html).
188
73
 
189
- #### Without labeled groups - Milo
74
+ ### Without labeled groups - Milo
190
75
 
191
76
  [Milo](https://www.nature.com/articles/s41587-021-01033-z) enables the exploration of differential abundance of cell types across different biological conditions or spatial locations {cite}`Dann2022`.
192
77
  It employs a neighborhood-testing approach to statistically assess variations in cell type compositions, providing insights into the microenvironmental and functional heterogeneity within and across samples.
@@ -224,7 +109,7 @@ milo.da_nhoods(mdata, design="~Status")
224
109
 
225
110
  See [milo tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/milo.html).
226
111
 
227
- #### With labeled groups - scCODA and tascCODA
112
+ ### With labeled groups - scCODA and tascCODA
228
113
 
229
114
  [scCODA](https://www.nature.com/articles/s41467-021-27150-6) is designed to identify differences in cell type compositions from single-cell sequencing data across conditions for labeled groups {cite}`Büttner2021`.
230
115
  It employs a Bayesian hierarchical model and Dirichlet-multinomial distribution, using Markov chain Monte Carlo (MCMC) for inference, to detect significant shifts in cell type composition across conditions.
@@ -276,14 +161,14 @@ sccoda.plot_effects_barplot(
276
161
 
277
162
  See [sccoda tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/sccoda.html), [extended sccoda tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/sccoda_extended.html) and [tasccoda tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/tasccoda.html).
278
163
 
279
- ### Multicellular and gene programs
164
+ ## Multicellular and gene programs
280
165
 
281
166
  Multicellular programs are organized interactions and coordinated activities among different cell types within a tissue,
282
167
  forming complex functional units that drive tissue-specific functions, responses to environmental changes, and pathological states.
283
168
  These programs enable a higher level of biological organization by integrating signaling pathways, gene expression,
284
169
  and cellular behaviors across the cellular community to maintain homeostasis and execute collective responses.
285
170
 
286
- #### Multicellular programs - DIALOGUE
171
+ ### Multicellular programs - DIALOGUE
287
172
 
288
173
  [DIALOGUE](https://www.nature.com/articles/s41587-022-01288-0) identifies latent multicellular programs by mapping the data into
289
174
  a feature space where the cell type specific representations are correlated across different samples and environments {cite}`JerbyArnon2022`.
@@ -329,15 +214,13 @@ all_results, new_mcps = dl.multilevel_modeling(
329
214
 
330
215
  See [DIALOGUE tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/dialogue.html).
331
216
 
332
- #### Enrichment
217
+ ### Enrichment
333
218
 
334
219
  Enrichment tests for single-cell data assess whether specific biological pathways or gene sets are overrepresented in the expression profiles of individual cells,
335
220
  aiding in the identification of functional characteristics and cellular states.
336
221
  While pathway enrichment is a well-studied and commonly applied approach in single-cell RNA-seq, other data sources such as genes targeted by drugs can also be enriched.
337
222
  Drug2cell performs such enrichment tests and is available in pertpy {cite}`Kanemaru2023`.
338
223
 
339
- This implementation of enrichment is designed to interoperate with [MetaData](#metadata) and uses a simple hypergeometric test.
340
-
341
224
  ```{eval-rst}
342
225
  .. autosummary::
343
226
  :toctree: tools
@@ -359,7 +242,7 @@ pt_enricher.score(adata)
359
242
 
360
243
  See [enrichment tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/enrichment.html).
361
244
 
362
- ### Distances and Permutation Tests
245
+ ## Distances and permutation tests
363
246
 
364
247
  In settings where many perturbations are applied, it is often times unclear which perturbations had a strong effect and should be investigated further.
365
248
  Differential gene expression poses one option to get candidate genes and p-values.
@@ -396,13 +279,13 @@ tab = etest(adata, groupby="perturbation", contrast="control")
396
279
  See [distance tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/distances.html)
397
280
  and [distance tests tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/distance_tests.html).
398
281
 
399
- ### Response prediction
282
+ ## Response prediction
400
283
 
401
284
  Response prediction describes computational models that predict how individual cells or cell populations will respond to
402
285
  specific treatments, conditions, or stimuli based on their gene expression profiles, enabling insights into cellular behaviors and potential therapeutic strategies.
403
286
  Such approaches can also order perturbations by their effect on groups of cells.
404
287
 
405
- #### Rank perturbations - Augur
288
+ ### Rank perturbations - Augur
406
289
 
407
290
  [Augur](https://doi.org/10.1038/s41587-020-0605-1) aims to rank or prioritize cell types according to their response to experimental perturbations {cite}`Skinnider2021`.
408
291
  Cells that respond strongly to perturbations are more easily distinguishable as treated or control in molecular space.
@@ -435,7 +318,7 @@ See [augur tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks
435
318
  tools.Augur
436
319
  ```
437
320
 
438
- #### Gene expression prediction with scGen
321
+ ### Gene expression prediction with scGen
439
322
 
440
323
  scGen is a deep generative model that leverages autoencoders and adversarial training to integrate single-cell RNA sequencing data from different conditions or tissues,
441
324
  enabling the generation of synthetic single-cell data for cross-condition analysis and predicting cell-type-specific responses to perturbations {cite}`Lotfollahi2019`.
@@ -472,7 +355,7 @@ pred.obs["condition"] = "pred"
472
355
 
473
356
  See [scgen tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/scgen_perturbation_prediction.html).
474
357
 
475
- #### Causal perturbation analysis with CINEMA-OT
358
+ ### Causal perturbation analysis with CINEMA-OT
476
359
 
477
360
  CINEMA-OT is a causal framework for perturbation effect analysis to identify individual treatment effects and synergy at the single cell level {cite}`Dong2023`.
478
361
  CINEMA-OT separates confounding sources of variation from perturbation effects to obtain an optimal transport matching that reflects counterfactual cell pairs.
@@ -510,7 +393,7 @@ de = model.causaleffect(
510
393
 
511
394
  See [CINEMA-OT tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/cinemaot.html).
512
395
 
513
- ### Perturbation space
396
+ ## Perturbation space
514
397
 
515
398
  Perturbation spaces depart from the individualistic perspective of cells and instead organizes cells into cohesive ensembles.
516
399
  This specialized space enables comprehending the collective impact of perturbations on cells.
@@ -546,59 +429,3 @@ ps_adata = ps.compute(
546
429
  ```
547
430
 
548
431
  See [perturbation space tutorial](https://pertpy.readthedocs.io/en/latest/tutorials/notebooks/perturbation_space.html).
549
-
550
- ## MetaData
551
-
552
- MetaData provides tooling to annotate perturbations by querying databases.
553
- Such metadata can aid with the development of biologically informed models and can be used for enrichment tests.
554
-
555
- ### Cell line
556
-
557
- This module allows for the retrieval of various types of information related to cell lines,
558
- including cell line annotation, bulk RNA and protein expression data.
559
-
560
- Available databases for cell line metadata:
561
-
562
- - [The Cancer Dependency Map Project at Broad](https://depmap.org/portal/)
563
- - [The Cancer Dependency Map Project at Sanger](https://depmap.sanger.ac.uk/)
564
- - [Genomics of Drug Sensitivity in Cancer (GDSC)](https://www.cancerrxgene.org/)
565
-
566
- ### Compound
567
-
568
- The Compound module enables the retrieval of various types of information related to compounds of interest, including the most common synonym, pubchemID and canonical SMILES.
569
-
570
- Available databases for compound metadata:
571
-
572
- - [PubChem](https://pubchem.ncbi.nlm.nih.gov/)
573
-
574
- ### Mechanism of Action
575
-
576
- This module aims to retrieve metadata of mechanism of action studies related to perturbagens of interest, depending on the molecular targets.
577
-
578
- Available databases for mechanism of action metadata:
579
-
580
- - [CLUE](https://clue.io/)
581
-
582
- ### Drug
583
-
584
- This module allows for the retrieval of Drug target information.
585
-
586
- Available databases for drug metadata:
587
-
588
- - [chembl](https://www.ebi.ac.uk/chembl/)
589
-
590
- ```{eval-rst}
591
- .. autosummary::
592
- :toctree: metadata
593
- :recursive:
594
-
595
- metadata.CellLine
596
- metadata.Compound
597
- metadata.Moa
598
- metadata.Drug
599
- metadata.LookUp
600
- ```
601
-
602
- ## Plots
603
-
604
- Every tool has a set of plotting functions that start with `plot_`.
@@ -0,0 +1,22 @@
1
+ # API
2
+
3
+ Import the pertpy API as follows:
4
+
5
+ ```python
6
+ import pertpy as pt
7
+ ```
8
+
9
+ You can then access the respective modules like:
10
+
11
+ ```python
12
+ pt.tl.cool_fancy_tool()
13
+ ```
14
+
15
+ ```{toctree}
16
+ :maxdepth: 1
17
+
18
+ api/datasets_index
19
+ api/preprocessing_index
20
+ api/tools_index
21
+ api/metadata_index
22
+ ```