功能注释后如何做富集分析

简介: 功能注释后如何做富集分析本文是为了回答知识星球里的一个提问,他为了用clusterProfiler做富集分析,打算构建一个OrgDb,也就是物种数据库。

功能注释后如何做富集分析

本文是为了回答知识星球里的一个提问,他为了用clusterProfiler做富集分析,打算构建一个OrgDb,也就是物种数据库。

img_e90468fd93ab5d570cc60f6a3b514d04.png
提问

我之前写过用Bioconductor对基因组注释,用Bioconductor/AnnotationHub对模式植物的基因进行注释。昨天的推送,我讲过新物种的注释基本上都是基于同源相似性搜索数据库完成,最后得到的就是基因名和数据库中注释的对应关系。OrgdbBioconductor计划中其中一环,通过构建一个物种各个数据库注释条目和基因的对应关系数据库,方便在得到基因后对基因进行注释。

enrichGO的前三个参数gene,OrgDb,keyType的目的是利用数据库将基因编号转换成GO号。enrichKEGG的前三个参数gene, organism,keyType 的目的也是为了基于物种名和基因编号直接爬取KEGG,将基因编号转换成KO号。

如果你只是为了做GO和KEGG富集分析,有必要构建物种数据库吗?我的答案是没有必要,因为不构建物种数据库也能够用clusterProfiler做富集分析。

我相信Y叔一定提供了不通过OrgDb,将转换基因编号为GO/KO编号,然后做富集分析的方法,所以我就去翻了Y叔为clusterProfiler写的文档。于是我找到这一篇use clusterProfiler as an universal enrichment analysis tool, 这里面提到了一个通用的函数enricher用于支持新注释物种.

核心参数两个gene,TERM2GENE,前者表示的基因编号,后者是GO/KEGG条目和基因编号的对应关系

enricher(gene, pvalueCutoff = 0.05, pAdjustMethod = "BH", universe,
  minGSSize = 10, maxGSSize = 500, qvalueCutoff = 0.2, TERM2GENE,
  TERM2NAME = NA)

由于我只拿到了我的KEGG注释,GO注释还在运行中,这次就以KEGG富集分析作为例子。

我从KEGG上拿到的注释是下面这种情况,很明显,有些基因没有注释。这些没有注释的基因应该如何注释?Y叔的建议是不要,全部丢掉,原因去参考资料中找。

CAROC969890.1
CAROC969900.1   K12736
CAROC969910.1   K02943
CAROC969920.1   K13356
CAROC969930.1
CAROC969940.1
CAROC969950.1
CAROC969960.1
CAROC969970.1
CAROC969980.1

简单的grep就可以完成这个剔除工作,grep K query.ko > kegg.tsv,然后将kegg.tsv导入到我们的R语言中

gene_ko <- read.table("C:/Users/DELL/Desktop/KEGG.tsv", header = FALSE,
                      sep = "\t")

然后我们随机抽样几个基因作为gene输入,同时构建TERM2GENE的输入

term2gene <- data.frame(TERM=gene_ko$V2, GENE=gene_ko$V1)
gene_sample <- sample(gene_ko$V1, 100)
enkegg <- enricher(gene_sample, TERM2GENE = term2gene, pAdjustMethod = "none")

我这里不用多重实验矫正的原因,因为我是随机抽的基因,很有可能是一个富集都找不到。。所以为了后续演示,就把矫正去掉了,真实情况下,你是要的。

参考资料

目录
相关文章
|
算法
GSEA 富集分析原理分析
本分分享了自己学习参考多篇 关于GSEA 原理的博客文献后总结的个人理解,以供参考学习
388 0
|
2月前
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
51 4
|
6月前
|
搜索推荐
代码分享|GPL平台没有基因注释什么办?别慌,基因ID注释万能公式!
本文介绍了处理无基因注释的GEO数据集的方法。当遇到GPL平台无基因注释时,可以通过以下步骤解决:1) 查看数据集补充文件中是否已有注释矩阵;2) 使用搜索引擎或官网查找相关资源;3) 如数据集较新,尝试联系平台官方;4) 利用已有经验进行转换。文中通过多个GSE示例详细解释了如何处理不同情况,并提醒读者注意检查数据集中可能隐藏的注释信息。作者提供了转换ID的代码,并在公众号“多线程核糖体”分享了相关资源。
589 0
|
6月前
|
自然语言处理 数据挖掘 Java
20源代码模型的数据增强方法:克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码补全、代码翻译、代码问答、问题分类、方法名称预测和类型预测对论文进行分组【网安AIGC专题11.15】
20源代码模型的数据增强方法:克隆检测、缺陷检测和修复、代码摘要、代码搜索、代码补全、代码翻译、代码问答、问题分类、方法名称预测和类型预测对论文进行分组【网安AIGC专题11.15】
271 0
|
12月前
|
机器学习/深度学习 自然语言处理 安全
【网安AIGC专题10.11】论文1:生成式模型GPT\CodeX填充式模型CodeT5\INCODER+大模型自动程序修复(生成整个修复函数、修复代码填充、单行代码生产、生成的修复代码排序和过滤)
【网安AIGC专题10.11】论文1:生成式模型GPT\CodeX填充式模型CodeT5\INCODER+大模型自动程序修复(生成整个修复函数、修复代码填充、单行代码生产、生成的修复代码排序和过滤)
186 0
|
数据采集 监控 数据可视化
做出酷炫的动态统计图表,不一定要写代码
首先这个名字很长的,就是上面 GDP 图表的作者 Jannchie见齐 基于 D3.js 开发的 将历史数据排名转化为动态柱状图图表 的项目,并在 github 上开源了。
|
数据挖掘 atlas 数据库
单细胞工具箱|singleR-单细胞类型自动注释(含数据版)
单细胞工具箱|singleR-单细胞类型自动注释(含数据版)
1561 0
|
存储 数据可视化 atlas
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
551 0
|
数据挖掘 atlas 数据库
单细胞工具箱|singleR-单细胞类型自动注释
单细胞工具箱|singleR-单细胞类型自动注释
346 0
基于内容的图像检索系统 课设总结分析 00结果展示
基于内容的图像检索系统 课设总结分析 00结果展示
62 0
基于内容的图像检索系统 课设总结分析 00结果展示