I have multiple libraries of 10x Chromium single-cell RNA-seq data, which I'd like to combine. One option is using cellranger aggr which by default does a depth normalization:

mapped: (default) Subsample reads from higher-depth libraries until they all have an equal number of confidently mapped reads per cell. raw: Subsample reads from higher-depth libraries until they all have an equal number of total (i.e. raw, mapping-independent) reads per cell. none: Do not normalize at all.


The new version of Seurat (2.0) provides another way via the MergeSeurat() (or AddSamples()) functions.


These have the arguments:

do.logNormalize whether to normalize the expression data per cell and transform to log space.
total.expr      scale factor in the log normalization 
do.scale        In object@scale.data, perform row-scaling (gene-based z-score) 
do.center       In object@scale.data, perform row-centering (gene-based centering)

I'm wondering how do these methods compare? What are the pros/cons etc? What do we need to consider when we combine samples?


1 Answer 1


Cell Ranger aggregate subsamples reads (unless you select none), so you will end up with less total reads in samples that have more initially. The output is still raw counts, but you will have more or less per cell.

Seurat just merges the raw counts matrices and normalizes those.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.