这篇文章很长,所以记录了问题发生的过程,请耐心查看。
这种问题是百度长期没有详细教程做的。
[一个]
报告以下错误,你一定很困惑。
[01] rownames(设计)=colnames (mrnadata)
error in dim names(x)-dn : ' dim names '的长度[1]应等于显示范围
错误01
[02]row . names(Mr nadata)-Mr nadata[,1]
Errorin.rowname SDF-(x,value=value) :不允许重复的“row.names”
此外, Warning message:
non-unique values when setting ' row . names ' : ' matr 3 '、' pin x1 '、' sigle C5 '、' tmsb 15b '
错误02
[03]rownames(mrn adata)-mrn adata[,1]
Errorin.rowname SDF-(x,value=value):“row . names”不允许缺少值
错误03
[二]
一般的生日分析步骤如下。
数据库下载数据整理【ID转换、GTF文件过滤所需基因等】差异分析DEG差异分析可视化【PCA、盒子图、火山图、热度图】……。] 各种操作。
不巧今天又碰到钉子了。
DEG分析时发现一般代码无法执行。
group _ list=if else(substr(colnames(mrn adata),14,15)) 10、' tumor ',' normal ')
design-model . matrix(~ 0 factor(group _ list))
colnames(design)=levels(factor(group _ list))
Rownames(设计)=colnames (mrnadata)
Design
rownames(design)=colnames(Mr nadata):[此代码执行错误]
image.png
以为正在运行的代码有问题,与其他代码相比大同小异。
那就是数据处理有问题。
请仔细比较自己的数据和教程数据。
教程插图如下:
image.png
自己的照片如下。
image.png
你看到区别了吗?区别在于红色正方形部分。
找问题很简单。
Row.names (mrnadata)-mrnadata [,1]
mRNAdata <- mRNAdata[, -1]再次报错:
image.png
这里是需要去除重复值吗?:
#去除重复着代码: index <- duplicated(d$gene_name) table(index) d <- d[!index,] rownames(d) <- d$gene_name d$gene_name <- NULL #或者这样的代码: mRNAdata=distinct(d,gene_name,.keep_all = T)
可是还是报错。
回到点,我们是要干嘛?把gene_name变成行名。
以前使用代码时候没有出错。
难道是DEG分析包错误?我一般习惯用limma包。没办法,换成了熟悉的DESeq包。再次分析。
rm(list = ls()) load("mRNA_ex;) res <- results(dds, tidy=TRUE) #获取结果 res <- as_tibble(res) require(dplyr) res <- res %>% separate(row,c("symbol","ensemble","genetype"),sep = " \\| ") %>% dplyr::select(- c(ensemble,genetype)) %>% arrange(desc(abs(log2FoldChange))) %>% #排序。为了去重 distinct(symbol,.keep_all = TRUE) %>% arrange(desc(log2FoldChange))#再次按照log2FoldChange从大到小排序 save(res,file = "re;) res
然而,还是出问题了。每次都是在【把gene_name变成行名。】这个地方出问题。
看来跟包没关系。
图片展示:
这里同样的,需要把symbol变成行名
查看此处错误,再次百度。
row.names(res) <- res[, 1] Error in `.rowNamesDF<-`(x, value = value) : 'row.names'的长度不对 此外: Warning message: Setting row names on a tibble is deprecated.
image.png
【三】
tibble is deprecated. 这是个啥?百度。
离真相越来越近了,自己却浑然不知。
百度看了几个答案后,大概明白了,是tidyverse这个包出问题了。查看
这个网址,原来是开发包的人在搞事情。他把这个包的部分功能给GG了。
事已至此,找到真凶。可是既然不能用,怎么才能实现我们想要的功能呢?
再次百度。某乎有个回答。大概内容就是,先将数据保存为“.CVS”格式,然后Excel打开,然后借助Excel的功能,直接将“symbol”设置成行名。
。
数据稍小可以,大数据的时候崩了怎么办?
还得R出手吧!
再次百度寻求答案。
里面有答案。
最终解决方法如下:【需手动设置】
rownames(res)=as.vector(res[,1]))
image.png
自己把res$symbol这一行去掉就行了。
需要注意的是,res$symbol这一行由数据框格式变为:
class(res$symbol) [1] "character"
image.png
【03】rownames(mRNAdata)<- mRNAdata[,1]
Error in .rowNamesDF<-(x, value = value) : 'row.names'里不允许有遗漏值
错误03
这个解决办法:
#这里报错,有遗漏值。因此进行一下操作。 sum(mRNAdata$gene_name)) which(mRNAdata$gene_name)) mRNAdata<-mRNAdata[-203,] sum(mRNAdata$gene_name))
image.png
大功告成。
【四】
总结一下:
由于包的缘故,导致rownames调用失败。所以这个地方报错。其实仔细观察报错截图,每次都有rownames他的身影。
gene_name有时候会出现NA。需要去除后再分析。
温馨提示:表达矩阵的第一列是样品还是基因名,如果第一列是基因名,要把第一列设置成为行名,不然只有的差异分析会出错。
因此,学会了吗?解决不容易,请点赞,收藏,评论等,文明三连,拒绝白嫖。
1.《【excel怎么存为cvs】r语言rownames函数错误报告:生信差异分析DEG错误报告》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【excel怎么存为cvs】r语言rownames函数错误报告:生信差异分析DEG错误报告》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2531651.html