pertpy 0.7.0__tar.gz → 0.8.0__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/release-drafter.yml +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/workflows/test.yml +26 -5
- {pertpy-0.7.0 → pertpy-0.8.0}/.gitmodules +1 -1
- {pertpy-0.7.0 → pertpy-0.8.0}/.pre-commit-config.yaml +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/.readthedocs.yml +1 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/PKG-INFO +22 -13
- {pertpy-0.7.0 → pertpy-0.8.0}/README.md +12 -6
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_ext/edit_on_github.py +1 -1
- pertpy-0.8.0/docs/_static/tutorials/dge.png +0 -0
- pertpy-0.8.0/docs/_static/tutorials/metadata.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/conf.py +16 -8
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/contributing.md +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/index.md +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/installation.md +31 -13
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/tutorials/index.md +3 -1
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/usage/usage.md +13 -3
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/__init__.py +2 -1
- pertpy-0.8.0/pertpy/data/__init__.py +117 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/data/_dataloader.py +27 -23
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/data/_datasets.py +58 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/__init__.py +2 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_cell_line.py +39 -70
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_compound.py +3 -4
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_drug.py +2 -6
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_look_up.py +38 -51
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_metadata.py +7 -10
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/metadata/_moa.py +2 -6
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/preprocessing/__init__.py +2 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/preprocessing/_guide_rna.py +2 -3
- pertpy-0.8.0/pertpy/tools/__init__.py +57 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_augur.py +14 -15
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_cinemaot.py +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_coda/_base_coda.py +118 -142
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_coda/_sccoda.py +16 -15
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_coda/_tasccoda.py +21 -22
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_dialogue.py +18 -23
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/__init__.py +20 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_base.py +657 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_checks.py +41 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_dge_comparison.py +86 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_edger.py +125 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_formulaic.py +189 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_pydeseq2.py +95 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_simple_tests.py +162 -0
- pertpy-0.8.0/pertpy/tools/_differential_gene_expression/_statsmodels.py +72 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_distances/_distance_tests.py +21 -16
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_distances/_distances.py +406 -70
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_enrichment.py +10 -15
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_kernel_pca.py +1 -1
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_milo.py +76 -53
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_mixscape.py +15 -11
- pertpy-0.8.0/pertpy/tools/_perturbation_space/__init__.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_perturbation_space/_clustering.py +5 -2
- pertpy-0.8.0/pertpy/tools/_perturbation_space/_comparison.py +112 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_perturbation_space/_discriminator_classifiers.py +20 -22
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_perturbation_space/_perturbation_space.py +23 -21
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_perturbation_space/_simple.py +3 -3
- pertpy-0.8.0/pertpy/tools/_scgen/__init__.py +1 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_scgen/_base_components.py +2 -3
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_scgen/_scgen.py +33 -28
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_scgen/_utils.py +2 -2
- {pertpy-0.7.0 → pertpy-0.8.0}/pyproject.toml +16 -10
- pertpy-0.8.0/tests/conftest.py +20 -0
- pertpy-0.8.0/tests/metadata/test_cell_line.py +82 -0
- pertpy-0.8.0/tests/metadata/test_compound.py +44 -0
- pertpy-0.8.0/tests/metadata/test_drug.py +36 -0
- pertpy-0.8.0/tests/metadata/test_moa.py +50 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/preprocessing/test_grna_assignment.py +1 -1
- pertpy-0.8.0/tests/tools/_coda/test_sccoda.py +113 -0
- pertpy-0.8.0/tests/tools/_coda/test_tasccoda.py +76 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/__init__.py +0 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/conftest.py +64 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_base.py +86 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_compare_groups.py +58 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_dge.py +80 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_edger.py +33 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_formulaic.py +208 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_input_checks.py +73 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_pydeseq2.py +33 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_simple_tests.py +113 -0
- pertpy-0.8.0/tests/tools/_differential_gene_expression/test_statsmodels.py +30 -0
- pertpy-0.8.0/tests/tools/_distances/test_distance_tests.py +56 -0
- pertpy-0.8.0/tests/tools/_distances/test_distances.py +208 -0
- pertpy-0.8.0/tests/tools/_perturbation_space/test_comparison.py +29 -0
- pertpy-0.8.0/tests/tools/test_augur.py +181 -0
- pertpy-0.8.0/tests/tools/test_cinemaot.py +83 -0
- pertpy-0.8.0/tests/tools/test_dialogue.py +37 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/test_enrichment.py +16 -16
- pertpy-0.8.0/tests/tools/test_milo.py +283 -0
- pertpy-0.8.0/tests/tools/test_mixscape.py +100 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/test_scgen.py +4 -4
- pertpy-0.7.0/pertpy/data/__init__.py +0 -56
- pertpy-0.7.0/pertpy/plot/__init__.py +0 -5
- pertpy-0.7.0/pertpy/plot/_augur.py +0 -171
- pertpy-0.7.0/pertpy/plot/_coda.py +0 -601
- pertpy-0.7.0/pertpy/plot/_guide_rna.py +0 -64
- pertpy-0.7.0/pertpy/plot/_milopy.py +0 -209
- pertpy-0.7.0/pertpy/plot/_mixscape.py +0 -355
- pertpy-0.7.0/pertpy/tools/__init__.py +0 -19
- pertpy-0.7.0/pertpy/tools/_differential_gene_expression.py +0 -325
- pertpy-0.7.0/pertpy/tools/_scgen/__init__.py +0 -1
- pertpy-0.7.0/tests/conftest.py +0 -7
- pertpy-0.7.0/tests/metadata/test_cell_line.py +0 -77
- pertpy-0.7.0/tests/metadata/test_compound.py +0 -43
- pertpy-0.7.0/tests/metadata/test_drug.py +0 -34
- pertpy-0.7.0/tests/metadata/test_moa.py +0 -49
- pertpy-0.7.0/tests/tools/_coda/test_sccoda.py +0 -107
- pertpy-0.7.0/tests/tools/_coda/test_tasccoda.py +0 -73
- pertpy-0.7.0/tests/tools/_distances/test_distance_tests.py +0 -51
- pertpy-0.7.0/tests/tools/_distances/test_distances.py +0 -134
- pertpy-0.7.0/tests/tools/test_augur.py +0 -180
- pertpy-0.7.0/tests/tools/test_cinemaot.py +0 -83
- pertpy-0.7.0/tests/tools/test_differential_gene_expression.py +0 -81
- pertpy-0.7.0/tests/tools/test_milo.py +0 -266
- pertpy-0.7.0/tests/tools/test_mixscape.py +0 -97
- {pertpy-0.7.0 → pertpy-0.8.0}/.editorconfig +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.gitattributes +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/labels.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/pull_request_template.md +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/workflows/build.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/workflows/labeler.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/workflows/release.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.github/workflows/release_drafter.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/.gitignore +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/CODE_OF_CONDUCT.md +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/LICENSE +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/codecov.yml +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/Makefile +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_ext/typed_returns.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/SCVI_LICENSE +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/css/overwrite.css +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/css/sphinx_gallery.css +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/augur_dp_scatter.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/augur_important_features.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/augur_lollipop.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/augur_scatterplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/dialogue_pairplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/dialogue_violin.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/enrichment_dotplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/enrichment_gsea.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/milo_da_beeswarm.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/milo_nhood.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/milo_nhood_graph.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/mixscape_barplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/mixscape_heatmap.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/mixscape_lda.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/mixscape_perturbscore.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/mixscape_violin.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/sccoda_boxplots.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/sccoda_effects_barplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/sccoda_rel_abundance_dispersion_plot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/sccoda_stacked_barplot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/scgen_reg_mean.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/tasccoda_draw_effects.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/tasccoda_draw_tree.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/docstring_previews/tasccoda_effects_umap.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/icons/code-24px.svg +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/icons/computer-24px.svg +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/icons/library_books-24px.svg +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/icons/play_circle_outline-24px.svg +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/placeholder.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/augur.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/cinemaot.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/dialogue.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/distances.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/distances_tests.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/enrichment.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/guide_rna_assignment.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/milo.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/mixscape.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/ontology.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/perturbation_space.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/placeholder.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/sccoda.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/sccoda_extended.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/scgen_perturbation_prediction.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_static/tutorials/tasccoda.png +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_templates/autosummary/class.rst +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/_templates/class_no_inherited.rst +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/code_of_conduct.md +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/make.bat +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/references.bib +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/references.md +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/docs/utils.py +0 -0
- {pertpy-0.7.0/pertpy/tools/_coda → pertpy-0.8.0/pertpy/plot}/__init__.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/py.typed +0 -0
- {pertpy-0.7.0/pertpy/tools/_distances → pertpy-0.8.0/pertpy/tools/_coda}/__init__.py +0 -0
- {pertpy-0.7.0/pertpy/tools/_perturbation_space → pertpy-0.8.0/pertpy/tools/_distances}/__init__.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_perturbation_space/_metrics.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/_scgen/_scgenvae.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/decoupler_LICENSE +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/pertpy/tools/transferlearning_MMD_LICENSE +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/_perturbation_space/test_discriminator_classifiers.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/_perturbation_space/test_simple_cluster_space.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/_perturbation_space/test_simple_perturbation_space.py +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/haber_data.csv +0 -0
- {pertpy-0.7.0 → pertpy-0.8.0}/tests/tools/r_result.csv +0 -0
@@ -23,10 +23,16 @@ jobs:
|
|
23
23
|
include:
|
24
24
|
- os: ubuntu-latest
|
25
25
|
python: "3.10"
|
26
|
+
run_mode: "slow"
|
26
27
|
- os: ubuntu-latest
|
27
28
|
python: "3.11"
|
29
|
+
run_mode: "slow"
|
28
30
|
- os: ubuntu-latest
|
29
31
|
python: "3.11"
|
32
|
+
run_mode: "fast"
|
33
|
+
- os: ubuntu-latest
|
34
|
+
python: "3.11"
|
35
|
+
run_mode: slow
|
30
36
|
pip-flags: "--pre"
|
31
37
|
|
32
38
|
env:
|
@@ -39,26 +45,41 @@ jobs:
|
|
39
45
|
uses: actions/setup-python@v5
|
40
46
|
with:
|
41
47
|
python-version: ${{ matrix.python }}
|
42
|
-
|
43
|
-
|
48
|
+
|
49
|
+
- uses: actions/checkout@v4
|
50
|
+
- name: Install R
|
51
|
+
uses: r-lib/actions/setup-r@v2
|
52
|
+
with:
|
53
|
+
r-version: "4"
|
54
|
+
|
55
|
+
- name: Install edgeR
|
56
|
+
run: Rscript --vanilla -e "install.packages(c('BiocManager', 'statmod'), repos='https://cran.r-project.org'); library('BiocManager'); BiocManager::install('edgeR')"
|
44
57
|
|
45
58
|
- name: Install test dependencies
|
46
59
|
run: python -m pip install --upgrade uv wheel
|
47
60
|
- name: Install dependencies
|
48
|
-
run:
|
61
|
+
run: |
|
62
|
+
uv pip install --system rpy2
|
63
|
+
uv pip install --system ${{ matrix.pip-flags }} ".[dev,test,coda,de]"
|
49
64
|
|
50
65
|
- name: Test
|
51
66
|
env:
|
52
67
|
MPLBACKEND: agg
|
53
68
|
PLATFORM: ${{ matrix.os }}
|
54
69
|
DISPLAY: :42
|
55
|
-
run:
|
70
|
+
run: |
|
71
|
+
pytest_args="-m pytest -v --color=yes"
|
72
|
+
if [ "${{ matrix.run_mode }}" = "slow" ]; then
|
73
|
+
pytest_args="$pytest_args --runslow"
|
74
|
+
fi
|
75
|
+
coverage run $pytest_args
|
56
76
|
|
57
77
|
- name: Show coverage report
|
58
78
|
run: coverage report -m
|
59
79
|
|
60
80
|
- name: Upload coverage
|
61
|
-
uses: codecov/codecov-action@
|
81
|
+
uses: codecov/codecov-action@v4
|
62
82
|
with:
|
83
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
63
84
|
fail_ci_if_error: true
|
64
85
|
verbose: true
|
@@ -11,7 +11,7 @@ repos:
|
|
11
11
|
hooks:
|
12
12
|
- id: prettier
|
13
13
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
14
|
-
rev: v0.
|
14
|
+
rev: v0.4.7
|
15
15
|
hooks:
|
16
16
|
- id: ruff
|
17
17
|
args: [--fix, --exit-non-zero-on-fix, --unsafe-fixes]
|
@@ -27,7 +27,7 @@ repos:
|
|
27
27
|
- id: trailing-whitespace
|
28
28
|
- id: check-case-conflict
|
29
29
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
30
|
-
rev: v1.
|
30
|
+
rev: v1.10.0
|
31
31
|
hooks:
|
32
32
|
- id: mypy
|
33
33
|
args: [--no-strict-optional, --ignore-missing-imports]
|
@@ -1,11 +1,11 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: pertpy
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.0
|
4
4
|
Summary: Perturbation Analysis in the scverse ecosystem.
|
5
5
|
Project-URL: Documentation, https://pertpy.readthedocs.io
|
6
|
-
Project-URL: Source, https://github.com/
|
7
|
-
Project-URL: Home-page, https://github.com/
|
8
|
-
Author: Lukas Heumos, Yuge Ji, Alejandro Tejada, Johannes Köster, Emma Dann, Xinyue Zhang, Xichen Wu,
|
6
|
+
Project-URL: Source, https://github.com/scverse/pertpy
|
7
|
+
Project-URL: Home-page, https://github.com/scverse/pertpy
|
8
|
+
Author: Lukas Heumos, Yuge Ji, Lilly May, Alejandro Tejada, Johannes Köster, Emma Dann, Xinyue Zhang, Xichen Wu, Tessa Green, Stefan Peidli, Antonia Schumacher, Gregor Sturm
|
9
9
|
Maintainer-email: Lukas Heumos <lukas.heumos@posteo.net>
|
10
10
|
License: MIT License
|
11
11
|
|
@@ -45,11 +45,10 @@ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
45
45
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
46
46
|
Requires-Python: >=3.10
|
47
47
|
Requires-Dist: adjusttext
|
48
|
-
Requires-Dist: arviz
|
49
48
|
Requires-Dist: blitzgsea
|
50
49
|
Requires-Dist: decoupler
|
50
|
+
Requires-Dist: lamin-utils
|
51
51
|
Requires-Dist: muon
|
52
|
-
Requires-Dist: numpyro
|
53
52
|
Requires-Dist: openpyxl
|
54
53
|
Requires-Dist: ott-jax
|
55
54
|
Requires-Dist: pubchempy
|
@@ -61,10 +60,14 @@ Requires-Dist: scikit-misc
|
|
61
60
|
Requires-Dist: scipy
|
62
61
|
Requires-Dist: scvi-tools
|
63
62
|
Requires-Dist: sparsecca
|
64
|
-
Requires-Dist: toytree
|
65
63
|
Provides-Extra: coda
|
64
|
+
Requires-Dist: arviz; extra == 'coda'
|
66
65
|
Requires-Dist: ete3; extra == 'coda'
|
67
66
|
Requires-Dist: pyqt5; extra == 'coda'
|
67
|
+
Requires-Dist: toytree; extra == 'coda'
|
68
|
+
Provides-Extra: de
|
69
|
+
Requires-Dist: formulaic; extra == 'de'
|
70
|
+
Requires-Dist: pydeseq2; extra == 'de'
|
68
71
|
Provides-Extra: dev
|
69
72
|
Requires-Dist: pre-commit; extra == 'dev'
|
70
73
|
Provides-Extra: doc
|
@@ -94,18 +97,18 @@ Requires-Dist: pytest; extra == 'test'
|
|
94
97
|
Description-Content-Type: text/markdown
|
95
98
|
|
96
99
|
[](https://github.com/psf/black)
|
97
|
-
[](https://github.com/scverse/pertpy/actions/workflows/build.yml)
|
101
|
+
[](https://codecov.io/gh/scverse/pertpy)
|
102
|
+
[](https://opensource.org/licenses/Apache2.0)
|
100
103
|
[](https://pypi.org/project/pertpy/)
|
101
104
|
[](https://pypi.org/project/pertpy)
|
102
105
|
[](https://pertpy.readthedocs.io/)
|
103
|
-
[](https://github.com/scverse/pertpy/actions/workflows/test.yml)
|
104
107
|
[](https://github.com/pre-commit/pre-commit)
|
105
108
|
|
106
109
|
# pertpy
|
107
110
|
|
108
|
-

|
109
112
|
|
110
113
|
## Documentation
|
111
114
|
|
@@ -119,12 +122,18 @@ You can install _pertpy_ via [pip] from [PyPI]:
|
|
119
122
|
pip install pertpy
|
120
123
|
```
|
121
124
|
|
122
|
-
if you want to use scCODA please install
|
125
|
+
if you want to use scCODA or tascCODA, please install pertpy as follows:
|
123
126
|
|
124
127
|
```console
|
125
128
|
pip install pertpy[coda]
|
126
129
|
```
|
127
130
|
|
131
|
+
If you want to use the differential gene expression interface, please install pertpy by running:
|
132
|
+
|
133
|
+
```console
|
134
|
+
pip install pertpy[de]
|
135
|
+
```
|
136
|
+
|
128
137
|
[pip]: https://pip.pypa.io/
|
129
138
|
[pypi]: https://pypi.org/
|
130
139
|
[usage]: https://pertpy.readthedocs.io/en/latest/usage/usage.html
|
@@ -1,16 +1,16 @@
|
|
1
1
|
[](https://github.com/psf/black)
|
2
|
-
[](https://github.com/scverse/pertpy/actions/workflows/build.yml)
|
3
|
+
[](https://codecov.io/gh/scverse/pertpy)
|
4
|
+
[](https://opensource.org/licenses/Apache2.0)
|
5
5
|
[](https://pypi.org/project/pertpy/)
|
6
6
|
[](https://pypi.org/project/pertpy)
|
7
7
|
[](https://pertpy.readthedocs.io/)
|
8
|
-
[](https://github.com/scverse/pertpy/actions/workflows/test.yml)
|
9
9
|
[](https://github.com/pre-commit/pre-commit)
|
10
10
|
|
11
11
|
# pertpy
|
12
12
|
|
13
|
-

|
14
14
|
|
15
15
|
## Documentation
|
16
16
|
|
@@ -24,12 +24,18 @@ You can install _pertpy_ via [pip] from [PyPI]:
|
|
24
24
|
pip install pertpy
|
25
25
|
```
|
26
26
|
|
27
|
-
if you want to use scCODA please install
|
27
|
+
if you want to use scCODA or tascCODA, please install pertpy as follows:
|
28
28
|
|
29
29
|
```console
|
30
30
|
pip install pertpy[coda]
|
31
31
|
```
|
32
32
|
|
33
|
+
If you want to use the differential gene expression interface, please install pertpy by running:
|
34
|
+
|
35
|
+
```console
|
36
|
+
pip install pertpy[de]
|
37
|
+
```
|
38
|
+
|
33
39
|
[pip]: https://pip.pypa.io/
|
34
40
|
[pypi]: https://pypi.org/
|
35
41
|
[usage]: https://pertpy.readthedocs.io/en/latest/usage/usage.html
|
@@ -37,7 +37,7 @@ def _html_page_context(
|
|
37
37
|
|
38
38
|
# For sphinx_rtd_theme.
|
39
39
|
context["display_github"] = True
|
40
|
-
context["github_user"] = "
|
40
|
+
context["github_user"] = "scverse"
|
41
41
|
context["github_version"] = "master"
|
42
42
|
context["github_repo"] = repo
|
43
43
|
context["conf_py_path"] = "/docs/source/"
|
Binary file
|
Binary file
|
@@ -2,6 +2,8 @@
|
|
2
2
|
# mypy: ignore-errors
|
3
3
|
|
4
4
|
import sys
|
5
|
+
from datetime import datetime
|
6
|
+
from importlib.metadata import metadata
|
5
7
|
from pathlib import Path
|
6
8
|
|
7
9
|
HERE = Path(__file__).parent
|
@@ -9,13 +11,16 @@ sys.path[:0] = [str(HERE.parent), str(HERE / "extensions")]
|
|
9
11
|
|
10
12
|
needs_sphinx = "4.3"
|
11
13
|
|
12
|
-
|
13
|
-
|
14
|
-
author = "
|
14
|
+
info = metadata("pertpy")
|
15
|
+
project_name = info["Name"]
|
16
|
+
author = info["Author"]
|
17
|
+
copyright = f"{datetime.now():%Y}, {author}."
|
18
|
+
version = info["Version"]
|
19
|
+
urls = dict(pu.split(", ") for pu in info.get_all("Project-URL"))
|
20
|
+
repository_url = urls["Source"]
|
21
|
+
release = info["Version"]
|
15
22
|
github_repo = "pertpy"
|
16
23
|
|
17
|
-
version = "0.7.0"
|
18
|
-
release = "0.7.0"
|
19
24
|
|
20
25
|
extensions = [
|
21
26
|
"myst_parser",
|
@@ -97,7 +102,8 @@ intersphinx_mapping = {
|
|
97
102
|
|
98
103
|
language = "en"
|
99
104
|
|
100
|
-
|
105
|
+
typehints_defaults = "comma"
|
106
|
+
|
101
107
|
pygments_style = "default"
|
102
108
|
pygments_dark_style = "native"
|
103
109
|
|
@@ -166,7 +172,7 @@ nbsphinx_prolog = r"""
|
|
166
172
|
<p class="admonition-title">Note</p>
|
167
173
|
<p>
|
168
174
|
This page was generated from
|
169
|
-
<a class="reference external" href="https://github.com/
|
175
|
+
<a class="reference external" href="https://github.com/scverse/pertpy/tree/{version}/">{docname}</a>.
|
170
176
|
Some tutorial content may look better in light mode.
|
171
177
|
</p>
|
172
178
|
</div>
|
@@ -185,6 +191,8 @@ nbsphinx_thumbnails = {
|
|
185
191
|
"tutorials/notebooks/distance_tests": "_static/tutorials/distances_tests.png",
|
186
192
|
"tutorials/notebooks/cinemaot": "_static/tutorials/cinemaot.png",
|
187
193
|
"tutorials/notebooks/scgen_perturbation_prediction": "_static/tutorials/scgen_perturbation_prediction.png",
|
188
|
-
"tutorials/notebooks/ontology_mapping": "_static/tutorials/ontology.png",
|
189
194
|
"tutorials/notebooks/perturbation_space": "_static/tutorials/perturbation_space.png",
|
195
|
+
"tutorials/notebooks/differential_gene_expression": "_static/tutorials/dge.png",
|
196
|
+
"tutorials/notebooks/metadata_annotation": "_static/tutorials/metadata.png",
|
197
|
+
"tutorials/notebooks/ontology_mapping": "_static/tutorials/ontology.png",
|
190
198
|
}
|
@@ -13,7 +13,7 @@ In addition to the packages needed to _use_ this package, you need additional py
|
|
13
13
|
the documentation_. It's easy to install them using `pip`:
|
14
14
|
|
15
15
|
```bash
|
16
|
-
git clone https://github.com/
|
16
|
+
git clone https://github.com/scverse/pertpy.git
|
17
17
|
cd pertpy
|
18
18
|
pip install -e ".[dev,test,doc]"
|
19
19
|
```
|
@@ -146,7 +146,7 @@ on how to write documentation.
|
|
146
146
|
The documentation is set-up to render jupyter notebooks stored in the `docs/tutorials` directory using [myst-nb][].
|
147
147
|
Currently, only notebooks in `.ipynb` format are supported that will be included with both their input and output cells.
|
148
148
|
|
149
|
-
These notebooks come from [pert-tutorials](https://github.com/
|
149
|
+
These notebooks come from [pert-tutorials](https://github.com/scverse/pertpy-tutorials) which is a git submodule of pertpy.
|
150
150
|
|
151
151
|
#### Hints
|
152
152
|
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
```{eval-rst}
|
36
36
|
.. card:: GitHub :octicon:`mark-github;1em;`
|
37
|
-
:link: https://github.com/
|
37
|
+
:link: https://github.com/scverse/pertpy
|
38
38
|
|
39
39
|
Find a bug? Interested in improving pertpy? Checkout our GitHub for the latest developments.
|
40
40
|
|
@@ -50,7 +50,7 @@ usage/usage
|
|
50
50
|
tutorials/index
|
51
51
|
contributing
|
52
52
|
code_of_conduct
|
53
|
-
Discussions <https://github.com/
|
53
|
+
Discussions <https://github.com/scverse/pertpy/discussions>
|
54
54
|
references
|
55
55
|
```
|
56
56
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
To install pertpy, run this command in your terminal:
|
10
10
|
|
11
11
|
```console
|
12
|
-
|
12
|
+
pip install pertpy
|
13
13
|
```
|
14
14
|
|
15
15
|
This is the preferred method to install pertpy, as it will always install the most recent stable release.
|
@@ -18,14 +18,32 @@ If you don't have [pip] installed, this [Python installation guide] can guide yo
|
|
18
18
|
|
19
19
|
## Google Colab and TascCODA support
|
20
20
|
|
21
|
-
TascCODA requires an additional set of dependencies (ete3 and pyqt5) that can be installed
|
21
|
+
TascCODA requires an additional set of dependencies (ete3 and pyqt5) that can be installed by running:
|
22
22
|
|
23
23
|
```console
|
24
|
-
|
24
|
+
pip install pertpy[coda]
|
25
25
|
```
|
26
26
|
|
27
27
|
this also solves any "AttributeError: module 'pertpy.plot' has no attribute 'coda'" issues.
|
28
28
|
|
29
|
+
## Differential gene expression interface
|
30
|
+
|
31
|
+
The DGE interface of pertpy requires additional dependencies that can be installed by running:
|
32
|
+
|
33
|
+
```console
|
34
|
+
pip install pertpy[de]
|
35
|
+
```
|
36
|
+
|
37
|
+
Note that edger in pertpy requires edger and rpy2 to be installed:
|
38
|
+
|
39
|
+
```R
|
40
|
+
BiocManager::install("edgeR")
|
41
|
+
```
|
42
|
+
|
43
|
+
```console
|
44
|
+
pip install rpy2
|
45
|
+
```
|
46
|
+
|
29
47
|
## From sources
|
30
48
|
|
31
49
|
The sources for pertpy can be downloaded from the [Github repo].
|
@@ -34,13 +52,13 @@ Please note that you require [poetry] to be installed.
|
|
34
52
|
You can either clone the public repository:
|
35
53
|
|
36
54
|
```console
|
37
|
-
$ git clone git://github.com/
|
55
|
+
$ git clone git://github.com/scverse/pertpy
|
38
56
|
```
|
39
57
|
|
40
58
|
Or download the [tarball]:
|
41
59
|
|
42
60
|
```console
|
43
|
-
$ curl -OJL https://github.com/
|
61
|
+
$ curl -OJL https://github.com/scverse/pertpy/tarball/master
|
44
62
|
```
|
45
63
|
|
46
64
|
## Apple Silicon
|
@@ -57,35 +75,35 @@ Follow these steps to install pertpy on an Apple Silicon machine (tested on a Ma
|
|
57
75
|
having both mamba and conda won't cause conflicts)
|
58
76
|
|
59
77
|
```console
|
60
|
-
|
78
|
+
brew install --cask mambaforge
|
61
79
|
```
|
62
80
|
|
63
81
|
3. Create a new environment using mamba (here with python 3.10) and activate it
|
64
82
|
|
65
83
|
```console
|
66
|
-
|
67
|
-
|
84
|
+
mamba create -n pertpy-env python=3.11
|
85
|
+
mamba activate pertpy-env
|
68
86
|
```
|
69
87
|
|
70
88
|
4. Clone the GitHub Repository
|
71
89
|
|
72
90
|
```console
|
73
|
-
|
91
|
+
git clone https://github.com/scverse/pertpy.git
|
74
92
|
```
|
75
93
|
|
76
94
|
5. Go inside the pertpy folder and install pertpy
|
77
95
|
|
78
96
|
```console
|
79
|
-
|
80
|
-
|
97
|
+
cd pertpy
|
98
|
+
pip install .
|
81
99
|
```
|
82
100
|
|
83
101
|
Now you're ready to use pertpy as usual within the environment (`import pertpy`).
|
84
102
|
|
85
|
-
[github repo]: https://github.com/
|
103
|
+
[github repo]: https://github.com/scverse/pertpy
|
86
104
|
[pip]: https://pip.pypa.io
|
87
105
|
[poetry]: https://python-poetry.org/
|
88
106
|
[python installation guide]: http://docs.python-guide.org/en/latest/starting/installation/
|
89
|
-
[tarball]: https://github.com/
|
107
|
+
[tarball]: https://github.com/scverse/pertpy/tarball/master
|
90
108
|
[scvi-tools]: https://docs.scvi-tools.org/en/latest/installation.html
|
91
109
|
[Homebrew]: https://brew.sh/
|
@@ -29,8 +29,10 @@ For questions about the usage of pertpy use the [scverse discourse](https://disc
|
|
29
29
|
notebooks/distance_tests
|
30
30
|
notebooks/cinemaot
|
31
31
|
notebooks/scgen_perturbation_prediction
|
32
|
-
notebooks/ontology_mapping
|
33
32
|
notebooks/perturbation_space
|
33
|
+
notebooks/differential_gene_expression
|
34
|
+
notebooks/metadata_annotation
|
35
|
+
notebooks/ontology_mapping
|
34
36
|
```
|
35
37
|
|
36
38
|
### Glossary
|
@@ -38,8 +38,10 @@ harmonized names and be loadable as MuData objects.
|
|
38
38
|
data.datlinger_2017
|
39
39
|
data.datlinger_2021
|
40
40
|
data.dialogue_example
|
41
|
+
data.distance_example
|
41
42
|
data.dixit_2016
|
42
43
|
data.dixit_2016_raw
|
44
|
+
data.dong_2023
|
43
45
|
data.frangieh_2021
|
44
46
|
data.frangieh_2021_protein
|
45
47
|
data.frangieh_2021_raw
|
@@ -49,6 +51,7 @@ harmonized names and be loadable as MuData objects.
|
|
49
51
|
data.gasperini_2019_lowmoi
|
50
52
|
data.gehring_2019
|
51
53
|
data.haber_2017_regions
|
54
|
+
data.hagai_2018
|
52
55
|
data.kang_2018
|
53
56
|
data.mcfarland_2020
|
54
57
|
data.norman_2019
|
@@ -62,6 +65,7 @@ harmonized names and be loadable as MuData objects.
|
|
62
65
|
data.schiebinger_2019_18day
|
63
66
|
data.schraivogel_2020_tap_screen_chr8
|
64
67
|
data.schraivogel_2020_tap_screen_chr11
|
68
|
+
data.sciplex_gxe1
|
65
69
|
data.sciplex3_raw
|
66
70
|
data.shifrut_2018
|
67
71
|
data.smillie_2019
|
@@ -69,6 +73,7 @@ harmonized names and be loadable as MuData objects.
|
|
69
73
|
data.srivatsan_2020_sciplex3
|
70
74
|
data.srivatsan_2020_sciplex4
|
71
75
|
data.stephenson_2021_subsampled
|
76
|
+
data.tasccoda_example
|
72
77
|
data.tian_2019_day7neuron
|
73
78
|
data.tian_2019_ipsc
|
74
79
|
data.tian_2021_crispra
|
@@ -76,6 +81,7 @@ harmonized names and be loadable as MuData objects.
|
|
76
81
|
data.weinreb_2020
|
77
82
|
data.xie_2017
|
78
83
|
data.zhao_2021
|
84
|
+
data.zhang_2021
|
79
85
|
```
|
80
86
|
|
81
87
|
## Preprocessing
|
@@ -126,7 +132,11 @@ Pertpy provides utilities to conduct differential gene expression tests through
|
|
126
132
|
:toctree: preprocessing
|
127
133
|
:nosignatures:
|
128
134
|
|
129
|
-
tools.
|
135
|
+
tools.PyDESeq2
|
136
|
+
tools.EdgeR
|
137
|
+
tools.WilcoxonTest
|
138
|
+
tools.TTest
|
139
|
+
tools.Statsmodels
|
130
140
|
```
|
131
141
|
|
132
142
|
### Pooled CRISPR screens
|
@@ -455,8 +465,8 @@ train_new = train[
|
|
455
465
|
]
|
456
466
|
train_new = train_new.copy()
|
457
467
|
|
458
|
-
pt.tl.
|
459
|
-
scgen = pt.tl.
|
468
|
+
pt.tl.Scgen.setup_anndata(train_new, batch_key="condition", labels_key="cell_type")
|
469
|
+
scgen = pt.tl.Scgen(train_new)
|
460
470
|
scgen.train(max_epochs=100, batch_size=32)
|
461
471
|
|
462
472
|
pred, delta = scgen.predict(
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
__author__ = "Lukas Heumos"
|
4
4
|
__email__ = "lukas.heumos@posteo.net"
|
5
|
-
__version__ = "0.
|
5
|
+
__version__ = "0.8.0"
|
6
6
|
|
7
7
|
import warnings
|
8
8
|
|
@@ -11,6 +11,7 @@ from numba import NumbaDeprecationWarning
|
|
11
11
|
|
12
12
|
warnings.filterwarnings("ignore", category=NumbaDeprecationWarning)
|
13
13
|
warnings.filterwarnings("ignore", category=MatplotlibDeprecationWarning)
|
14
|
+
warnings.filterwarnings("ignore", category=SyntaxWarning)
|
14
15
|
warnings.filterwarnings("ignore", category=UserWarning, module="scvi._settings")
|
15
16
|
|
16
17
|
from . import data as dt
|
@@ -0,0 +1,117 @@
|
|
1
|
+
from pertpy.data._datasets import (
|
2
|
+
adamson_2016_pilot,
|
3
|
+
adamson_2016_upr_epistasis,
|
4
|
+
adamson_2016_upr_perturb_seq,
|
5
|
+
aissa_2021,
|
6
|
+
bhattacherjee,
|
7
|
+
burczynski_crohn,
|
8
|
+
chang_2021,
|
9
|
+
cinemaot_example,
|
10
|
+
combosciplex,
|
11
|
+
datlinger_2017,
|
12
|
+
datlinger_2021,
|
13
|
+
dialogue_example,
|
14
|
+
distance_example,
|
15
|
+
dixit_2016,
|
16
|
+
dixit_2016_raw,
|
17
|
+
dong_2023,
|
18
|
+
frangieh_2021,
|
19
|
+
frangieh_2021_protein,
|
20
|
+
frangieh_2021_raw,
|
21
|
+
frangieh_2021_rna,
|
22
|
+
gasperini_2019_atscale,
|
23
|
+
gasperini_2019_highmoi,
|
24
|
+
gasperini_2019_lowmoi,
|
25
|
+
gehring_2019,
|
26
|
+
haber_2017_regions,
|
27
|
+
hagai_2018,
|
28
|
+
kang_2018,
|
29
|
+
mcfarland_2020,
|
30
|
+
norman_2019,
|
31
|
+
norman_2019_raw,
|
32
|
+
papalexi_2021,
|
33
|
+
replogle_2022_k562_essential,
|
34
|
+
replogle_2022_k562_gwps,
|
35
|
+
replogle_2022_rpe1,
|
36
|
+
sc_sim_augur,
|
37
|
+
schiebinger_2019_16day,
|
38
|
+
schiebinger_2019_18day,
|
39
|
+
schraivogel_2020_tap_screen_chr8,
|
40
|
+
schraivogel_2020_tap_screen_chr11,
|
41
|
+
sciplex3_raw,
|
42
|
+
sciplex_gxe1,
|
43
|
+
shifrut_2018,
|
44
|
+
smillie_2019,
|
45
|
+
srivatsan_2020_sciplex2,
|
46
|
+
srivatsan_2020_sciplex3,
|
47
|
+
srivatsan_2020_sciplex4,
|
48
|
+
stephenson_2021_subsampled,
|
49
|
+
tasccoda_example,
|
50
|
+
tian_2019_day7neuron,
|
51
|
+
tian_2019_ipsc,
|
52
|
+
tian_2021_crispra,
|
53
|
+
tian_2021_crispri,
|
54
|
+
weinreb_2020,
|
55
|
+
xie_2017,
|
56
|
+
zhang_2021,
|
57
|
+
zhao_2021,
|
58
|
+
)
|
59
|
+
|
60
|
+
__all__ = [
|
61
|
+
"adamson_2016_pilot",
|
62
|
+
"adamson_2016_upr_epistasis",
|
63
|
+
"adamson_2016_upr_perturb_seq",
|
64
|
+
"aissa_2021",
|
65
|
+
"bhattacherjee",
|
66
|
+
"burczynski_crohn",
|
67
|
+
"chang_2021",
|
68
|
+
"cinemaot_example",
|
69
|
+
"combosciplex",
|
70
|
+
"datlinger_2017",
|
71
|
+
"datlinger_2021",
|
72
|
+
"dialogue_example",
|
73
|
+
"distance_example",
|
74
|
+
"dixit_2016",
|
75
|
+
"dixit_2016_raw",
|
76
|
+
"dong_2023",
|
77
|
+
"frangieh_2021",
|
78
|
+
"frangieh_2021_protein",
|
79
|
+
"frangieh_2021_raw",
|
80
|
+
"frangieh_2021_rna",
|
81
|
+
"gasperini_2019_atscale",
|
82
|
+
"gasperini_2019_highmoi",
|
83
|
+
"gasperini_2019_lowmoi",
|
84
|
+
"gehring_2019",
|
85
|
+
"haber_2017_regions",
|
86
|
+
"hagai_2018",
|
87
|
+
"kang_2018",
|
88
|
+
"mcfarland_2020",
|
89
|
+
"norman_2019",
|
90
|
+
"norman_2019_raw",
|
91
|
+
"papalexi_2021",
|
92
|
+
"replogle_2022_k562_essential",
|
93
|
+
"replogle_2022_k562_gwps",
|
94
|
+
"replogle_2022_rpe1",
|
95
|
+
"sc_sim_augur",
|
96
|
+
"schiebinger_2019_16day",
|
97
|
+
"schiebinger_2019_18day",
|
98
|
+
"schraivogel_2020_tap_screen_chr8",
|
99
|
+
"schraivogel_2020_tap_screen_chr11",
|
100
|
+
"sciplex3_raw",
|
101
|
+
"sciplex_gxe1",
|
102
|
+
"shifrut_2018",
|
103
|
+
"smillie_2019",
|
104
|
+
"srivatsan_2020_sciplex2",
|
105
|
+
"srivatsan_2020_sciplex3",
|
106
|
+
"srivatsan_2020_sciplex4",
|
107
|
+
"stephenson_2021_subsampled",
|
108
|
+
"tasccoda_example",
|
109
|
+
"tian_2019_day7neuron",
|
110
|
+
"tian_2019_ipsc",
|
111
|
+
"tian_2021_crispra",
|
112
|
+
"tian_2021_crispri",
|
113
|
+
"weinreb_2020",
|
114
|
+
"xie_2017",
|
115
|
+
"zhao_2021",
|
116
|
+
"zhang_2021",
|
117
|
+
]
|