pertpy 0.11.0__tar.gz → 0.11.2__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.
- {pertpy-0.11.0 → pertpy-0.11.2}/.editorconfig +1 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/release-drafter.yml +2 -2
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/workflows/release.yml +6 -4
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/workflows/test.yml +0 -8
- {pertpy-0.11.0 → pertpy-0.11.2}/.gitignore +4 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/.pre-commit-config.yaml +2 -2
- pertpy-0.11.2/.readthedocs.yml +18 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/PKG-INFO +9 -7
- {pertpy-0.11.0 → pertpy-0.11.2}/README.md +6 -4
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/css/overwrite.css +6 -7
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/pertpy_logo.svg +0 -1
- pertpy-0.11.2/docs/api/datasets_index.md +70 -0
- pertpy-0.11.2/docs/api/metadata_index.md +55 -0
- pertpy-0.11.2/docs/api/preprocessing_index.md +37 -0
- pertpy-0.11.0/docs/api/api.md → pertpy-0.11.2/docs/api/tools_index.md +16 -189
- pertpy-0.11.2/docs/api.md +22 -0
- pertpy-0.11.2/docs/changelog.md +309 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/conf.py +7 -4
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/index.md +15 -6
- pertpy-0.11.2/docs/tutorials/metadata.md +8 -0
- pertpy-0.11.2/docs/tutorials/preprocessing.md +7 -0
- pertpy-0.11.2/docs/tutorials/tools.md +64 -0
- pertpy-0.11.2/docs/tutorials.md +19 -0
- pertpy-0.11.2/docs/usecases.md +13 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/__init__.py +1 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/data/_dataloader.py +2 -2
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_cell_line.py +21 -37
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_compound.py +2 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_look_up.py +1 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_metadata.py +4 -9
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_moa.py +0 -2
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/__init__.py +4 -3
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_augur.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_coda/_base_coda.py +5 -3
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_coda/_sccoda.py +3 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_coda/_tasccoda.py +3 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_dialogue.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_distances/_distances.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_mixscape.py +3 -4
- {pertpy-0.11.0 → pertpy-0.11.2}/pyproject.toml +3 -4
- pertpy-0.11.2/tests/conftest.py +7 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/metadata/test_cell_line.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_coda/test_sccoda.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_distances/test_distance_tests.py +0 -3
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_augur.py +0 -1
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_dialogue.py +0 -2
- pertpy-0.11.0/.readthedocs.yml +0 -18
- pertpy-0.11.0/docs/data/adamson_2016_pilot.h5ad.lock +0 -0
- pertpy-0.11.0/docs/tutorials/index.md +0 -57
- pertpy-0.11.0/tests/conftest.py +0 -20
- {pertpy-0.11.0 → pertpy-0.11.2}/.gitattributes +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/labels.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/pull_request_template.md +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/workflows/build.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/workflows/labeler.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.github/workflows/release_drafter.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/.gitmodules +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/LICENSE +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/biome.jsonc +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/codecov.yml +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/Makefile +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_ext/edit_on_github.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_ext/typed_returns.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/SCVI_LICENSE +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/css/sphinx_gallery.css +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/augur_dp_scatter.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/augur_important_features.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/augur_lollipop.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/augur_scatterplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/de_fold_change.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/de_multicomparison_fc.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/de_paired_expression.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/de_volcano.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/dialogue_pairplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/dialogue_violin.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/enrichment_dotplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/enrichment_gsea.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/milo_da_beeswarm.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/milo_nhood.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/milo_nhood_graph.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/mixscape_barplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/mixscape_heatmap.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/mixscape_lda.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/mixscape_perturbscore.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/mixscape_violin.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/pseudobulk_samples.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/sccoda_boxplots.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/sccoda_effects_barplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/sccoda_rel_abundance_dispersion_plot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/sccoda_stacked_barplot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/scgen_reg_mean.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/tasccoda_draw_effects.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/tasccoda_draw_tree.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/docstring_previews/tasccoda_effects_umap.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/icons/code-24px.svg +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/icons/computer-24px.svg +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/icons/library_books-24px.svg +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/icons/play_circle_outline-24px.svg +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/pertpy_logo.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/placeholder.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/augur.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/cinemaot.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/dge.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/dialogue.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/distances.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/distances_tests.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/enrichment.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/guide_rna_assignment.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/mcfarland.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/metadata.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/milo.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/mixscape.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/norman.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/ontology.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/perturbation_space.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/placeholder.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/sccoda.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/sccoda_extended.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/scgen_perturbation_prediction.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/tasccoda.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_static/tutorials/zhang.png +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/_templates/autosummary/class.rst +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/contributing.md +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/installation.md +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/make.bat +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/references.bib +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/references.md +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/docs/utils.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/_doc.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/_types.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/data/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/data/_datasets.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/metadata/_drug.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/plot/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/preprocessing/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/preprocessing/_guide_rna.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/preprocessing/_guide_rna_mixture.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/py.typed +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_cinemaot.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_coda/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_base.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_checks.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_dge_comparison.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_edger.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_pydeseq2.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_simple_tests.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_differential_gene_expression/_statsmodels.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_distances/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_distances/_distance_tests.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_enrichment.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_milo.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_clustering.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_comparison.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_metrics.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_perturbation_space.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_perturbation_space/_simple.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_scgen/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_scgen/_base_components.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_scgen/_scgen.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_scgen/_scgenvae.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/_scgen/_utils.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/decoupler_LICENSE +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/pertpy/tools/transferlearning_MMD_LICENSE +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/metadata/test_compound.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/metadata/test_drug.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/metadata/test_moa.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/preprocessing/test_grna_assignment.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_coda/test_tasccoda.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/__init__.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/conftest.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_base.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_compare_groups.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_dge.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_edger.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_input_checks.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_pydeseq2.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_simple_tests.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_differential_gene_expression/test_statsmodels.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_distances/test_distances.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_perturbation_space/test_comparison.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_perturbation_space/test_discriminator_classifiers.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_perturbation_space/test_simple_cluster_space.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/_perturbation_space/test_simple_perturbation_space.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_cinemaot.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_enrichment.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_milo.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_mixscape.py +0 -0
- {pertpy-0.11.0 → pertpy-0.11.2}/tests/tools/test_scgen.py +0 -0
@@ -18,11 +18,13 @@ jobs:
|
|
18
18
|
with:
|
19
19
|
python-version: "3.x"
|
20
20
|
|
21
|
-
- name: Install
|
22
|
-
|
21
|
+
- name: Install uv
|
22
|
+
uses: astral-sh/setup-uv@v5
|
23
|
+
with:
|
24
|
+
cache-dependency-glob: pyproject.toml
|
23
25
|
|
24
|
-
- name: Build
|
25
|
-
run:
|
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
|
@@ -24,13 +24,8 @@ jobs:
|
|
24
24
|
include:
|
25
25
|
- os: ubuntu-latest
|
26
26
|
python: "3.13"
|
27
|
-
run_mode: "slow"
|
28
27
|
- os: ubuntu-latest
|
29
28
|
python: "3.13"
|
30
|
-
run_mode: "fast"
|
31
|
-
- os: ubuntu-latest
|
32
|
-
python: "3.13"
|
33
|
-
run_mode: slow
|
34
29
|
pip-flags: "--pre"
|
35
30
|
|
36
31
|
env:
|
@@ -91,9 +86,6 @@ jobs:
|
|
91
86
|
DISPLAY: :42
|
92
87
|
run: |
|
93
88
|
pytest_args="-m pytest -v --color=yes"
|
94
|
-
if [ "${{ matrix.run_mode }}" = "slow" ]; then
|
95
|
-
pytest_args="$pytest_args --runslow"
|
96
|
-
fi
|
97
89
|
coverage run $pytest_args
|
98
90
|
|
99
91
|
- name: Show coverage report
|
@@ -11,7 +11,7 @@ repos:
|
|
11
11
|
hooks:
|
12
12
|
- id: biome-format
|
13
13
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
14
|
-
rev: v0.11.
|
14
|
+
rev: v0.11.9
|
15
15
|
hooks:
|
16
16
|
- id: ruff
|
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.
|
36
|
+
rev: v1.15.0
|
37
37
|
hooks:
|
38
38
|
- id: mypy
|
39
39
|
args: [--no-strict-optional, --ignore-missing-imports]
|
@@ -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.
|
3
|
+
Version: 0.11.2
|
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.
|
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>=
|
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
|
-
[](https://github.com/psf/black)
|
105
104
|
[](https://github.com/scverse/pertpy/actions/workflows/build.yml)
|
106
105
|
[](https://codecov.io/gh/scverse/pertpy)
|
107
106
|
[](https://opensource.org/licenses/Apache2.0)
|
@@ -111,13 +110,16 @@ Description-Content-Type: text/markdown
|
|
111
110
|
[](https://github.com/scverse/pertpy/actions/workflows/test.yml)
|
112
111
|
[](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
|

|
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
|
|
@@ -149,7 +151,7 @@ bioRxiv 2024.08.04.606516; doi: https://doi.org/10.1101/2024.08.04.606516](https
|
|
149
151
|
|
150
152
|
[pip]: https://pip.pypa.io/
|
151
153
|
[pypi]: https://pypi.org/
|
152
|
-
[api]: https://pertpy.readthedocs.io/en/latest/api
|
154
|
+
[api]: https://pertpy.readthedocs.io/en/latest/api.html
|
153
155
|
[//]: # "numfocus-fiscal-sponsor-attribution"
|
154
156
|
|
155
157
|
pertpy is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
@@ -1,4 +1,3 @@
|
|
1
|
-
[](https://github.com/psf/black)
|
2
1
|
[](https://github.com/scverse/pertpy/actions/workflows/build.yml)
|
3
2
|
[](https://codecov.io/gh/scverse/pertpy)
|
4
3
|
[](https://opensource.org/licenses/Apache2.0)
|
@@ -8,13 +7,16 @@
|
|
8
7
|
[](https://github.com/scverse/pertpy/actions/workflows/test.yml)
|
9
8
|
[](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
|

|
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
|
|
@@ -46,7 +48,7 @@ bioRxiv 2024.08.04.606516; doi: https://doi.org/10.1101/2024.08.04.606516](https
|
|
46
48
|
|
47
49
|
[pip]: https://pip.pypa.io/
|
48
50
|
[pypi]: https://pypi.org/
|
49
|
-
[api]: https://pertpy.readthedocs.io/en/latest/api
|
51
|
+
[api]: https://pertpy.readthedocs.io/en/latest/api.html
|
50
52
|
[//]: # "numfocus-fiscal-sponsor-attribution"
|
51
53
|
|
52
54
|
pertpy is part of the scverse® project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/).
|
@@ -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
|
+
}
|
@@ -1,5 +1,4 @@
|
|
1
1
|
<svg width="308" height="105" viewBox="0 0 308 105" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
-
<rect width="308" height="105" fill="#1E1E1E"/>
|
3
2
|
<path d="M26.432 17.656C41.664 17.4 48.576 31.736 48.704 47.992C48.704 62.328 41.536 75.768 26.176 76.28C19.904 76.28 14.528 74.36 9.28 71.16V104.312L0.0640001 100.984L0.192 27.384C0.0640001 27.384 7.36 17.784 26.304 17.528L26.432 17.656ZM24.128 69.624C36.416 68.856 37.952 56.824 37.952 47.352C37.952 38.136 36.416 24.312 24.768 23.8C16.832 23.288 10.432 27 9.152 28.28V64.76C12.224 66.68 18.368 70.008 24.128 69.624ZM105.92 69.88C102.976 71.8 100.032 73.464 96.32 74.616C88.256 76.92 77.76 77.048 71.104 71.416C64.96 66.168 61.248 57.336 61.248 47.864C61.376 33.144 67.392 17.912 83.776 17.912C99.392 17.912 105.152 28.664 105.408 45.944H71.104C70.08 60.536 77.504 70.392 88 70.008C94.4 69.88 99.008 67.704 103.744 65.4L105.92 69.88ZM95.936 40.44L96.064 40.568C96.064 32.376 92.48 23.672 84.16 23.672C75.2 23.672 72 32.376 71.36 40.44H95.936ZM142.476 24.568H142.348C136.204 24.568 131.98 26.872 128.652 29.688V75H119.308V28.408C122.764 24.568 127.372 21.496 132.62 19.704C138.252 17.656 143.628 16.376 151.436 17.784C150.284 20.088 148.748 23.032 147.724 25.336C145.932 24.952 143.756 24.568 142.476 24.568ZM163.362 24.952H156.962V18.936H163.362V3.32L172.706 -0.00800323V18.936H183.202V24.952H172.706V61.432C172.706 68.856 176.674 70.648 183.202 70.904V75.768C170.786 76.92 163.362 71.288 163.362 61.688V24.952Z" fill="#30679A"/>
|
4
3
|
<path d="M223.307 17.656C238.539 17.4 245.451 31.736 245.579 47.992C245.579 62.328 238.411 75.768 223.051 76.28C216.779 76.28 211.403 74.36 206.155 71.16V104.312L196.939 100.984L197.067 27.384C196.939 27.384 204.235 17.784 223.179 17.528L223.307 17.656ZM221.003 69.624C233.291 68.856 234.827 56.824 234.827 47.352C234.827 38.136 233.291 24.312 221.643 23.8C213.707 23.288 207.307 27 206.027 28.28V64.76C209.099 66.68 215.243 70.008 221.003 69.624ZM270.411 56.824V56.696C270.411 65.272 276.555 69.752 284.875 69.624C289.867 69.496 295.499 66.68 298.571 64.632V18.936H307.915V69.752C307.915 76.28 307.531 86.136 304.843 91.256C300.107 100.216 286.795 103.8 277.323 104.056L275.787 98.168C282.955 97.144 293.195 96.12 297.035 88.824C298.955 85.24 299.083 78.2 299.083 74.104C299.083 72.696 299.211 73.08 299.083 71.672C296.267 72.952 289.995 76.024 278.987 76.024C270.539 76.024 260.939 70.008 260.939 59.64V20.728L270.411 17.528V56.824Z" fill="#D2455E"/>
|
5
4
|
</svg>
|
@@ -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).
|