2021.11.20 初版
我们进行GSEA富集分析的时候,往往会遇到Error: near "": syntax error这样的情况,往往是由于GSEA分析的时候需要的是entrezID号,而多种因素,比如一个基因对应多个entrezID号,往往会出现报错。
误入BioInfor的大黄鸭 --一个喜欢把教程写着写着写成科普的本科临床医学生
01.png我们按照正常的步骤跑代码
发现在运行到enrichGO时,我们发现了第一次报错
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的大黄鸭
网友评论