How to create a list of differentially expressed (DE) genes after normalization with RUVSeq?
You do the normalization before running your edgeR. The purpose of RUVg is to remove &quot;Remove Unwanted Variation Using Control Genes&quot;. In your code, you ran edgeR and then normalize the data using RUVg, which is only going to return you the normalized counts.
Using the example dataset in vignette:
library(RUVSeq)
library(zebrafishRNASeq)
data(zfGenes)
filter &lt;- apply(zfGenes, 1, function(x) length(x[x&gt;5])&gt;=2)
filtered &lt;- zfGenes[filter,]
genes &lt;- rownames(filtered)[grep(&quot;^ENS&quot;, rownames(filtered))]
spikes &lt;- rownames(filtered)[grep(&quot;^ERCC&quot;, rownames(filtered))]

x &lt;- as.factor(rep(c(&quot;Ctl&quot;, &quot;Trt&quot;), each=3))
set &lt;- newSeqExpressionSet(as.matrix(filtered),
                           phenoData = data.frame(x, row.names=colnames(filtered)))
set &lt;- betweenLaneNormalization(set, which=&quot;upper&quot;)

set1 &lt;- RUVg(set, spikes, k=1)

You can look at it, it's an expression set with counts etc, not results:
set1
SeqExpressionSet (storageMode: lockedEnvironment)
assayData: 20865 features, 6 samples 
  element names: counts, normalizedCounts, offset 
protocolData: none
phenoData
  sampleNames: Ctl1 Ctl3 ... Trt13 (6 total)
  varLabels: x W_1
  varMetadata: labelDescription
featureData: none
experimentData: use 'experimentData(object)'
Annotation:  

You run edgeR now on the results of RUVg:
design &lt;- model.matrix(~x + W_1, data=pData(set1))
y &lt;- DGEList(counts=counts(set1), group=x)
y &lt;- calcNormFactors(y, method=&quot;upperquartile&quot;)
y &lt;- estimateGLMCommonDisp(y, design)
y &lt;- estimateGLMTagwiseDisp(y, design)
fit &lt;- glmFit(y, design)
lrt &lt;- glmLRT(fit, coef=2)
topTags(lrt)