Skip to content

Conversation

annmoel
Copy link
Contributor

@annmoel annmoel commented Jun 30, 2025

Checklist for adding packages

Mandatory

Name of the tool: scXMatch

Short 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.

How does the package use scverse data structures (please describe in a few sentences): The test runs on an input matrix with group labels, which is required to be in anndata format. It then uses scanpy to calculcate a kNN graph. Alongside the calculcated statistics, the test modifies the anndata inplace to provide underlying information to the user.

  • The code is publicly available under an OSI-approved license (MIT)
  • The package provides versioned releases (yes)
  • The package can be installed from a standard registry (e.g. PyPI, conda-forge, bioconda) (bioconda)
  • Automated tests cover essential functions of the package and a reasonable range of inputs and conditions (the package provides only a single function (-> the test), all reasonable combinations of possible parameters are tested)
  • Continuous integration (CI) automatically executes these tests on each push or pull request (yes, see GitHub repo)
  • The package provides API documentation via a website or README (README, see GitHub repo)
  • The package uses scverse datastructures where appropriate (i.e. AnnData, MuData or SpatialData and their modality-specific extensions) (yes, see above)
  • I am an author or maintainer of the tool and agree on listing the package on the scverse website (yes, author)

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:

    • Zulip:
    • Discourse:
    • Mastodon:
    • Bluesky:
    • Twitter:
  • The package provides tutorials (or "vignettes") that help getting users started quickly (the test is so easy to use that we provide a in our opinion sufficient explanation via simply showing the command on how to run it on your data)

  • The package uses the scverse cookiecutter template.

@mikkelnrasmussen
Copy link
Collaborator

Hi @annmoel,

Thanks for submitting scXMatch — it looks like a neat and well-documented tool!

One suggestion regarding the tests: you’ve done a good job checking input validation and ensuring expected output columns are added. However, it would be great to also include tests that verify the correctness of the actual outputs, for example by checking that computed values match expected results on a known dataset.

Would this be possible to add?

Looking forward to your thoughts.

Best regards,
Mikkel

@annmoel
Copy link
Contributor Author

annmoel commented Aug 4, 2025

Hi @mikkelnrasmussen , thank you for the feedback! I've incorporated some tests that check actual p-values computed on both simulated as well as real data from scanpy. Please let me know if there is anything else I can change!

Copy link
Collaborator

@mikkelnrasmussen mikkelnrasmussen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @annmoel,

Great, thanks for adding the tests. Everything looks good to me now!

Best,
Mikkel

@mikkelnrasmussen mikkelnrasmussen merged commit b2363d2 into scverse:main Aug 7, 2025
3 checks passed
@annmoel annmoel deleted the scXMatch branch August 8, 2025 08:50
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.

2 participants