Skip to content

Add TorchDR to ecosystem packages - #416

Open
huguesva wants to merge 1 commit into
scverse:mainfrom
huguesva:add-torchdr
Open

huguesva wants to merge 1 commit into
scverse:mainfrom
huguesva:add-torchdr

Conversation

@huguesva

@huguesva huguesva commented Sep 7, 2026

Copy link
Copy Markdown

Name of the tool: TorchDR

Short description: TorchDR is a high-performance dimensionality reduction library built on PyTorch, with GPU and multi-GPU implementations exposed through a scikit-learn-compatible API.

How does the package use scverse data structures: TorchDR follows an array-based API and works with matrices and embeddings stored in AnnData, including adata.X and adata.obsm. Its CellxGene Census example receives an AnnData object, reads standard obs and obsm fields, and applies LargeVis to a stored scGPT embedding; generated embeddings can be stored back in obsm.

Mandatory

  • The code is publicly available under an OSI-approved license
  • The package provides versioned releases
  • The package can be installed from a standard registry (PyPI: torchdr)
  • 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
  • The package uses scverse datastructures where appropriate (AnnData)
  • 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

Recommended

  • Please announce this package on scverse communication channels (zulip, discourse, twitter)
  • The package provides tutorials that help users get started quickly
  • The package uses the scverse cookiecutter template
  • I would like to be invited to the scverse GitHub organization

Validation

  • Registry schema, package metadata, project URLs, documentation inventory, and PyPI release validated with the repository validator
  • All applicable pre-commit hooks pass

@Zethson

Zethson commented Sep 9, 2026

Copy link
Copy Markdown
Member

Hi,

based on your description, you are not using AnnData directly, right? It's of course always possible to extract the matrix and apply any tool to it but that's not the idea of scverse.

@huguesva

Copy link
Copy Markdown
Author

Hi @Zethson , you're right we are not using AnnData directly. Discussing with @mikelkou a while back we figured adding torchdr here might be relevant as it's SOTA in terms of UMAP speed and provides useful utilities such as incremental PCA and others, but I understand your point. Happy to discuss if you have ideas of features we could add to torchdr to make it easier to work with AnnData, thanks !!

@Zethson

Zethson commented Sep 21, 2026

Copy link
Copy Markdown
Member

Ahh, I see. Yeah, I'm afraid we require native support for our scverse datastructures. In other words, if I were to pass say an AnnData object to your functions, I'd expect it to grab the right array & store the results back in the AnnData object.

I understand that this feel cumbersome for a library that just works with arrays as input but that's kind of how our ecosystem works (which has many domain specific benefits)

This branch has not been deployed

No deployments
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