Is it possible to create a DESeqDataSet with a user-provided design matrix?
Provide rank sufficient design to DESeqDataSetFromMatrix and then use your custom model matrix in DESeq. In essence:

dds = DESeqDataSetFromMatric(counts, s2c, design=~batch)
design &lt;- model.matrix(~strain+batch, s2c)
design = design[, -9]
DESeq(dds, full=design)


See this thread on the bioconductor site for details.