I have two scRNAseq datasets, and I select a cluster from one of them, and another cluster from the other. I want to find differentially expressed genes between the two clusters. What would be the right way of doing that? Right now I am using DESeq2 in the following way. I select only the selected clusters' cells, merge them together forming a matrix and then feed them into DESeq2:

mtx <- merge(data_1,data_2,by="row.names",all=TRUE)
mtx[is.na(mtx)] <- 0
mtx_conv <- matrix(as.numeric(unlist(mtx[,2:ncol(mtx)])),nrow=nrow(mtx))
mtx_int <- round(mtx_conv, 0)
rownames(mtx_int) <- as.character(mtx$Row.names)

cluster <- as.factor(c(rep(0, dim(data_1)[2]), rep(1, dim(data_2)[2])))
colData <- data.frame(
  Cluster = cluster

dds <- DESeqDataSetFromMatrix(countData = mtx_int,
                          colData = colData,
                          design = ~ Cluster)
dds <- DESeq(dds)

I am not sure though that it is the correct way to go because I am not using the full original datasets. The reason is that I want the computations to run faster. Another way of doing that is probably combining the whole two datasets, defining 3 clusters: two groups I am interested in, and all other cells, and then running the analysis. Would it differ significantly? Am I on the right track at all?

I have another idea: to use Seurat package. There, I would run CCA algorithm to align two full datasets, and then run FindMarkers function between the two clusters. I feel like it may be wrong, because the two datasets may need to be re-normalized together but Seurat does not seem to be doing that:


Any suggestions would be greatly appreciated.


I've been working with the multi-CCA alignment workflow in the Seurat package and am very impressed with functionality. As usual, the CCA tutorial is excellent for an alignment workflow and will get you off the ground quickly. You can even use the DESeq2 algorithm for determining differential expression from within Seurat.

When you use the function RunCCA() you can pass rescale.groups=TRUE if you wish to re-scale.

Abstracted workflow

  1. Data preprocessing and gene selection
  2. Define a shared correlation space with canonical correlation analysis
  3. Remove dataset specific cells
  4. Align correlated subspaces using dynamic time warping
  5. Integrated analysis across datasets (clustering, trajectory building, etc ...)

Butler, A., and Satija, R. (2017). Integrated analysis of single cell transcriptomic data across conditions, technologies, and species.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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