Cellranger aggr and Seurat merge difference? 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.

https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/aggregate

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

http://satijalab.org/seurat/merge_vignette.html

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?
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.