栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go分析和kegg分析

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go分析和kegg分析

  前些日子,由于各种原因,没想写公众号,其实也不是没有时间,就是一旦一件事情有一天没去做,就觉得其实也可以明天做,明天又觉得做不做都行,再过几天,就可能不去做了。所以,有些时候还是要定个计划和目标的,不管有没有意义,不管做多做少,就像吃饭一样,每天吃多吃少还是要吃点的。

今天我们把转录组的差异基因通过Go富集和kegg分析,看看他们是不是真的是差异表达基因。

1.Go富集分析

  由于稻瘟病菌没有完整的Go号和orgdb库,需要自己建一个。

第一步首先需要稻瘟病菌MGG基因号和对应的Go号,这个可以在http://geneontology.org/中获取,但不是很全,还有可以通过序列比对找到其他物种的Go号,总之不管用什么方法,找的号越全,差异分析越全。这里通过以前专业分析的数据爬取了4万+个Go号,应该是很全的了。

比如从这个excel中提取MGG对应的Go号

代码如下

import ref =open('CC.csv','w')for line  in open('Expression.csv','r'):        BF = line.split(',')[1]    CC = line.split(',')[2]    MF = line.split(',')[3]    BF = CC    if BF != '':       # print(BF)        if '///'  in BF:            MGG = line.split(',')[0]            l = BF.split('///')            for s in l:                go = re.search(r'd{7}',s.strip())                if go:                    go = go.group()                else:                     go = 'Null'                               ev = re.search(r'[[](.+)[]]',s)                if ev:                    ev = ev.group(1)                else:                    ev = 'Null'                mgg = re.search(r'MGG_d{5}',s)                if mgg:                    mgg = mgg.group()                else:                    mgg = 'Null'                    #print(BF)                f.write(MGG + ',' +'GO:'+str(go)+','+ 'IEA' +','+'CC'+ 'n')                #print(MGG + ',' +'GO:'+str(go)+','+ 'IEA' +','+'MF'+ 'n')        else:            if '//' in BF:                MGG = line.split(',')[0]                go = re.search(r'd{7}',BF.strip())                if go:                    go = go.group()                else:                    go = 'Null'                                   ev = re.search(r'[[](IEA)[]]',BF)                if ev:                    ev = ev.group(1)                else:                    ev = 'Null'                mgg = re.search(r'MGG_d{5}',BF)                if mgg:                    mgg = mgg.group()                else:                    mgg = 'Null'                   # print(BF)                f.write(MGG + ',' +'GO:'+str(go)+','+ 'IEA' +','+'CC'+ 'n')               # print(MGG + ',' +'GO:'+str(go)+','+ 'IEA' +','+'MF'+ 'n')f.close()

输出是这样的,

一共4万多列。

第二步,有了这个对应的关系,我们就可以用R的Gostats包来进行富集了。

getwd()#获取当前路径library(GOstats)#载入包ago '/Users/zhuxueming/Desktop/R/Mo_goev_forStats.csv',row.names =  colnames(ago) 'gene_id',goframeData #去除空数据goFrame #转换成标准模式goAllFrame library('GSEABase')gsc universe as.vector(ago$gene_id)DEGfile '/Users/zhuxueming/Desktop/R/result.csv',header = T,row.names = genes = as.vector(DEGfile$Gene_id)#获取差异基因号#genesparams 'custom',                             geneSetCollection = gsc,                             geneIds = genes,                             universeGeneIds = universe,                             ontology = 'MF',#选择类型BP,MF,CC                             pvalueCutoff = 0.05,#p小于0.05                             conditional = FALSE,                             testDirection = 'over')Over write.csv(summary(Over),'/Users/zhuxueming/Desktop/R/GO_MF_hyper.csv') #保存数据

输出结果就是富集的基因类别。

类似的可以把BP,MF,CC都输出

这样,我们就可以根据term和count作图了。

2.kegg分析

和go分析一样,首先需要获取MGG号对应的kegg号,我们可以通过kegg网站爬取相应对应的号码。

import ref = open('all_kegg_path.csv','w')f1 = open('mgr00001.keg','r')dict1 = {}dict2 = {}for i in f1.readlines():    if(i[0] == 'C'):        d = re.search('d+',i)    if(i[0] == 'D'):        h = re.search('Kd+',i)        m = re.search('MGG_d+',i)        #print(m.group(),h.group(),d.group())        f.write(m.group()+','+h.group()+','+ str(d.group())+'n')f1.close()f.close()

输出结果

有了这个数据,就可以用R包做kegg分析了

library(GOstats)ago '/Users/zhuxueming/Desktop/R/all_kegg_path.csv',header = F,row.names = colnames(ago) 'gene_id',ago$kegg_id "%05d",ago$kegg_id)keggframeData keggframeData keggFrame ' Pyricularia oryzae 70-15')library('GSEABase')gsc universe as.vector(ago$gene_id)DEGfile '/Users/zhuxueming/Desktop/km-k/result.csv',header = T,row.names = genes as.vector(DEGfile$gene_id)params 'custom',                                geneSetCollection = gsc,                                geneIds = genes,                                universeGeneIds = universe,                                pvalueCutoff = 0.05,                                testDirection = 'over')Over write.csv(summary(Over),'/Users/zhuxueming/Desktop/km-k/KEGG_hyper.csv')

输出结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号