功能富集分析 | GO| KEGG

写在前面

我们《复现SCI文章系列教程》专栏现在是免费开放,推出这个专栏差不多半年的时间,但是由于个人的精力和时间有限,只更新了一部分。后续的更新太慢了。因此,最终考虑后还是免费开放吧,反正不是什么那么神秘的东西。原本就是一个套路的文章,此外,这篇文章也相对比较简单。在此章节以前,还有一个WGCNA的分析,你若需要可以看**WGCNA分析 | 全流程分析代码**

目前全部开放链接:

  1. SCI文章复现 | GEO文章套路,数据下载和批次效应处理
  2. 差异分析和PPI网路图绘制教程

原付费:复现SCI文章系列教程文章

  1. 订阅《复现SCI文章系列教程》须知
  2. 复现SCI文章系列 | 第一篇文章复现:1. 文章讨论与文章分析套路讲解
  3. 2.1 材料与方法 (IF 7.3)
  4. 2.2 数据集下载 (IF 7.3)
  5. 2.3 数据去重和标准化(附送去批次效应)
  6. 2.4 差异分析
  7. 2.5 加权基因共表达分析(WGCNA)
  8. 2.6 PPI网络分析

本期推文内容

2.7.1 章节总结

在前的教程中,我们已经获得差异基因(2.4 差异分析)和获得与纤维化相关的模块基因。此教程,我们做功能富集分析。但是,此数据问题依旧是很大的影响因素,严重影响后续的分析。

2.7.2 文章结果内容

  1. GO和KEGG富集分析结果
  2. 分析结果图

2.7.3 取交集

根据文章分析流程,将DEGs和WGNCA分析获得的结果去交集,获得的交集基因进行后续分析。

在差异分析中,我们获得600多个DEGs,在WGCNA分析中,与纤维化相关的模块为“yellow”

共有200多个基因。

WGCNA分析全部结果。

2.7.4 获得交集并绘制韦恩图

汇总数据

绘制vennplot,可以是哟TBtools绘制韦恩图,很是方便。或是直接使用我们前提教程进行绘制,基于R语言绘制VennPlot图 | 可以绘制大于等于7个类别的码.


根据筛选出来的关键模块,采用GS>0.2,MM>0.8筛选高度关联基因并与差异基因取交集。我们在自己做分析时,或在写论文时,其实这些参数可以写进论文中,对读者是比较友好的。

但是这里的结果真的是出乎我的意料。我们继续往下看。

绘制维恩图代码

setwd("E:\\小杜的生信筆記\\2023-复现期刊文章系列教程\\复现文章一分析\\05.功能富集分析")
library(VennDiagram) 
library(ggplot2) 
library(venn) 
library(RColorBrewer) readFlie=function(input,type,row=T,header=T){ # input 为读入文件的路径,type为读入文件的类型,格式为‘.txt’或‘.csv’,row=T,将文件的第一列设置为列名 library(data.table,quietly = TRUE) if(type=='txt'){ dat = fread(input,header = header,sep='\t',stringsAsFactors = F,check.names = F) if(row){ dat = as.data.frame(dat,stringsAsFactors = F) rownames(dat) = dat[,1] dat = dat[,-1] }else{ dat = as.data.frame(dat,stringsAsFactors = F) } }else{ dat = fread(input,header = header,sep=',',stringsAsFactors = F,check.names = F) if(row){ dat = as.data.frame(dat,stringsAsFactors = F) rownames(dat) = dat[,1] dat = dat[,-1] }else{ dat = as.data.frame(dat,stringsAsFactors = F) } } return(dat) 
} ## 绘制venn图 
wn_venn=function(list,col='black'){ # 定义颜色体系 library(RColorBrewer,quietly = TRUE) #corlor = brewer.pal(8,'Dark2') corlor = brewer.pal(8,"Accent") # 绘制Venn图 library(VennDiagram, quietly=TRUE) library(venn,quietly = TRUE) if(length(list)<=11){ if(length(list)<=4){ graphics=venn.diagram(list,filename=NULL,fill = corlor[1:length(list)], col = col,alpha = 0.5, cat.cex = 1.5,rotation.degree = 0) grid.draw(graphics) }else if(length(list)==5){ graphics=venn(list, zcolor = corlor[1:length(list)],box=F,ellipse =TRUE,cexil = 1, cexsn = 1) }else{ graphics=venn(list, zcolor = corlor[1:length(list)],box=F,cexil = 1, cexsn = 1) } return(graphics) }else{ print('The function only supports data of dimension 7 and below.') } 
} 
## 保存图片,只支持ggplot对象 
savePlots=function(path,plot,type=c('pdf','png','tiff')[1],width=10,height=8,dpi=300){ # path表示保存图片路径,需要加上相应的文件扩展名称 library(ggplot2) if(type=='pdf'){ ggsave(filename = path,plot = plot,width = width,height = height,device = 'pdf') }else if(type=='png'){ ggsave(filename = path,plot = plot,width = width,height = height,device = 'png',dpi = dpi) }else{ ggsave(filename = path,plot = plot,width = width,height = height,device = 'tiff',dpi = dpi) } 
} df <- readFlie("03_DEG_WGCNA交集数据.txt", type = "txt", row = F)
head(df)df_list = list('DEGs'=sample(df$DEGs),'WGCNA'=sample(df$WGCNA)) # 绘制venn图 
## 4维veen图 
venn_2 = wn_venn(df_list[1:2]) # 保存图片
savePlots(path = 'DEGs_WGCNA_VennPlot.jpg',plot = venn_2,type = 'jpg',width = 8,height = 8,dpi = 300)

结果


所以基因无任何交集。这个是什么原因呢???

现在我们又重新回去做分析。

WGNCA重新分析代码

  • WGCNA分析 | 全流程分析代码 | 代码一

  • WGCNA分析 | 全流程分析代码 | 代码二

  • WGCNA分析 | 全流程代码分享 | 代码三

  • WGCNA分析 | 全流程分析代码 | 代码四

  • WGCNA分析 | 全流程分析代码 | 代码五(最新版本)


寻找方案一

我们开始做WGCNA分析时,有过滤数值。

  1. 使不过滤的数据进行WGCNA分析。

寻找方案二

WGCNA分析,不去离散样本,所有样本进行分析。

我们这里不在坐重复演练,大体的流程就是这样。我们只需要学会这个思路就可以,不需要和文章一模一样的结果。

正常结果应该是这样的,一定会有交集。我们的只需要调整相关的参数即可。但是更具前面的分析就是离谱。

猜测

  1. 数据问题
    我有仔细回去看了原文作者使用的数据,这是count值吗?但是这个数据怎么能这么小?以及与我们获得表达量直接是不对等,若是原文作者将FPKM值转换成count值,但依旧是不对等。
  2. 数据标准化或归一化的原因
    自己认为,我们原始获得数据,已经是进行标准化后的数据了,应该是作者上传时就已经处理过。最大值在13…,但是原文作者依旧是进行标准化处理,那么我们也进行处理吧。
  3. 不知道,能力有限的原因??????

GO富集分析

setwd("E:\\小杜的生信筆記\\2023-复现期刊文章系列教程\\复现文章一分析\\05.功能富集分析")
library(stringr)
library(ggplot2)
library(clusterProfiler)
library(org.Hs.eg.db)
diffSig <- read.table("关键基因ID.txt",header=F,sep="\t",row.names=1)
DEG.gene_symbol = as.character(rownames(diffSig))
DEG.entrez_id = mapIds(x = org.Hs.eg.db,keys = DEG.gene_symbol,keytype = "SYMBOL",column = "ENTREZID")
gene = bitr(DEG.gene_symbol, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db")
DEG.entrez_id = na.omit(DEG.entrez_id)
DEG.entrez_id
write.csv(gene, "01_78.gene.SYMBOL_WNTREZID.csv")
#write.table(DEG.entrez_id,"DEG.entrez_id.txt",sep="\t")##  GO 富集分析
ego <- enrichGO(gene  = gene$ENTREZID,keyType = "ENTREZID",OrgDb   = org.Hs.eg.db,ont     = "all",pAdjustMethod = "BH",pvalueCutoff  = 0.05,readable      = TRUE)pdf(file = "GO.pdf", width = 10, height = 9)
barplot(ego, drop = TRUE, showCategory = 10,split="ONTOLOGY") +scale_y_discrete(labels=function(x) str_wrap(x, width=80))+facet_grid(ONTOLOGY~., scale='free')
dev.off()
#
dotplot(ego, showCategory = 10)
# 导出GO数据
write.csv(ego, "05.GO.result.csv")

## KEGG 富集分析
ekegg <- enrichKEGG(gene = gene$ENTREZID,keyType = "kegg",organism  = 'hsa',pvalueCutoff  = 0.05,pAdjustMethod  = "BH")pdf(file = "KEGG_bar.pdf", width = 9, height = 8)
barplot(ekegg, showCategory = 10)
dev.off()
pdf(file = "KEGG_dotplot.pdf", width = 9, height = 8)
dotplot(ekegg, showCategory = 10)
dev.off()
## 导出KEGG富集分析数据
write.csv(ekegg, "06.KEGG.result.csv")


往期文章:

1. 复现SCI文章系列专栏

2. 《生信知识库订阅须知》,同步更新,易于搜索与管理。

3. 最全WGCNA教程(替换数据即可出全部结果与图形)

  • WGCNA分析 | 全流程分析代码 | 代码一

  • WGCNA分析 | 全流程分析代码 | 代码二

  • WGCNA分析 | 全流程代码分享 | 代码三

  • WGCNA分析 | 全流程分析代码 | 代码四

  • WGCNA分析 | 全流程分析代码 | 代码五(最新版本)


4. 精美图形绘制教程

  • 精美图形绘制教程

5. 转录组分析教程

转录组上游分析教程[零基础]

一个转录组上游分析流程 | Hisat2-Stringtie

小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境下的性能分析 之 CPU篇(二)

2、CPU的使用情况分析 a、类似任务管理器的top & htop 说到对CPU的性能分析&#xff0c;大家一定不会忘记windows下那个最熟悉的工具&#xff1a;任务管理器。 有了这个玩意儿&#xff0c;我们就可以看到CPU的利用率&#xff0c;以及每一个进程所占用的CPU资源。那在Linu…

【论文精读】LLaMA1

摘要 以往的LLM&#xff08;Large Languages Models&#xff09;研究都遵从一个假设&#xff0c;即更多的参数将导致更好的性能。但也发现&#xff0c;给定计算预算限制后&#xff0c;最佳性能的模型不是参数最大的&#xff0c;而是数据更多的。对于实际场景&#xff0c;首选的…

Huggingface学习笔记

课程地址&#xff1a;【HuggingFace简明教程,BERT中文模型实战示例.NLP预训练模型,Transformers类库,datasets类库快速入门.】 什么是huggingface&#xff1f; huggingface是一个开源社区&#xff0c;提供了先进的NLP模型、数据集以及工具。 主要模型&#xff1a; 安装环境&…

【Java程序设计】【C00284】基于Springboot的校园疫情防控管理系统(有论文)

基于Springboot的校园疫情防控管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的校园疫情防控系统 本系统分为系统功能模块、管理员功能模块以及学生功能模块。 系统功能模块&#xff1a;在系统首页可以查…

LeetCode 1038.从二叉搜索树到更大和树

给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 提醒一下&#xff0c; 二叉搜索树 满足下列约束条件&#xff1a; 节点的左子树仅包含键 小于 节点键的节点。 节点的右子树仅包含键 大于 节点键的节点。 左…

Spring Cloud与Docker集成:微服务容器化解决方案详解

推荐一款AI网站 AI写作与AI绘画智能创作平台 - 海鲸AI | 智能AI助手&#xff0c;可以免费领取GPT3.5无限卡 Spring Cloud 和 Docker 是两个不同的技术&#xff0c;但它们可以一起工作以构建、部署和管理微服务架构。下面是它们各自的简介以及它们如何协同工作的原理解析。 Sp…

蜘蛛蜂优化算法SWO求解不闭合MD-MTSP,可以修改旅行商个数及起点(提供MATLAB代码)

1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&#xff0c;具有搜索速度快&#xff0c;求解精度高的优势。VRPTW&#x…

043 多态

示例 public class A {public void say(){System.out.println("I am A");} } public class B extends A {Overridepublic void say(){System.out.println("I am B");} } public class Test {public static void main(String[] args) {A a new B(); // …

【Spring Boot 源码学习】深入 BootstrapContext 及其默认实现

《Spring Boot 源码学习系列》 深入 BootstrapContext 及其默认实现 一、引言二、往期内容三、主要内容3.1 BootstrapContext3.1.1 源码初识3.1.2 get 方法3.1.3 getOrElse 方法3.1.4 getOrElseSupply 方法3.1.5 getOrElseThrow 方法3.1.6 isRegistered 方法 3.2 ConfigurableB…

构建企业多维模型,助力财务战略规划

财务规划与分析是一个企业需要广泛实践、改革优化的领域。战略规划对于财务管理来说&#xff0c;对企业的未来发展具有长期且不可逆的影响。一般企业在做重要战略决策时面临的主要挑战是对于可能结果复杂性的预测&#xff0c;其干涉因素很多&#xff0c;规划范围也十分广泛&…

【Unity】如何从现有项目中抽取好用的资源

【背景】 在做Unity项目的过程中引入各种各样的Package&#xff0c;有的Package很大&#xff0c;但是觉得非常有用的可能只是几个Prefab或者Material等。如果直接拷贝想要的Prefab和Material&#xff0c;又需要自己确认所有有依赖关系的资源。 如果能将所有日常经受项目中自己…

cgroup底层技术研究一、cgroup简介与cgroup命令行工具

本文参考以下文章&#xff1a; 58 | cgroup技术&#xff1a;内部创业公司应该独立核算成本 特此致谢&#xff01; 一、cgroup简介 1. cgroup是什么 cgroup&#xff08;Control Group&#xff09;是Linux内核提供的一种机制&#xff0c;用于对进程或进程组进行资源限制、优先…

python[6]

类和对象 面向对象编程–说白就是让对象干活 创建类&#xff1a;class 类名&#xff1a; 创建类对象 对象名 类名&#xff08;&#xff09; 构造方法 1、构造方法的名称是__init__ 2、构造方法的作用&#xff1f; 构建类对象的时候会自动运行 构建类对象的传参会传递给构造…

react+canvas实现刮刮乐效果

话不多说&#xff0c;直接看代码吧 import { useEffect } from react; import styles from ./index.less;export default function Canvas() {function init() {let gj document.querySelector(.gj);let jp document.querySelector(#jp) as HTMLElement;let canvas documen…

mac flutter 配置

下载Flutter Sdk 直接访问官网无法下载&#xff0c;需要访问中国镜像下载 Flutter SDK 归档列表 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter Start building Flutter Android apps on macOS - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 下载后解压…

Java+SpringBoot+Vue+MySQL:美食推荐系统的技术革新

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

基于STM32的蓝牙遥控小车:手机APP控制小车运动

这里写目录标题 一、智能双轮小车蓝牙APP控制前后左右调速运动功能描述原理图设计PCB设计源码设计 二、更多功能小车网友推荐后开发... 一、智能双轮小车蓝牙APP控制前后左右调速运动 功能描述 1、小车可以前后左右运动 2、可以调节小车的速度 3、使用两个电机驱动两个轮子&a…

Go语言必知必会100问题-06 生产者端接口

生产者端接口 Go语言必知必会100问题-05 接口污染中介绍了程序中使用接口是有价值的。在编码的时候&#xff0c;接口应该放在哪里呢&#xff1f;这是Go开发人员经常有误解的一个问题&#xff0c;本文将深入分析该问题。 在深入探讨问题之前&#xff0c;先对提及的术语做一个定…

MySQL(2/3)

select和别名的使用 主要是用以查询数据 语法&#xff1a;select 字段 from 库名 -- *代表全部字段 select * from student; -- 可以查询多个字段&#xff0c;并使用as起别名&#xff0c;as可以省略 select id as bbb ,name as hhh from student; -- 可以使用函数concat(a,b…

新版Java面试专题视频教程——虚拟机篇②

新版Java面试专题视频教程——虚拟机篇② 3 垃圾收回3.1 简述Java垃圾回收机制&#xff1f;&#xff08;GC是什么&#xff1f;为什么要GC&#xff09;3.2 对象什么时候可以被垃圾器回收3.2.1 引用计数法3.2.2 可达性分析算法 3.3 JVM 垃圾回收算法有哪些&#xff1f;——4种3.3…