GO富集分析及结果柱状图绘制R代码

本文介绍了如何使用R语言进行GO富集分析,并详细讲解了利用R代码绘制富集结果的柱状图。通过参考相关教程,读者将能够掌握这一生物信息学中的关键步骤。
摘要由CSDN通过智能技术生成
target_gene_id <- unique(read.delim("miRNA-gene interactions.txt")$EntrezID)
# BiocInstaller::biocLite("clusterProfiler")
# BiocInstaller::biocLite("org.Hs.eg.db")

display_number = c(15, 10, 15)
## GO enrichment with clusterProfiler
library(clusterProfiler)
ego_MF <- enrichGO(OrgDb="org.Hs.eg.db",
             gene = target_gene_id,
             pvalueCutoff = 0.05,
             ont = "MF",
             readable=TRUE)
ego_result_MF <- as.data.frame(ego_MF)[1:display_number[1], ]
# ego_result_MF <- ego_result_MF[order(ego_result_MF$Count),]

ego_CC <- enrichGO(OrgDb="org.Hs.eg.db",
                   gene = target_gene_id,
             
在R中,可以使用`ClusterProfiler`包进行基因富集分析,并使用`ggplot2`包绘制横向柱状图。以下是一个示例代码: ```R # 安装和加载相应的R包 library(ClusterProfiler) library(ggplot2) # 读取差异表达结果和基因注释信息 res <- read.table("diff_expr_results.txt", header = TRUE) anno <- read.table("gene_annotation.txt", header = TRUE) # 提取显著差异的基因 sig_genes <- subset(res, padj < 0.05 & abs(log2FoldChange) > 1, select = "Gene") # 进行mRNA和lncRNA的富集分析 mRNA_genes <- sig_genes[sig_genes$Gene %in% anno$Gene[anno$gene_type == "mRNA"], "Gene"] lncRNA_genes <- sig_genes[sig_genes$Gene %in% anno$Gene[anno$gene_type == "lncRNA"], "Gene"] mRNA_enrich <- enrichGO(mRNA_genes, OrgDb = "org.Hs.eg.db", ont = "BP", pvalueCutoff = 0.05, qvalueCutoff = 0.1, universe = anno$Gene[anno$gene_type == "mRNA"]) lncRNA_enrich <- enrichGO(lncRNA_genes, OrgDb = "org.Hs.eg.db", ont = "BP", pvalueCutoff = 0.05, qvalueCutoff = 0.1, universe = anno$Gene[anno$gene_type == "lncRNA"]) # 提取富集分析结果 mRNA_enrich_df <- as.data.frame(mRNA_enrich@result[,c("Description", "pvalue", "qvalue")]) lncRNA_enrich_df <- as.data.frame(lncRNA_enrich@result[,c("Description", "pvalue", "qvalue")]) # 绘制横向柱状图 mRNA_enrich_df$Category <- "mRNA" lncRNA_enrich_df$Category <- "lncRNA" enrich_df <- rbind(mRNA_enrich_df, lncRNA_enrich_df) ggplot(enrich_df, aes(x = -log10(qvalue), y = reorder(Description, -log10(qvalue)), fill = Category)) + geom_bar(stat = "identity", position = "dodge") + xlab("-log10(qvalue)") + ylab("") + theme(legend.position = "top", axis.text.y = element_text(size = 8)) + scale_fill_manual(values = c("mRNA" = "blue", "lncRNA" = "red")) ``` 在上述代码中,我们首先读取差异表达结果和基因注释信息,并根据转录本生物类型将显著差异的基因分别进行富集分析。然后,我们提取富集分析结果中的Description、pvalue和qvalue等信息,并将mRNA和lncRNA的富集分析结果合并。最后,我们使用`ggplot2`包绘制横向柱状图,将Description作为y轴,-log10(qvalue)作为x轴,并使用柱子的颜色区分mRNA和lncRNA。需要注意的是,实际应用中需要根据实验设计和研究目的进行相应的优化和调整。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值