我正在在线学习这篇教程,以分析细胞类型之间的RNA-seq数据。
https://combine-australia.github.io/RNAseq-R/06-rnaseq-day1.html
我已经能够使用我自己的数据来执行其中的大部分,但我现在正在尝试执行路径丰富分析。然而,我遇到了问题,因为我不能标记我的初始重新计数矩阵的行,因为它考虑到了基因ID。
我尝试简单地使用Gene创建一个新列,但是这会将矩阵更改为数据帧,并阻止我使用DGEList。
seqdata是我的data.frame,其中包含来自分析的所有基因信息,第1列是基因ID名称,第15到24列是载体,其中包含10个样本中每个基因的读取计数信息。
我从这个data.frame生成了一个名为readcounts_g的矩阵,它只包含每个基因的读取计数,但我正在尝试分配行名,在行名中,我从seqdata中提取第一列,并使用该向量中的基因名称为readcounts_g数据帧分配行名。
rownames(readcounts_g) <- seqdata[,1]
Error in `.rowNamesDF<-`(x, value = value) : invalid 'row.names' length
In addition: Warning message:
Setting row names on a tibble is deprecated.
我也想过简单地将基因名称作为一个额外的载体输入到readcounts_g中,但如果我这样做了,我就不能使用DEGList,因为它需要一个矩阵。
最终,我试图使用goana对差异表达的基因进行富集途径分析。但是,如果不将基因名称分配给DEGs的最终矩阵,我就无法做到这一点。
如果任何人对我如何解决这个问题有见解,将不胜感激。如果需要的话,我可以试着进一步解释。
发布于 2020-01-03 12:29:16
如果seqdata是一个tibble
,seqdata[,1]
是tibble类,而不是character
或numeric
,因此您无法将其指定为矩阵的行名,请参见下面的替代方法:
library(dplyr)
seqdata = tibble(geneID=sample(1:1000),
s1=rpois(1000,10),s2=rpois(1000,15),
s3=rpois(1000,20),s4=rpois(1000,25))
readcounts_g = as.matrix(seqdata[,2:5])
rownames(readcounts_g) = seqdata[,1]
#throws error
rownames(readcounts_g) = seqdata$geneID
#ok
> head(readcounts_g)
s1 s2 s3 s4
763 16 13 13 24
776 13 19 24 26
308 12 19 19 34
88 10 8 13 22
23 10 13 16 25
509 9 12 14 28
https://stackoverflow.com/questions/59569895
复制相似问题