2021-07-09:细数我在GO注释时遇到的那些报错

上回说到,我废了九牛二虎之力,终于拿到了百十来个GB的GO EVIDENCE 数据,你猜怎么着,接着往下进行的时候发现,R语言根本读不了。。。。心疼自己一秒钟

来吧,今天接着搞起:

library(GOstats)

ago <- read.delim('/vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_goev_sme',row.names = NULL)

#报错

> colnames(ago) <- c('gene_id','go_id','evi')

Error in names(x) <- value :

  'names' attribute [3] must be the same length as the vector [1]


之前我用write.csv生成的EVIDENCE注释文件,在读取时,列与列之间多了',',因此在读入时加了sep=',',而这次列与列之间是空格,同理,要加入sep=' '。

ago <- read.delim('/vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_goev_sme',row.names = NULL,sep=' ')

成功读入,进入下一步

goframeData <- na.omit(data.frame(ago$go_id,ago$evi,ago$gene_id))

goFrame <- GOFrame(goframeData)

goAllFrame <- GOAllFrame(goFrame)

library('GSEABase')

gsc <- GeneSetCollection(goAllFrame,setType = GOCollection())

universe <- as.vector(ago$gene_id)

DEGfile <- read.csv('xxxxxx.csv',header = T,row.names = NULL)

#读入差异表达基因#

genes = as.vector(DEGfile$gene_id)

params <- GSEAGOHyperGParams(name = 'custom',

                            geneSetCollection = gsc,

                            geneIds = genes,

                            universeGeneIds = universe,

                            ontology = 'CC',

                            pvalueCutoff = 0.05,

                            conditional = FALSE,

                            testDirection = 'over')

Over <- hyperGTest(params)

write.csv(summary(Over),xxxxxx_GO_CC_hyper.csv')

问题很多:

1、EVIDENCE注释文件的gene_id与DESeq2差异表达的文件中的gene_id要保持一致

sed "s/.1 / /g" swiss_goev_sme > swiss_goev_sme.1

终于成功生成GO注释文件,以下为全部脚本

> library(GOstats)

> ago <- read.delim('/vol3/agis/zhoushaoqun_group/wangyantao/GO/swiss_goev_sly.1',row.names = NULL,sep=' ')

> colnames(ago) <- c('gene_id','go_id','evi')

> goframeData <- na.omit(data.frame(ago$go_id,ago$evi,ago$gene_id))

> goFrame <- GOFrame(goframeData)

> goAllFrame <- GOAllFrame(goFrame)

There were 21 warnings (use warnings() to see them)

> library('GSEABase')

Loading required package: annotate

Loading required package: XML

Attaching package: ‘XML’

The following object is masked from ‘package:graph’:

    addNode

Warning messages:

1: package ‘GSEABase’ was built under R version 4.0.3

2: package ‘annotate’ was built under R version 4.0.3

> gsc <- GeneSetCollection(goAllFrame,setType = GOCollection())

> universe <- as.vector(ago$gene_id)

> DEGfile <- read.csv('/vol3/agis/zhoushaoqun_group/wangyantao/GO/diffgene_Sly48.48.0_deseq2.csv',header = T,row.names = NULL)

> genes = as.vector(DEGfile[,1])

> params <- GSEAGOHyperGParams(name = 'custom',

+                              geneSetCollection = gsc,

+                              geneIds = genes,

+                              universeGeneIds = universe,

+                              ontology = 'CC',

+                              pvalueCutoff = 0.05,

+                              conditional = FALSE,

+                              testDirection = 'over')

                              geneSetCollection = gsc,

                              geneIds = genes,

                              universeGeneIds = universe,

                              ontology = 'MF',

                              pvalueCutoff = 0.05,

                              conditional = FALSE,

                              testDirection = 'over')

Warning messages:

1: In makeValidParams(.Object) : removing duplicate IDs in universeGeneIds

2: In makeValidParams(.Object) : removing geneIds not in universeGeneIds

> params1 <- GSEAGOHyperGParams(name = 'custom',

+                              geneSetCollection = gsc,

+                              geneIds = genes,

+                              universeGeneIds = universe,

+                              ontology = 'BP',

+                              pvalueCutoff = 0.05,

+                              conditional = FALSE,

+                              testDirection = 'over')

Warning messages:

1: In makeValidParams(.Object) : removing duplicate IDs in universeGeneIds

2: In makeValidParams(.Object) : removing geneIds not in universeGeneIds

> params2 <- GSEAGOHyperGParams(name = 'custom',

+                              geneSetCollection = gsc,

+                              geneIds = genes,

+                              universeGeneIds = universe,

+                              ontology = 'MF',

+                              pvalueCutoff = 0.05,

+                              conditional = FALSE,

+                              testDirection = 'over')

Warning messages:

1: In makeValidParams(.Object) : removing duplicate IDs in universeGeneIds

2: In makeValidParams(.Object) : removing geneIds not in universeGeneIds

>

> Over <- hyperGTest(params)

> Over1 <- hyperGTest(params1)

> Over2 <- hyperGTest(params2)

> write.csv(summary(Over),'Sly48_GO_CC_hyper.csv')

> write.csv(summary(Over1),'Sly48_GO_BP_hyper.csv')

> write.csv(summary(Over2),'Sly48_GO_MF_hyper.csv')

> library(ggplot2)

> library(RColorBrewer)

Warning message:

package ‘RColorBrewer’ was built under R version 4.0.3

> display.brewer.all()

> col3 <- brewer.pal(4,'Set3')[c(1,3,4)]

> cc = read.csv('Sly48_GO_CC_hyper.csv',header = T,row.names = NULL)

> bp = read.csv('Sly48_GO_BP_hyper.csv',header = T,row.names = NULL)

> mf = read.csv('Sly48_GO_MF_hyper.csv',header = T,row.names = NULL)

> cc2 <- cc[cc$Pvalue<1e-5,]

> bp2 <- bp[bp$Pvalue<1e-5,]

> mf2 <- mf[mf$Pvalue<1e-5,]

> colnames(cc2)[2] <- c('GOID')

> colnames(bp2)[2] <- c('GOID')

> colnames(mf2)[2] <- c('GOID')

> data <- rbind(mf2,cc2)

> data <- rbind(data,bp2)

> data2 <- data.frame(data,type = c(rep('MF',dim(mf2)[1]),rep('CC',dim(cc2)[1]),rep('BP',dim(bp2)[1])))

> p <- ggplot(data2,aes(x = Term,y = log2(Count),fill = type,order = type))+

+  geom_bar(stat = 'identity')+coord_flip()+

+  scale_fill_manual(values = col3,limits = c('BP','CC','MF'),labels = c('BP','CC','MF'))+

+  theme_bw()+theme(legend.title=element_blank(),

+                    axis.text = element_text(size = 10),

+                    axis.title.x = element_text(size = rel(1.5)),

+                    axis.title.y = element_text(size = rel(1.5),angle = 90),

+                    legend.text = element_text(size = rel(1.5)))+

+  ylab('Number of Genes (log2)') + xlab('Terms')

> ggsave('Sly48.go_hyper.tiff',p,device = 'tiff',scale = 1,width = 20,height = 30,dpi = 300)

>

> display.brewer.all()

> col3 <- brewer.pal(4,'Set3')[c(1,3,4)]

> cc = read.csv('Sly48_GO_CC_hyper.csv',header = T,row.names = NULL)

> bp = read.csv('Sly48_GO_BP_hyper.csv',header = T,row.names = NULL)

> mf = read.csv('Sly48_GO_MF_hyper.csv',header = T,row.names = NULL)

> cc2 <- cc[cc$Pvalue<1e-2,]

> bp2 <- bp[bp$Pvalue<1e-2,]

> mf2 <- mf[mf$Pvalue<1e-2,]

> colnames(cc2)[2] <- c('GOID')

> colnames(bp2)[2] <- c('GOID')

> colnames(mf2)[2] <- c('GOID')

> data <- rbind(mf2,cc2)

> data <- rbind(data,bp2)

> data2 <- data.frame(data,type = c(rep('MF',dim(mf2)[1]),rep('CC',dim(cc2)[1]),rep('BP',dim(bp2)[1])))

> p <- ggplot(data2,aes(x = Term,y = log2(Count),fill = type,order = type))+

+  geom_bar(stat = 'identity')+coord_flip()+

+  scale_fill_manual(values = col3,limits = c('BP','CC','MF'),labels = c('BP','CC','MF'))+

+  theme_bw()+theme(legend.title=element_blank(),

+                    axis.text = element_text(size = 10),

+                    axis.title.x = element_text(size = rel(1.5)),

+                    axis.title.y = element_text(size = rel(1.5),angle = 90),

+                    legend.text = element_text(size = rel(1.5)))+

+  ylab('Number of Genes (log2)') + xlab('Terms')

> ggsave('Sly48.go_hyper.tiff',p,device = 'tiff',scale = 1,width = 20,height = 30,dpi = 300)

一开始的时候,pvalue设置为10的-5次方,结果并没有生产图片,后面我把pvalue改成10的-2次方,好歹有个结果。

经过测试,以上脚本可用,开始批量处理相关物种差异表达的GO注释

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容