非模式物种GO/KEGG富集分析

前言:
微博参与话题 #给你四年时间你也学不会生信#

先前的富集分析教程[1]主要是以模式物种人为例子,展开的分析,今天在B站看了孟浩巍视频教程[2],学习新的技能,豁然开朗,欣然记之。

本文主要针对非模式物种,但是有参考基因组可用

1. R包安装及database下载

# non-model, but have the genome
> source("https://bioconductor.org/biocLite.R")
> biocLite("AnnotationHub") 
> biocLite("biomaRt") 
# load package
> library(AnnotationHub)
> library(biomaRt)
# make a orgDb
> hub <- AnnotationHub::AnnotationHub()
这里以桔小实蝇为例
# fruit fly = bactrocera dorsalis
> query(hub, "bactrocera")

搜索后结果如下:

> query(hub, "bactrocera")
AnnotationHub with 9 records
# snapshotDate(): 2018-04-30 
# $dataprovider: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/
# $species: Bactrocera (Bactrocera)_dorsalis, Bactrocera (Bactrocera)_latifrons, Bactrocera (Dacul...
# $rdataclass: OrgDb
# additional mcols(): taxonomyid, genome, description, coordinate_1_based, maintainer,
#   rdatadateadded, preparerclass, tags, rdatapath, sourceurl, sourcetype 
# retrieve records with, e.g., 'object[["AH62538"]]' 
            title                                           
  AH62538 | org.Bactrocera_(Bactrocera)_latifrons.eg.sqlite 
  AH62539 | org.Bactrocera_latifrons.eg.sqlite              
  AH62542 | org.Bactrocera_(Daculus)_oleae.eg.sqlite        
  AH62543 | org.Bactrocera_(Dacus)_oleae.eg.sqlite          
  AH62544 | org.Bactrocera_oleae.eg.sqlite                  
  AH62568 | org.Bactrocera_(Zeugodacus)_cucurbitae.eg.sqlite
  AH62569 | org.Bactrocera_cucurbitae.eg.sqlite             
  AH62581 | org.Bactrocera_(Bactrocera)_dorsalis.eg.sqlite  
  AH62582 | org.Bactrocera_dorsalis.eg.sqlite 

我们选择AH62582 | org.Bactrocera_dorsalis.eg.sqlite并下载它

> Bactrocera.OrgDb <- hub[["AH62582"]]

如果报错,可能是缺少依赖的安装包,可以按照提示依次下载,两种方法

  1. install.packages("packages")
  2. source("https://bioconductor.org/biocLite.R")
    biocLite("pacakges")

2. 查看注释信息

> columns(Bactrocera.OrgDb)
 [1] "ACCNUM"      "ALIAS"       "CHR"         "ENTREZID"    "EVIDENCE"    "EVIDENCEALL" "GENENAME"   
 [8] "GID"         "GO"          "GOALL"       "ONTOLOGY"    "ONTOLOGYALL" "PMID"        "REFSEQ"     
[15] "SYMBOL" 
> Bactrocera.OrgDb
OrgDb object:
| DBSCHEMAVERSION: 2.1
| DBSCHEMA: NOSCHEMA_DB
| ORGANISM: Bactrocera dorsalis
| SPECIES: Bactrocera dorsalis
| CENTRALID: GID
| Taxonomy ID: 27457
| Db type: OrgDb
| Supporting package: AnnotationDbi
Please see: help('select') for usage information
# 查看注释信息的每一列
> head(keys(Bactrocera.OrgDb,keytype = "ALIAS"))
[1] "AAA62341.1" "AAA62342.1" "AAA62343.1" "AAA62344.1" "AAF22478.1" "AAL17758.1"
实际上,ALIAS内包含了“omitted 17518 entries”

3. GO富集分析

# 对BP(Biological process)进行富集分析
# 只需将OrgDb数据库替换为我们下载好的非模式物种库即可。
> enrich.go.BP = enrichGO(gene       = DEG.gene_symbol,
                        OrgDb        = Bactrocera.OrgDb,
                        keyType      = 'ENTREZID',ont= "BP",
                        pvalueCutoff = 0.01,
                        qvalueCutoff = 0.05,
                        readable     = T)
> barplot(enrich.go.BP)
> dotplot(enrich.go.BP)

p_value: 富集显著性,统计显著性要去小于0.01;
q_value: 对p_value的修正,在多次统计检验时,需要有修正值;
q_value一定大于p_value

4. KEGG富集分析

# 只需将OrgDb数据库替换为我们下载好的非模式物种库即可。
> enrichKEGG(gene        =  DEG.gene_symbol,
          OrgDb          = Bactrocera.OrgDb,
          keyType        = 'ENTREZID',
          ont            = "DO",
          pvalueCutoff   = 0.01,
          qvalueCutofF   = 0.05,
          readable       = T)

5. GO出图解读

纵轴为GO中每一term,例如Legionellosis;
横轴为GeneRatio,即输入的基因,term在整体基因中所占的百分数;
圆圈大小表示count的数目;
p.adjust:p越小,圆越大,结果越可靠;

Rplot22.png

  1. 利用clusterProfiler进行富集分析

  2. 生物信息学教程-GO, KEGG, DO富集分析

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

推荐阅读更多精彩内容