首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为R中的读取计数矩阵生成行名时出现问题

为R中的读取计数矩阵生成行名时出现问题
EN

Stack Overflow用户
提问于 2020-01-03 04:55:20
回答 1查看 271关注 0票数 0

我正在在线学习这篇教程,以分析细胞类型之间的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数据帧分配行名。

代码语言:javascript
运行
复制
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的最终矩阵,我就无法做到这一点。

如果任何人对我如何解决这个问题有见解,将不胜感激。如果需要的话,我可以试着进一步解释。

EN

回答 1

Stack Overflow用户

发布于 2020-01-03 12:29:16

如果seqdata是一个tibbleseqdata[,1]是tibble类,而不是characternumeric,因此您无法将其指定为矩阵的行名,请参见下面的替代方法:

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59569895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档