This is a test version of Biostars. For the public version, visit https://www.biostars.org.
What is the best way to clean bulk RNA-seq data?

As far as I know, there isn't a universally agreed-upon threshold or an approach to clean the data. I want to remove the genes that don't contribute, or in other words, the noise genes, BEFORE I normalize the data, using CPM or TPM or any other approach.

I've picked the threshold randomly, I tried not to set it too high so that I dont delete important genes that might have infomative value. This is my code:

 thresh = data > 0.5
  keep = rowSums(thresh) >= 1.5
  data = data[keep,]

What do you think? thanks!

normalization tpm r

3 answers

For the sake of simplicity and because it well stood the test of time I always use use edgeR::filterByExpr() which has reasonable defaults. In general I would try to respect sample size. If you have 100 samples then a filter like "1 CPM in at least 3 samples" makes little sense. Rather "in at least 10 or 20 samples" would be fine.

There really is no "best". Just find something reasonable, and document what you chose.

Honestly, I am a fan of visualizing to select a threshold since these can depend on the specific experiment. I would even just run standard DEG analysis with removing only 0-count genes and visualizing data to see which FPKM threshold removes the noisy genes. I am far from an expert on this though. Otherwise, I'd echo others, use something standard or reasonable and document.

Log in to answer this question.