非模式生物GO富集分析(结合eggnog mapper注释)

该文描述了一个生物信息学流程,用于从背景基因中选择关键基因,结合WGCNA得到的基因集进行GO富集分析。使用了R语言的包如readr,clusterProfiler和ggsci,通过enricher函数进行富集分析,然后绘制GO富集结果的条形图,展示不同功能类别下的显著性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 选取背景基因,即关键基因或差异基因(试情况而定)
key_gene = setdiff(key_gene_low_salinity,key_gene_normal) %>% intersect(wgcna_key_gene)

# 准备eggnog注释文件
library(readr)
Penaeus_chinensis_annotations <- read_delim("~/Program/pan_genome/data/annotation/Penaeus_chinensis_annotations.tsv", 
                                            delim = "\t", escape_double = FALSE, 
                                            comment = "#", trim_ws = TRUE)
# GO富集
## 准备GO注释内容

#   获取go term 编号对应的名称
library(GO.db)
goterms <- Term(GOTERM)
GOlist=as.data.frame(goterms)
go2name <- rownames_to_column(GOlist,var = 'GO_id') %>% 
  mutate(GO_id = str_sub(GO_id,4,10) )

#   获取每个基因对应的GO注释编号
GO_gene = Penaeus_chinensis_annotations %>% 
  dplyr::select(1,10) %>% 
  filter(GOs != "-") %>% 
  separate_rows(GOs,sep = ",",convert = F) %>% 
  mutate(GOs = substr(GOs,4,10)) %>% 
  unique()

GO_gene = GO_gene %>% dplyr::select(2,1)

library(clusterProfiler)
GO_result <- enricher(key_gene,
                  TERM2GENE = GO_gene,
                  TERM2NAME = go2name,
                  pvalueCutoff = 0.05,
                  qvalueCutoff = 0.2)

GO_result_data <- as.data.frame(GO_result) %>% filter(Description != "NA")

# 添加MF、BP、CC分类
go_ont <- go2ont(str_c("GO:",GO_result_data$ID,sep = "")) %>% 
  mutate(go_id = str_sub(go_id,4,10))

# 排序
go_df <- left_join(GO_result_data,go_ont,by=c("ID" = "go_id")) %>% 
  arrange(qvalue) %>% 
  arrange(Ontology)

# 转化为因子
go_df <- mutate(go_df,Description = factor(Description,levels = Description))

# 绘制条形图
library(ggsci)
ggplot(data = go_df,aes(x = Description,y=-log10(qvalue)))+
  geom_col(aes(fill = Ontology),width = 0.6)+
  scale_fill_npg()+
  theme_light() + 
  theme(axis.text = element_text(hjust = 1,
                                 angle = 70))+labs(x = "GO term")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘融晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值