下面,我们来看一下如何利用GEO数据库中的芯片数据进行后续剖析。
GEO数据库的简介

GEO数据库,GENE EXPRESSION OMNIBUS,是由美国国立生物技能信息中央NCBI创建并掩护的基因表达数据库(官网:https://www.ncbi.nlm.nih.gov/geo/)。

它最初创建于2000年,紧张用于收录各国研究机构提交的高通量基因表达数据,也便是说只假如在目前已经揭橥的绝大部分论文中,其涉及到的基因表达检测的数据,包括芯片数据,二代测序结果,以及其他形式的高通量检测结果,都可以通过这个数据库中找到。
image
首先,我们进入GEO数据库中,根据GSE编号,查看一下该数据的一些干系信息。在搜索栏中输入编号,“GSE39582”,然后点击“Search”按钮,进行检索。
当然,熟习了往后,我们也可以直接输入网址进行快速检索,https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE39582;对付检索页面网址而言,其前面是一样的,唯一的差异是acc=后面的GSE编号,修正编号,可以快速进入对应的结果页面,这样也可以在一定程度上减少由于网速等缘故原由所带来的阻碍。
image
在结果页面中,我们可以初步看一下该结果对应的发布韶光,题目,物种等信息。同时,Experiment type中Expression profiling by array表示该结果是通过芯片得到的表达谱;Overall design中大略先容了全体研究的设计方案和分组信息。
image
GEO数据的下载
当得到了芯片的GSE编号后,我们接下来须要将其对应的数据进行下载,从而根据自己的须要进一步剖析。关于数据的下载,我们这里紧张先容三种不同的方法。
方法一:下载芯片的原始数据
在检索页面中,一起下拉;在Supplementary file中点击Download中的custom,展开原始数据对应列表;点击“Select all“,然后点击Download,即可将所有样本的原始数据RAW Data文件下载;
image
虽然这是最直接的方法,但是RAW Data文件相对较大,对下载的网速哀求相对较高,而且不同的芯片来源,有不同的处理方法,乃至有些芯片没有处理方法,由于其是对应定制的。以是,一样平常情形下,不推举大家下载原始数据。
方法二:下载表达矩阵(series matrix)
在Download family中点击Serier Matrix File(s),进入下载页面;
待下载完成后,可以直策应用read.table()函数读取进来。
可以看到,在芯片中,包含了54675个基因探针,586个患者。
方法三:利用R的GEOquery包里面的getGEO()函数直接读取进来(推举)
当然,考虑到网速问题,我们可以对参数进行设置,选择不下载平台的注释文件,由于一样平常来讲注释文件是相比拟较大的。
如果把之前下载的series Matrix文件放在当前目录下,getGEO()函数会直接检测到该文件,并进而直接将其进行读取;
image
我们可以直接查看一下下载结果gset的变量类型。
可以看到,变量gset是一个列表的形式。
为什么是list格式呢?由于一个GEO芯片项目,是可以对应多个芯片平台的,那么每个平台的数据结果会对应list里面的一个元素。
既然是列表,自然可以提取个中的第一个元素出来查看一下。可以看到,个中展示了包含了6个样本,33297个特色,以及干系的临床信息,PMID号,以及注释平台信息。
image
提取表达和临床信息
3.1 通过pData函数获取分组信息
通过pData()函数,即可提取表达数据中的临床信息;同时,点击Environment中的pdata查看,我们可以查看里面的干系信息。可以看到,个中,非肿瘤的样品19例。
因此,根据临床信息,我们可以对样品进行分组,分为肿瘤组和正常组;
终极,得到正常组19例样品,肿瘤组566例样品。
3.2 通过exprs()函数获取表达矩阵并校正
整理完临床信息后,我们须要提取对应的表达数据。对付表达数据,除了下载Series Matrix后直策应用read.table()函数进行读取外,我们也可以直接从GEOquery下载得到的变量gset中进行提取。
利用exprs()函数可以从gset[[1]]提取表达信息;同时,我们可以利用boxplot()函数先大略看一下整体样本的表达情形。
由于每一次技能重复的时候,都会有偏差,芯片的原始数据是由仪器读取的,不同的读取韶光,或者扫描仪光芒的强弱都会导致同一类型的样本涌现偏差。正式剖析前,我们须要对其进行人工校正一下。这里我们用limma包内置的一个函数,
normalizeBetweenArrays()函数。
可以看到,经由校正,全体表达水平基本趋于同等。
此外,利用range()函数查看一下表达数据exp的取值范围;一样平常而言,范围在20以内的表达值基本已经经由了log对数转换。
ID变换
整理好了表达矩阵往后,我们须要将探针的id转换成为基因的Gene symbol。对付探针id的转换过程,目前紧张是通过R包来进行转换。接下来,我们来看一下如何进行芯片探针id的转换过程。
方法一:利用R包转换
随着芯片平台的普遍利用,其基因的注释信息也被整理成了不同的R包;因此,常日情形下我们利用R包来注释。不同的平台,对应着不同的R包。首先,我们来看一下这个数据集利用的平台类型。
通过提取列表gset[[1]]中的注释信息,可以看到,该芯片利用的是我们最常见的平台,GPL570。
image
对付GPL570,其对应的R包是hgu133plus2.db包;查找显示,其储存在Bioconductor中,下载并进行安装R包。
首先,我们来看看,在hgu133plus2.db包中,包含了哪些信息;
可以看到,除了Symbol信息外,在个中还包含了Ensemble id,Entrez id等信息,可以须要进行提取。
image
提取个中的Symbol信息,可以看到,终极得到了probe id和Gene symbol的对应信息。
image
个中,经由去重复,一共存在20174个不同的Gene symbol,且部分基因存在多条探针的对应关系。
接下来,我们须要将其进行逐一对应匹配。
经由id匹配,并去重复,终极得到了20174个基因的表杀青果;
image
同时,我们可以查看一下前3行前3列的表达情形。
当然,除了R包注释外,还有其他的注释方法,比如利用网页下载的soft文件进行注释,或者有些分外的芯片内容,须要自己手工比对注释。
方法二:利用soft文件注释
方法三:手工注释
PCA剖析
表达矩阵到此基本整理完成。接下来,在正式的差异剖析之前,我们首先可以做一个PCA剖析,整体水平查看正常和肿瘤两组样品直接是否存在显著的差异。
结果显示:在该芯片中,癌和癌旁组织的表达水平存在一定的差异。
image
差异剖析
对付芯片数据的差异剖析,我们一样平常利用limma包来进行。关于差异剖析的输入文件,紧张是两个,第一是整理好的表达矩阵,个中行名为基因名,列名为样本名;第二是分组信息(group list)。
终极,利用topTable()函数提取所有基因的差异剖析。
可以看到,在结果表格中,包含了6块的内容,包括我们常见的logFC值,以及P.Value,adj.P.Val等等。
接下来,我们须要根据设定的阈值,|logFC|>1.5和P值
可视化剖析
1、火山图
对付差异剖析结果,火山图和热图是两种最常见的展示办法。首先,我们来看一下火山图的绘制方法。对付火山图的绘制,大家可以参考之前的推文(生信最主要的图之一,十分钟帮你搞定!
建议收藏!
!
)。
方法一:基于ggpubr包绘制火山图
结果显示:
image
接下来,我们可以进一步给火山图添加标签,把显著上调和显著下调基因中前5名的基因名进行标注;
结果显示:
image
方法二:基于ggplot2包绘制火山图
结果显示:
image
当然,我们也可以对其进行添加标签的操作;
结果显示:
image
2、热图
提取差异表达基因的表达情形;
结果显示:
image
到此,GEO数据库芯片数据的下载,probe id的转换,差异剖析已经基本完成了,全体文章中最难的80%内容也已经基本办理。接下来,便是针对这些差异基因的常规剖析,包括GO剖析,KEGG剖析,GSEA剖析,蛋白-蛋白互作网络(Protein-protein interaction,PPI)。







