decoupler 2.1.6__tar.gz → 2.3.0__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.
- {decoupler-2.1.6 → decoupler-2.3.0}/.cruft.json +7 -4
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -2
- decoupler-2.3.0/.github/dependabot.yml +12 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/workflows/build.yaml +6 -2
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/workflows/notebooks.yaml +7 -3
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/workflows/release.yaml +9 -3
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/workflows/test.yaml +17 -10
- {decoupler-2.1.6 → decoupler-2.3.0}/.pre-commit-config.yaml +9 -3
- {decoupler-2.1.6 → decoupler-2.3.0}/.readthedocs.yaml +2 -2
- {decoupler-2.1.6 → decoupler-2.3.0}/CHANGELOG.md +25 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/PKG-INFO +28 -13
- {decoupler-2.1.6 → decoupler-2.3.0}/README.md +23 -8
- decoupler-2.3.0/docs/_static/images/logo.svg +35 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/conf.py +8 -7
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/references.bib +14 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/pyproject.toml +17 -14
- decoupler-2.3.0/src/decoupler/_skills/__init__.py +6 -0
- decoupler-2.3.0/src/decoupler/_skills/data/SKILL.md +144 -0
- decoupler-2.3.0/src/decoupler/_skills/data/references/contrast.md +86 -0
- decoupler-2.3.0/src/decoupler/_skills/data/references/resources.md +82 -0
- decoupler-2.3.0/src/decoupler/_skills/install.py +175 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/_spatial.py +7 -1
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_gsea.py +1 -1
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_ora.py +10 -2
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_query_set.py +5 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_waggr.py +6 -7
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_dotplot.py +8 -3
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pp/anndata.py +1 -1
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_gsea.py +18 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_ora.py +70 -2
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_query_set.py +9 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_waggr.py +19 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_dotplot.py +10 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pp/test_anndata.py +4 -4
- decoupler-2.3.0/tests/test_install_skills.py +214 -0
- decoupler-2.1.6/docs/_static/images/logo.svg +0 -65
- decoupler-2.1.6/docs/_templates/autosummary/class.rst +0 -61
- decoupler-2.1.6/docs/extensions/typed_returns.py +0 -32
- {decoupler-2.1.6 → decoupler-2.3.0}/.codecov.yaml +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.editorconfig +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.gitignore +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.gitmodules +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.vscode/extensions.json +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.vscode/launch.json +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/.vscode/settings.json +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/LICENSE +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/biome.jsonc +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/.gitkeep +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/css/custom.css +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/images/logo.png +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/images/mlm.png +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/images/ora.png +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_static/images/ulm.png +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/_templates/.gitkeep +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/bm.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/ds.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/index.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/mt.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/op.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/pl.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/pp.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/api/tl.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/changelog.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/index.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/docs/references.md +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_Method.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_Plotter.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_datatype.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_docs.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_download.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_log.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/_odeps.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/_pp.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/_run.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/_Metric.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/_auc.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/_fscore.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/_hmean.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/metric/_qrank.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_auc.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_bar.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_format.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_fscore.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_qrank.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/bm/pl/_summary.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/_bulk.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/_scell.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/_toy.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/ds/_utils.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_aucell.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_consensus.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_decouple.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_gsva.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_mdt.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_methods.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_mlm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_pv.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_run.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_udt.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_ulm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_viper.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/mt/_zscore.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_collectri.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_dorothea.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_dtype.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_hallmark.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_progeny.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_resource.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/op/_translate.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_barplot.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_filter_by_expr.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_filter_by_prop.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_filter_samples.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_leading_edge.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_network.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_obsbar.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_obsm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_order.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_order_targets.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_source_targets.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pl/_volcano.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pp/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pp/data.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/pp/net.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/tl/__init__.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/tl/_rankby_group.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/tl/_rankby_obsm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/src/decoupler/tl/_rankby_order.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/bm/test_benchmark.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/bm/test_pl.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/conftest.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/ds/test_bulk.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/ds/test_scell.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/ds/test_spatial.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/ds/test_toy.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/ds/test_utils.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_adj.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_aucell.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_consensus.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_decouple.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_gsva.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_mdt.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_methods.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_mlm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_run.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_udt.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_ulm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_viper.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/mt/test_zscore.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_collectri.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_dorothea.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_dtype.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_hallmark.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_progeny.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_resource.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/op/test_translate.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_Plotter.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_barplot.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_filter_by_expr.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_filter_by_prop.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_filter_samples.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_leading_edge.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_network.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_obsbar.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_obsm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_order.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_order_targets.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_source_targets.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pl/test_volcano.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pp/test_data.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/pp/test_net.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/test_download.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/test_version.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/tl/test_rankby_group.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/tl/test_rankby_obsm.py +0 -0
- {decoupler-2.1.6 → decoupler-2.3.0}/tests/tl/test_rankby_order.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"template": "https://github.com/scverse/cookiecutter-scverse",
|
|
3
|
-
"commit": "
|
|
4
|
-
"checkout": "v0.
|
|
3
|
+
"commit": "6518dfa1abde7379ea7255daf0ce09c23f2b4c94",
|
|
4
|
+
"checkout": "v0.8.0",
|
|
5
5
|
"context": {
|
|
6
6
|
"cookiecutter": {
|
|
7
7
|
"project_name": "decoupler",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"github_repo": "decoupler",
|
|
14
14
|
"license": "BSD 3-Clause License",
|
|
15
15
|
"ide_integration": true,
|
|
16
|
+
"issue_categorization": "",
|
|
16
17
|
"_copy_without_render": [
|
|
17
18
|
".github/workflows/build.yaml",
|
|
18
19
|
".github/workflows/test.yaml",
|
|
@@ -36,8 +37,10 @@
|
|
|
36
37
|
"trim_blocks": true
|
|
37
38
|
},
|
|
38
39
|
"_template": "https://github.com/scverse/cookiecutter-scverse",
|
|
39
|
-
"_commit": "
|
|
40
|
-
}
|
|
40
|
+
"_commit": "4d6aa34fd5be7523ca3bd49fbd81a882dde01d1f"
|
|
41
|
+
},
|
|
42
|
+
"_commit": "6518dfa1abde7379ea7255daf0ce09c23f2b4c94",
|
|
43
|
+
"_template": "https://github.com/scverse/cookiecutter-scverse"
|
|
41
44
|
},
|
|
42
45
|
"directory": null
|
|
43
46
|
}
|
|
@@ -9,8 +9,7 @@ body:
|
|
|
9
9
|
detailing how to provide the necessary information for us to reproduce your bug. In brief:
|
|
10
10
|
* Please provide exact steps how to reproduce the bug in a clean Python environment.
|
|
11
11
|
* In case it's not clear what's causing this bug, please provide the data or the data generation procedure.
|
|
12
|
-
*
|
|
13
|
-
available datasets or to share a subset of your data.
|
|
12
|
+
* Replicate problems on public datasets or share data subsets when full sharing isn't possible.
|
|
14
13
|
|
|
15
14
|
- type: textarea
|
|
16
15
|
id: report
|
|
@@ -10,16 +10,20 @@ concurrency:
|
|
|
10
10
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
11
|
cancel-in-progress: true
|
|
12
12
|
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
13
16
|
jobs:
|
|
14
17
|
package:
|
|
15
18
|
runs-on: ubuntu-latest
|
|
16
19
|
steps:
|
|
17
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
18
21
|
with:
|
|
19
22
|
filter: blob:none
|
|
20
23
|
fetch-depth: 0
|
|
24
|
+
persist-credentials: false
|
|
21
25
|
- name: Install uv
|
|
22
|
-
uses: astral-sh/setup-uv@
|
|
26
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
23
27
|
- name: Build package
|
|
24
28
|
run: uv build
|
|
25
29
|
- name: Check package
|
|
@@ -10,6 +10,9 @@ concurrency:
|
|
|
10
10
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
11
|
cancel-in-progress: true
|
|
12
12
|
|
|
13
|
+
permissions:
|
|
14
|
+
contents: read
|
|
15
|
+
|
|
13
16
|
jobs:
|
|
14
17
|
test:
|
|
15
18
|
runs-on: ubuntu-latest
|
|
@@ -37,17 +40,18 @@ jobs:
|
|
|
37
40
|
]
|
|
38
41
|
|
|
39
42
|
steps:
|
|
40
|
-
- uses: actions/checkout@
|
|
43
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
41
44
|
with:
|
|
42
45
|
filter: blob:none
|
|
43
46
|
fetch-depth: 0
|
|
44
47
|
submodules: "true"
|
|
48
|
+
persist-credentials: false
|
|
45
49
|
- name: Set up Python
|
|
46
|
-
uses: actions/setup-python@
|
|
50
|
+
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
47
51
|
with:
|
|
48
52
|
python-version: "3.13"
|
|
49
53
|
- name: Install uv
|
|
50
|
-
uses: astral-sh/setup-uv@
|
|
54
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
51
55
|
- name: Install dependencies
|
|
52
56
|
run: |
|
|
53
57
|
uv pip install --system .
|
|
@@ -5,6 +5,8 @@ on:
|
|
|
5
5
|
types: [published]
|
|
6
6
|
|
|
7
7
|
# Use "trusted publishing", see https://docs.pypi.org/trusted-publishers/
|
|
8
|
+
permissions: {}
|
|
9
|
+
|
|
8
10
|
jobs:
|
|
9
11
|
release:
|
|
10
12
|
name: Upload release to PyPI
|
|
@@ -13,15 +15,19 @@ jobs:
|
|
|
13
15
|
name: pypi
|
|
14
16
|
url: https://pypi.org/p/decoupler
|
|
15
17
|
permissions:
|
|
18
|
+
contents: read
|
|
16
19
|
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing
|
|
17
20
|
steps:
|
|
18
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
19
22
|
with:
|
|
20
23
|
filter: blob:none
|
|
21
24
|
fetch-depth: 0
|
|
25
|
+
persist-credentials: false
|
|
22
26
|
- name: Install uv
|
|
23
|
-
uses: astral-sh/setup-uv@
|
|
27
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
28
|
+
with:
|
|
29
|
+
enable-cache: false
|
|
24
30
|
- name: Build package
|
|
25
31
|
run: uv build
|
|
26
32
|
- name: Publish package distributions to PyPI
|
|
27
|
-
uses: pypa/gh-action-pypi-publish@
|
|
33
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
@@ -13,7 +13,7 @@ concurrency:
|
|
|
13
13
|
cancel-in-progress: true
|
|
14
14
|
|
|
15
15
|
permissions:
|
|
16
|
-
|
|
16
|
+
contents: read
|
|
17
17
|
|
|
18
18
|
jobs:
|
|
19
19
|
# Get the test environment from hatch as defined in pyproject.toml.
|
|
@@ -22,17 +22,18 @@ jobs:
|
|
|
22
22
|
# Check [[tool.hatch.envs.hatch-test.matrix]] in pyproject.toml and https://hatch.pypa.io/latest/environment/ for
|
|
23
23
|
# more details.
|
|
24
24
|
get-environments:
|
|
25
|
-
runs-on: ubuntu-
|
|
25
|
+
runs-on: ubuntu-slim
|
|
26
26
|
outputs:
|
|
27
27
|
envs: ${{ steps.get-envs.outputs.envs }}
|
|
28
28
|
allowed-failures: ${{ steps.get-envs.outputs.allowed-failures }}
|
|
29
29
|
steps:
|
|
30
|
-
- uses: actions/checkout@
|
|
30
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
31
31
|
with:
|
|
32
32
|
filter: blob:none
|
|
33
33
|
fetch-depth: 0
|
|
34
|
+
persist-credentials: false
|
|
34
35
|
- name: Install uv
|
|
35
|
-
uses: astral-sh/setup-uv@
|
|
36
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
36
37
|
- name: Get test environments
|
|
37
38
|
id: get-envs
|
|
38
39
|
run: |
|
|
@@ -52,6 +53,9 @@ jobs:
|
|
|
52
53
|
# Run tests through hatch. Spawns a separate runner for each environment defined in the hatch matrix obtained above.
|
|
53
54
|
test:
|
|
54
55
|
needs: get-environments
|
|
56
|
+
permissions:
|
|
57
|
+
id-token: write # for codecov OIDC
|
|
58
|
+
contents: read
|
|
55
59
|
|
|
56
60
|
strategy:
|
|
57
61
|
fail-fast: false
|
|
@@ -61,19 +65,22 @@ jobs:
|
|
|
61
65
|
|
|
62
66
|
name: ${{ matrix.env.label }}
|
|
63
67
|
runs-on: ${{ matrix.os }}
|
|
64
|
-
continue-on-error: ${{ contains(matrix.env.name, 'pre') }}
|
|
68
|
+
continue-on-error: ${{ contains(matrix.env.name, 'pre') }} # make "all-green" pass even if pre-release job fails
|
|
65
69
|
|
|
66
70
|
steps:
|
|
67
|
-
- uses: actions/checkout@
|
|
71
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
68
72
|
with:
|
|
69
73
|
filter: blob:none
|
|
70
74
|
fetch-depth: 0
|
|
75
|
+
persist-credentials: false
|
|
71
76
|
- name: Install uv
|
|
72
|
-
uses: astral-sh/setup-uv@
|
|
77
|
+
uses: astral-sh/setup-uv@1c37ad07a6a961277cf70c0d37d6f313000f5884 # v10.3.0
|
|
73
78
|
with:
|
|
74
79
|
python-version: ${{ matrix.env.python }}
|
|
75
80
|
- name: create hatch environment
|
|
76
81
|
run: uvx hatch env create ${{ matrix.env.name }}
|
|
82
|
+
- name: list all all installed package versions
|
|
83
|
+
run: uvx hatch run ${{ matrix.env.name }}:uv pip list
|
|
77
84
|
- name: run tests using hatch
|
|
78
85
|
env:
|
|
79
86
|
MPLBACKEND: agg
|
|
@@ -82,12 +89,12 @@ jobs:
|
|
|
82
89
|
run: uvx hatch run ${{ matrix.env.name }}:run-cov -v --color=yes -n auto
|
|
83
90
|
- name: generate coverage report
|
|
84
91
|
run: |
|
|
85
|
-
# See https://coverage.readthedocs.io/
|
|
92
|
+
# See https://coverage.readthedocs.io/page/config.html#run-patch
|
|
86
93
|
test -f .coverage || uvx hatch run ${{ matrix.env.name }}:cov-combine
|
|
87
94
|
uvx hatch run ${{ matrix.env.name }}:cov-report # report visibly
|
|
88
95
|
uvx hatch run ${{ matrix.env.name }}:coverage xml # create report for upload
|
|
89
96
|
- name: Upload coverage
|
|
90
|
-
uses: codecov/codecov-action@
|
|
97
|
+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
|
|
91
98
|
with:
|
|
92
99
|
fail_ci_if_error: true
|
|
93
100
|
use_oidc: true
|
|
@@ -102,7 +109,7 @@ jobs:
|
|
|
102
109
|
- test
|
|
103
110
|
runs-on: ubuntu-latest
|
|
104
111
|
steps:
|
|
105
|
-
- uses: re-actors/alls-green@
|
|
112
|
+
- uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35 # v1.3.0
|
|
106
113
|
with:
|
|
107
114
|
allowed-failures: ${{ needs.get-environments.outputs.allowed-failures }}
|
|
108
115
|
jobs: ${{ toJSON(needs) }}
|
|
@@ -7,16 +7,16 @@ default_stages:
|
|
|
7
7
|
minimum_pre_commit_version: 2.16.0
|
|
8
8
|
repos:
|
|
9
9
|
- repo: https://github.com/biomejs/pre-commit
|
|
10
|
-
rev: v2.
|
|
10
|
+
rev: v2.5.15
|
|
11
11
|
hooks:
|
|
12
12
|
- id: biome-format
|
|
13
13
|
exclude: ^\.cruft\.json$ # inconsistent indentation with cruft - file never to be modified manually.
|
|
14
14
|
- repo: https://github.com/tox-dev/pyproject-fmt
|
|
15
|
-
rev: v2.
|
|
15
|
+
rev: v2.30.3
|
|
16
16
|
hooks:
|
|
17
17
|
- id: pyproject-fmt
|
|
18
18
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
19
|
-
rev: v0.
|
|
19
|
+
rev: v0.17.1
|
|
20
20
|
hooks:
|
|
21
21
|
- id: ruff-check
|
|
22
22
|
types_or: [python, pyi, jupyter]
|
|
@@ -36,3 +36,9 @@ repos:
|
|
|
36
36
|
# Check that there are no merge conflicts (could be generated by template sync)
|
|
37
37
|
- id: check-merge-conflict
|
|
38
38
|
args: [--assume-in-merge]
|
|
39
|
+
|
|
40
|
+
- repo: https://github.com/zizmorcore/zizmor-pre-commit
|
|
41
|
+
rev: v1.24.1
|
|
42
|
+
hooks:
|
|
43
|
+
- id: zizmor
|
|
44
|
+
args: [--no-progress, --fix]
|
|
@@ -8,6 +8,31 @@ and this project adheres to [Semantic Versioning][].
|
|
|
8
8
|
[keep a changelog]: https://keepachangelog.com/en/1.0.0/
|
|
9
9
|
[semantic versioning]: https://semver.org/spec/v2.0.0.html
|
|
10
10
|
|
|
11
|
+
## 2.3.0
|
|
12
|
+
|
|
13
|
+
### Changes
|
|
14
|
+
- Updated the bundled decoupler Agent Skill, and `decoupler-install-skills` now supports multiple agent frameworks
|
|
15
|
+
- `pp.filter_by_prop` now defaults to `min_prop=0.1` (was `0.2`) to match the value used in the vignettes
|
|
16
|
+
- `ds.msvisium` now returns log-normalized data (`sc.pp.normalize_total` + `sc.pp.log1p`), with the log-normalized matrix also stored in `adata.layers["norm"]`, instead of raw counts
|
|
17
|
+
- Dropped support for Python 3.11; decoupler now requires Python 3.12 or newer
|
|
18
|
+
- Updated to the scverse cookiecutter template v0.8.0 (hash-pinned GitHub Actions checked by zizmor, `prek` instead of `pre-commit`, `sphinx-design` instead of `sphinx-tabs`, shared Sphinx extensions from `scverse-misc`)
|
|
19
|
+
|
|
20
|
+
### Bugfixes
|
|
21
|
+
- Fixed `mt.ora` selecting the bottom `nvar - n_up` features instead of the top `n_up` ones. Ranks are ascending, so the threshold is now `nvar - n_up`, restoring the behaviour of `decoupler<2`. With the default `n_up` (top 5%) this selected 95% of the features as observed, which also made `mt.ora` fail with `invalid contingency table` whenever `nvar - n_up` exceeded `n_bg` (#346)
|
|
22
|
+
- Fixed `n_bm` in `mt.ora` selecting the bottom `n_bm - 1` features instead of `n_bm`
|
|
23
|
+
- `mt.ora` now validates that `n_up` and `n_bm` do not overlap and that `n_bg` is large enough for the number of selected features, instead of failing inside the Fisher exact test
|
|
24
|
+
- `mt.query_set` now raises an informative error when `n_bg` is smaller than the number of features to test, instead of failing inside `scipy.stats.fisher_exact`
|
|
25
|
+
- Fixed `mt.gsea` not shuffling the permutation indices when `seed=0`, which produced identical permutations and invalid p-values (#355)
|
|
26
|
+
- Fixed `mt.waggr` folding its already two-sided permutation p-values as one-sided, which gave scores near 0 the smallest p-value (#373)
|
|
27
|
+
- Fixed `pl.dotplot` showing an empty size legend when all dots have the same size (#370)
|
|
28
|
+
- Fixed `ds.msvisium` failing with HTTP 403 by fetching the spot metadata from `cells.ucsc.edu` instead of the `cells-test.gi.ucsc.edu` mirror
|
|
29
|
+
|
|
30
|
+
## 2.2.0
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- Bundled a Claude Code [Agent Skill](https://docs.claude.com/en/docs/claude-code/skills) that teaches coding agents to use decoupler correctly (method selection, calling conventions, output locations, priors, datasets, and benchmarking)
|
|
34
|
+
- Added the `decoupler-install-skills` console script to install the skill into `~/.claude/skills/decoupler/` (use `--force` to refresh after upgrading, or `--print-path` to point `CLAUDE_SKILLS_PATH` at the bundled copy in place)
|
|
35
|
+
|
|
11
36
|
## 2.1.6
|
|
12
37
|
|
|
13
38
|
### Bugfixes
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: decoupler
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Python package to perform enrichment analysis from omics data.
|
|
5
|
-
Project-URL: Documentation, https://decoupler.
|
|
5
|
+
Project-URL: Documentation, https://decoupler.scverse.org/
|
|
6
6
|
Project-URL: Homepage, https://github.com/scverse/decoupler
|
|
7
7
|
Project-URL: Source, https://github.com/scverse/decoupler
|
|
8
8
|
Author: Pau Badia i Mompel
|
|
@@ -39,11 +39,11 @@ License: BSD 3-Clause License
|
|
|
39
39
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
40
40
|
License-File: LICENSE
|
|
41
41
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
42
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
43
42
|
Classifier: Programming Language :: Python :: 3.12
|
|
44
43
|
Classifier: Programming Language :: Python :: 3.13
|
|
45
44
|
Classifier: Programming Language :: Python :: 3.14
|
|
46
|
-
|
|
45
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
46
|
+
Requires-Python: >=3.12
|
|
47
47
|
Requires-Dist: adjusttext
|
|
48
48
|
Requires-Dist: anndata
|
|
49
49
|
Requires-Dist: docrep
|
|
@@ -83,10 +83,8 @@ Description-Content-Type: text/markdown
|
|
|
83
83
|
[badge-adown]: https://static.pepy.tech/badge/decoupler
|
|
84
84
|
[badge-stars]: https://img.shields.io/github/stars/scverse/decoupler?style=flat&logo=github&color=yellow
|
|
85
85
|
|
|
86
|
-
`decoupler` is a python package containing different enrichment statistical
|
|
87
|
-
|
|
88
|
-
from omics data within a unified framework. This is its faster and memory efficient Python implementation,
|
|
89
|
-
a deprecated version in R can be found [here](https://github.com/saezlab/decoupler).
|
|
86
|
+
`decoupler` is a python package containing different enrichment statistical methods to extract biologically driven scores from omics data within a unified framework.
|
|
87
|
+
This is its faster and memory efficient Python implementation, a deprecated version in R can be found [here](https://github.com/saezlab/decoupler).
|
|
90
88
|
|
|
91
89
|
[//]: # (numfocus-fiscal-sponsor-attribution)
|
|
92
90
|
|
|
@@ -109,7 +107,7 @@ in particular, the [API documentation][].
|
|
|
109
107
|
|
|
110
108
|
## Installation
|
|
111
109
|
|
|
112
|
-
You need to have Python 3.
|
|
110
|
+
You need to have Python 3.12 or newer installed on your system.
|
|
113
111
|
If you don't have Python installed, we recommend installing [uv][].
|
|
114
112
|
|
|
115
113
|
There are several alternative options to install decoupler:
|
|
@@ -138,6 +136,16 @@ mamba create -n=dcp conda-forge::decoupler-py
|
|
|
138
136
|
pip install git+https://github.com/scverse/decoupler.git@main
|
|
139
137
|
```
|
|
140
138
|
|
|
139
|
+
## Agent Skill
|
|
140
|
+
|
|
141
|
+
decoupler ships an [Agent Skill](https://docs.claude.com/en/docs/claude-code/skills) that teaches coding agents to use the library correctly. Install it into your agent's skills directory by choosing a framework with `--agent {claude,codex,agents,claude-science}` (or an explicit directory with `--dest`):
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
decoupler-install-skills --agent claude
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Re-run with `--force` after upgrading, use `--check` to see whether an installed copy is up to date, or `--print-path` to show where the bundled copy lives inside the package.
|
|
148
|
+
|
|
141
149
|
## Release notes
|
|
142
150
|
|
|
143
151
|
See the [changelog][].
|
|
@@ -147,6 +155,13 @@ See the [changelog][].
|
|
|
147
155
|
For questions and help requests, you can reach out in the [scverse discourse][].
|
|
148
156
|
If you found a bug, please use the [issue tracker][].
|
|
149
157
|
|
|
158
|
+
## License
|
|
159
|
+
Enrichment methods inside decoupler can be used for academic or commercial purposes, except `viper` which holds a non-commercial license.
|
|
160
|
+
|
|
161
|
+
The data redistributed by OmniPath does not have a single license, each original resource has its own. By default, `decoupler`
|
|
162
|
+
assumes an academic license, but commercial or nonprofit licenses can be specified in the `license` parameter of `decoupler`'s OmniPath functions.
|
|
163
|
+
[Here](https://omnipathdb.org/info) one can find the license information of all the resources in OmniPath.
|
|
164
|
+
|
|
150
165
|
## Citation
|
|
151
166
|
|
|
152
167
|
> Badia-i-Mompel P., Vélez Santiago J., Braunger J., Geiss C., Dimitrov D.,
|
|
@@ -160,9 +175,9 @@ to infer biological activities from omics data. Bioinformatics Advances.
|
|
|
160
175
|
[scverse]: https://scverse.org/
|
|
161
176
|
[issue tracker]: https://github.com/scverse/decoupler/issues
|
|
162
177
|
[tests]: https://github.com/scverse/decoupler/actions/workflows/test.yaml
|
|
163
|
-
[documentation]: https://decoupler.
|
|
164
|
-
[changelog]: https://decoupler.
|
|
165
|
-
[api documentation]: https://decoupler.
|
|
178
|
+
[documentation]: https://decoupler.scverse.org/
|
|
179
|
+
[changelog]: https://decoupler.scverse.org/page/changelog.html
|
|
180
|
+
[api documentation]: https://decoupler.scverse.org/page/api.html
|
|
166
181
|
[pypi]: https://pypi.org/project/decoupler
|
|
167
182
|
[down]: https://pepy.tech/project/decoupler
|
|
168
183
|
[conda]: https://anaconda.org/conda-forge/decoupler-py
|
|
@@ -26,10 +26,8 @@
|
|
|
26
26
|
[badge-adown]: https://static.pepy.tech/badge/decoupler
|
|
27
27
|
[badge-stars]: https://img.shields.io/github/stars/scverse/decoupler?style=flat&logo=github&color=yellow
|
|
28
28
|
|
|
29
|
-
`decoupler` is a python package containing different enrichment statistical
|
|
30
|
-
|
|
31
|
-
from omics data within a unified framework. This is its faster and memory efficient Python implementation,
|
|
32
|
-
a deprecated version in R can be found [here](https://github.com/saezlab/decoupler).
|
|
29
|
+
`decoupler` is a python package containing different enrichment statistical methods to extract biologically driven scores from omics data within a unified framework.
|
|
30
|
+
This is its faster and memory efficient Python implementation, a deprecated version in R can be found [here](https://github.com/saezlab/decoupler).
|
|
33
31
|
|
|
34
32
|
[//]: # (numfocus-fiscal-sponsor-attribution)
|
|
35
33
|
|
|
@@ -52,7 +50,7 @@ in particular, the [API documentation][].
|
|
|
52
50
|
|
|
53
51
|
## Installation
|
|
54
52
|
|
|
55
|
-
You need to have Python 3.
|
|
53
|
+
You need to have Python 3.12 or newer installed on your system.
|
|
56
54
|
If you don't have Python installed, we recommend installing [uv][].
|
|
57
55
|
|
|
58
56
|
There are several alternative options to install decoupler:
|
|
@@ -81,6 +79,16 @@ mamba create -n=dcp conda-forge::decoupler-py
|
|
|
81
79
|
pip install git+https://github.com/scverse/decoupler.git@main
|
|
82
80
|
```
|
|
83
81
|
|
|
82
|
+
## Agent Skill
|
|
83
|
+
|
|
84
|
+
decoupler ships an [Agent Skill](https://docs.claude.com/en/docs/claude-code/skills) that teaches coding agents to use the library correctly. Install it into your agent's skills directory by choosing a framework with `--agent {claude,codex,agents,claude-science}` (or an explicit directory with `--dest`):
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
decoupler-install-skills --agent claude
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Re-run with `--force` after upgrading, use `--check` to see whether an installed copy is up to date, or `--print-path` to show where the bundled copy lives inside the package.
|
|
91
|
+
|
|
84
92
|
## Release notes
|
|
85
93
|
|
|
86
94
|
See the [changelog][].
|
|
@@ -90,6 +98,13 @@ See the [changelog][].
|
|
|
90
98
|
For questions and help requests, you can reach out in the [scverse discourse][].
|
|
91
99
|
If you found a bug, please use the [issue tracker][].
|
|
92
100
|
|
|
101
|
+
## License
|
|
102
|
+
Enrichment methods inside decoupler can be used for academic or commercial purposes, except `viper` which holds a non-commercial license.
|
|
103
|
+
|
|
104
|
+
The data redistributed by OmniPath does not have a single license, each original resource has its own. By default, `decoupler`
|
|
105
|
+
assumes an academic license, but commercial or nonprofit licenses can be specified in the `license` parameter of `decoupler`'s OmniPath functions.
|
|
106
|
+
[Here](https://omnipathdb.org/info) one can find the license information of all the resources in OmniPath.
|
|
107
|
+
|
|
93
108
|
## Citation
|
|
94
109
|
|
|
95
110
|
> Badia-i-Mompel P., Vélez Santiago J., Braunger J., Geiss C., Dimitrov D.,
|
|
@@ -103,9 +118,9 @@ to infer biological activities from omics data. Bioinformatics Advances.
|
|
|
103
118
|
[scverse]: https://scverse.org/
|
|
104
119
|
[issue tracker]: https://github.com/scverse/decoupler/issues
|
|
105
120
|
[tests]: https://github.com/scverse/decoupler/actions/workflows/test.yaml
|
|
106
|
-
[documentation]: https://decoupler.
|
|
107
|
-
[changelog]: https://decoupler.
|
|
108
|
-
[api documentation]: https://decoupler.
|
|
121
|
+
[documentation]: https://decoupler.scverse.org/
|
|
122
|
+
[changelog]: https://decoupler.scverse.org/page/changelog.html
|
|
123
|
+
[api documentation]: https://decoupler.scverse.org/page/api.html
|
|
109
124
|
[pypi]: https://pypi.org/project/decoupler
|
|
110
125
|
[down]: https://pepy.tech/project/decoupler
|
|
111
126
|
[conda]: https://anaconda.org/conda-forge/decoupler-py
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg width="100%" height="100%" viewBox="0 0 882 863" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="color-scheme:light dark;fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
|
|
4
|
+
<g transform="matrix(1,0,0,1,-1021.15,-508.159)">
|
|
5
|
+
<g transform="matrix(3.17792,0,0,3.17792,-481.276,-809.715)">
|
|
6
|
+
<g transform="matrix(0.903428,0,0,0.903428,310.296,-296.923)">
|
|
7
|
+
<path d="M205.034,956.366L204.745,927.619L181.293,914.614L187.919,889.473L213.089,891.307L226.82,865.79L212.329,842.947L229.966,826.83L252.734,838.193L276.979,823.626L277.145,797.594L300.513,790.574L314.423,813.922L344.041,811.56L356.336,789.14L380.422,794.244L381.221,820.534L407.414,834.253L428.942,820.971L447.216,836.034L434.805,860.485L449.815,883.739L476.007,883.175L484.074,905.4L460.086,919.743L461.835,947.863L485.292,960.143L479.468,983.876L452.222,984.142L438.067,1009.97L453.854,1031.56L435.938,1048.96L411.732,1035.93L387.635,1051.1L389.054,1077.92L365.066,1084.91L350.446,1062L321.54,1063.78L308.89,1086.54L286.332,1081.13L284.248,1054.29L259.696,1040.78L237.458,1055.86L218.479,1038.13L230.639,1015.9L215.657,991.846L189.177,992.838L184.137,970.897L205.034,956.366Z" style="fill:none;"/>
|
|
8
|
+
<clipPath id="_clip3">
|
|
9
|
+
<path d="M205.034,956.366L204.745,927.619L181.293,914.614L187.919,889.473L213.089,891.307L226.82,865.79L212.329,842.947L229.966,826.83L252.734,838.193L276.979,823.626L277.145,797.594L300.513,790.574L314.423,813.922L344.041,811.56L356.336,789.14L380.422,794.244L381.221,820.534L407.414,834.253L428.942,820.971L447.216,836.034L434.805,860.485L449.815,883.739L476.007,883.175L484.074,905.4L460.086,919.743L461.835,947.863L485.292,960.143L479.468,983.876L452.222,984.142L438.067,1009.97L453.854,1031.56L435.938,1048.96L411.732,1035.93L387.635,1051.1L389.054,1077.92L365.066,1084.91L350.446,1062L321.54,1063.78L308.89,1086.54L286.332,1081.13L284.248,1054.29L259.696,1040.78L237.458,1055.86L218.479,1038.13L230.639,1015.9L215.657,991.846L189.177,992.838L184.137,970.897L205.034,956.366Z"/>
|
|
10
|
+
</clipPath>
|
|
11
|
+
<g clip-path="url(#_clip3)">
|
|
12
|
+
<path d="M410.885,3233.05L415.49,3252.29L437.595,3251.26L449.408,3270.41L439.18,3288.83L455.556,3304.25L473.925,3291.69L493.331,3302.37L494.908,3324.58L514.747,3329.2L525.06,3310.47L547.982,3308.96L560.023,3327.97L580.864,3321.9L579.591,3299.83L598.597,3287.79L618.581,3298.54L634.168,3283.38L621.186,3265.49L632.255,3245.16L654.728,3244.93L660.013,3224.26L640.427,3214.18L639.061,3192.03L658.861,3180.11L652.199,3160.7L630.256,3161.27L618.445,3143.03L628.724,3122.65L612.813,3109.5L595.094,3120.54L574.418,3109.79L573.801,3088.05L552.855,3083.5L542.642,3102.12L519.227,3104.03L507.987,3084.64L487.426,3090.67L487.443,3112.26L468.275,3123.88L449.523,3114.46L433.846,3128.18L446.048,3147.3L435.403,3167.31L414.319,3165.8L408.281,3187.62L428.022,3198.46L428.302,3221.19L410.885,3233.05ZM533.378,3139.43C541.744,3139.43 557.034,3142.67 564.201,3145.99C575.271,3151.13 587.045,3162.58 593.631,3176.37C598.895,3187.39 600.157,3200.11 600.157,3210.74C600.157,3228.86 590.764,3247.15 575.691,3258.91C563.68,3268.28 547.53,3273.12 533.509,3273.12C501.896,3273.12 473.307,3240.97 473.307,3208.42C473.307,3199.59 473.548,3189.96 477.226,3181.37C487.118,3158.27 510.335,3139.43 533.378,3139.43Z" transform="matrix(1.2125,0,0,1.2125,-314.382,-2949.99)" style="fill:url(#_GearShade);"/>
|
|
13
|
+
</g>
|
|
14
|
+
<path d="M205.034,956.366L204.745,927.619L181.293,914.614L187.919,889.473L213.089,891.307L226.82,865.79L212.329,842.947L229.966,826.83L252.734,838.193L276.979,823.626L277.145,797.594L300.513,790.574L314.423,813.922L344.041,811.56L356.336,789.14L380.422,794.244L381.221,820.534L407.414,834.253L428.942,820.971L447.216,836.034L434.805,860.485L449.815,883.739L476.007,883.175L484.074,905.4L460.086,919.743L461.835,947.863L485.292,960.143L479.468,983.876L452.222,984.142L438.067,1009.97L453.854,1031.56L435.938,1048.96L411.732,1035.93L387.635,1051.1L389.054,1077.92L365.066,1084.91L350.446,1062L321.54,1063.78L308.89,1086.54L286.332,1081.13L284.248,1054.29L259.696,1040.78L237.458,1055.86L218.479,1038.13L230.639,1015.9L215.657,991.846L189.177,992.838L184.137,970.897L205.034,956.366Z" style="fill:none;stroke:rgb(150,150,150);stroke-width:2.9px;"/>
|
|
15
|
+
</g>
|
|
16
|
+
<g transform="matrix(0.493725,0,0,0.515398,143.141,120.028)">
|
|
17
|
+
<circle cx="953.999" cy="834.926" r="141.691" style="fill:none;stroke:rgb(185,185,185);stroke-width:5.2px;"/>
|
|
18
|
+
</g>
|
|
19
|
+
<g transform="matrix(0.874551,0,0,0.886437,115.513,-670.307)">
|
|
20
|
+
<path d="M465.302,1356.02L475.899,1356.02L475.899,1379.56C475.899,1383.89 474.766,1387.41 472.499,1390.13C471.196,1391.7 469.538,1392.95 467.526,1393.87C465.515,1394.8 463.451,1395.26 461.335,1395.26C457.123,1395.26 453.571,1393.85 450.681,1391.01C447.791,1388.18 446.346,1384.7 446.346,1380.58C446.346,1376.6 447.781,1373.15 450.653,1370.24C453.524,1367.33 456.924,1365.88 460.853,1365.88C461.477,1365.88 462.421,1365.93 463.687,1366.05L463.687,1377.72C462.818,1377.04 461.949,1376.7 461.08,1376.7C459.985,1376.7 459.045,1377.1 458.261,1377.91C457.477,1378.71 457.085,1379.68 457.085,1380.81C457.085,1381.91 457.491,1382.85 458.303,1383.63C459.116,1384.41 460.088,1384.81 461.222,1384.81C463.942,1384.81 465.302,1382.93 465.302,1379.17L465.302,1356.02Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
21
|
+
<path d="M505.884,1382.28L489.818,1382.28C489.573,1381.47 489.45,1380.73 489.45,1380.05C489.45,1379.1 489.62,1378.17 489.96,1377.27L495.344,1377.27C494.966,1375.17 493.785,1374.12 491.802,1374.12C490.479,1374.12 489.403,1374.69 488.571,1375.81C487.74,1376.93 487.325,1378.37 487.325,1380.13C487.325,1381.96 487.726,1383.45 488.529,1384.58C489.332,1385.71 490.385,1386.28 491.688,1386.28C492.746,1386.28 493.766,1385.75 494.749,1384.69L500.784,1391.95C497.969,1394.16 494.843,1395.26 491.405,1395.26C487.211,1395.26 483.688,1393.85 480.836,1391.04C477.984,1388.23 476.557,1384.74 476.557,1380.58C476.557,1376.45 477.998,1372.95 480.878,1370.1C483.759,1367.25 487.296,1365.82 491.49,1365.82C495.589,1365.82 499.032,1367.21 501.818,1370C504.604,1372.79 505.998,1376.22 505.998,1380.3C505.998,1380.72 505.96,1381.38 505.884,1382.28Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
22
|
+
<path d="M524.252,1381.69L534.764,1381.29C534.462,1385.37 532.941,1388.73 530.202,1391.35C527.463,1393.98 524.129,1395.29 520.2,1395.29C516.044,1395.29 512.535,1393.85 509.673,1390.95C506.811,1388.06 505.38,1384.52 505.38,1380.33C505.38,1376.34 506.825,1372.93 509.716,1370.1C512.606,1367.27 516.072,1365.85 520.115,1365.85C523.647,1365.85 526.764,1366.96 529.465,1369.19C532.167,1371.42 533.848,1374.27 534.509,1377.72L523.77,1378.12C522.844,1376.91 521.673,1376.31 520.256,1376.31C519.047,1376.31 518.056,1376.7 517.281,1377.5C516.507,1378.29 516.119,1379.29 516.119,1380.5C516.119,1381.73 516.53,1382.76 517.352,1383.59C518.174,1384.42 519.199,1384.83 520.426,1384.83C522.221,1384.83 523.496,1383.79 524.252,1381.69Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
23
|
+
<path d="M549.419,1365.85C553.424,1365.85 556.857,1367.29 559.719,1370.17C562.581,1373.05 564.012,1376.5 564.012,1380.53C564.012,1384.61 562.562,1388.08 559.663,1390.95C556.763,1393.83 553.264,1395.26 549.164,1395.26C545.065,1395.26 541.561,1393.82 538.652,1390.94C535.743,1388.06 534.288,1384.59 534.288,1380.53C534.288,1376.39 535.743,1372.91 538.652,1370.09C541.561,1367.26 545.15,1365.85 549.419,1365.85ZM549.136,1376.31C548.003,1376.31 547.039,1376.72 546.246,1377.54C545.452,1378.36 545.056,1379.37 545.056,1380.56C545.056,1381.73 545.457,1382.73 546.26,1383.56C547.063,1384.39 548.022,1384.81 549.136,1384.81C550.269,1384.81 551.238,1384.39 552.04,1383.56C552.843,1382.73 553.245,1381.73 553.245,1380.56C553.245,1379.37 552.848,1378.36 552.055,1377.54C551.261,1376.72 550.288,1376.31 549.136,1376.31Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
24
|
+
<path d="M565.067,1366.84L575.664,1366.84L575.664,1382.79C575.664,1384.4 576.335,1385.2 577.676,1385.2C578.998,1385.2 579.659,1384.4 579.659,1382.79L579.659,1366.84L590.257,1366.84L590.257,1382.6C590.257,1386.26 589.038,1389.35 586.601,1391.88C584.165,1394.4 581.18,1395.66 577.647,1395.66C573.624,1395.66 570.384,1394.19 567.928,1391.27C566.021,1388.98 565.067,1385.81 565.067,1381.75L565.067,1366.84Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
25
|
+
<path d="M603.042,1405.15L592.445,1405.15L592.445,1381.58C592.445,1377.25 593.578,1373.73 595.845,1371.01C597.148,1369.44 598.806,1368.19 600.818,1367.27C602.829,1366.34 604.893,1365.88 607.009,1365.88C611.221,1365.88 614.773,1367.3 617.663,1370.13C620.553,1372.96 621.998,1376.44 621.998,1380.56C621.998,1384.56 620.563,1388.02 617.691,1390.93C614.82,1393.84 611.42,1395.29 607.491,1395.29C606.848,1395.29 605.904,1395.22 604.657,1395.09L604.657,1383.42C605.526,1384.12 606.395,1384.47 607.264,1384.47C608.36,1384.47 609.299,1384.06 610.083,1383.25C610.867,1382.43 611.259,1381.47 611.259,1380.36C611.259,1379.24 610.853,1378.29 610.041,1377.51C609.228,1376.73 608.256,1376.33 607.122,1376.33C604.402,1376.33 603.042,1378.21 603.042,1381.97L603.042,1405.15Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
26
|
+
<rect x="623.279" y="1356.02" width="10.597" height="38.678" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
27
|
+
<path d="M664.485,1382.28L648.419,1382.28C648.173,1381.47 648.051,1380.73 648.051,1380.05C648.051,1379.1 648.221,1378.17 648.561,1377.27L653.944,1377.27C653.566,1375.17 652.386,1374.12 650.402,1374.12C649.08,1374.12 648.003,1374.69 647.172,1375.81C646.341,1376.93 645.925,1378.37 645.925,1380.13C645.925,1381.96 646.327,1383.45 647.13,1384.58C647.932,1385.71 648.986,1386.28 650.289,1386.28C651.347,1386.28 652.367,1385.75 653.349,1384.69L659.385,1391.95C656.57,1394.16 653.444,1395.26 650.006,1395.26C645.812,1395.26 642.289,1393.85 639.437,1391.04C636.584,1388.23 635.158,1384.74 635.158,1380.58C635.158,1376.45 636.598,1372.95 639.479,1370.1C642.36,1367.25 645.897,1365.82 650.091,1365.82C654.19,1365.82 657.633,1367.21 660.419,1370C663.205,1372.79 664.598,1376.22 664.598,1380.3C664.598,1380.72 664.561,1381.38 664.485,1382.28Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
28
|
+
<path d="M681.011,1366.16L681.011,1377.5C680.274,1377.08 679.603,1376.87 678.999,1376.87C677.072,1376.87 676.109,1378.35 676.109,1381.29L676.109,1394.69L665.511,1394.69L665.511,1379.25C665.511,1375.17 666.626,1371.92 668.855,1369.49C671.084,1367.06 674.059,1365.85 677.78,1365.85C678.611,1365.85 679.688,1365.95 681.011,1366.16Z" style="fill:light-dark(rgb(61,54,54),rgb(230,230,230));fill-rule:nonzero;stroke:light-dark(white,rgb(61,54,54));stroke-width:0.36px;stroke-linecap:butt;stroke-miterlimit:2;"/>
|
|
29
|
+
</g>
|
|
30
|
+
</g>
|
|
31
|
+
</g>
|
|
32
|
+
<defs>
|
|
33
|
+
<radialGradient id="_GearShade" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="matrix(126.362,0,0,126.368,530.561,3207.23)"><stop offset="0.5" style="stop-color:rgb(247,247,247);stop-opacity:1"/><stop offset="0.591" style="stop-color:rgb(240,240,240);stop-opacity:1"/><stop offset="0.682" style="stop-color:rgb(230,230,230);stop-opacity:1"/><stop offset="0.773" style="stop-color:rgb(217,217,217);stop-opacity:1"/><stop offset="0.864" style="stop-color:rgb(206,206,206);stop-opacity:1"/><stop offset="0.955" style="stop-color:rgb(203,203,203);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(212,212,212);stop-opacity:1"/></radialGradient>
|
|
34
|
+
</defs>
|
|
35
|
+
</svg>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# This file only contains a selection of the most common options. For a full
|
|
4
4
|
# list see the documentation:
|
|
5
|
-
# https://www.sphinx-doc.org/
|
|
5
|
+
# https://www.sphinx-doc.org/page/usage/configuration.html
|
|
6
6
|
|
|
7
7
|
# -- Path setup --------------------------------------------------------------
|
|
8
8
|
import shutil
|
|
@@ -57,11 +57,12 @@ extensions = [
|
|
|
57
57
|
"sphinx.ext.autosummary",
|
|
58
58
|
"sphinx.ext.napoleon",
|
|
59
59
|
"sphinxcontrib.bibtex",
|
|
60
|
-
"sphinx_autodoc_typehints",
|
|
61
|
-
"sphinx_tabs.tabs",
|
|
62
60
|
"sphinxcontrib.katex",
|
|
61
|
+
"sphinx_autodoc_typehints",
|
|
62
|
+
"sphinx_design",
|
|
63
63
|
"IPython.sphinxext.ipython_console_highlighting",
|
|
64
64
|
"sphinxext.opengraph",
|
|
65
|
+
"scverse_misc.sphinx_ext",
|
|
65
66
|
*[p.stem for p in (HERE / "extensions").glob("*.py")],
|
|
66
67
|
]
|
|
67
68
|
|
|
@@ -87,6 +88,7 @@ nb_output_stderr = "remove"
|
|
|
87
88
|
nb_execution_mode = "off"
|
|
88
89
|
nb_merge_streams = True
|
|
89
90
|
typehints_defaults = "braces"
|
|
91
|
+
always_use_bars_union = True # use `|` instead of `Union` in types even when building with Python ≤3.14
|
|
90
92
|
|
|
91
93
|
source_suffix = {
|
|
92
94
|
".rst": "restructuredtext",
|
|
@@ -95,10 +97,9 @@ source_suffix = {
|
|
|
95
97
|
}
|
|
96
98
|
|
|
97
99
|
intersphinx_mapping = {
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
"
|
|
101
|
-
"scanpy": ("https://scanpy.readthedocs.io/en/stable/", None),
|
|
100
|
+
"python": ("https://docs.python.org/3", None),
|
|
101
|
+
"anndata": ("https://anndata.scverse.org/en/stable/", None),
|
|
102
|
+
"scanpy": ("https://scanpy.scverse.org/en/stable/", None),
|
|
102
103
|
"numpy": ("https://numpy.org/doc/stable/", None),
|
|
103
104
|
"matplotlib": ("https://matplotlib.org/stable/", None),
|
|
104
105
|
"pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None),
|
|
@@ -472,3 +472,17 @@
|
|
|
472
472
|
year = {2021},
|
|
473
473
|
month = feb
|
|
474
474
|
}
|
|
475
|
+
|
|
476
|
+
@article{phipson2010,
|
|
477
|
+
title = {Permutation P-values Should Never Be Zero: Calculating Exact P-values When Permutations Are Randomly Drawn},
|
|
478
|
+
volume = {9},
|
|
479
|
+
ISSN = {1544-6115},
|
|
480
|
+
url = {http://dx.doi.org/10.2202/1544-6115.1585},
|
|
481
|
+
DOI = {10.2202/1544-6115.1585},
|
|
482
|
+
number = {1},
|
|
483
|
+
journal = {Statistical Applications in Genetics and Molecular Biology},
|
|
484
|
+
publisher = {Walter de Gruyter GmbH},
|
|
485
|
+
author = {Phipson, Belinda and Smyth, Gordon K.},
|
|
486
|
+
year = {2010},
|
|
487
|
+
month = jan
|
|
488
|
+
}
|