I used DESeq2 with the default settings, and of the roughly 30,000 genes, 16 of them yielded NA values for both the p-values and adjusted p-values. I assume this occurred as a result of DESeq2 detecting an outlier in these genes - is that correct? However, I am using 44 samples in the case group and 59 in the control groups, so my understanding is DESeq2 should have automatically replaced the outlier and should have computed p-values for me, rather than showing NA. What is going on here? Also, I'll note that all variables in my DESeq2 model are two-level factors. Thank you!

Thank you very much for the reply. However, none of these three options seems to fit: 1) The genes for which NA appears do not have all 0 counts (they have basemean > 0), 2) I think it can't be independent filtering because both the p-value and adjusted p-value are set to NA, whereas if it were due to independent filtering, only the adjusted p-value would be set to NA. 3) It doesn't seem to be due to outliers because DESeq did not create a new counts matrix with outliers replaced by trimmed means. I know this because I tried the command: counts(dds, replaced = TRUE) And it spit out: "Warning message: In .local(object, ...) : there are no assays named 'replaceCounts', using original. calling DESeq() will replace outliers if they are detected and store this assay."
Does anyone have any more ideas of what might be going on? Thank you!