GEO数据挖掘从数据下载处理质控到差异分析全流程分析步骤指南

综合的教学视频介绍

GEO数据库挖掘分析作图全流程每晚11点在线教学直播录屏回放视频: https://www.bilibili.com/video/BV1rm42157CT/

GEO数据从下载到各种挖掘分析全流程详解: https://www.bilibili.com/video/BV1nm42157ii/

一篇今年近期发表的转录组生信分析论文复现全流程直播: https://www.bilibili.com/video/BV184421Q7pj/

GEO数据下载教程

1.1根据GEO的GSE数据集编号自动下载和处理GEO数据教程(必须要运行的模块,GEO数据下载要首先运行这个模块)

cc2f4a24610efa85b719f3736fafe618.jpeg

详细教程地址: https://zhuanlan.zhihu.com/p/708053447

下载GEO数据一定要先运行下这个模块,部分数据集不一定能下载提取出表达矩阵,但是一般能下载到非常完整的样本的注释信息等数据文件,这在对GEO数据集临床信息分析或分组差异分析是非常重要的。

对于部分没有下载出表达矩阵的数据集,如果该数据集的GEO网页中有GSEXXX_RAW.tar格式的压缩包,可以运行下面的1.2这一步对RAW.tar的压缩包文件进行提取和处理。

1.2 转录组和基因芯片GSE数据集RAW.tar压缩包下载和多样本整合处理教程 (GEO网页中有RAW.tar压缩包可以用这一步下载处理)

0a9e3f146d201e4a1f2e3e6cddf03081.jpeg

教程地址

教程地址:转录组和基因芯片GSE数据集RAW.tar压缩包下载和多样本整合处理教程 - 邢博士谈科教的文章 : https://zhuanlan.zhihu.com/p/708244032

普通RNAseq转录组的GSEXXX_RAW.tar压缩包的多样本整合处理

c219c69b7c722c297dabb8a8b3d5c797.jpeg

各种不同格式的基因表达芯片的GSEXXX_RAW.tar压缩包的多样本整合处理

0a4bb939eb6136f5262c4fb3beee7766.jpeg

1.3 GEO网页中存在可以手动下载的表达矩阵等文件的下载处理教程

如果在1.1步没有自动下载提取出基因表达矩阵,GEO网页中也没有GSEXXX_RAW.tar压缩包文件,但是存在可以手动下载的一些表达矩阵等数据文件,可以用这一步进行下载和处理。

62506b77209ba73dfd139f1d780f13ef.jpeg

132eb0909a7bf2f70e831ce969bb2634.jpeg

教程视频: https://www.bilibili.com/video/BV1Yf421X7Cj/

GEO数据处理清洗教程

GEO的表达矩阵的探针ID转换成基因名称教程 (提取的表达矩阵里只有基因探针ID,没有正式的基因名称时运行这一步)

教程地址

GEO的表达矩阵的探针ID转换成基因名称教程 - 邢博士谈科教的文章 - 知乎

https://zhuanlan.zhihu.com/p/708404618

2.1.1 从gpl注释文件中提取出基因注释 (优先用这种方法进行基因名称注释)

该节教程:https://www.bilibili.com/video/BV15w4m1q7Dw/

d438d39416301d1e1f43911599debb7a.jpeg

2.1.2 对GPLsoft文件中没有基因名称的探针获取基因注释(第二种基因探针注释方法)

该方法对于一些非编码RNA的GSE数据集的注释可能会非常有用

该节教程:https://www.bilibili.com/video/BV12b421e7SX/

edf6818ea380ae017648c7619d2ff260.jpeg

2.1.3 同一物种不同类型基因id转换

该节教程:https://www.bilibili.com/video/BV1YD421M7qR/

该模块对于基因名称SYMBOL跟ENTREZID,ENSEMBL(为ENSG等开头基因ID),REFSEQ(为NM开头:mRNA,NP开头:蛋白,NR开头:非编码RNA),UNIPROT,UCSCKG(为ENST转录本)这六种类型中的一中或多种类型的基因ID或名称间的互相转换是非常有用的。

2f2ed97cd12b574b5c9e27fb88a0fdbe.jpeg

2.1.4 不同物种间同源基因转换

该节教程:https://www.bilibili.com/video/BV1B1421k7K9/

该方法对于小鼠和人之间的基因名称相互转换或者其它物种的基因名称转成人或小鼠的基因名称从而方法进行某些只能用人或小鼠模式生物才能做的生信分析是非常有用的。

b8d6868915b716397b336930b83385ab.jpeg

2.2 将提取的基因注释信息跟表达矩阵合并

该节教程:https://www.bilibili.com/video/BV12f421Q7nK/

37dbb9398ce9bbb3da575b9408737420.jpeg

2.3 GEO的样本分组信息提取和处理教程

2.3.1 从样本注释文件中提取出分组数据 (优先选择使用这种方法)

该节教程: https://www.bilibili.com/video/BV1rT421v77P/

0963cec408141d5241e7a85e50a271d9.jpeg

2.3.2 从表达矩阵中提取出分组信息 (第2种分组信息提取方法)

该节教程:https://www.bilibili.com/video/BV1sz421h7rc/

92562c5082993deea2824ef54d8b3da4.jpeg

质控和标准化

3.1 基因表达芯片的质控和标准化

3.1.1构建ExpressionSet分析对象 (首先先运行这一步)

基因的芯片的质控需要的数据格式是ExpressionSet这种格式,所以先需要构建个ExpressionSet对象

该节教程:https://www.bilibili.com/video/BV1br421c71A/

71689e7f796c023174fb629aa5f6c95c.jpeg

3.1.2 基因表达芯片的质控

该节教程: https://www.bilibili.com/video/BV1vy411b7yQ/

86e910360c0fff461f71d16e92e355a8.jpeg

3.1.3表达芯片进行归一化处理

该节教程: https://www.bilibili.com/video/BV1fJ4m1u7jX/

234d1d9681816873306e56e27fc15554.jpeg

3.2 普通转录组RNAseq定量的表达矩阵质控和标准化的操作和答疑

3.2.0 普通转录组RNAseq定量的表达矩阵是否需要质控和标准化的答疑

RNAseq测序数据在上游处理分析时候已经经过质控处理,是不需要再进行质控的,我们一般从GEO数据库里下载处理的RNAseq测序数据的表达矩阵要么是counts整数值表达矩阵文件,要么可能是FPKM/RPKM或TPM相对定量且标准化后连续性数值表达矩阵。

在差异分析的时候,转录组的差异分析主流的DESeq2和edgeR这两个差异分析工具是需要用不经过任何处理的原始的counts表达矩阵作为输出数据的,所以我们是不需要对从GEO数据库中下载和提取的counts表达矩阵做任何质控标准化操作的。

如果我们没有counts表达矩阵,只下载到了FPKM/RPKM或TPM相对定量且标准化后连续性数值表达矩阵,这样的数据已经经过了标准化处理,在我们做差异分析的时候,只需要对该类表达矩阵数据取个log2对数处理就可以了,同时这样的数据已经不能使用DESeq2和edgeR做差异分析了,只能用limma这个工具做差异分析。而在我的OmicsTools差异分析模块用limma做差异分析时,是会自动对数据分布和量级差别较大的数据进行取对数处理的。所以,大家也不需要手动对这类数据提取进行取对数处理的。

对于FPKM/RPKM或TPM数据,如果大家在做limma差异分析之前,如果想先看下RNAseq的表达矩阵每个样本所有基因的表达数据的分布情况是否一致,可以用下面的这两个模块进行表达矩阵的可视化作图

3.2.1 使用表达矩阵进行密度图绘制

该绘图模块会绘制每个样本的表达数据的密度曲线,好的连续数据的密度曲线应该近似钟形曲线的正态分布。

视频教程:https://www.bilibili.com/video/BV1yx4y1W7Vb/

4b4bee42db6484c9c7a7e32121e70c96.jpeg

3.2.2 利用表达矩阵进行箱式图绘制

利用表达矩阵进行箱式图绘制(用于查看质控标准化结果) ,质量好的数据应该是所有样本的箱式图中的中位数应该位于同一水平线上,箱式图分布性状也比较近似,没有特别严重的高低不齐的现象。

视频教程: https://www.bilibili.com/video/BV1b1421b7Qx/

dd24beef736ff5f6fa0de9e0441c4eb0.jpeg

样本PCA分群聚类分析和剔除异常样本

样本的PCA聚类分群分析

该节教程:https://www.bilibili.com/video/BV1if421X7pM/

92bfc0ad51e891c61373a824234e11f4.jpeg

删除PCA分群聚类的异常离群样本

该节教程:https://www.bilibili.com/video/BV1Um421N7X8/

e0a194a4dd843fc9205b9875bc50eab6.jpeg

剔除异常离群样本后的再次PCA聚类分群分析

该节教程:https://www.bilibili.com/video/BV1if421X7pM/

3783987e3cc233a44ab6e5f9872b2b34.jpeg

多个数据集的整合和去除批次效应

多个数据集合并 (如何需要整合分析多个数据集,就运行这一步)

该节教程:https://www.bilibili.com/video/BV1j4421X7Ls/

515b6c6b64e83298d698f0d646686527.jpeg

5.2 多数据集合并后一起所有样本表达数据一起做归一化处理(RNAseq counts整型数据不需要做这一步)

该节教程: https://www.bilibili.com/video/BV1fJ4m1u7jX/

2f0ca5b87fc21c632d79e98c61b02de9.jpeg

5.3去除批次效应(即使单个数据集中有多个批次信息,也要运行这一步)

一般我们如果合并了多个数据集,都是需要要去除批次效应的,但是,即使单个数据集中如果有多个批次信息,也要运行这一步

该节教程: https://www.bilibili.com/video/BV1Yy411h78f/

3b8d20aec96b35b4b0872a9568f78853.jpeg

5.4 去除批次效应后的样本PCA聚类分群分析

该节教程:https://www.bilibili.com/video/BV1if421X7pM/

edf6e10089bf561c3d285c9a2ac8579a.jpeg

5.4 删除PCA分群聚类的异常离群样本

该节教程:https://www.bilibili.com/video/BV1Um421N7X8/

8c13542a85b06cd6770102424d7cb555.jpeg

5.5 剔除异常离群样本后的再次PCA聚类分群分析

该节教程:https://www.bilibili.com/video/BV1if421X7pM/

d0c6a48ad792a8cdaf8ea54226424e95.jpeg

差异分析

6.0 不同数据的差异分析方法选择

整个转录组所有基因批量差异分析的数据格式和方法选择

数据格式: counts数据>> TPM数据> >FPKM/RPKM数据

差异分析工具: DESeq2 =edgeR > >(log2对数标准化+limma)

1.有counts数据的时候,优先选择使用counts数据+DESeq2/edgeR工具进行整个转录组的批量差异分析

2.没有counts数据,但是有TPM数据的时候,优先选择使用TPM数据+(log2对数标准化+limma工具)进行整个转录组的批量差异分析

3.没有counts数据,也没有TPM数据的时候,可以选择使用FPKM/RPKM+(log2对数标准化+limma工具)进行整个转录组的批量差异分析。

在我的OmicsTools差异分析模块用limma做差异分析时,是会自动对数据分布和量级差别较大的数据进行取对数处理的。所以,大家也不需要手动对这类数据提取进行取对数处理的。

基因芯片或其它组学或连续数值的表达矩阵的差异分析方面选择

基因芯片或其它组学或连续数值的表达矩阵的差异分析时,一律是log2(表达矩阵)+limma工具差异分析这种方法。在我的OmicsTools差异分析模块用limma做差异分析时,是会自动对数据分布和量级差别较大的数据进行取对数处理的。所以,大家也不需要手动对这类数据提取进行取对数处理的。

通用差异分析 (各种类型的组学数据都适用的差异分析模块)

该节教程:https://www.bilibili.com/video/BV1Lw4m1q71T/

9b6604cf845e65d30c7db27fba7156cd.jpeg

这个差异分析模块是可以做任意物种的差异分析,如果是人,func_org参数就填’human’, 如果不是人,就填不是’human’的任意其它物种名称就行。

因为edgeR差异分析建议,如果是人类的RNAseq数据,bcv生物变异度设置为0.4,如果是非人类的模式生物,bcv设置为0.1,在用edgeR做差异分析时,所有当输入的物种是human的时候,会自动把bcv生物变异度设置为0.4, 非human的时候,bcv会设置为0.1

6.2 通用批量差异分析(可同时对多个数据集文件做差异分析)

该节教程: https://www.bilibili.com/video/BV1vD421g7Vj/

04cb3022d726cab777ea468c85eea119.jpeg

6.3 按照某个基因或特征的高低分组的差异分析

6.3.1 按照某些特征的高低阈值对样本进行分组

该节教程:https://www.bilibili.com/video/BV1CZ421M75J/

2b7776da005e0e7e9f7f3c6e4dc36501.jpeg

6.3.2 按照某个基因或特征的高低分组的差异分析

按照某个基因或特征的高低分组的差异分析

该节教程:https://www.bilibili.com/video/BV18E4m1R7Wp/

efa05ae94f82715ff09ae88fd9439b9c.jpeg

这个差异分析模块也是可以做任意物种的差异分析,如果是人,func_org参数就填’human’, 如果不是人,就填不是’human’的任意其它物种名称就行。

因为edgeR差异分析建议,如果是人类的RNAseq数据,bcv生物变异度设置为0.4,如果是非人类的模式生物,bcv设置为0.1,在用edgeR做差异分析时,所有当输入的物种是human的时候,会自动把bcv生物变异度设置为0.4, 非human的时候,bcv会设置为0.1

6.4 根据logFC和p值等条件对差异分析结果进行筛选

提取出符合条件的特定行列的子数据集

该节教程: https://www.bilibili.com/video/BV1BM4m1Q7Qx/

af4708eb36407d7a75121c1be334da40.jpeg

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
差异表达分析是一种常用的方法,用于比较不同条件下基因表达水平的变化。GEOquery和limma是R语言中广泛使用的两个包,可用于处理分析芯片数据差异表达。下面是使用GEOquery和limma进行差异表达分析步骤: 1. 下载和导入芯片数据 使用GEOquery包中的getGEO函数下载芯片数据并导入到R中。例如,如果您要下载GSE12345数据集,可以使用以下代码: ``` library(GEOquery) gset <- getGEO("GSE12345") ``` 2. 数据制 在进行差异表达分析之前,需要对数据进行制。使用GEOquery包中的summary函数和plotPCA函数可以对芯片数据进行基本的制。例如,可以使用以下代码绘制PCA图: ``` library(limma) library(GEOquery) gset <- getGEO("GSE12345") edata <- exprs(gset[[1]]) edata <- t(edata) edata <- na.omit(edata) fit <- prcomp(edata) plotPCA(fit) ``` 3. 数据处理 对芯片数据进行归一化和标准化处理,以消除不同芯片之间的差异,并确保数据符合正态分布。常用的预处理方法包括RMA、GCRMA、MAS5等。使用limma包中的normalizeBetweenArrays函数可以对芯片数据进行预处理。例如,可以使用以下代码对芯片数据进行RMA预处理: ``` library(limma) library(GEOquery) gset <- getGEO("GSE12345") edata <- exprs(gset[[1]]) edata <- t(edata) edata <- na.omit(edata) edata <- backgroundCorrect.RMA(edata) edata <- normalize.quantiles.RMA(edata) edata <- log2(edata) ``` 4. 差异表达分析 使用limma包中的lmFit函数和eBayes函数可以进行差异表达分析。lmFit函数用于拟合线性模型,eBayes函数用于对差异表达结果进行统计显著性检验。例如,可以使用以下代码进行差异表达分析: ``` library(limma) library(GEOquery) gset <- getGEO("GSE12345") edata <- exprs(gset[[1]]) edata <- t(edata) edata <- na.omit(edata) edata <- backgroundCorrect.RMA(edata) edata <- normalize.quantiles.RMA(edata) edata <- log2(edata) factors <- c(0,0,0,1,1,1) design <- model.matrix(~factors) fit <- lmFit(edata, design) fit <- eBayes(fit) results <- topTable(fit, adjust="BH", sort.by="P", n=1000) ``` 上述代码中,factors表示芯片数据中不同样本的分组信息,design表示设计矩阵,fit表示拟合的线性模型,results表示差异表达结果。 5. 结果分析 根据差异表达结果,可以进行进一步的功能分析、通路分析等。常用的工具包括ClusterProfiler、GOstats、KEGGprofile等。例如,可以使用以下代码进行GO分析: ``` library(ClusterProfiler) gset <- getGEO("GSE12345") edata <- exprs(gset[[1]]) edata <- t(edata) edata <- na.omit(edata) edata <- backgroundCorrect.RMA(edata) edata <- normalize.quantiles.RMA(edata) edata <- log2(edata) factors <- c(0,0,0,1,1,1) design <- model.matrix(~factors) fit <- lmFit(edata, design) fit <- eBayes(fit) results <- topTable(fit, adjust="BH", sort.by="P", n=1000) genes <- rownames(results) geneList <- names(genes) geneList <- names(genes)[abs(results$logFC) > 1 & results$adj.P.Val < 0.05] ego <- enrichGO(geneList, OrgDb="org.Hs.eg.db", ont="BP") barplot(ego) ``` 上述代码中,geneList表示差异表达基因列表,ego表示进行GO分析所得到的富集结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢博士谈科教

你的支持是我创作最大动力谢谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值