Skip to content

Adds scATrans, scFair, and AmbiDose to the ecosystem - #382

Open
leelieber2025 wants to merge 15 commits into
scverse:mainfrom
leelieber2025:main
Open

leelieber2025 wants to merge 15 commits into
scverse:mainfrom
leelieber2025:main

Conversation

@leelieber2025

@leelieber2025 leelieber2025 commented Jul 15, 2026

Copy link
Copy Markdown

Submission 1: scATrans

Name of the tool: scATrans

Short description:
scATrans is a Python package for mechanism-aware analysis of single-cell differential expression. Given spliced and unspliced layers (or mature and nascent layers), it takes a DE-selected gene list and partitions genes into transcription-driven versus stabilization-driven classes using a reference-corrected nascent residual.
It also supports conventional differential expression workflows (no velocity data required) via scanpy, PyDESeq2 pseudobulk, linear mixed models, or optional Memento. Functional enrichment (ORA, GSEA, GO, KEGG) uses bundled gene sets with consistent universe handling, and a set of visualization functions is provided.

How does the package use scverse data structures (please describe in a few sentences):
scATrans is built on AnnData as its core data structure, using the .layers slot to hold spliced/unspliced (nascent/mature) RNA counts for velocity-based scoring, and interoperates directly with scanpy for standard single-cell preprocessing and DE workflows (with optional scVelo, PyDESeq2, and Memento layered on top).

  • The code is publicly available under an OSI-approved 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
  • Continuous integration (CI) automatically executes these tests on each push or pull request
  • 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
  • Please announce this package on scverse communication channels (zulip, discourse, twitter)
  • The package provides tutorials (or "vignettes") that help getting users started quickly
  • Please tag the authors in these announcements. The following Twitter/X handles should be included: @lieber38239549
  • The package uses the scverse cookiecutter template.

Submission 2: scFair

Name of the tool: scFair

Short description:
scFair is a seamless Python alternative to scanpy.pp.highly_variable_genes designed to improve single-cell HVG selection. It addresses common silent failures in traditional workflows by providing an auto-sized n_top_genes selection (eliminating the need to guess the optimal gene count) and employing a smart top-k extension to prevent the loss of rare cell-type markers.

How does the package use scverse data structures (please describe in a few sentences):
scFair directly operates on AnnData objects, serving as a seamless alternative to standard scanpy preprocessing functions. It reads expression matrices from .X or .layers, computes fairness-aware gene variability metrics, and writes the feature selection results (such as highly variable boolean flags, dispersions, and rankings) directly into the .var and .uns slots, ensuring 100% compatibility with downstream scverse tools.

  • The code is publicly available under an OSI-approved 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
  • Continuous integration (CI) automatically executes these tests on each push or pull request
  • 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
  • Please announce this package on scverse communication channels (zulip, discourse, twitter)
  • The package provides tutorials (or "vignettes") that help getting users started quickly
  • Please tag the authors in these announcements. The following Twitter/X handles should be included: @lieber38239549
  • The package uses the scverse cookiecutter template.

Submission 3: AmbiDose

Name of the tool: AmbiDose

Short description:
AmbiDose removes ambient RNA from droplet scRNA-seq. Empty droplets pin a sample-specific soup profile; each cell gets an operational dose along that profile; a rank-1 term is subtracted only from observed nonzero counts, with gene-name-free protection of dominant native genes. Corrected counts never exceed raw counts.

How does the package use scverse data structures (please describe in a few sentences):
The public API is denoise() on AnnData. Raw UMI counts are read from .X (and optionally a matching raw 10x matrix); droplet class, coarse type, and per-cell dose are written to .obs; the ambient profile is stored on .var / .uns; corrected counts are written to .layers['ambidose_denoised']. Optional typing uses Scanpy Leiden on the same object, so output stays compatible with Scanpy and other scverse tools.

  • The code is publicly available under an OSI-approved 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
  • Continuous integration (CI) automatically executes these tests on each push or pull request
  • 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
  • I agree to abide by the scverse code of conduct on all scverse communication channels
  • Please announce this package on scverse communication channels (zulip, discourse, twitter)
  • The package provides tutorials (or "vignettes") that help getting users started quickly
  • Please tag the authors in these announcements. The following Twitter/X handles should be included: @lieber38239549
  • The package uses the scverse cookiecutter template.

@leelieber2025 leelieber2025 changed the title Adds scATrans Adds scATrans to the ecosystem Jul 15, 2026
@leelieber2025

Copy link
Copy Markdown
Author

Hi @scverse — just following up on this PR when you have a moment. Please let me know if you’d like any changes or updates. Thanks so much for your work on this project!

@leelieber2025 leelieber2025 changed the title Adds scATrans to the ecosystem Adds scATrans and scFair to the ecosystem Aug 11, 2026
@leelieber2025

Copy link
Copy Markdown
Author

@Zethson Thanks — updated both meta.yaml files for the new schema: controlled-vocabulary tags, plus primary_category and language. CI is green.

@Zethson

Zethson commented Sep 6, 2026

Copy link
Copy Markdown
Member

My apologies. We're very behind on our reviews but have not forgotten! @muskanhashim will have a look soon

@leelieber2025 leelieber2025 changed the title Adds scATrans and scFair to the ecosystem Adds scATrans, scFair, and AmbiDose to the ecosystem Sep 6, 2026
@leelieber2025

Copy link
Copy Markdown
Author

Hi @Zethson and @muskanhashim, no worries at all! Just a quick update: I've added a new one, so the ecosystem now includes 3 additions: scATrans, scFair, and AmbiDose. Thanks for your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants