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

  • $\begingroup$ That error message suggests that something is very wrong with txi can you post some of its contents and say how you created it? $\endgroup$
    – Devon Ryan
    Nov 28, 2018 at 23:52
  • $\begingroup$ 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. $\endgroup$ Nov 29, 2018 at 0:46

2 Answers 2


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).

  • $\begingroup$ 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 $\endgroup$ Nov 28, 2018 at 20:16
  • $\begingroup$ 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: bioinformatics.stackexchange.com/questions/5538/… . 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. $\endgroup$ Dec 4, 2018 at 17:44

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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.