Hi Gordon! Thanks for answering.
Originally I only performed PCA on the log2 CPM. I'm afraid I forgot to use the MDS plot to check the distribution of the samples based on their pairwise distances. Looking at the results it seems that there are some samples that group together, I would say probably due to some batch effect for which I don't know the source. I guess this could be the reason behind the weird p-value distribution, but I'm not sure.
MDS plot (top 1000 genes):
BR: bad responders, GR: good responders, SLE: treatment with SLE, BYP: treatment with BYP
BCV plot:
Quasi-dispersion plot:
The (simplified) pipeline I've followed has been:
mod_design <- model.matrix(~ 0 + metadata[,'Type'] + metadata[,'Surgery'] + metadata[,'Edad'])
edge_list <- DGEList(counts=raw_counts, group=metadata[,'Type'])
keep <- filterByExpr(edge_list)
edge_list_keep <- edge_list[keep,,keep.lib.sizes=FALSE]
edge_list_tmm <- normLibSizes(edge_list_keep, method = "TMM")
edge_ed <- estimateGLMCommonDisp(edge_ed, mod_design)
edge_ed <- estimateGLMTrendedDisp(edge_ed,mod_design, method='bin.spline')
edge_ed <- estimateGLMTagwiseDisp(edge_ed,mod_design, trend=TRUE)
mod_fit <- glmQLFit(edge_ed, mod_design, prior.count=0.125)
mod_out <- glmQLFTest(mod_fit, contrast=c(1,-1, rep(0,ncol(mod_design)-2) ))
I will take a look at limma-voom lmFit function, looks interesting. Any suggestion on where to start? I have never used limma-voom, though I know it can be used alongside edgeR.
If you're confident in the experimental design and analysis, then this would indicate two sample with few DEGs? For example, I have an inducible shRNA Ctrl and Gene-targeted. The inducible aspect is a little leaky, so I see some differences between shCtrl and shGene even when uninduced, but only very few are significant.