When (as a mistake) I did not remove low counts at all (beside those that equal zero for all samples), I got the following ma plot (using Glimma) :
On the right you see the individual counts. The gene that is displayed is signficant. However, the reality seems that the gene is not expressed both in treatment and in control. The batch I have corrected for made it a significantly DE however.
The batch correction algorithm of DESeq2 doesn't care whether the counts of the gene are almost all zeroes, and does not take this as a special case. In reality, it seems to me that it is a special case - if it is questionable whether the gene is expressed in the first place, it makes no sense to apply batch correction to zero counts.
The solution to this seems to be to make sure to remove low counts when applying batch correction. Usually it's only a recommendation; but when applying batch, it seems a necessity.
Would you agree?
I even wonder if one should remove counts that are low per-condition. Suppose that a gene is not expressed in treatment (and only in treatment), does it really make sense to apply batch correction to this gene?