生物信息学习生物信息学从零开始学简友广场

R语言代码改错① GSEA富集分析出现syntax error

2021-11-20  本文已影响0人  误入BioInfor的大黄鸭

2021.11.20 初版
我们进行GSEA富集分析的时候,往往会遇到Error: near "": syntax error这样的情况,往往是由于GSEA分析的时候需要的是entrezID号,而多种因素,比如一个基因对应多个entrezID号,往往会出现报错。


误入BioInfor的大黄鸭 --一个喜欢把教程写着写着写成科普的本科临床医学生


我们按照正常的步骤跑代码
发现在运行到enrichGO时,我们发现了第一次报错

01.png

Error: near "7795": syntax error

我们会自然想到是enrichGO这个函数所处理的数据有问题了

kk=enrichGO(gene=gene, OrgDb=org.Hs.eg.db, pvalueCutoff=1, qvalueCutoff=1, ont="all", readable=T)

可以看出,这个函数处理的数据是gene,后面的其他部分都是这个函数的附加参数,一般不用理,有错的可能是这个gene了。

我们首先需要去查看这个gene有什么问题,来到了Rstudio的右上角。
(我总是建议大家使用Rstudio,不要去使用原版的R,Rstudio无论是改错,还是修改R的内置的一些东西,都是非常方便的,而且能够保留,方便你查看每一个变量具体的东西)

我们可以看到gene是在Value的地方,他是一个向量,不是data.frame也不是matrix,因此不能用View函数,使得该变量在Rstudio的左上方的部分去完全显示

gene.png

这时候我们需要通过直接输出gene,输出成txt(xls,csv也行,不过我本人比较喜欢用txt),然后用Excel打开txt,去查找有错的地方。

我们往这行代码的上面去寻找,产生这个gene的位置,然后再它下方,输入生成txt的代码

02.png

(我们发现gene是在这生成的,记住是要找离报错代码最近的生成部位)

write.table(gene,"gene.txt",quote = F,sep="\t")

用此代码生成,我们会发现源文件夹多了个“gene.txt”,用excel打开,然后就对数据进行检查,特别是要找到"7795"这个地方

03.png

我们发现它是这样子的。。。

说明它可能是一个基因对应多个entrezID,也可能是其他因素的错误,我们直接改成7795,在最下面加上个51072,然后保存,回到Rstudio

我们在写入txt的代码的下方,加上

gene2=read.table("gene.txt",sep="\t",header = T,check.names = 1,row.names = 1)
gene=as.vector(gene2[,1])

把gene重新读取进去,但是是矩阵,我们需要再变成向量

这逻辑相当于把错的东西拆出来补,补好了再放进去运行系统。。。很好的一个外科思维哈哈哈哈哈

好啦,今天就到这了。关注我更新更多生信小秘籍,欢迎大家关注支持~大家关注一下我:误入BioInfor的大黄鸭

上一篇下一篇

猜你喜欢

热点阅读