scverse / scverse/scanpy

NMF

Open
#2,939 0 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2.6k
Forks
779
Avg merge
1d 4h
Merged PRs (30d)
27

Description

What kind of feature would you like to request?

New analysis tool: A simple analysis tool you have been using and are missing in sc.tools?

Please describe your wishes

I've thought for a while that we should have NMF in scanpy (https://github.com/scverse/scanpy/pull/941).

But it's always been pretty trivial to implement, so not that much work for someone to cover. But now that we're increasing the amount of out of core support in scanpy I think we can offer a lot more value here with out-of-core NMF support.

I would suggest we start with a simple sklearn.decompositions.NMF wrapper for in memory datasets.

For out of core implementations, it'll be a bit more work. Some thoughts:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing analysis tools exposed through sc.tools and the sklearn.decomposition.NMF API. Establish the scope of the initial in-memory wrapper before assessing MiniBatchNMF and distributed or GPU implementations for out-of-core support. Done means the agreed NMF capability is integrated into scanpy with behavior and scope documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, scikit-learn
Domain
distributed-systems, machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.