中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析

這篇文章將為大家詳細(xì)講解有關(guān)如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比水城網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式水城網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋水城地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。

第一步是使用eggnog-mapper做功能注釋

conda activate emapper
python emapper.py -i orgdb_example/GCF_000002945.1_ASM294v2_protein.faa --output orgdb_example/out -m diamond --cpu 8
 

將注釋結(jié)果下載到本地,手動(dòng)刪除前三行帶井號(hào)的行,第四行開(kāi)頭的井號(hào)去掉,文件末尾帶井號(hào)的行去掉。

 

利用R語(yǔ)言將注釋結(jié)果整理成enricher函數(shù)需要的輸入格式

 GO富集
library(stringr)
library(dplyr)
egg<-read.table("out.emapper.annotations",sep="\t",header=T)
egg[egg==""]<-NA
gterms <- egg %>%
 select(query_name, GOs) %>%
 na.omit()
gene2go <- data.frame(term = character(),
                     gene = character())
for (row in 1:nrow(gterms)) {
 gene_terms <- str_split(gterms[row,"GOs"], ",", simplify = FALSE)[[1]]
 gene_id <- gterms[row, "query_name"][[1]]
 tmp <- data_frame(gene = rep(gene_id, length(gene_terms)),
                   term = gene_terms)
 gene2go <- rbind(gene2go, tmp)
}
head(gene2go)

> head(gene2go)
# A tibble: 6 x 2
 gene           term
 <chr>          <chr>
1 NP_001018179.1 GO:0003674
2 NP_001018179.1 GO:0003824
3 NP_001018179.1 GO:0004418
4 NP_001018179.1 GO:0005575
5 NP_001018179.1 GO:0005622
6 NP_001018179.1 GO:0005623
 

獲得一個(gè)兩列的數(shù)據(jù)框,有了這個(gè)數(shù)據(jù)框就可以做GO富集分析了

在 https://www.jianshu.com/p/9c9e97167377 這篇文章里的評(píng)論區(qū)有人提到上面用到的for循環(huán)代碼效率比較低,他提供的代碼是

gene_ids <- egg$query_name
eggnog_lines_with_go <- egg$GOs!= ""
eggnog_lines_with_go
eggnog_annoations_go <- str_split(egg[eggnog_lines_with_go,]$GOs, ",")
gene_to_go <- data.frame(gene = rep(gene_ids[eggnog_lines_with_go],
                                  times = sapply(eggnog_annoations_go, length)),
                        term = unlist(eggnog_annoations_go))
head(gene_to_go)

> head(gene_to_go)
           gene       term
1 NP_001018179.1 GO:0003674
2 NP_001018179.1 GO:0003824
3 NP_001018179.1 GO:0004418
4 NP_001018179.1 GO:0005575
5 NP_001018179.1 GO:0005622
6 NP_001018179.1 GO:0005623
 

用這個(gè)代碼替換for循環(huán),確實(shí)快好多。

 接下來(lái)可以做GO富集分析了

首先準(zhǔn)備一個(gè)基因列表,我這里選取gene2go中的前40個(gè)基因作為測(cè)試 還需要為TERM2GENE=參數(shù)準(zhǔn)備一個(gè)數(shù)據(jù)框,第一列是term,第二列是基因ID,只需要把gene2go的列調(diào)換順序就可以了。

library(clusterProfiler)
gene_list<-gene2go$gene[1:40]
term2gene<-gene2go[,c(2,1)]
df<-enricher(gene=gene_list,
            pvalueCutoff = 0.05,
            pAdjustMethod = "BH",
            TERM2GENE = term2gene)
head(df)
barplot(df)
dotplot(df)
 

如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析

y軸的標(biāo)簽通常是GO term (就是文字的那個(gè))而不是GO id。clusterProfiler包同樣提供了函數(shù)對(duì)ID和term互相轉(zhuǎn)換。go2term()go2ont()

df<-as.data.frame(df)
head(df)
dim(df)
df1<-go2term(df$ID)
dim(df1)
head(df1)
df$term<-df1$Term
df2<-go2ont(df$ID)
dim(df2)
head(df2)
df$Ont<-df2$Ontology
head(df)
df3<-df%>%
 select(c("term","Ont","pvalue"))
head(df3)
library(ggplot2)
ggplot(df3,aes(x=term,y=-log10(pvalue)))+
 geom_col(aes(fill=Ont))+
 coord_flip()+labs(x="")+
 theme_bw()
 
如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析  
image.png

這里遇到一個(gè)問(wèn)題:數(shù)據(jù)框如何分組排序?目前想到一個(gè)比較麻煩的辦法是將每組數(shù)據(jù)弄成一個(gè)單獨(dú)的數(shù)據(jù)框,排好序后再合并。

 KEGG富集
library(stringr)
library(dplyr)
library(clusterProfiler)
egg<-read.table("out.emapper.annotations",sep="\t",header=T)
egg[egg==""]<-NA
gene2ko <- egg %>%
 dplyr::select(GID = query_name, Ko = KEGG_ko) %>%
 na.omit()
head(gene2ko)
head(gene2go)
gene2ko[,2]<-gsub("ko:","",gene2ko[,2])
head(gene2ko)
#kegg_info.RData這個(gè)文件里有pathway2name這個(gè)對(duì)象
load(file = "kegg_info.RData")
pathway2gene <- gene2ko %>% left_join(ko2pathway, by = "Ko") %>%
 dplyr::select(pathway=Pathway,gene=GID) %>%
 na.omit()
head(pathway2gene)
pathway2name
df<-enricher(gene=gene_list,
            pvalueCutoff = 0.05,
            pAdjustMethod = "BH",
            TERM2GENE = pathway2gene,
            TERM2NAME = pathway2name)
dotplot(df)
barplot(df)
 

如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析

以上最開(kāi)始的輸入文件是eggnog-mapper軟件本地版注釋結(jié)果,如果用在線(xiàn)版獲得的注釋結(jié)果,下載的結(jié)果好像沒(méi)有表頭,需要自己對(duì)應(yīng)好要選擇的列。

關(guān)于“如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:如何使用clusterProfiler包利用eggnog-mapper軟件注釋結(jié)果做GO和KEGG富集分析
本文路徑:http://www.rwnh.cn/article4/jiesoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化、微信公眾號(hào)網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
荆门市| 甘谷县| 永兴县| 浪卡子县| 谷城县| 策勒县| 蒙自县| 马龙县| 海安县| 乌恰县| 辽中县| 如皋市| 深泽县| 襄汾县| 大理市| 阳曲县| 全椒县| 德保县| 临邑县| 龙江县| 高密市| 茌平县| 石城县| 宝坻区| 磐安县| 长汀县| 湟源县| 东辽县| 武邑县| 永寿县| 宁陵县| 凉山| 炎陵县| 固安县| 称多县| 长春市| 临高县| 和田市| 河曲县| 隆安县| 青铜峡市|