Sir,
While running DEXSeq on a Human dataset, (commands given below), I get the following error.
> countFiles=list.files(inDir,pattern="fb.txt$",full.names=TRUE)
>flattenedFile=list.files(inDir,pattern="gff$",full.names=TRUE)
>sampleTable=data.frame(row.names=c("treated1","treated2","treated3","untreated1","untreated2","untreated3"),condition=c("knockdown","knockdown","knockdown","control","control","control"),libType=c("paired-end","paired-end","paired-end","paired-end","paired-end","paired-end"))
>library("DEXSeq")
>dxd=DEXSeqDataSetFromHTSeq(countFiles,sampleData=sampleTable,design=~sample+exon+condition:exon,flattenedfile=flattenedFile )
>dxd_esf=estimateSizeFactors(dxd)
>dxd_ed=estimateDispersions(dxd_esf)
>dxd_ed=estimateDispersions(dxd_esf,fitType="mean")
#using supplied model matrix #Error in estimateDispersionsFit(object, fitType = fitType, quiet = quiet) : # all gene-wise dispersion estimates are within 2 orders of magnitude #from the minimum value, and so the standard curve fitting techniques will not work. #You can instead use the gene-wise estimates as final estimates: #dds <- estimateDispersionsGeneEst(dds) #dispersions(dds) <- mcols(dds)$dispGeneEst
I tried using a smaller subset of geneset, but to no avail.
genesForSubset=read.table(file.path(inDir,"Human_IDC.txt"),stringsAsFactors=FALSE)[[1]]
dxd=dxd[geneIDs( dxd )%in%genesForSubset,]
>dxd_ed=estimateDispersions(dxd_esf,fitType="mean")
using supplied model matrix
Error in estimateDispersionsFit(object, fitType = fitType, quiet = quiet) :
all gene-wise dispersion estimates are within 2 orders of magnitude
from the minimum value, and so the standard curve fitting techniques will not work.
You can instead use the gene-wise estimates as final estimates:
dds <- estimateDispersionsGeneEst(dds)
dispersions(dds) <- mcols(dds)$dispGeneEst
Even, I tried using (estimateDispersionsGeneEst(dds) on dxd_esf object, but landed up with the following error.
dds <- estimateDispersionsGeneEst(dxd_esf) #error: inv(): matrix appears to be singular #Error: inv(): matrix appears to be singular
Please suggest a way out.