Method#

Batch-Constraint Manifold Partition (BCMP) derives proxy population labels directly from unintegrated single-cell data geometry. These labels can be used to compare batch-effect removal across candidate integration methods before cell annotations are available.

How BCMP works#

  1. Represent the unintegrated manifold Use the PCA representation constructed from raw counts.
  2. Partition at candidate representation scales For each candidate representation scale k, build a cell-cell graph and use community detection to define candidate domains.
  3. Evaluate multi-batch support At each candidate scale, determine whether every evaluated domain has sufficient support from multiple batches.
  4. Select the smallest passing k Return the candidate domains from the smallest scale that passes the multi-batch support criterion.

Choose an implementation#

BCMP is available in Python and R. Choose the package that fits the language and data structure already used in your analysis.

BCMPPy

Python package

Use an AnnData object, or supply an existing unintegrated cell-by-dimension embedding matrix.

Open the Python manual

BCMPR

R package

Use a Seurat object, a SingleCellExperiment object, or supply an existing unintegrated cell-by-dimension embedding matrix.

Open the R manual