当前位置: 首页 > news >正文

专治疗懒病:GO、KEGG富集分析一体函数

之前我们写过GO、KEGG的富集分析,参见:补充更新:GO、KEGG(批量分组)分析及可视化。演示了差异基因KEGG或者GO的分析流程。其实差异基因的富集分析输入的文件只需要一组基因就可以了。所以我们发挥了专治懒病的优良传统,将KEGG、GO(BP、CC、MF)的分析封装为一个函数,您只需要提供gene,选择物种即可,只有human和mouse。而且一次性完成KEGG和GO分析结果,免去了分析两次的麻烦。这样应该也不会出错了吧。

函数内容如下:其中相关参数可按照自己的需求修改!

Enrichment_KEGGgo_analusis <- function(genes,                                       species=c('human','mouse')){  library(org.Hs.eg.db)   library(clusterProfiler)    if(species == 'human'){        genes_df <- bitr(genes,                      fromType="SYMBOL",                      toType="ENTREZID",                      OrgDb="org.Hs.eg.db",                      drop = TRUE)         organism = "hsa"    OrgDb = org.Hs.eg.db  }    if(species == 'mouse'){        genes_df <- bitr(genes,                      fromType="SYMBOL",                      toType="ENTREZID",                      OrgDb="org.Mm.eg.db",                      drop = TRUE)     organism = "mmu"    OrgDb = org.Mm.eg.db  }      colnames(genes_df) <- c("gene","EntrzID")            # KEGG  kegg.re <- enrichKEGG(gene = genes_df$EntrzID,                         organism  = organism,                         keyType = "kegg",                        pAdjustMethod = "fdr",                        pvalueCutoff = 0.05,                         qvalueCutoff = 0.05,                         minGSSize = 10,                        maxGSSize = 500)    if (is.null(kegg.re)) {} else {kegg.re <- setReadable(kegg.re, OrgDb = OrgDb, keyType="ENTREZID")}  print("kegg Done")    # GO  go.re1 <- enrichGO(gene = genes_df$EntrzID,                      keyType = "ENTREZID",                      OrgDb= OrgDb,                      ont="BP",                      pAdjustMethod = "fdr",                      pvalueCutoff  = 0.05,                      qvalueCutoff  = 0.05,                      minGSSize = 10,                     maxGSSize = 500,                      readable = TRUE);   print("GOBP Done")    go.re2 <- enrichGO(gene = genes_df$EntrzID,                      keyType = "ENTREZID",                      OrgDb= OrgDb,                      ont="CC",                      pAdjustMethod = "fdr",                      pvalueCutoff  = 0.05,                      qvalueCutoff  = 0.05,                      minGSSize = 10,                      maxGSSize = 500,                      readable = TRUE);   print("GOCC Done")    go.re3 <- enrichGO(gene = genes_df$EntrzID,                      keyType = "ENTREZID",                      OrgDb= OrgDb,                      ont="MF",                      pAdjustMethod = "fdr",                     pvalueCutoff  = 0.05,                      qvalueCutoff  = 0.05,                      minGSSize = 10,                      maxGSSize = 500,                      readable = TRUE);   print("GOMF Done")  
  enrich_list <- list(kegg.re, go.re1, go.re2, go.re3)  names(enrich_list) <- c("KEGG","GO_BP","GO_CC","GO_MF")  return(enrich_list)}

我们演示一下。这里我们直接用向量提供了基因。如果您的文件是差异基因,很好弄,只需要$符号传入gene symbol那一列即可。

genes <- c(c('MAST4','IL4R','SYT1','PRDM1','AUTS2','KNL1',             'CD79A', "PLXDC2","NKG7","NELL2","BACH2","DIAPH3",             "SYN3",  "NTNG1",  "ADAM23","SOX5","TMPO",             "ARHGAP6","FCRL1","CD19"))results <- Enrichment_KEGGgo_analusis(genes = genes,                                      species = 'human')                                                                            #运行日志载入需要的程辑包:AnnotationDbi
clusterProfiler v4.6.2  For help: https://yulab-smu.top/biomedical-knowledge-mining-book/
If you use clusterProfiler in published research, please cite:T Wu, E Hu, S Xu, M Chen, P Guo, Z Dai, T Feng, L Zhou, W Tang, L Zhan, X Fu, S Liu, X Bo, and G Yu. clusterProfiler 4.0: A universal enrichment tool for interpreting omics data. The Innovation. 2021, 2(3):100141
载入程辑包:‘clusterProfiler’
The following object is masked from ‘package:AnnotationDbi’:
    select
The following object is masked from ‘package:IRanges’:
    slice
The following object is masked from ‘package:S4Vectors’:
    rename
The following objects are masked from ‘package:plyr’:
    arrange, mutate, rename, summarise
The following object is masked from ‘package:stats’:
    filter
'select()' returned 1:1 mapping between keys and columnsReading KEGG annotation online: "https://rest.kegg.jp/link/hsa/pathway"...Reading KEGG annotation online: "https://rest.kegg.jp/list/pathway/hsa"...[1] "kegg Done"[1] "GOBP Done"[1] "GOCC Done"[1] "GOMF Done"Warning messages:1: 程辑包‘AnnotationDbi’是用R版本4.2.2 来建造的 2: In utils::download.file(url, quiet = TRUE, method = method, ...) :  the 'wininet' method is deprecated for http:// and https:// URLs3: In utils::download.file(url, quiet = TRUE, method = method, ...) :  the 'wininet' method is deprecated for http:// and https:// URLs                                                        

结果分别储存在list中,这样很方便了吧!

图片

有需要的可以试一下,总之是为了省时省力,那些在线的分析工具的底层原理也就是这样。觉得分享有用的点个赞、分享下再走呗!

相关文章:

专治疗懒病:GO、KEGG富集分析一体函数

之前我们写过GO、KEGG的富集分析&#xff0c;参见&#xff1a;补充更新&#xff1a;GO、KEGG&#xff08;批量分组&#xff09;分析及可视化。演示了差异基因KEGG或者GO的分析流程。其实差异基因的富集分析输入的文件只需要一组基因就可以了。所以我们发挥了专治懒病的优良传统…...

pygame第6课——贪吃蛇小游戏

今天我们开始Pygame的第六课&#xff0c;前几节课的内容在这里【点我】&#xff0c;欢迎大家前去考古&#xff1a; 今天我们一起来学习制作一个小游戏【贪吃蛇】&#xff0c;这是一个非常经典的小游戏&#xff0c;那么我们一起开始吧 1、游戏准备工作 import pygame, random,o…...

iptables之iptables表、链、规则 、匹配模式、扩展模块、连接追踪模块(一)

一、iptables的链 1.请求到达本机&#xff1a; PREROUTING --> INPUT --> Local Process &#xff08;本机&#xff09; 2.请求经过本机&#xff1a; PREROUTING --> FORWARD --> POSTROUTING 3.请求从本机发出&#xff1a;local Process&#xff08;本机&#xf…...

Mac 卸载appium

安装了最新版的appium 2.0.1,使用中各种问题&#xff0c;卡顿....,最终决定回退的。记录下卸载的过程 1.打开终端应用程序 2.卸载全局安装的 Appium 运行以下命令以卸载全局安装的 Appium&#xff1a; npm uninstall -g appium 出现报错&#xff1a;Error: EACCES: permiss…...

数据结构----哈夫曼树

这里写目录标题 基本概念引子基本概念各种路径长度各种带权路径长度结点的带权路径长度树的带权路径长度哈夫曼树 哈夫曼树的构造理论基础构造思想总结 哈夫曼树的实现哈夫曼编码前缀编码哈夫曼编码的思想案例代码实现 编码与解码 基本概念 引子 哈夫曼树就是寻找构造最优二叉…...

Spring之Aop切面---日志收集(环绕处理、前置处理方式)--使用/教程/实例

Spring之Aop切面---日志收集&#xff08;环绕处理、前置处理方式&#xff09;--使用/教程/实例 简介系统登录日志类LoginLogEntity .java 一、环绕处理方式1、自定义注解类LoginLogAop.class2、切面处理类LogoutLogAspect.java 二、前置处理方式&#xff1a;1、自定义注解类Log…...

UE4/UE5 照明构建失败 “Lightmass crashed”解决“数组索引越界”

在构建全局光照时,经常会出现“Lightmass crashed”的错误,导致光照构建失败。本文将分析这一问题的原因,并给出解决建议。 UE4 版本4.26 报错如下&#xff1a; <None> Lightmass crashed: Assertion failed: (Index > 0) & (Index < ArrayNum) [File:d:\bu…...

并发编程系列-Semaphore

Semaphore&#xff0c;如今通常被翻译为"信号量"&#xff0c;过去也曾被翻译为"信号灯"&#xff0c;因为类似于现实生活中的红绿灯&#xff0c;车辆是否能通行取决于是否是绿灯。同样&#xff0c;在编程世界中&#xff0c;线程是否能执行取决于信号量是否允…...

3年 Android 开发的面试心经(后悔当初没有拿 N+1)

作者&#xff1a;勇闯天涯 当某人顺利通过大厂面试时&#xff0c;总会有人认为这是运气比较好罢了&#xff0c;但他们不曾得知对方之前受过多少苦和委屈&#xff0c;又付出了多少努力一步步去突破这些困境。正是因为他们的努力付出&#xff0c;在合适的时间与地点&#xff0c;用…...

【c语言】 -- 指针进阶

&#x1f4d5;博主介绍&#xff1a;目前大一正在学习c语言&#xff0c;数据结构&#xff0c;计算机网络。 c语言学习&#xff0c;是为了更好的学习其他的编程语言&#xff0c;C语言是母体语言&#xff0c;是人机交互接近底层的桥梁。 本章来学习指针进阶。 让我们开启c语言学习…...

软件压力测试对软件产品起到什么作用?

一、软件压力测试是什么? 软件压力测试是一种通过模拟正常使用环境中可能出现的大量用户和大数据量的情况&#xff0c;来评估软件系统在压力下的稳定性和性能表现的测试方法。在软件开发过程中&#xff0c;经常会遇到一些性能瓶颈和稳定性问题&#xff0c;而软件压力测试的作…...

Stephen Wolfram:那么…ChatGPT 在做什么,为什么它有效呢?

So … What Is ChatGPT Doing, and Why Does It Work? 那么…ChatGPT在做什么&#xff0c;为什么它有效呢&#xff1f; The basic concept of ChatGPT is at some level rather simple. Start from a huge sample of human-created text from the web, books, etc. Then train…...

机器学习基础(五)

决策树 决策树是一种预测模型,它代表着对象属属性与对象值之间的一种映射关系。树中的每个节点代表一个对象,分叉路径(或者叫树枝)则代表一个属性值。 决策树常用方法: 分类树分析,是一种监督学习,用于预计结果可能为离散类型。 回归树分析,用于预计结果为实数。 CART,…...

阿里云服务器安装WordPress网站教程基于CentOS系统

阿里云百科分享使用阿里云服务器安装WordPress博客网站教程&#xff0c;WordPress是使用PHP语言开发的博客平台&#xff0c;在支持PHP和MySQL数据库的服务器上&#xff0c;您可以用WordPress架设自己的网站&#xff0c;也可以用作内容管理系统&#xff08;CMS&#xff09;。本教…...

【100天精通python】Day37:GUI界面编程_PyQT从入门到实战(上)

目录 专栏导读 1 PyQt6 简介&#xff1a; 1.1 安装 PyQt6 和相关工具&#xff1a; 1.2 PyQt6 基础知识&#xff1a; 1.2.1 Qt 的基本概念和组件&#xff1a; 1.2.2 创建和使用 Qt 窗口、标签、按钮等基本组件 1.2.3 布局管理器&#xff1a;垂直布局、水平布局、网格布局…...

数据结构—散列表的查找

7.4散列表的查找 7.4.1散列表的基本概念 基本思想&#xff1a;记录的存储位置域关键字之间存在对应关系 ​ 对应关系——hash函数 ​ Loc&#xff08;i&#xff09; H&#xff08;keyi&#xff09; 如何查找&#xff1a; 根据散列函数 H(key) k 查找key9&#xff0c;则访…...

Expo项目 使用Native base UI库

装包&#xff1a; yarn add native-base expo install react-native-svg12.1.1 Index.js: import React from react import { View, Text } from react-native import useList from ./useList import { NativeBaseProvider, Button, Box } from native-base import styles f…...

74、75、76——tomcat项目实战

tomcat项目实战 tomcat 依赖 java运行环境,必须要有jre , 选择 jdk1.8 JvmPertest 千万不能用 kyj易捷支付 项目机器 选择 一台机器 ,安装jdk1.8的机器下载tomcat的包 上传到机器,解压tomcattomcat文件 bin文件夹: 启动文件 堆栈配置文件 catalina.sh JAVA_OPTS="-Xm…...

jmeter errstr :“unsupported field type for multipart.FileHeader“

在使用jmeter测试接口的时候&#xff0c;提示errstr :"unsupported field type for multipart.FileHeader"如图所示 这是因为我们 在HTTP信息头管理加content-type参数有问题 直接在HTTP请求中&#xff0c;勾选&#xff1a; use multipart/form-data for POST【中文…...

C#调用C++ DLL传参byte[]数组字节值大于127时会变为0x3f的问题解决

最近做了一个网络编程的DLL给C#调用&#xff0c;DLL中封装了一个TCP Client的函数接口&#xff0c;如下所示 //C TCP报文发送接口 int TcpClient_send(unsigned char* buffSend, unsigned int nLen) {unsigned char buff[1024];int len StringToHex(buffSend, buff);int nRet…...

AI教材生成强力工具!低查重保障,让教材编写事半功倍!

梳理教材知识点确实是一项“精细活”&#xff0c;最大的挑战在于平衡和衔接知识之间的关系。如果不小心&#xff0c;很可能会遗漏一些核心知识点&#xff0c;或者在难度的把控上出现问题——小学教材常常写得过于复杂&#xff0c;让学生难以理解&#xff1b;而高中教材又可能显…...

如何用FCEUX重温经典游戏?全场景部署指南

如何用FCEUX重温经典游戏&#xff1f;全场景部署指南 【免费下载链接】fceux FCEUX, a NES Emulator 项目地址: https://gitcode.com/gh_mirrors/fc/fceux 为什么选择FCEUX模拟器&#xff1f;&#x1f3ae; 在众多NES模拟器中&#xff0c;FCEUX凭借三大核心优势脱颖而出…...

feishu2md:飞书文档批量下载与Markdown转换解决方案

feishu2md&#xff1a;飞书文档批量下载与Markdown转换解决方案 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 在团队协作和知识管理场景中&#xff0c;飞书文档已成为许多组织的核心工具。然而&…...

高效解决多设备滚动冲突难题的Scroll Reverser工具

高效解决多设备滚动冲突难题的Scroll Reverser工具 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser Scroll Reverser是一款专为macOS用户设计的开源效率工具&#xff0c;它能够为…...

【实战指南】SVN SSL协议不兼容问题:从TLS版本冲突到降级解决方案

1. 当SVN遇上SSL&#xff1a;TLS协议冲突的典型症状 最近在帮团队排查SVN代码拉取问题时&#xff0c;遇到了一个经典的错误提示&#xff1a;"error running context: an error occurred during ssl communication"。这个看似简单的报错背后&#xff0c;其实是现代加密…...

如何5分钟构建专业级黑苹果EFI?OpCore Simplify让复杂配置一键搞定

如何5分钟构建专业级黑苹果EFI&#xff1f;OpCore Simplify让复杂配置一键搞定 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 副标题&#xff1a;告别…...

Qwen3-0.6B-FP8多语言落地:支持粤语、闽南语、藏语等方言指令理解实测

Qwen3-0.6B-FP8多语言落地&#xff1a;支持粤语、闽南语、藏语等方言指令理解实测 1. 引言&#xff1a;当AI能听懂你的家乡话 想象一下&#xff0c;你正在用粤语和AI助手聊天&#xff0c;让它帮你写一份工作报告&#xff1b;或者用闽南语问它今天的天气&#xff0c;它不仅能听…...

python-flask-djangol框架的考公考编学习课程资料推荐系统

目录技术选型与架构设计数据采集与处理推荐算法实现用户画像构建前端交互与功能部署与优化合规与扩展项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术选型与架构设计 采用Python Flask作为后端框架&#xff0c;搭配SQLAlch…...

AI持续爆火,相关岗位薪资到底达到了多少,AI大模型岗位薪资真相:多少年包能拿到?普通人如何破局?

“AI相关岗位薪资” 随着AI持续火爆&#xff0c;各大厂也都在招聘相关人才&#xff0c;近日OfferShow专门对AI相关岗位的工资情况进行了一期专题汇总&#xff0c;都是校招岗位年包90W左右年包100W年包80w70W50W左右40W左右54W左右34W左右。 看大家投票可信度还是挺高的&#xf…...

BGE嵌入模型突破指南:解锁多模态检索增强的实战路径

BGE嵌入模型突破指南&#xff1a;解锁多模态检索增强的实战路径 【免费下载链接】FlagEmbedding Dense Retrieval and Retrieval-augmented LLMs 项目地址: https://gitcode.com/GitHub_Trending/fl/FlagEmbedding 在信息爆炸的时代&#xff0c;如何让机器精准理解人类语…...