scverse / scverse/scanpy

add multibatchPCA approach?

Open
#1,289 9 comments 0 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

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

It may be useful to adopt a PCA option similar to multiBatchPCA in the R batchelor package.
This is a useful approach where there are imbalances in batch size and PCA is conducted across a merged experiment.
It is pretty slow in R.

From their documentation:

"Our approach is to effectively weight the cells in each batch to mimic the situation where all batches
have the same number of cells. This ensures that the low-dimensional space can distinguish subpopulations in smaller batches. Otherwise, batches with a large number of cells would dominate
the PCA, i.e., the definition of the mean vector and covariance matrix. This may reduce resolution
of unique subpopulations in smaller batches that differ in a different dimension to the subspace of
the larger batches."

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 sc.tools analysis tools and the R batchelor multiBatchPCA documentation. Define the intended behavior for PCA on merged experiments with imbalanced batch sizes, including how cells are weighted across batches. Done means Scanpy offers a documented PCA option that preserves resolution for subpopulations in smaller batches.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, r
Domain
bioinformatics, 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.