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:
https://satijalab.org/seurat/Seurat_AlignmentTutorial.html
Any suggestions would be greatly appreciated.