寫在前面
因為我研究的物種比較小眾,很多注釋不完全省艳,R包AnnotationHub中也沒有對應信息郭膛,所以無法使用公共數據庫進行kegg富集分析。所以自己嘗試使用KAAS造一個自己的基因集派昧,然后再進行使用Y叔的clusterProfiler進行富集分析。我覺得這樣的好處是更和自己的物種相貼切拢切,不會有一些pathway自己物種中沒有但是公共庫中存在的情況(當然蒂萎,也有可能應該是有這個pathway的,kegg沒有注釋到)淮椰。
我的大體思路
- 使用KEGG注釋網站KAAS將自己的序列對比到KEGG數據庫的中五慈,得到基因與功能蛋白(K)的關系。
- 使用KO數據庫的mapping功能主穗,將功能蛋白(K)與pathway(ko)對應上泻拦,并得到pathway的注釋信息。
- 得到gene與pathway(ko)的對應關系忽媒。
- 利用clusterProfiler的enricher功能分析基因富集情況聪轿。
1. KAAS自動注釋
具體使用請參考簡書這篇文章
如何使用KAAS進行KEGG注釋
KAAS
KAAS程序
i基因集選擇
當分析完成后你郵件會收到一個網址,打開網址得到類似這個網頁
結果
html里有download KO list選項猾浦,里邊就是你的基因和功能蛋白(K)的關系陆错,沒有的可能是沒有和數據庫中的比對到。
基因和功能蛋白(K)的關系
ko_list
2. 功能蛋白K與pathway(ko)對應
將pathway(ko)提取出來金赦,放入https://www.genome.jp/kegg/ko.html中音瓷,將K number填入,單擊map pathway夹抗。
map_pathway
點擊show matched object 可以獲得該pathway(ko)下的功能蛋白K信息绳慎。
該pathway(ko)下的功能蛋白K信息
將此信息整理成K2ko的形式,即每個功能蛋白K對應的pathway(ko)和pathway(ko)的注釋信息term2name漠烧。(Excel和R語言均可處理杏愤,我的方法比較笨,就不在這里講了)已脓。
K2ko
term2name
3. 得到gene與pathway(ko)的對應關系
再將上一步得到的gene和K關系的結果準備好珊楼,使用R語言merge函數整理得到pathway(ko)和gene的對應信息term2gene。
K2gene
gene2ko=merge(k2gene,K2ko,by="K")
write.table(gene2ko,"gene2ko.tab",row.names = F,sep = "\t")
term2gene
4. 利用clusterProfiler的enricher功能分析基因富集情況度液。
之后利用clusterProfiler包進行一些常規(guī)分析厕宗。
library("clusterProfiler")
# 導入基因列表
gene <- read.csv("test_kegg_gene.txt",header = F,sep=",")
gene <- as.factor(gene$V1)
# 導入注釋文件
term2gene <- read.csv("./kegg/ko2gene.csv",header=T,sep=",")
term2name <- read.csv("term2keggName.csv",header=F,sep=",")
# 富集分析
x <- enricher(gene,TERM2GENE=term2gene,TERM2NAME=term2name,pvalueCutoff = 0.05,
pAdjustMethod = "BH",qvalueCutoff = 0.2) head(x)
# 繪制條形圖
barplot(x)
# 繪制氣泡圖
dotplot(x)
條形圖
氣泡圖