diff --git a/.github/workflows/make-json.yml b/.github/workflows/make-json.yml index 10bc0f95..3499b0ee 100644 --- a/.github/workflows/make-json.yml +++ b/.github/workflows/make-json.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: setup-yq run: | sudo curl -L "https://github.com/mikefarah/yq/releases/download/v4.28.2/yq_linux_amd64" > /usr/local/bin/yq @@ -27,7 +27,7 @@ jobs: cat packages/**/meta.yaml yq -o=json packages/**/meta.yaml | jq -s . > build/ecosystem.json - name: Upload GitHub Pages artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-pages-artifact@v3 with: path: "build" @@ -48,7 +48,7 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v4 - name: Trigger website build run: | curl -XPOST \ diff --git a/.github/workflows/register-template-repos.yml b/.github/workflows/register-template-repos.yml index 1426af7d..40cf2f86 100644 --- a/.github/workflows/register-template-repos.yml +++ b/.github/workflows/register-template-repos.yml @@ -10,11 +10,11 @@ jobs: register-template-repos: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: token: ${{ secrets.BOT_GH_TOKEN }} - name: Set up Python 3.11 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11" cache: "pip" diff --git a/.gitignore b/.gitignore index cb38f9b0..636e042e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ .DS_STORE __pycache__/ -.ruff_cache/ +.*cache/ /.vscode/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 3810e820..3f9e75a8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,13 +2,13 @@ fail_fast: false default_language_version: python: python3 default_stages: - - commit - - push + - pre-commit + - pre-push minimum_pre_commit_version: 2.16.0 repos: # all files - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 + rev: v6.0.0 hooks: - id: detect-private-key - id: check-ast @@ -23,13 +23,13 @@ repos: - id: prettier # package metadata - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.28.2 + rev: 0.33.3 hooks: - id: check-jsonschema files: "schema.json" args: ["--check-metaschema"] - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.28.2 + rev: 0.33.3 hooks: - id: check-jsonschema files: "packages/.*/meta.yaml" @@ -45,7 +45,7 @@ repos: exclude: "^packages/.*/meta.yaml$" # template repo registry - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.3 + rev: v0.13.0 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] diff --git a/README.md b/README.md index c63f1c2e..541f54fb 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # Scverse Ecosystem Packages -This repository contains the list of scverse ecosystem packages that are displayed on scverse.org. +This repository contains the list of scverse ecosystem packages that are displayed on scverse.org and are part of +the scverse® project. The goal is to increase visibility of ecosystem packages and make it easier for users to find appropriate software. Registered ecosystem packages can also get their own tag to use on the [scverse forum](https://discourse.scverse.org) for user discussion. -Authors of these packages can be added the [scverse github organization](https://github.com/scverse). +Authors of these packages can be added to the [scverse github organization](https://github.com/scverse). In the future, we may also test releases of core packages against the test suites of ecosystem packages. If a package is part of this list, it means it fulfills certain minimum requirements as outlined below. @@ -15,9 +16,9 @@ It **does not** imply endorsement or that an in-depth review has been performed. Submit a pull-request adding a `meta.yaml` file for your package to the `packages` directory. -- Please refer to other entries for examples -- The full definition of available fields is available in [`schema.json`](schema.json) -- Please copy the checklist from below into the pull request description and answer all questions. +- Please refer to other entries for examples +- The full definition of available fields is available in [`schema.json`](schema.json) +- Please copy the checklist from below into the pull request description and answer all questions. ## What are the requirements for an ecosystem package? @@ -37,21 +38,30 @@ Short description: XXX How does the package use scverse data structures (please describe in a few sentences): XXX -- [ ] The code is publicly available under an [OSI-approved](https://opensource.org/licenses/alphabetical) license -- [ ] The package provides versioned releases -- [ ] The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda) -- [ ] The package uses automated software tests and runs them via continuous integration (CI) -- [ ] The package provides API documentation via a website or README -- [ ] The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions) -- [ ] I am an author or maintainer of the tool and agree on listing the package on the scverse website +- [ ] The code is publicly available under an [OSI-approved](https://opensource.org/licenses/alphabetical) license +- [ ] The package provides versioned releases +- [ ] The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda) +- [ ] Automated tests cover essential functions of the package and a reasonable range of inputs and conditions [^1] +- [ ] Continuous integration (CI) automatically executes these tests on each push or pull request [^2] +- [ ] The package provides API documentation via a website or README[^3] +- [ ] The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions) +- [ ] I am an author or maintainer of the tool and agree on listing the package on the scverse website ### Recommended -- [ ] Please announce this package on scverse communication channels (zulip, discourse, twitter) -- [ ] Please tag the author(s) these announcements. Handles (e.g. `@scverse_team`) to include are: - - Twitter: - - Zulip: - - Discourse: - - Mastodon: -- [ ] The package provides tutorials (or "vignettes") that help getting users started quickly -- [ ] The package uses the [scverse cookiecutter template](https://github.com/scverse/cookiecutter-scverse). +- [ ] Please announce this package on scverse communication channels (zulip, discourse, twitter) +- [ ] Please tag the author(s) these announcements. Handles (e.g. `@scverse_team`) to include are: + - Zulip: + - Discourse: + - Mastodon: + - Bluesky: + - Twitter: + +- [ ] The package provides tutorials (or "vignettes") that help getting users started quickly +- [ ] The package uses the [scverse cookiecutter template](https://github.com/scverse/cookiecutter-scverse). + +[^1]: We recommend thtat tests cover at least all user facing (public) functions. Minimal tests ensure that the function does not fail on an example data set. Ideally, tests also ensure the correctness of the results, e.g. by comparing against a snapshot. + +[^2]: Continuous integration means that software tests are automatically executed on every push to the git repository. This guarantees they are always run and that they are run in a clean environment. Scverse ecosystem packages most commonly use [GitHub Actions](https://github.com/features/actions) for CI. For an example, check out our [cookiecutter template](https://github.com/scverse/cookiecutter-scverse). + +[^3]: By API documentation, we mean an overview of _all_ public functions provided a package, with documentation of their parameters. For an example, see the [Scanpy documentation](https://scanpy.readthedocs.io/en/stable/api/preprocessing.html). In simple cases, this can be done manually in a README file. For anything more complex, we recommend the [Sphinx Autodoc plugin](https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html) diff --git a/packages/CellAnnotator/meta.yaml b/packages/CellAnnotator/meta.yaml new file mode 100644 index 00000000..366e5cb4 --- /dev/null +++ b/packages/CellAnnotator/meta.yaml @@ -0,0 +1,18 @@ +name: CellAnnotator +description: | + CellAnnotator is a leightweight tool to query large language models for cell type labels in scRNA-seq data. It can incorporate prior knowledge, and it creates consistent labels across samples in your study. +project_home: https://github.com/quadbio/cell-annotator +documentation_home: https://cell-annotator.readthedocs.io/en/latest/ +install: + pypi: cell-annotator +tags: + - cell type labels + - openai + - large language models + - automatic annotation + - cell state +license: MIT +version: v0.1.3 +authors: + - Marius1311 +test_command: pip install -e '.[test]' && pytest diff --git a/packages/CellCharter/meta.yaml b/packages/CellCharter/meta.yaml new file mode 100644 index 00000000..345ba462 --- /dev/null +++ b/packages/CellCharter/meta.yaml @@ -0,0 +1,21 @@ +name: CellCharter +description: | + CellCharter is a framework to identify, characterize and compare spatial domains from spatial omics and multi-omics data. +project_home: https://github.com/CSOgroup/cellcharter +documentation_home: https://cellcharter.readthedocs.io/ +tutorials_home: https://cellcharter.readthedocs.io/ +publications: + - 10.1038/s41588-023-01588-4 +install: + pypi: cellcharter +tags: + - spatial omics + - spatial clustering + - spatial domains + - gaussian mixture model +license: BSD-3-Clause +version: v0.3.1 +authors: + - marcovarrone +test_command: | + pip install ".[test]" && pytest diff --git a/packages/CellMapper/meta.yaml b/packages/CellMapper/meta.yaml new file mode 100644 index 00000000..ee06b7b3 --- /dev/null +++ b/packages/CellMapper/meta.yaml @@ -0,0 +1,17 @@ +name: CellMapper +description: | + CellMapper is a leightweight tool to transfer labels, expression values and embeddings from reference to query datasets using k-NN mapping. It's fast and versatile, applicable to mapping scenarios in space, across modalities, or from an atlas to a new query dataset. +project_home: https://github.com/quadbio/cellmapper +documentation_home: https://cellmapper.readthedocs.io/en/latest/ +install: + pypi: cellmapper +tags: + - k-NN based mapping + - rapids + - faiss + - query-to-reference +license: MIT +version: v0.1.2 +authors: + - Marius1311 +test_command: pip install -e '.[test]' && pytest diff --git a/packages/GPTBioInsightor/meta.yaml b/packages/GPTBioInsightor/meta.yaml new file mode 100644 index 00000000..f65abb9b --- /dev/null +++ b/packages/GPTBioInsightor/meta.yaml @@ -0,0 +1,18 @@ +name: GPTBioInsightor +description: | + GPTBioInsightor is a tool designed for single-cell data analysis, particularly beneficial for newcomers to a biological field or those in interdisciplinary areas who may lack sufficient biological background knowledge. + GPTBioInsightor utilizes the powerful capabilities of large language models to help people quickly gain knowledge and insight, enhancing their work efficiency. +project_home: https://github.com/huang-sh/GPTBioInsightor +documentation_home: https://gptbioinsightor.readthedocs.io/ +install: + pypi: gptbioinsightor +tags: + - single-cell + - bioinformatics + - LLM + - AI +license: BSD-3-Clause +version: v0.3.0 +authors: + - huangsh +test_command: pip install "." && pytest diff --git a/packages/GRnnData/meta.yaml b/packages/GRnnData/meta.yaml new file mode 100644 index 00000000..d3983e8a --- /dev/null +++ b/packages/GRnnData/meta.yaml @@ -0,0 +1,21 @@ +name: GRnnData +description: | + An onverload of anndata to more easily work with gene networks. + Allows easy conversion between anndata and grnndata and provide loads of usefull utilities functions. +project_home: https://github.com/cantinilab/GRnnData +documentation_home: https://cantinilab.github.io/GRnnData/ +publications: + - 10.1101/2024.07.29.605556 +install: + pypi: grnndata +tags: + - single cell + - RNAseq + - gene networks + - format + - utilities +license: MIT +version: v1.1.4 +authors: + - jkobject (jeremie kalfon) +test_command: pip install . && make test diff --git a/packages/LazySlide/meta.yaml b/packages/LazySlide/meta.yaml new file mode 100644 index 00000000..ae8c9d5d --- /dev/null +++ b/packages/LazySlide/meta.yaml @@ -0,0 +1,18 @@ +name: LazySlide +description: | + LazySlide is a Python library for processing whole slide images (WSI) analysis. It provides a simple interface to perform robust preprocessing and advanced analysis for WSI. +project_home: https://github.com/rendeirolab/lazyslide +documentation_home: https://lazyslide.readthedocs.io/en/latest/ +install: + pypi: lazyslide +tags: + - Pathology + - Whole Slide Imaging + - PyTorch +license: MIT +version: v0.3.0 +authors: + - Mr-Milk + - eabila + - afrendeiro +test_command: uv run task test diff --git a/packages/PEAKQC/meta.yaml b/packages/PEAKQC/meta.yaml new file mode 100644 index 00000000..7ba4957a --- /dev/null +++ b/packages/PEAKQC/meta.yaml @@ -0,0 +1,17 @@ +name: PEAKQC +description: periodicity evaluation in scATAC-seq data for quality assessment +project_home: https://github.com/loosolab/PEAKQC +documentation_home: https://loosolab.pages.gwdg.de/software/peakqc/ +publications: + - 10.1101/2025.02.20.639146 +install: + pypi: peakqc +tags: + - single cell + - ATAC-seq + - quality control +license: MIT +version: 0.1.3 +authors: + - loosolab +test_command: pip install . && pytest diff --git a/packages/PILOT/meta.yaml b/packages/PILOT/meta.yaml new file mode 100644 index 00000000..0fd32877 --- /dev/null +++ b/packages/PILOT/meta.yaml @@ -0,0 +1,50 @@ +name: PILOT +description: | + PILOT is a Python library for Detection of PatIent-Level distances from single cell genomics and pathomics data with Optimal Transport. +project_home: https://github.com/CostaLab/PILOT +documentation_home: https://pilot.readthedocs.io/en/latest/api.html +tutorials_home: https://pilot.readthedocs.io/en/latest/ +publications: + - 10.1038/s44320-023-00003-8 +install: + conda_instructions: | + # Create a new conda environment with the required Python version and R base + conda create --name PILOT python=3.11.5 r-base + # Activate the new environment + conda activate PILOT + # Install the PILOT package from PyPI + pip install pilotpy + pypi: pilotpy +tags: + - multi-omics + - single-cell + - trajectory + - pathomics-data + - ot + - patient-level +license: MIT +version: v2.0.6 +authors: + - Mehdi Joodaki + - Mina Shaigan + - Victor Parra + - Roman D. Bülow + - Christoph Kuppe + - David L. Hölscher + - Mingbo Cheng + - James S. Nagai + - Michaël Goedertier + - Nassim Bouteldja + - Vladimir Tesar + - Jonathan Barratt + - Ian S.D. Roberts + - Rosanna Coppo + - Rafael Kramann + - Peter Boor + - Ivan G. Costa +test_command: | + conda create --name PILOT python=3.11.5 r-base + conda activate PILOT + pip install pilotpy + conda install pytest + cd test && pytest test_pilot.py diff --git a/packages/ParTIpy/meta.yaml b/packages/ParTIpy/meta.yaml new file mode 100644 index 00000000..75438ffa --- /dev/null +++ b/packages/ParTIpy/meta.yaml @@ -0,0 +1,18 @@ +name: ParTIpy +description: | + Implements Pareto task inference and archetypal analysis for analyzing functional trade-offs in single-cell and spatial omics data. +project_home: https://github.com/saezlab/ParTIpy +documentation_home: https://partipy.readthedocs.io/en/latest/ +tutorials_home: https://partipy.readthedocs.io/en/latest/ +install: + pypi: partipy +license: MIT +tags: + - "single cell" + - "archetypal analysis" + - "division of labor" + - "representation learning" +version: v0.0.04 +authors: + - psl-schaefer + - leotenshii diff --git a/packages/Rectangle/meta.yaml b/packages/Rectangle/meta.yaml new file mode 100644 index 00000000..8890fa25 --- /dev/null +++ b/packages/Rectangle/meta.yaml @@ -0,0 +1,18 @@ +name: Rectangle +description: | + Rectangle is a python package for computational deconvolution. + Rectangle presents a novel approach to second-generation deconvolution, characterized by hierarchical processing, an estimation of unknown cellular content and a significant reduction in data volume during signature matrix computation. +project_home: https://github.com/ComputationalBiomedicineGroup/Rectangle +documentation_home: https://rectanglepy.readthedocs.io +tutorials_home: https://rectanglepy.readthedocs.io/notebooks/example.html +install: + pypi: rectanglepy +license: MIT +tags: + - rna-seq + - deconvolution +version: v0.1.6 +authors: + - bernheder +test_command: | + pip install ."[dev,test]" && pytest diff --git a/packages/STMiner/meta.yaml b/packages/STMiner/meta.yaml new file mode 100644 index 00000000..336028af --- /dev/null +++ b/packages/STMiner/meta.yaml @@ -0,0 +1,17 @@ +name: STMiner +description: | + Gene-centric spatial transcriptomics for deciphering complex spatial omics data +project_home: https://github.com/xjtu-omics/STMiner +documentation_home: https://stminerdoc.readthedocs.io/en/latest +install: + pypi: stminer +tags: + - spatial variable genes + - spatial patterns + - optimal transport + - mechine learning +license: GPL-3.0-or-later +version: v1.1.0 +authors: + - Peisen Sun +test_command: pip install "." && pytest diff --git a/packages/SnapATAC2 /meta.yaml b/packages/SnapATAC2 /meta.yaml deleted file mode 100644 index 28828280..00000000 --- a/packages/SnapATAC2 /meta.yaml +++ /dev/null @@ -1,21 +0,0 @@ -name: SnapATAC2 -description: | - SnapATAC2 is the successor of the SnapATAC R package, featuring: - - Faster and less memory usage, scale to >1M cells. - - Improved dimension reduction and sampling algorithm. -project_home: https://github.com/kaizhang/SnapATAC2 -documentation_home: https://kzhang.org/SnapATAC2/ -tutorials_home: https://kzhang.org/SnapATAC2/ -publications: - - 10.1038/s41467-021-21583-9 - - 10.1016/j.cell.2021.10.024 -install: - pypi: snapatac2 -tags: - - SnapATAC -license: MIT -version: v2.1.2 -authors: - - kaizhang - - yingyuan830 -test_command: null diff --git a/packages/annsel/meta.yaml b/packages/annsel/meta.yaml new file mode 100644 index 00000000..e3eb527d --- /dev/null +++ b/packages/annsel/meta.yaml @@ -0,0 +1,20 @@ +name: annsel +description: | + Annsel is a user-friendly library that brings familiar dataframe-style operations to AnnData objects such as + selection, filtering and group by's. +project_home: https://github.com/srivarra/annsel +documentation_home: https://annsel.readthedocs.io/en/latest/ +tutorials_home: https://annsel.readthedocs.io/en/latest/notebooks/all_of_annsel.html +install: + pypi: annsel +license: MIT +version: v0.0.8 +authors: + - srivarra +tags: + - narwhals + - dataframe + - accessor + - utilities +test_command: | + pip install ".[test]" && pytest diff --git a/packages/benGRN/meta.yaml b/packages/benGRN/meta.yaml new file mode 100644 index 00000000..43d716b3 --- /dev/null +++ b/packages/benGRN/meta.yaml @@ -0,0 +1,20 @@ +name: benGRN +description: | + Benchmarking tool for gene network inference from single cell RNAseq methods. + It uses the grnndata/anndata modality and only contains biological ground truth networks +project_home: https://github.com/jkobject/benGRN +documentation_home: https://www.jkobject.com/benGRN +publications: + - 10.1101/2024.07.29.605556 +install: + pypi: bengrn +tags: + - single cell + - RNAseq + - gene network inference + - benchmark +license: MIT +version: v1.2.1 +authors: + - jkobject (jeremie kalfon) +test_command: pip install . && make test diff --git a/packages/decoupler/meta.yaml b/packages/decoupler/meta.yaml deleted file mode 100644 index ff1afad1..00000000 --- a/packages/decoupler/meta.yaml +++ /dev/null @@ -1,20 +0,0 @@ -name: decoupler -description: | - Python package to infer biological activities from omics data using a collection of methods. -project_home: https://github.com/saezlab/decoupler-py -documentation_home: https://decoupler-py.readthedocs.io/en/latest/ -tutorials_home: https://decoupler-py.readthedocs.io/en/latest/ -install: - pypi: decoupler -tags: - - TF - - GSEA - - Pathway -license: GPL-3.0-only -version: v1.2.0 -authors: - - PauBadiaM -test_command: | - pip install wheel && \ - pip install pytest-cov flake8 sklearn skranger omnipath scanpy adjustText . && \ - pytest --cov --disable-warnings decoupler diff --git a/packages/delnx/meta.yaml b/packages/delnx/meta.yaml new file mode 100644 index 00000000..350d7801 --- /dev/null +++ b/packages/delnx/meta.yaml @@ -0,0 +1,20 @@ +name: delnx +description: | + delnx is a python package for differential expression analysis of (single-cell) genomics data. It enables scalable analyses of atlas-level datasets through GPU-accelerated regression models and statistical tests implemented in JAX and provides a consistent interface to perform DE analysis with other methods, such as statsmodels and PyDESeq2. +project_home: https://github.com/joschif/delnx +documentation_home: https://delnx.readthedocs.io/en/latest/ +tutorials_home: https://delnx.readthedocs.io/en/latest/ +install: + pypi: delnx +tags: + - differential expression + - regression models + - dispersion estimation + - JAX +license: MIT +version: v0.2.3 +authors: + - joschif + - adaml9 +test_command: | + pip install ".[test]" && pytest diff --git a/packages/eschr/meta.yaml b/packages/eschr/meta.yaml new file mode 100644 index 00000000..de9c36f4 --- /dev/null +++ b/packages/eschr/meta.yaml @@ -0,0 +1,20 @@ +name: eschr +description: | + ESCHR is an ensemble clustering method that provides hard clustering along with + uncertainty scores and soft clustering outputs for enhanced interpretability. +project_home: https://github.com/zunderlab/eschr +documentation_home: https://eschr.readthedocs.io/en/latest/ +tutorials_home: https://eschr.readthedocs.io/en/latest/notebooks/paul15_mouse_hematopoiesis.html +publications: + - 10.1186/s13059-024-03386-5 +install: + pypi: eschr +tags: + - clustering + - uncertainty + - ensemble +license: "MIT" +version: v1.0.1 +authors: + - smgoggin10 +test_command: pip install ".[test]" && pytest diff --git a/packages/flowsom/meta.yaml b/packages/flowsom/meta.yaml new file mode 100644 index 00000000..3ddec752 --- /dev/null +++ b/packages/flowsom/meta.yaml @@ -0,0 +1,27 @@ +name: flowsom +description: | + The complete FlowSOM package known from R, now available in Python! + Analyze high-dimensional cytometry data using FlowSOM, + a clustering and visualization algorithm based on a self-organizing map (SOM). + FlowSOM is used to distinguish cell populations from cytometry data in an unsupervised way and + can help to gain deeper insights in fields such as immunology and oncology. +project_home: https://github.com/saeyslab/FlowSOM_Python +documentation_home: https://flowsom.readthedocs.io/en/latest/ +tutorials_home: https://flowsom.readthedocs.io/en/latest/notebooks/example.html +publications: + - 10.1093/bioinformatics/btae179 + - 10.1002/cyto.a.22625 + - 10.1038/s41596-021-00550-0 +install: + conda: conda-forge::flowsom +tags: + - clustering + - flowcytometry +license: GPL-3.0-only +version: v0.0.1 +authors: + - artuurC + - berombau + - ysaeys + - SofieVG +test_command: pip install "." && pytest diff --git a/packages/novae/meta.yaml b/packages/novae/meta.yaml new file mode 100644 index 00000000..e32704b7 --- /dev/null +++ b/packages/novae/meta.yaml @@ -0,0 +1,20 @@ +name: novae +description: | + Graph-based foundation model for spatial transcriptomics data. + Zero-shot spatial domain inference, batch-effect correction, and many other features. +project_home: https://github.com/MICS-Lab/novae +documentation_home: https://mics-lab.github.io/novae/ +publications: + - 10.1101/2024.09.09.612009 +install: + pypi: novae +tags: + - spatial-omics + - spatial-transcriptomics + - spatialdata + - deep learning +license: BSD-3-Clause +version: v0.2.1 +authors: + - quentinblampey +test_command: pip install ".[dev]" && pytest diff --git a/packages/palantir/meta.yaml b/packages/palantir/meta.yaml new file mode 100644 index 00000000..454b9bda --- /dev/null +++ b/packages/palantir/meta.yaml @@ -0,0 +1,33 @@ +name: Palantir +description: | + Palantir is an algorithm to align cells along differentiation trajectories. + Palantir models differentiation as a stochastic process where stem cells + differentiate to terminally differentiated cells by a series of steps through + a low dimensional phenotypic manifold. Palantir effectively captures the + continuity in cell states and the stochasticity in cell fate determination. + Palantir has been designed to work with multidimensional single cell data from + diverse technologies such as Mass cytometry and single cell RNA-seq. +project_home: https://github.com/dpeerlab/Palantir +documentation_home: https://palantir.readthedocs.io +publications: + - 10.1038/s41587-019-0068-4 +install: + pypi: palantir +tags: + - markov-chain + - dimensionality-reduction + - scrna-seq + - trajectory-generation + - diffusion-maps + - differentiation + - manifold-learning + - single-cell-genomics + - cell-fate-transitions + - scrna-seq-analysis +license: GPL-2.0-or-later +version: v1.3.3 +authors: + - ManuSetty + - dpeerlab + - katosh +test_command: pip install -e '.' && pip install flake8 pytest coverage typing-extensions && pytest diff --git a/packages/popV/meta.yaml b/packages/popV/meta.yaml new file mode 100644 index 00000000..03bc000d --- /dev/null +++ b/packages/popV/meta.yaml @@ -0,0 +1,16 @@ +name: popV +description: | + p(opular)V(oting) is a consensus tool for transfering labels from an annotated reference dataset to an unannotated query dataset. Consensus calling allows interpretable scores that quantify certainty. +project_home: https://github.com/YosefLab/popV +documentation_home: https://popv.readthedocs.io/en/latest/ +install: + pypi: popv +tags: + - cell type labels + - batch integration + - automatic annotation +license: MIT +version: v0.5.2 +authors: + - canergen +test_command: pip install -e '.[test]' && pytest diff --git a/packages/pytximport/meta.yaml b/packages/pytximport/meta.yaml new file mode 100644 index 00000000..835808e4 --- /dev/null +++ b/packages/pytximport/meta.yaml @@ -0,0 +1,20 @@ +name: pytximport +description: | + A Python port of the `tximport` R package for importing transcript-level quantification data from various RNA-seq quantification tools such as `salmon` and `kallisto` and summarizing it to the gene level. +project_home: https://github.com/complextissue/pytximport +documentation_home: https://pytximport.readthedocs.io/en/latest/ +tutorials_home: https://pytximport.readthedocs.io/en/latest/ +install: + pypi: pytximport +tags: + - rna-seq + - bulk-rna-seq + - differential-expression +license: GPL-3.0-only +version: v0.2.0 +authors: + - maltekuehl +test_command: | + pip install flit poetry && \ + flit install --deps all && \ + coverage run -m pytest diff --git a/packages/rapids-singlecell/meta.yaml b/packages/rapids-singlecell/meta.yaml deleted file mode 100644 index 4c105c89..00000000 --- a/packages/rapids-singlecell/meta.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: rapids-singlecell -description: | - A GPU acclerated python package for singlecell data analysis -project_home: https://github.com/scverse/rapids_singlecell -documentation_home: https://rapids-singlecell.readthedocs.io/en/latest/ -tutorials_home: https://rapids-singlecell.readthedocs.io/en/latest/notebooks.html -install: - pypi: rapids-singlecell -tags: - - Singlecell Analysis - - GPU acceleration - - CUDA -license: MIT -version: v0.7.5 -authors: - - Severin Dicks -test_command: pytest diff --git a/packages/scCellFie/meta.yaml b/packages/scCellFie/meta.yaml new file mode 100644 index 00000000..60f57423 --- /dev/null +++ b/packages/scCellFie/meta.yaml @@ -0,0 +1,23 @@ +name: scCellFie +description: | + scCellFie infers metabolic activities from single-cell and spatial transcriptomics and offers a variety of downstream analyses. +project_home: https://github.com/earmingol/scCellFie +documentation_home: https://sccellfie.readthedocs.io +tutorials_home: https://sccellfie.readthedocs.io +install: + pypi: sccellfie +tags: + - single-cell + - spatial + - metabolism + - metabolic activities + - cell-cell communication +license: MIT +version: v0.4.5 +authors: + - earmingol +test_command: | + python -m pip install --upgrade pip + python -m pip install -r requirements.txt + python -m pip install -e . + pytest -vv --cov --cov-report xml diff --git a/packages/scDataLoader/meta.yaml b/packages/scDataLoader/meta.yaml new file mode 100644 index 00000000..115553f7 --- /dev/null +++ b/packages/scDataLoader/meta.yaml @@ -0,0 +1,24 @@ +name: scDataLoader +description: | + A dataloader for large single cell databases like cellxgene. + Does weighted random sampling, downloading and preprocessing. + works with anndata, zarr, and h5ad files. +project_home: https://github.com/jkobject/scDataLoader +documentation_home: https://www.jkobject.com/scDataLoader/ +publications: + - 10.1101/2024.07.29.605556 +install: + pypi: scdataloader +tags: + - dataloader + - single cell + - RNAseq + - pytorch + - lightning + - cellxgene + - preprocessing +license: MIT +version: v1.2.2 +authors: + - jkobject (jeremie kalfon) +test_command: pip install . && make test diff --git a/packages/scLiTr/meta.yaml b/packages/scLiTr/meta.yaml new file mode 100644 index 00000000..62679cc1 --- /dev/null +++ b/packages/scLiTr/meta.yaml @@ -0,0 +1,19 @@ +name: scLiTr +description: | + scLiTr (single-cell Lineage Tracing) is a python package for exploratory analysis of + barcoding-based scRNA-Seq lineage tracing experiments +project_home: https://github.com/kharchenkolab/scLiTr +documentation_home: https://sclitr.readthedocs.io/ +tutorials_home: https://sclitr.readthedocs.io/ +install: + pypi: sclitr +tags: + - label-transfer +license: MIT +publications: + - 10.1101/2024.11.15.623687 +version: v1.0.1 +authors: + - serjisa +test_command: | + pip install . && pytest diff --git a/packages/scPRINT/meta.yaml b/packages/scPRINT/meta.yaml new file mode 100644 index 00000000..5fbf626a --- /dev/null +++ b/packages/scPRINT/meta.yaml @@ -0,0 +1,26 @@ +name: scPRINT +description: | + A single cell foundation model for Gene network inference and more... +project_home: https://github.com/cantinilab/scPRINT +documentation_home: https://cantinilab.github.io/scPRINT/ +publications: + - 10.1101/2024.07.29.605556 +install: + pypi: scprint +tags: + - foundation model + - single cell + - RNAseq + - gene network inference + - denoising + - zero imputation + - label prediction + - zero shot + - embedding + - pytorch + - lightning +license: MIT +version: v1.6.2 +authors: + - jkobject (jeremie kalfon) +test_command: pip install . && make test diff --git a/packages/scmcp/meta.yaml b/packages/scmcp/meta.yaml new file mode 100644 index 00000000..fec5cc21 --- /dev/null +++ b/packages/scmcp/meta.yaml @@ -0,0 +1,16 @@ +name: scmcp +description: A MCP server hub for scRNA-Seq analysis software. +project_home: https://github.com/scmcphub +documentation_home: https://docs.scmcphub.org +install: + pypi: scmcp +tags: + - scRNA-seq + - bioinformatics + - LLM + - AI +license: BSD-3-Clause +version: v0.2.2 +authors: + - huangsh +test_command: uv run --no-sync pytest diff --git a/packages/scxmatch/meta.yaml b/packages/scxmatch/meta.yaml new file mode 100644 index 00000000..42569afd --- /dev/null +++ b/packages/scxmatch/meta.yaml @@ -0,0 +1,26 @@ +name: scxmatch +description: | + Single-cell Cross Match (scxmatch) is a is a Python package that implements Rosenbaum's cross-match test using distance-based matching to assess distribution shifts between two groups of high-dimensional data. + This is particularly useful in analyzing multivariate distributions in structured data, such as single-cell RNA-seq or ATAC-seq. +project_home: https://github.com/bionetslab/scxmatch +documentation_home: https://github.com/bionetslab/scxmatch +tutorials_home: https://github.com/bionetslab/scxmatch +publications: + - 10.1101/2025.06.25.661473 +install: + conda: bioconda::scxmatch +tags: + - scRNA-seq + - single-cell + - python + - statistical testing + - distance-based matching + - perturbation + - condition +license: MIT +version: v0.1.0 +authors: + - annmoel + - dbblumenthal +test_command: | + conda install scxmatch -c conda-forge -c bioconda && git clone https://github.com/bionetslab/scxmatch.git && cd scxmatch/tests/ && python test_mwe.py diff --git a/packages/sopa/meta.yaml b/packages/sopa/meta.yaml index a7037f8a..c686735e 100644 --- a/packages/sopa/meta.yaml +++ b/packages/sopa/meta.yaml @@ -6,7 +6,7 @@ description: | project_home: https://github.com/gustaveroussy/sopa documentation_home: https://gustaveroussy.github.io/sopa/ publications: - - 10.1101/2023.12.22.571863 + - 10.1038/s41467-024-48981-z install: pypi: sopa tags: diff --git a/packages/spatialproteomics/meta.yaml b/packages/spatialproteomics/meta.yaml new file mode 100644 index 00000000..ab21ec6d --- /dev/null +++ b/packages/spatialproteomics/meta.yaml @@ -0,0 +1,22 @@ +name: spatialproteomics +description: | + Spatialproteomics is an interoperable toolbox for analyzing highly multiplexed fluorescence image data. + This analysis involves a sequence of steps, including segmentation, image processing, + marker quantification, cell type classification, and neighborhood analysis. +project_home: https://github.com/sagar87/spatialproteomics +documentation_home: https://sagar87.github.io/spatialproteomics +tutorials_home: https://sagar87.github.io/spatialproteomics/notebooks/ExampleWorkflow.html +install: + pypi: spatialproteomics +tags: + - spatial-omics + - spatial-proteomics + - multiplex imaging + - spatialdata + - pipeline +license: MIT +version: v0.7.0 +authors: + - MeyerBender + - sagar87 +test_command: pip install ".[all,dev]" && pytest diff --git a/packages/spatiomic/meta.yaml b/packages/spatiomic/meta.yaml new file mode 100644 index 00000000..80239330 --- /dev/null +++ b/packages/spatiomic/meta.yaml @@ -0,0 +1,20 @@ +name: spatiomic +description: | + spatiomic is a computational library for the analysis of spatial proteomics, mainly via pixel-based clustering, differential cluster abundance analysis and spatial statistics. +project_home: https://github.com/complextissue/spatiomic +documentation_home: https://spatiomic.org +tutorials_home: https://spatiomic.org/latest/tutorials/full_example.html +install: + pypi: spatiomic +tags: + - spatial biology + - spatial proteomics + - spatial omics + - multiplexed protein imaging + - PathoPlex + - subcellular analysis +license: GPL-3.0-only +version: v0.5.0 +authors: + - maltekuehl +test_command: uv run pytest -m "not gpu" diff --git a/packages/vitessce/meta.yaml b/packages/vitessce/meta.yaml index 071d0259..875a9a81 100644 --- a/packages/vitessce/meta.yaml +++ b/packages/vitessce/meta.yaml @@ -1,19 +1,18 @@ name: vitessce description: | - Vitessce consists of reusable interactive views including a scatterplot, - spatial+imaging plot, genome browser tracks, statistical plots, and control - views, built on web technologies such as WebGL. + Vitessce is an integrative visualization framework for multimodal and 2D/3D spatially resolved single-cell data. It consists of reusable, interactive linked views including scatterplot embedding views, + 2D/3D spatial image views, genome browser tracks, statistical plots, and control views, built on web technologies such as WebGL and WebXR. project_home: https://github.com/vitessce/vitessce documentation_home: https://vitessce.github.io/vitessce-python/ tutorials_home: https://github.com/vitessce/vitessce/tree/main/examples publications: - - 10.31219/osf.io/y8thv + - 10.1038/s41592-024-02436-x install: pypi: vitessce tags: - imaging license: MIT -version: v1.1.20 +version: v3.5.7 authors: - keller-mark - mccalluc diff --git a/packages/wsidata/meta.yaml b/packages/wsidata/meta.yaml new file mode 100644 index 00000000..9f1acfa4 --- /dev/null +++ b/packages/wsidata/meta.yaml @@ -0,0 +1,17 @@ +name: wsidata +description: | + wsidata is a data-structure for efficient IO of Whole Slide Images based on spatialdata. +project_home: https://github.com/rendeirolab/wsidata +documentation_home: https://wsidata.readthedocs.io/en/latest/ +install: + pypi: wsidata +tags: + - Pathology + - Whole Slide Imaging +license: MIT +version: v0.3.0 +authors: + - Mr-Milk + - eabila + - afrendeiro +test_command: uv run task test diff --git a/scripts/src/ecosystem_scripts/template_repo_registry.py b/scripts/src/ecosystem_scripts/template_repo_registry.py index 1b7761fd..d329939f 100644 --- a/scripts/src/ecosystem_scripts/template_repo_registry.py +++ b/scripts/src/ecosystem_scripts/template_repo_registry.py @@ -18,6 +18,8 @@ from typing import NotRequired, TypedDict from github import Github +from rich.logging import RichHandler +from rich.traceback import install from yaml import safe_dump, safe_load log = getLogger(__name__) @@ -56,10 +58,7 @@ def merge_repos(known: Iterable[Repo], new: Iterable[str]) -> list[Repo]: return repos -def setup(): - from rich.logging import RichHandler - from rich.traceback import install - +def setup() -> None: basicConfig(level="INFO", handlers=[RichHandler()]) install(show_locals=True) diff --git a/template-repos.yml b/template-repos.yml index b104e278..9e0a0f47 100644 --- a/template-repos.yml +++ b/template-repos.yml @@ -1,12 +1,28 @@ +- url: https://github.com/Bendemeurichy/FlowSOM_parallel +- url: https://github.com/Bendemeurichy/flowSOM +- url: https://github.com/Boehringer-Ingelheim/dso +- url: https://github.com/Boehringer-Ingelheim/dso-mgr - url: https://github.com/BoevaLab/infercnvpy +- url: https://github.com/COMBINE-lab/QCatch - url: https://github.com/CSOgroup/cellcharter +- url: https://github.com/CSOgroup/torchgmm - url: https://github.com/ChanghaoGong/STutils - url: https://github.com/CompCy-lab/scHub +- url: https://github.com/Computational-Morphogenomics-Group/Ladder - url: https://github.com/ComputationalBiomedicineGroup/Rectangle +- url: https://github.com/David-M-P/insight +- url: https://github.com/Floto-Lab/BactGraph +- url: https://github.com/FroeseLab/bulkpy +- url: https://github.com/Gabriellvl/FlowSOM +- url: https://github.com/Lotfollahi-lab/mintflow +- url: https://github.com/MannLabs/dvp-io - url: https://github.com/NKI-CCB/sobolev_alignment - url: https://github.com/Teichlab/multi-view-atlas - url: https://github.com/YosefLab/PopV +- url: https://github.com/YosefLab/cytovi-reference-implementation - url: https://github.com/YosefLab/embedding-scvi +- url: https://github.com/YosefLab/popV +- url: https://github.com/YosefLab/pycea - url: https://github.com/YosefLab/scib-metrics - url: https://github.com/YosefLab/scvi-criticism skip: true @@ -19,42 +35,110 @@ - url: https://github.com/YosefLab/visionpy - url: https://github.com/Zethson/fknni - url: https://github.com/adamgayoso/figmasvg +- url: https://github.com/aertslab/CREsted - url: https://github.com/aertslab/EnhancerAI +- url: https://github.com/aertslab/TF-MInDi +- url: https://github.com/agerardy/myeditdistance - url: https://github.com/angelolab/Nimbus-Inference - url: https://github.com/angelolab/ark-spatial +- url: https://github.com/angelolab/mbt +- url: https://github.com/angelolab/pici-vitessce +- url: https://github.com/angelolab/tonic-vitessce +- url: https://github.com/bartuschimschek/mmil-refactored +- url: https://github.com/bioFAM/mofaflex +- url: https://github.com/bioFAM/prismo +- url: https://github.com/bioFAM/scDoRI - url: https://github.com/blengerich/auto_ehr - url: https://github.com/cameronraysmith/perturbvelo +- url: https://github.com/clinicalomx/napari-prism - url: https://github.com/cobioda/scispy - url: https://github.com/const-ae/pyLemur - url: https://github.com/d-j-k/donorpy +- url: https://github.com/data-intuitive/dummy-anndata +- url: https://github.com/decomverse/scmetric - url: https://github.com/dertrotl/geneGATer +- url: https://github.com/devsystemslab/HNOCA-tools +- url: https://github.com/edbiomedai/scmorph - url: https://github.com/ergonyc/lblator +- url: https://github.com/eroell/mypackage-cruft-oct +- url: https://github.com/greenelab/single_translator_VAE +- url: https://github.com/grst/kartapullautin2tiles +- url: https://github.com/grst/karttapullautin2tiles - url: https://github.com/grst/spatialdata-plot - url: https://github.com/icbi-lab/atlas_protocol - url: https://github.com/icbi-lab/infercnvpy +- url: https://github.com/icbi-lab/shears - url: https://github.com/ilia-kats/PolarbearPlus - url: https://github.com/immunitastx/monkeybread +- url: https://github.com/imsb-uke/nichepca - url: https://github.com/ivirshup/binsparse-python +- url: https://github.com/jkobject/hierarchical_classifier +- url: https://github.com/jkobject/simpler_flash - url: https://github.com/jlause/scverse-tutorials +- url: https://github.com/joechanlab/scDeBussy +- url: https://github.com/joschif/delnx +- url: https://github.com/jskerman/chronai +- url: https://github.com/karadavis-lab/anndata-utils +- url: https://github.com/karadavis-lab/nbl +- url: https://github.com/laminlabs/arrayloaders - url: https://github.com/lhqing/scmallet +- url: https://github.com/lucas-diedrich/dvp-io - url: https://github.com/lucas-diedrich/sccoral +- url: https://github.com/lueckenlab/patpy +- url: https://github.com/lzj1769/LR2net +- url: https://github.com/macwiatrak/BacBench +- url: https://github.com/macwiatrak/Bacformer - url: https://github.com/macwiatrak/scverse-hackathon-data-4-ai +- url: https://github.com/mengerj/adata_hf_datasets +- url: https://github.com/mengerj/mmcontext +- url: https://github.com/mostafavilabuw/drum +- url: https://github.com/mumichae/scAtlasTb-utils - url: https://github.com/nitzanlab/biolord +- url: https://github.com/peng-lab/hescape +- url: https://github.com/quadbio/atac_mapper +- url: https://github.com/quadbio/cell-annotator +- url: https://github.com/quadbio/cellmapper +- url: https://github.com/quadbio/scembed +- url: https://github.com/quadbio/slurm_sweep - url: https://github.com/saeyslab/FlowSOM_Python +- url: https://github.com/saezlab/decoupler-py +- url: https://github.com/scverse/anndata-plot - url: https://github.com/scverse/cookiecutter-scverse-instance skip: true reason: Instance repo gets updated by the bot via the template +- url: https://github.com/scverse/decoupler +- url: https://github.com/scverse/deres +- url: https://github.com/scverse/formulaic-contrasts - url: https://github.com/scverse/genomic-features - url: https://github.com/scverse/multi-condition-comparisions +- url: https://github.com/scverse/pytometry - url: https://github.com/scverse/scirpy - url: https://github.com/scverse/scverse-tutorials - url: https://github.com/scverse/simple-scvi +- url: https://github.com/scverse/spatial-sample-aggregation - url: https://github.com/scverse/spatialdata-plot - url: https://github.com/scverse/squidpy - url: https://github.com/smgoggin10/ESCHR +- url: https://github.com/srivarra/anatomize +- url: https://github.com/srivarra/annsel +- url: https://github.com/srivarra/mbt +- url: https://github.com/srivarra/spatial-collection +- url: https://github.com/srivarra/xrdantic +- url: https://github.com/sueoglu/myeditdistance +- url: https://github.com/tansey-lab/nf-rnaseq +- url: https://github.com/tddough98/airgradient +- url: https://github.com/theislab/CellFlow +- url: https://github.com/theislab/cell_flow_perturbation +- url: https://github.com/theislab/cellflow_reproducibility +- url: https://github.com/theislab/devVI - url: https://github.com/theislab/ehrdata - url: https://github.com/theislab/geome +- url: https://github.com/theislab/mapqc +- url: https://github.com/theislab/multigrate +- url: https://github.com/theislab/multimil +- url: https://github.com/theislab/spatialdata-db - url: https://github.com/theislab/transcription_factor_activity +- url: https://github.com/theislab/troutpy - url: https://github.com/timtreis/gefslim - url: https://github.com/vitkl/cell2module - url: https://github.com/zunderlab/eschr