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.
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
Thank you. Do you happen to know whether there is any software that is able to conduct analysis for the said situation? I know it may not be statistically sound, but this analysis is not going to be used for publishing, rather, merely for information of any potential genes so that we can carry on with downstream experiments.