Question: DESeq2 - DESeqDatasetFromMatrix
0
21 months ago by
csijst0
Singapore/National University of Singapore
csijst0 wrote:

Hi,

I have some RNAseq data from a peer. She only has three conditions - control, shRNA1 and shRNA2; shRNA1 or 2 means two independent experiments to introduce the shRNA to cells, and test for knockdown of genes. Unfortunately, she did not conduct a replicate. I.e., I only have three datasets for DESeq comparison.

I am able to run the Rsubread and categorize in the data.frame:

design_shrna=data.frame(batch=c("Ctrl", "shRNA1", "shRNA2"), treatment=c("untr", "tr", "tr"))

but I'm not able to run the DESeq, regardless of Walt or LRT tests:

dLRT <- DESeqDataSetFromMatrix(countData = counts, colData = design_shrna, design = ~ batch + treatment )

They will state this error:

Error in checkFullRank(modelMatrix) :  the model matrix is not full rank, so the model cannot be fit as specified.
One or more variables or interaction terms in the design formula are linear
combinations of the others and must be removed.

Please read the vignette section 'Model matrix not full rank':

vignette('DESeq2')

I read in the DESeq2 manual that DESeq works on duplicates. My questions are:

1) Is there any case where I can use DESeq2 without duplicates? How am I to go about doing it?

2) I tried the option ignoreRank = TRUE, but it still didn't work. Is this necessary in the first place?

Thank you.

deseq2 • 1.3k views
modified 21 months ago by Michael Love26k • written 21 months ago by csijst0
Answer: DESeq2 - DESeqDatasetFromMatrix
0
21 months ago by
Michael Love26k
United States
Michael Love26k wrote:

(Users shouldn't use ignoreRank=TRUE, it's only for the DEXSeq package developer.)

You can't use DESeq2 to meaningfully analyze no replicate data. You can compare treated (shRNA 1 and 2) to untreated (control), but you can't include batch here, as there are no replicates for performing differential expression with respect to your batch variable.

Hi,

Thank you for your time. I don't fully understand what you mean by being able to "compare treated (shRNA 1 and 2) to untreated (control)". As in, I'm not exactly sure how to go about doing it. Do you mean:

design_shrna=data.frame(treatment=c("untr", "tr", "tr"))

dds <- DESeqDataSetFromMatrix(countData = counts, colData = design_shrna, design = ~ treatment)

dseq <- DESeq(dds)

results(contrast=c("treatment", "tr", "untr"), alpha=.05, altHypothesis = "greaterAbs")

But wouldn't this be considering shRNA1 and 2 to be the same?

On another note, does this mean that I am not able to use LRT for analysis?

Last question, I read in the manual that I could analyze the data by interactions. I.e., Collecting all of the samples under one group and analyze by contrast. The coding (that I thought should work) was this:

design_shrna=data.frame(batch=c("Ctrl", "shRNA1", "shRNA2"), treatment=c("untr", "tr", "tr"))
dds <- DESeqDataSetFromMatrix(countData = counts, colData = design_shrna, design = ~ batch + treatment + batch:treatment, ignoreRank = TRUE)
dds$group <- factor(paste0(dds$batch, dds$treatment)) design(dds) <- ~ group dds <- DESeq(dds) resultsNames(dds) dWalt<-results(dds, contrast=c("group", "shRNA2tr", "Ctrluntr"), alpha=.05, altHypothesis = "greaterAbs") dWalt$log2FoldChange[is.na(dWalt$log2FoldChange)]=0 dWalt$padj[is.na(dWalt$padj)]=1 dWalt[(abs(dWalt$log2FoldChange)>1 & dWalt\$padj<0.05),]

I was able to run the coding smoothly, but with one exception - I used ignoreRank, which you mentioned that I shouldn't be. Unfortunately, that was the only thing ( I know so far) that make my current coding work. Is there something I am missing from the DESeqDataSetFromMatrix?

Thank you once again.

wouldn't this be considering shRNA1 and 2 to be the same?”

yes I should have said more specifically you cannot analyze your data with DESeq2, which requires replicates