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
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)), rep(1, dim(data_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.