GEO数据挖掘-富集分析、TinyArray简化流程、多组样本分析more

news2025/4/6 16:55:16

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 富集分析
    • 一些理论知识
    • 具体代码
  • 富集不到的补救措施
  • 更多资料---
  • 问题数据和常见错误分析
  • Part4-复杂数据及其分析
    • 多分组数据分析流程
  • tinyarray简化版本分析流程
  • 多分组数据分析流程
    • 1.获取数据
    • 2.生成分组向量与探针注释


富集分析

一些理论知识

  1. 最常用于富集分析的数据库:GO 和 KEGG
  2. 人类的基因被数据库收录的 8000 个左右,被分类到不同的 KEGG 通路/GO term(细胞组分/分子功能/生物过程三个子部分)
  3. 用于富集分析的 R 包:clusterProfiler,Y叔开发的,还有一本书,clusterProfiler book
  4. 富集分析中得到的两个值的解释:
    GeneRatio:差异基因中富集到的数量/差异基因在数据库中的数量

bgRatio:该通路总共多少个基因/数据库中总共多少个基因
5. 所谓是否富集(p值):geneRatio对于bgRatio是否明显较大,即“实际中奖概率”是否明显比“理论中奖概率”大,即:衡量每个通路里的基因在差异基因里是否足够多

具体代码

rm(list = ls())  
load(file = 'step4output.Rdata')
library(clusterProfiler)
library(ggthemes)
library(org.Hs.eg.db)
library(dplyr)
library(ggplot2)
library(stringr)
library(enrichplot)

(1)输入数据

gene_diff = deg$ENTREZID[deg$change != "stable"] 
 #输入数据为change不为stable的ENTREZID

(2)富集

ekk <- enrichKEGG(gene = gene_diff,organism = 'hsa')
ekk <- setReadable(ekk,OrgDb = org.Hs.eg.db,keyType = "ENTREZID")
ego <- enrichGO(gene = gene_diff,OrgDb= org.Hs.eg.db,
                ont = "ALL",readable = TRUE)
#setReadable和readable = TRUE都是把富集结果表格里的基因名称转为symbol

#> class(ekk)
#[1] "enrichResult"
#attr(,"package")
#[1] "DOSE"
#ekk是对象
#??enrichResult  查看帮助文档
#(3)可视化
dotplot(ego, split = "ONTOLOGY") + 
  facet_grid(ONTOLOGY ~ ., space = "free_y",scales = "free_y") 

在这里插入图片描述

#(3)可视化
dotplot(ego, split = "ONTOLOGY") + 
  facet_grid(ONTOLOGY ~ ., space = "free_y",scales = "free_y") 
dotplot(ekk)
#或者是dotplot
table(ekk@result$p.adjust<0.05)   #创建一个表格,显示经过多重比较校正后的 P 值小于 0.05 的次数
table(ekk@result$pvalue<0.05)   ## 创建一个表格,显示未校正的 P 值小于 0.05 的次数

在这里插入图片描述

#(3)可视化
dotplot(ego, split = "ONTOLOGY") + 
  facet_grid(ONTOLOGY ~ ., space = "free_y",scales = "free_y") 
dotplot(ekk)

在这里插入图片描述
直接对自定义对象写的自定义函数,不需要加任何参数调整就可以直接出图,方便!

富集不到的补救措施

  1. 调整logFC、pvalue的阈值(通常是调整logFC),以改动差异基因数量
  2. 不适用默认的padj,而是使用原始p值,在文章中说明清楚即可
  3. 换富集方法,GSEA也可以做KEGG富集
  4. 调整参数maxGSSize = 500,默认参数为500表示500个基因以上的通路不考虑,可以调大成1000之类

更多资料—

  1. GSEA:https://www.yuque.com/docs/share/a67a180f-dd2b-4f6f-96c2-68a4b86fe862?#
    添加链接描述
  2. Y叔的书:http://yulab-smu.top/clusterProfiler-book/index.html
    添加链接描述
  3. GOplot:https://mp.weixin.qq.com/s/LonwdDhDn8iFUfxqSJ2Wew
    添加链接描述
  4. 网上的资料和宝藏无穷无尽,学好R语言慢慢发掘~

问题数据和常见错误分析

1.数据提交者的锅
表达矩阵是空的
表达矩阵不完整
表达矩阵被标准化过
表达矩阵有错误或异常值
解决办法:
换一个数据
处理原始数据

2.你的锅
用芯片流程分析转录组数据
忘记log/多余log
分组搞错
探针注释错误
id转换用错物种

3.不可抗力
找不到探针注释
数据有错又找不到原始数据
找不到想要的实验设计

Part4-复杂数据及其分析

多分组数据
多数据联合分析
加权共表达网WGCNA
蛋白互作网络

添加链接描述
分组聚类的热图

table(ekk@result$p.adjust<0.05)
#检查富集到了多少条通路

多分组数据分析流程

tinyarray简化版本分析流程

需要R包版本2.3.1及以上:

### 运行代码块的快捷键
在RStudio中,你可以使用以下快捷键来运行当前的代码块或所选代码:

- Windows/Linux: `Ctrl + Enter`
- macOS: `Cmd + Enter`

这些快捷键会执行光标所在的代码块,或者如果使用了文本选择,那么执行所选部分的代码。

1.获取数据

rm(list = ls())
#打破下载时间的限制,改前60秒,改后10w秒
options(timeout = 100000) 
options(scipen = 20)#不要以科学计数法表示
#前面是一样的

library(tinyarray)
packageVersion("tinyarray")
[1]2.3.3
library(stringr)
geo = geo_download("GSE7305")  #geo_download实现下载和整理
exp = geo$exp  #表示从名为 geo 的对象中提取名为 pd 的组件,并将提取的组件赋值给一个新的变量 pd。
exp = log2(exp+1) 
boxplot(exp,las = 2)   #查看有无异常样本

在这里插入图片描述

pd = geo$pd   #提取临床信息
gpl_number = geo$gpl
#代替了第一个脚本

# 分组信息
k = str_detect(pd$title,"Normal");table(k)
Group = ifelse(k,"Normal","Disease")
Group = factor(Group,levels = c("Normal","Disease"))
Group = factor(Group,levels = c("Normal","Disease"))
# 探针注释
find_anno(geo$gpl)
library(hgu133plus2.db);ids <- toTable(hgu133plus2SYMBOL)
head(ids)
#差异分析和它的可视化
dcp = get_deg_all(exp,Group,ids,entriz = F)  #get_deg_all实现差异基因和可视化
#代替了脚本3和脚本4
table(dcp$deg$change)
head(dcp$deg)
dcp$plots
library(ggplot2)
ggsave("deg.png",width = 15,height = 5)
> #差异分析和它的可视化
> dcp = get_deg_all(exp,Group,ids,entriz = F)
579 down genes,624 up genes
> table(dcp$deg$change)

  down stable     up 
   579  19621    624 
> head(dcp$deg)
     logFC  AveExpr        t                          P.Value
1 6.270309 8.436140 45.39552 0.000000000000000000000009106509
2 3.943359 7.351799 35.25755 0.000000000000000000002600407155
3 2.318498 6.631187 32.33367 0.000000000000000000017855505829
4 4.905540 8.140399 30.78154 0.000000000000000000053206731115
5 4.878195 6.815838 29.02740 0.000000000000000000195062651758
6 4.106051 9.045949 28.82714 0.000000000000000000227319306208
                    adj.P.Val        B    probe_id    symbol change
1 0.0000000000000000002489492 41.58809   202992_at        C7     up
2 0.0000000000000000473924204 37.34483   204971_at      CSTA     up
3 0.0000000000000001952499562 35.77275   228564_at LINC01116     up
4 0.0000000000000004155825748 34.85700 208131_s_at     PTGIS     up
5 0.0000000000000013331313106 33.74579   210002_at     GATA6     up
6 0.0000000000000013809647852 33.61341   212190_at  SERPINE2     up
> dcp$plots
> library(ggplot2)

在这里插入图片描述

```{r}
#富集分析
deg = get_deg(exp,Group,ids)
genes = deg$ENTREZID[deg$change!="stable"]  #取出差异基因ENTREZID
head(genes)
#有可能因为网络问题报错
g = quick_enrich(genes,destdir = tempdir())  #quick_enrich快速的富集分析
names(g)     #元素的名字
g[[1]][1:4,1:4]
library(patchwork)
g[[3]]+g[[4]]
ggsave("enrich.png",width = 12,height = 7)

在这里插入图片描述

多分组数据分析流程

R包需要自己安装哦。如果不会安装,建议先学习R语言基础,不要直接上手实战。另外,学习本篇需要建立在tinyarray基本使用会了的基础上,不会的话先看复杂分析这里的第一个文件夹。

1.获取数据

rm(list = ls())
#打破下载时间的限制,改前60秒,改后10w秒
options(timeout = 100000) 
options(scipen = 20)#不要以科学计数法表示

library(tinyarray)
packageVersion("tinyarray")
## [1] '2.3.3'
library(stringr)
gse = "GSE474"
geo = geo_download(gse)
exp = geo$exp
range(exp)
## [1]     0.050827 35799.757813
exp = log2(exp+1)
boxplot(exp,las = 2)
pd = geo$pd
gpl_number = geo$gpl
#获取数据和检查

2.生成分组向量与探针注释

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

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

相关文章

Interview preparation--Elasticsearch写入原理与调优

ES的写入过程 ES支持的写操作 create&#xff1a; create操作不同于put操作&#xff0c;put操作的时候如果当前put的数据存在则会被覆盖&#xff0c;如果put操作的时候加上操作类型create&#xff0c;如果数据存在则会返回失败&#xff0c;比如&#xff1a;PUT /pruduct/_cre…

实测2024年最佳的三款Socks5代理IP网站

一、引言 在浩瀚的网络世界中&#xff0c;Socks5代理IP服务如同导航灯塔&#xff0c;指引我们穿越数据海洋&#xff0c;安全、稳定地访问目标网站。作为专业的测评团队&#xff0c;我们深知一款优秀的Socks5代理IP网站需要具备哪些特质&#xff1a;稳定的IP资源、高效的连接速…

QT基本对话框(基本对话框、工具盒类、进度条、调色板与电子钟、可扩展对话框、程序启动画面)

此篇文章通过实例介绍基本对话框的用法。首先介绍标准文件对话框&#xff08;QFileDialog&#xff09;、标准颜色对话框&#xff08;QColorDialog&#xff09;、标准字体对话框&#xff08;QFontDialog&#xff09;、标准输入对话框&#xff08;QInputDialog&#xff09;以及标…

AI绘画 Stable Diffusion【特效文字】:火焰特效艺术字,轻松搞定特效生成!

大家好&#xff0c;我是画画的小强 今天我们继续艺术字系列的分享&#xff0c;艺术字的玩法很多&#xff0c;今天给大家带来的是火焰特效艺术字的制作。我们先来看火焰特效艺术字的效果图。 一. 火焰特效文字的制作方法 【第一步】&#xff1a;制作底图 这里制作底图使用白底…

VMware Workstation 安装 Centos 虚拟机

1. 下载 VMware Workstation 直接上网找官网下载即可 2. 下载 Centos 镜像 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 3.打开 VMware 创建虚拟机 3.1点击创建虚拟机 3.2 选择自定义安装 3.3 选择使用 Workstation 的版本 版本越高兼容性越低但性能越好&#xff0c;一…

2024年Stable Diffusion应用入门,AI绘画超详细兼职攻略,从零开始!

. AI绘画&#xff1a; 利用AI工具在AI绘画上的应用非常广泛&#xff0c;涵盖了从艺术创作到工业设计等多个领域。 目前市面上有许多AI绘画软件和工具&#xff0c;适合不同需求的用户。 例如&#xff0c;Midjourney、DALL-E 2、Stable Diffusion、DreamStudio等都是较为知名的…

深入了解Qt 控件:Display Widgets部件(1) 以及 QT自定义控件(电池)

QT自定义控件(电池&#xff09; 在线调色板Qt之CSS专栏Chapter1 QT自定义控件(电池&#xff09;Chapter2 Qt教程 — 3.5 深入了解Qt 控件&#xff1a;Display Widgets部件(1)1 Display Widgets简介2 如何使用Display Widgets部件 Chapter3 Qt自定义控件电池组件使用前言一、最基…

AIGC实战:LLaMA2打造中文写作利器——数据准备与模型训练全攻略

目录 一、下载并加载中文数据集二、中文数据集处理 1、数据格式 2、数据集处理之tokenizer训练格式 1&#xff09;先将一篇篇文本拼凑到一起&#xff08;只是简单的拼凑一起&#xff0c;用于训练tokenizer&#xff09; 2&#xff09;将数据集进行合并 3、数据集处理之模型&am…

新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop

《解密AI绘画与修图&#xff1a; Stable DiffusionPhotoshop》 本书内容 《解密AI绘画与修图&#xff1a;Stable DiffusionPhotoshop》全面介绍了Photoshop和Stable Diffusion的交互方式&#xff0c;以及各自的AI功能和具体使用方法。除了讲解功能&#xff0c;还通过实际案例加…

浪潮信息存储的灵魂:平台化+场景化 全面释放数据价值

在数字化浪潮的席卷下&#xff0c;浪潮信息存储平台凭借卓越的性能和稳定性&#xff0c;正日益成为企业释放数据价值的重要力量。近日&#xff0c;浪潮信息出席了“2024数据基础设施技术峰会”&#xff0c;相关代表聚焦当前数据价值的释放话题&#xff0c;围绕先进存储基础设施…

Mongodb安装与配置

Mongodb的下载 这里下载的是MongoDB 7.0.11版本的 首先进入官网&#xff1a;https://www.mongodb.com/ 点击完上面两步后&#xff0c;加载来到该页面&#xff0c;选择自己的版本、系统&#xff0c;是压缩包(zip)还是安装包(msi)。 下载好之后能&#xff0c;来到安装包哪里&a…

爱奇艺 Opal 机器学习平台:特征中心建设实践

01 综述 Opal 是爱奇艺大数据团队研发的一站式机器学习平台&#xff0c;旨在提升特征迭代、模型训练效率&#xff0c;帮助业务提高收益。整个平台覆盖了机器学习生命周期中特征生产、样本构建、模型探索、模型训练、模型部署等在内的多个关键环节。其中特征作为模型训练的基石…

maven安装jar和pom到本地仓库

举例子我们要将 elastic-job-spring-boot-starter安装到本地的maven仓库&#xff0c;如下&#xff1a; <dependency><groupId>com.github.yinjihuan</groupId><artifactId>elastic-job-spring-boot-starter</artifactId><version>1.0.5&l…

基于SpringBoot网吧管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; Java精品实战案例《600套》 2025-2026年最值得选择的Java毕业设计选题大全&#xff1…

TCP/IP模型原理(理论)

TCP/IP模型 1. 网络模型简介2. 应用层2.1 URL2.1.1 urlencode和urldecode 2.2 HTTP协议2.2.1 HTTP协议格式2.2.2 HTTP问题2.2.3 HTTPS 3 传输层3.1 端口号3.2 udp3.2.1 udp协议帧格式3.2.2 udp特点3.2.3 udp缓冲区3.2.4 注意 3.3 tcp协议3.3.1 tcp协议段格式3.3.2 确认应答机制…

计算机组成原理:海明校验

在上图中&#xff0c;对绿色的7比特数据进行海明校验&#xff0c;需要添加紫色的4比特校验位&#xff0c;总共是蓝色的11比特。紫色的校验位pi分布于蓝色的hi的1, 2, 4, 8, 16, 32, 64位&#xff0c;是2i-1位。绿色的数据位bi分布于剩下的位。 在下图中&#xff0c;b1位于h3&a…

如何借助ai(文心一言)获取tushare的数据

1. 准备工作 确保已安装python &#xff0c;安装Tushare库 和文心一言的地址&#xff08;文心一言&#xff09;&#xff1a; 注册Tushare账号并获取Token&#xff1a;在Tushare官方网站注册账号&#xff0c;并获取个人Token。如下 tushare地址&#xff1a;&#xff08;点击即…

音视频开发32 FFmpeg 编码- 视频编码 h264 参数相关

1. ffmpeg -h 这个命令总不会忘记&#xff0c;用这个先将ffmpeg所有的help信息都list出来 C:\Users\Administrator>ffmpeg -h ffmpeg version 6.0-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developersbuilt with gcc 12.2.0 (Rev10, Built by MSYS2 pro…

如何恢复已删除的 JPG/JPEG 图片文件

您是否意外丢失或删除了 JPG 或 JPEG 照片&#xff1f;幸运的是&#xff0c;您可以使用照片恢复工具找回它们。立即获取 JPEG 恢复工具 - PC 版照片恢复&#xff1a; 照片是捕捉和重温生活中特殊时刻的最佳方式。因此&#xff0c;当我们因硬盘崩溃、意外格式化磁盘或错误删除图…

Element UI搭建使用过程

本章内容基于上一篇---Vue-cli搭建项目基础版 Vue-cli搭建项目----基础版-CSDN博客 官网地址:Element - The worlds most popular Vue UI framework 介绍:完全基于Vue.js ,用于快速搭建用户界面. 第一步:安装ElementUI 在终端输入 npm i element-ui -S 在main.js输入 …