3

I am trying to use DESeqDataSetFromTximport function from DESeq2 package to construct dds object:

dds <- DESeqDataSetFromTximport(txi, sampleTable, ~Group)

And somehow it is giving me the following error:

Error in rownames<-(*tmp*, value = c("ENSMUSG00000000001", "ENSMUSG00000000003", : invalid rownames length

I used the same code for other datasets but for the current one it is somehow not working. My sampleTable looks like this:

       ID      Group
1    de_1 denervated
2    de_2 denervated
3    de_3 denervated
4    de_4 denervated
5   den_5       sham
6    ho_1        IgG
7    ho_2        IgG
8    ho_3        IgG
9    sh_1       sham
10   sh_2       sham
11   sh_3       sham
12   sh_4       sham
13   sh_5       sham
14 VLA_10  anti-VLA4
15 VLA_12  anti-VLA4
16  VLA_7  anti-VLA4

txi was formed in the following way:

k = keys(txdb, keytype = "GENEID")
df = AnnotationDbi::select(txdb, keys = k, keytype = "GENEID", columns = "TXNAME")
tx2gene = df[, 2:1]  # tx ID, then gene ID
txi <- tximport(names, type = "salmon", tx2gene = tx2gene)

Any suggestions would be greatly appreciated

Nikita Vlasenko
  • 2,558
  • 3
  • 26
  • 38
  • That error message suggests that something is very wrong with txi can you post some of its contents and say how you created it? – Devon Ryan Nov 28 '18 at 23:52
  • The code for txi creation is at the very bottom of the last code piece. I created it from the names array that is pointing to the relevant .sf files. The thing is that everything was working fine and then just suddenly stopped. I suppose some install.packages() run just messed up all of the installation. Currently I am having a lot of trouble with reinstalling everything from scratch. I do not know though, whether it will actually fix anything. – Nikita Vlasenko Nov 29 '18 at 00:46

2 Answers2

3

I got exactly the same problem not long ago (see my other question what I tried to do). We used the same function!

My code ran fine on my HPC but the same code/data failed on my laptop. I later found out I had to upgrade my R to the latest version (3.5.1) and upgrade all my bioconductor packages to the latest. My HPC was on a recent bioconductor docker, so there was no problem.

Please make sure everything in your environment latest (R, R packages, Bioconductor).

SmallChess
  • 2,699
  • 3
  • 19
  • 35
  • Actually I tried updating packages with update.packages() function, but it did not help. I already have the latest R version 3.5.1. Then, I reinstalled tximport, DESeq2 and no success either – Nikita Vlasenko Nov 28 '18 at 20:16
  • I agree, that was the issue. I was able to solve it though only by reinstalling everything through bioconda in a way described in the question I asked later on: https://bioinformatics.stackexchange.com/questions/5538/install-deseq2-through-anaconda . It is interesting that such an error invalid rownames length comes up precisely when packages installation was messed up and it is very misleading. I just got it the second time on a different computer. – Nikita Vlasenko Dec 04 '18 at 17:44
2

The same error occurred to me with DESeq2_1.22.2 using R 3.5.0. By trial and error, I managed to solve the issue when I updated SummarizedExperiment from 1.10.1 to 1.12.0.

Kamil S Jaron
  • 5,542
  • 2
  • 25
  • 59
wenching
  • 29
  • 1