Hi everyone,
I have an RNA-seq experiment that I am analysing. I received cell culture replicates in batches. I used the limma::removeBatchEffect
to remove any variance due to batch and re-did my PCA plots post batch correction, and it worked beautifully.
ddsObj$batch <- factor(rep(c("1", "2", "3", "4", "5")))
vsd <- varianceStabilizingTransformation(ddsObj)
plotPCA(vsd, "batch")
################################################
assay(vsd) <- limma::removeBatchEffect(assay(vsd), vsd$batch)
plotPCA(vsd, intgroup = c("Condition"))
However, I used DESeq2 to do the differential expression and I've incorporated batch into my DESeq2 design:
design <- as.formula(~ batch + Condition)
My question is, even though I used Limma's remove batch effect to generate my lovely PCA plots (post DESeq2 analysis), would I be able to trust that DESeq2 removed the same variance generated by the batch effect that limma was so convincingly able to remove. Is my analysis downstream free from all the batch effects?
Have I done this the wrong way around? How can I confirm that the batch effect has been removed from my DESeq2 analysis or would I have to do my analysis in limma?