Hi,
I am getting a new error with DESeq2 and I have no idea why as these are commands I have run a million times. I really can't understand why it's not working anymore and I can't find any post of someone reporting this error before.
I have this object:
I am getting a new error with DESeq2 and I have no idea why! These are commands I have run a million times! I really can't understand why it's not working.
I have this object:
> dge
class: DESeqDataSet
dim: 19861 59
metadata(1): version
assays(1): counts
rownames(19861): Xkr4 Rp1 ... Uty Erdr1
rowData names(0):
colnames(59): K17 K18 ... T23 T24
colData names(1): group
And I want to plot the gene expression like this:
This is what I did before:
# Pld1
data <- plotCounts(dge, gene="Pld1", intgroup="group", xlab=NA, returnData=TRUE)
png(filename="genes/Pld1.png")
ggplot(data, aes(x=as.numeric(as.character(coldata$Age_months)), y=count, colour=coldata$Genotype)) +
scale_colour_manual(values = c("#262626","#73B5BF")) +
labs(title="Pld1", x="Age in months", y="Normalised counts", color="Genotypes") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_point(position=position_jitter(width=.1,height=0), size=5) +
geom_smooth(method="lm", fullrange=TRUE) # Add linear regression lines; se=TRUE (default) shows shaded confidence region; fullrange=TRUE to extend regression lines
dev.off()
And this is what I am trying to do now:
# Pld4
data <- plotCounts(dge, gene="Pld4", intgroup="group", xlab=NA, returnData=TRUE)
png(filename="genes/Pld4.png")
ggplot(data, aes(x=as.numeric(as.character(coldata$Age_months)), y=count, colour=coldata$Genotype)) +
scale_colour_manual(values = c("#262626","#73B5BF")) +
labs(title="Pld4", x="Age in months", y="Normalised counts", color="Genotypes") +
theme(plot.title = element_text(hjust = 0.5)) +
geom_point(position=position_jitter(width=.1,height=0), size=5) +
geom_smooth(method="lm", fullrange=TRUE) # Add linear regression lines; se=TRUE (default) shows shaded confidence region; fullrange=TRUE to extend regression lines
dev.off()
In both cases (and all the other genes I did to date) this is what I get now:
> data <- plotCounts(dge, gene="Pld4", intgroup="group", xlab=NA, returnData=TRUE)
Error in validObject(object) :
invalid class "DESeqDataSet" object: undefined class for slot "rowRanges" ("GenomicRangesORGRangesList")
In the most recent manual (August 2018) from DESeq2 at some point it says:
"arguments provided to SummarizedExperiment including rowRanges and metadata.
Note that for Bioconductor 3.1, rowRanges must be a GRanges or GRangesList,
with potential metadata columns as a DataFrame accessed and stored with
mcols. If a user wants to store metadata columns about the rows of the countData,
but does not have GRanges or GRangesList information, first construct the
DESeqDataSet without rowRanges and then add the DataFrame with mcols(dds)."
But I have absolutely no idea what this actually mean. Can someone please help me understand this error and how I can solve it?
Thank you.
Hi Michael,
Thank you for replying so promptly. I was actually wondering if it had anything to do with possible system updates. I forgot to save the version of bioconductor from when I previously ran DESeq2, but DESeq2 version is the same. Details for the current sessionInfo() below.
R version 3.4.3 (2017-11-30)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats4 stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] RColorBrewer_1.1-2 pheatmap_1.0.10
[3] ggplot2_3.0.0 dplyr_0.7.6
[5] genefilter_1.58.1 RUVSeq_1.10.0
[7] edgeR_3.18.1 limma_3.32.10
[9] EDASeq_2.10.0 ShortRead_1.34.2
[11] GenomicAlignments_1.12.2 Rsamtools_1.28.0
[13] Biostrings_2.44.2 XVector_0.16.0
[15] BiocParallel_1.10.1 DESeq2_1.16.1
[17] SummarizedExperiment_1.8.1 DelayedArray_0.4.1
[19] matrixStats_0.54.0 Biobase_2.36.2
[21] GenomicRanges_1.30.3 GenomeInfoDb_1.14.0
[23] IRanges_2.12.0 S4Vectors_0.16.0
[25] BiocGenerics_0.24.0 BiocInstaller_1.28.0
Is there any way I could solve this now, without having to run everything again?
> dds <- updateObject(dds)
Error in validObject(result) :
invalid class “DESeqDataSet” object: undefined class for slot "rowRanges" ("GenomicRangesORGRangesList")
I also tried updating DESeq2 and running everything again, but the errors persist.
This is the problem then. The update object methods for a SummerizedExperiment isn’t working. This is outside the scope of what I can fix in DESeq2. But to help you fix things, can you rebuild the object from counts and sample table?