免费JIZZ大全

clusterProfiler非模式物種 KEGG與GO富集分析

非模式物種 KEGG與GO富集分析

1.問題

做基因的GO或者kegg富集分析,需要基因組當中所有基因的GO與KEGG數據庫的注釋信息,對于做模式物種的人來說很簡單,有現成的注釋結果,直接使用就可以,比如人里面可以直接用clusterProfiler進行基因集的富集分析;但是,對于非模式動物與植物的研究對象往往沒有現成的注釋結果,就沒法直接進行富集分析;

因此學會基因功能批量注釋非常重要;這里介紹一種方法可以針對所有的非模式物種進行GO和KEGG富集分析;

2.基因批量注釋


使用eggNOG對基因組進行注釋,要想進行富集分析,首先要有背景數據集的GO注釋和KEGG注釋,這里選用eggNOG進行注釋。

是在線服務器,點點鼠標上傳就能注釋,無需復雜配置。eggNOG雖然是web server,但一次最多可以注釋10萬條序列,應該是完全可以滿足需求的。

網站:http://eggnog-mapper.embl.de/


將自己的基因對應的cds序列或者蛋白序列提交到該網站即可注釋:

attachments-2021-07-ATwKTUHE60de85140c571.png


有時候在線注釋排隊等候時間太久:

可以參考這里本地計算機批量注釋:http://gollyjoe.com/article/1515?




3.GO富集分析需要準備的文件:

研究物種基因組中所有基因對應的GO文件:

go2gene.tsv? :? 通過eggNOG注釋結果文件整理得到

GO GENE
CLASS
GO:0000165 Pg_S3686.2
biological_process
GO:0003674 Pg_S3686.2?
molecular_function
... ... ...


go2name.tsv:GO term對應的功能描述文件

首先需要去GO下載GO的obo文件,這里我使用go-basic.obo然后我寫了個腳本可以把obo文件解析為如下格式:



GO DESC CLASS
GO:0000001 mitochondrion inheritance biological_process
GO:0000007 low-affinity zinc ion transmembrane transporter activity molecular_function


4. KEGG富集分析需要的文件


ko2gene.tsv :?通過eggNOG注釋結果文件整理得到

KO GENE
ko00920 Pg_S3686.2
ko01100 Pg_S33386.2

ko2name.tsv???ko通路對應的名稱: http://www.genome.jp/kegg/pathway.html

KO DESC?
ko00440 Phosphonate and phosphinate metabolism
ko00450 Selenocompound metabolism
ko00460 Cyanoamino acid metabolism
ko00471 D-Glutamine and D-glutamate metabolism
ko00472 D-Arginine and D-ornithine metabolism
ko00473 D-Alanine metabolism
ko00480 Glutathione metabolism
ko00510 N-Glycan biosynthesis
ko00513 Various types of N-glycan biosynthesis
ko00512 Mucin type O-glycan biosynthesis


5.富集分析

利用clusterProfiler中的enricher這個通用函數進行富集分析:

library(clusterProfiler)
ko2name <- read.delim('ko2name.tsv', stringsAsFactors=FALSE)
ko2gene <- read.delim('ko2gene.tsv', stringsAsFactors=FALSE)
go2name <- read.delim('gog2name.tsv', stringsAsFactors=FALSE)
go2gene <-read.delim('go2gene.tsv', stringsAsFactors=FALSE)
# 前面獲取gene list的過程略
gene_list<- read.delim('gene.tsv', stringsAsFactors=FALSE)
# GO富集
## 拆分成BP,MF,CC三個數據框
go2gene?= split(go2gene?, with(go2gene?, CLASS))
## 以MF為例
enricher(gene_list,TERM2GENE=go2gene [['molecular_function']][c(1,2)],TERM2NAME=go2name?)
# KEGG富集
enricher(gene_list,TERM2GENE=ko2name?,TERM2NAME=ko2gene?)


具體代碼與操作見視頻課程:




  • 發表于 2021-06-30 15:21
  • 閱讀 ( 3486 )
  • 分類:轉錄組

0 條評論

請先 登錄 后評論
omicsgene
omicsgene

生物信息

529 篇文章

作家榜 ?

  1. omicsgene 529 文章
  2. 安生水 252 文章
  3. Daitoue 167 文章
  4. 生物女學霸 120 文章
  5. 紅橙子 78 文章
  6. CORNERSTONE 72 文章
  7. 生信老頑童 48 文章
  8. landy 37 文章