抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

最近在看转录组数据分析的文献,想下载一些原始数据自己跑一跑的,发现自己对于几个高通量测序数据库还是有些不太熟悉。以我现在的经验来看,EBI数据库的原始测序数据最容易获得,可以直接在EBI官网下载需要的fastq格式文件,但是NCBI的SRA数据库下载数据还是有些麻烦的,做个学习笔记记录下。

初探GEO数据库和SRA数据库

1. GEO数据库

先上数据库链接,点击这里

GEO数据库全称Gene Expression Omnibus database,是由美国国立生物技术信息中心NCBI创建并维护的基因表达数据库。它创建于2000年,收录了世界各国研究机构提交的大多数高通量基因表达数据,GEO除了二代测序数据,还包含芯片测序单细胞测序数据

GEO数据库有四种数据存放类型**GSE数据编号(Series)、GPL数据编号(GEO platforms)、GSM数据编号(Samples)和GDS数据编号(Datasets)**。

一篇文章可以有一个或者多个GSE(Series)数据集,一个GSE里面可以有一个或者多个GSM(Samples)样本,如果做的是基因芯片,那每个数据集也会有自己对应的芯片平台,就是GPL(GEO platforms)。GSE编号一般为作者提交时生成的原始数据编号,后续NCBI中的工作人员会根据研究目的、样品类型等信息归纳整合为一个GDS(Datasets),整理后的数据还会有GEO profile数据,也就是基因在这次实验中的表达数据。我平常文献里看到最多的就是GSE编号,可以直接在GEO数据库的搜索框里输入查看。

我个人比较关注的是tools栏目里的FTP Site功能。ftp是文件传输协议,ftp访问的界面非常干净,如果我只需要下载GEO数据库里的文件,而不关注其他多余信息的话,可以通过这个界面非常快速地找到对应GSE编号下所有作者上传到GEO数据库的文件,目录结构层次一目了然。如下图所示,datasets对应GDS编号;platforms对应GPL编号;samples对应GSM编号;series对应GSE编号,网站还很贴心地给了README.txt里面写了帮助文档,包括怎么用ftp访问等等

在Browse Content这个栏目里,我们也能看到这个数据库的一些概览,比如现在有多少数据集,多少个芯片平台,多少上传的样品等等信息。我翻看了一下两年前jimmy出的教程,那个时候的GEO数据库收录的信息只有现在的一半不到,两年时间这些数据呈井喷式的发展,大数据时代信息发展之快也确实让我挺震惊。

尤其是点开基因芯片的平台,以上传的样品数量对这些芯片平台进行排序,发现两年前独占鳌头的Affymetrix公司的HG-U133(也是最古老的基因芯片)已经被illumina公司高通量测序芯片全面超越了接近两倍,这也意味着高通量测序在这两年发展已经不仅仅是快速发展了,简直是火箭式发展……这也是大势所趋。

GEO数据库的搜索地址也很有规律性,比如只有最后的GSE编号不同,其他网址字段都是一模一样的,这也算是方便搜索的一个没什么用处的小技巧?……

看点有用的,我们根据文献得到的GSE编号进行搜索,可以看到如下页面,前半部分是作者的一些信息,我们可以获得测序物种、作者的联系方式、发表的文章PMID等等,而我们更需要获取的信息在后半部分:

样本信息这里解释一下,有三种主要的数据类型:

  • SOFT 平台信息芯片中探针与基因的对应关系注释文件,样品单独的表达量,所有信息文件

  • MINiML XML格式的所有数据,同SOFT文件单格式不同,和HTML格式差不多

  • TXT 这是样品表达矩阵的数据文件,我的理解是总结类型文件,不如用底下的原始数据

原始数据信息也说一下,这里可能会给原始测序的raw data,也可能不给;有的时候会给raw count表达矩阵,也有的时候不给;样品表达矩阵也是有的时候给的raw count,有的时候给的FPKM(比如上面这种情况)。就…挺离谱的,没有标准,如果我们要跑Deseq2复现作者的结论,通过FPKM得到的表达矩阵还不能用。希望网站能制定点相关标准吧(题外话,不然对于我们这种小白,找不到数据直接痛苦面具)

我个人觉得,这个数据库比较重要的是可以获得样品分组信息和SRA数据库的链接地址,方便我们下载测序原始数据(后面介绍怎么下载)。如果不想跑原始数据,也可以直接拿样品表达矩阵来跑转录组下游分析。直接用表达矩阵就是要当心作者拿漂亮数据坑你。

2. SRA数据库

同样的先上数据库链接,点这里

其实从网址上就可以看出端倪,这俩数据库都是NCBI旗下的俩兄弟,都是NCBI一个亲爹亲妈养的。我百度的时候也发现,很多人把这两个数据库混在一起,或者叫GEO/SRA数据库,其实两者还是有区别的。

SRA数据库是三大核酸数据库之一,我之前的笔记也有介绍过(点击这里查看)。我个人的理解是,SRA数据库存放的是原始测序文件,而GEO数据库存放的大部分是经过作者处理以后的数据文件(有的也包括了原始测序文件),相对而言SRA数据库更大也更存粹,而NCBI官方也给了下载SRA数据的小工具——SRA Toolkit

SRA数据类型包含如下四种,看到前缀知道这是SRA数据库,了解一下就行:

  • Studies 研究课题(前缀为ERP或SRP,包含多个Experiment)

  • Experiments 实验设计(前缀为SRS,包含Sample、DNA source、测序平台和测序数据等信息)

  • Samples 样品信息(前缀为SRX,包含一个或多个Runs)

  • Runs 测序结果集(SSR开头的记录,代表测序仪器所产生的reads)

主要说说数据下载方式

前几天也有同学问我sra数据库的原始测序数据怎么下载的,找不到下载方式,看的教程都是NCBI上直接下载的。emmmmmm我的第一反应是这不就是NCBI旗下的子数据库嘛……还能从哪儿下载…

废话不多说,直接看官网给的下载工具——SRA Toolkit

这是一个官方给的小工具合集,提供我们各种操作系统下的安装包,我把linux和windows安装包都下了。安装步骤都是一样的,解压,把bin文件夹路径加到系统环境变量,搞定。windows需要打开cmd命令行运行一次prefetch(下载命令),按照提示输入vdb-config --interactive起到类似激活的作用就行了。linux里甚至都不需要编译(也可以conda安装)。可能有的同学对自己的windows系统不熟悉,不知道怎么改自己的系统环境变量,其实这个比linux改环境变量更容易,百度一下吧= =

我个人更推荐在windows系统安装SRA Toolkit,SRA数据库本身服务器在国外,国内访问下载速度慢到令人发指(个位数Kb/s,甚至直接没有),而类似转录组这种数据,细菌可能还好点,动植物做个10X测序动不动就是几个G十几个G,加上分组和生物学重复动辄几十上百G,那点速度下到天荒地老也下不完。纯命令行的linux系统使用代理服务相对windows系统来说要麻烦一点,说白了,windows系统更容易科学上网,为了下载数据没有别的办法。

我们用的就是SRA Toolkit工具包里的prefetch命令下载原始数据,prefetch有个最大的好处是只要知道SRA数据库的数据类型编号,就可以直接下载对应的原始数据。如果要批量下载,可以将数据编号写入txt文件中再运行prefetch命令,或者直接写个循环语句。所以这里的关键是怎么得到数据编号,比如SRR编号等等。

前面GEO数据库提供了SRA数据库的链接,我们可以直接点开(或者点击原始数据底下的SRA Run Selector):

点击右上角的Send results to Run selector:

我们可以看到,这个项目一共有16个基因组测序数据,难道要16个wget命令一个一个下载麽?不需要,如果要下载的基因组数据数量多肯定不行。我们可以从Accession list里获取不同前缀的各种run数据,后面用prefetch命令结合循环语句,直接一步下载。

把Accession list的编号全部复制下来,以linux为例运行cat > id,回车后粘贴编号,按ctrl+c退出,这样就生成了一个名为id的文件,里面内容是我们要下载的基因组测序数据编号。

写一个循环语句cat id | while read id ;do prefetch $id &;done ,就可以全部下载了,这里没有指定输出目录,最终所有原始测序数据会输出到根目录下。

最后顺便说一句,下载测序原始数据的方法很多,不仅仅是官方给的这个小工具。还可以用aspera遵循一定的下载格式也可以下载原始数据,或者用最原始的wget简单粗暴直接下载,只是说这些方法都或多或少受到网络限制的影响,prefetch也只是相对稳定一点。前面的笔记我也介绍过爬虫的编程方法,分解网页结构,批量抓取我们需要的信息,这也不失为一种方法。人是活的,不要拘泥于一种思路。

欢迎小伙伴们留言评论~