I'm currently performing a differential expression experiment to which I'm trying to apply Voom transformation using limma package.
I have the experimental design, the count matrix and dge object prepared. I'm having trouble choosing the method to filter low counts reads.
The first method I am employing is filterByExpr from edgeR package:
keep <- filterByExpr(dge, design = design) dge <- dge[keep, , keep.lib.sizes = F] dim(dge)
After calculating normalization factors using
calcNormFactors and performing voom with
v <- voom(dge, design, plot = T, normalize.method = "quantile") I got this plot:
Which from what I'm reading it still needs some filtering to do given the trend of the variance.
The alternative method I used consisted on applying:
cutoff <- 1 drop <- which(apply(cpm(dge), 1, max) < cutoff) d <- dge[-drop,] dim(d)
But while the number of genes trimmed is different, the plot is mostly the same.
How should I choose a threshold to filter low counts? Is there another way?
Thank you very much,