从NCBI-SRA和EBI-ENA数据库下载数据

NCBI-SRA和EBI-ENA数据库

SRA数据库: Sequence Read Archive:隶属NCBI (National Center for Biotechnology Information),它是一个保存大规模平行测序原始数据以及比对信息和元数据 (metadata) 的数据库,所有已发表的文献中高通量测序数据基本都上传至此,方便其他研究者下载及再研究。其中的数据则是通过压缩后以.sra文件格式来保存的,SRA数据库可以用于搜索和展示SRA项目数据,包括SRA主页和 Entrez system,由 NCBI 负责维护。SRA数据库中的数据分为Studies, Experiments, Samples和相应的Runs四个层次:

Study:accession number 以 DRP,SRP,ERP 开头,表示的是一个特定目的的研究课题,可以包含多个研究机构和研究类型等。study 包含了项目的所有 metadata,并有一个 NCBI 和 EBI 共同承认的项目编号(universal project id),一个 study 可以包含多个实验(experiment)。

Sample:accession number以 DRS,SRS,ERS 开头,表示的是样品信息。样本信息可以包括物种信息、菌株(品系) 信息、家系信息、表型数据、临床数据,组织类型等。可以通过 Trace 来查询。

Experiment:accession number 以 DRX,SRX,ERX 开头。表示一个实验记载的实验设计(Design),实验平台(Platform)和结果处理 (processing)三部分信息。实验是 SRA 数据库的最基本单元,一个实验信息可以同时包含多个结果集(run)。

Run:accession number 以DRR,SRR,ERR 开头。一个 Run 包括测序序列及质量数据。

Submission:一个 study 的数据,可以分多次递交至 SRA 数据库。比如在一个项目启动前期,就可以把 study,experiment 的数据递交上去,随着项目的进展,逐批递交 run 数据。study 等同于项目,submission 等同于批次的概念。

ENA数据库:European Nucleotide Archive:隶属EBI (European Bioinformatics Institute),功能等同SRA,并且对保存的数据做了注释,界面相对于SRA更友好,对于有数据需求的研究人员来说,ENA数据库最诱人的点应该是可以直接下载fastq (.gz)文件,由 EBI 负责维护。

两者在主要功能方面非常类似,同时数据互通。


sra文件下载方式

需要获取他人发表的公开测序数据,来帮助自己的研究领域,下载.sra文件是为了获取该sra相对应的fastq或者sam文件,通过文件格式转换就可以和自己的pipeline对接上,用于直接分析,所以:

第一步,我们需要到SRA或者ENA上搜索我们选择好的SRR号或者SRS号或者SRP号,先在ENA上搜索,如没有再去SRA上搜索,因为ENA下载比SRA快。

第二步,下载数据,从 SRA 数据库下载数据有多种方法。可以用ascp快速的来下载 sra 文件,也可以用wget或curl等传统命令从 FTP 服务器上下载 sra 文件(但是wget和curl下载的sra文件有时候会不完整),另外NCBI的sratoolkit 工具集中的prefetch、fastq-dump和sam-dump也支持直接下载,另外biostar handbook中有一个wonderdump脚本也方便下载数据,我以前还用过迅雷下载sra文件,直接得到sra的链接,迅雷下载。


1. Aspera

Aspera Connect软件,这是IBM旗下的商业高速文件传输软件,随着高通量数据的大量产生,从而对于大文件快速传输的需求,开始应用到生物领域,与NCBI和EBI有协作合同,我们可以免费使用它下载高通量测序文件,体验飞一般的感觉,速度可飚至300-500M/s。下载完成后,本地用fastq-dump提取fastq文件,用sam-dump提取SAM文件。

传统的FTP、HTTP等数据传输协议都是基于TCP的,TCP在远距离数据传输中存在一些先天的不足,文件越大、距离越远,其丢包、延时等问题对于传输速度和效率的影响就越大。


Aspera的安裝:

下载链接点击此处查看

#download aspera lastest version:

wget https://download.asperasoft.com/download/sw/connect/3.8.1/ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.tar.gz

tar xzvf ibm-aspera-connect-3.8.1.161274-linux-g2.12-64.sh

#install aspera in server:

sh aspera-connect-3.8.1.161274-linux-g2.12-64.sh

查看是否有.aspera文件夹  

cd # 去根目录 

ls -a   # 如果看到.aspera文件夹,代表安装成功

 # 永久添加环境变量

echo 'export PATH=~/.aspera/connect/bin:$PATH' >> ~/.bashrc  && cp ~/.bashrc~/.bash_profile

source ~/.bashrc ~/.bash_profile

# 查看帮助文档

ascp --help 

ascp的用法(在线文档):ascp [参数] 目标文件 目标地址,

先了解几个ascp命令的常用参数

-v    verbose mode 唠叨模式,能让你实时知道程序在干啥,方便查错。

-T    取消加密,否则有时候数据下载不了

-i    提供私钥文件的地址,免密从SRA和ENA下载,不能少,地址一般是~/.aspera/connect/etc中的asperaweb_id_dsa.openssh文件

-l    设置最大传输速度,一般200m到500m,如果不设置,反而速度会比较低,可能有个较低的默认值

-k    断点续传,一般设置为值1

-Q    用于自适应流量控制,磁盘限制所需

-P    用于SSH身份验证的TCP端口,一般是33001


ascp进行SRA数据库下载

ps:记住,SRA数据库的数据的存放地址是ftp-private.ncbi.nlm.nih.gov或者ftp.ncbi.nlm.nih.gov,SRA在Aspera的用户名是anonftp,下载范例:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh anonftp@ftp.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra ~/rawdata/ascp/

或者

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra ~/rawdata/ascp/


注意:anonftp@ftp-private.ncbi.nlm.nih.gov和anonftp@ftp.ncbi.nlm.nih.gov后面是“ : ”号,不是路径“ / ”

熟悉的人应该知道,NCBI-SRA数据库的sra文件前面的地址都是一样的/sra/sra-instant/reads/ByRun/sra/SRR/...,可以根据需要下载的sra文件来编写脚本进行批量下载sra文件!

/sra/sra-instant/reads/ByRun/sra/{SRR|ERR|DRR}/<first 6 characters of accession>/<accession>/<accession>.sra

因为sra文件前面的地址是一样的,除了后两个字段,所以也可以通过把sra文件的id写到一个文档,使用ascp批量下载文档中所有的sra文件,举例如下:

SRR_Download_List中包含如下:

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976568/SRR2976568.sra

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976569/SRR2976569.sra 

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976570/SRR2976570.sra 

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976571/SRR2976571.sra 

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976572/SRR2976572.sra 

/sra/sra-instant/reads/ByRun/sra/SRR/SRR297/SRR2976573/SRR2976573.sra

##使用 ascp批量下载该List下的sra文件:

ascp  -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp --file-list SRR_Download_List  ~/rawdata/ascp/

或者,host不同的情况下:

ascp  -v -QT -l 400m -P33001 -k1 -i  ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  --mode recv --host ftp.ncbi.nlm.nih.gov --user anonftp --file-listSRR_Download_List   ~/rawdata/ascp/ 


sratoolkit进行SRA数据库下载

NCBI 开发了 sratoolkit 工具来帮助处理 SRA 数据,正确配置后可以很方便的下载 SRA 数据。可以直接从 NCBI 上下载。最新的源码可以在 Github 获得。

另外,如果你安装并设置了 Aspera Connect,那么 prefetch 会优先使用ascp方式来下载,如果没有安装或则ascp下载失败,则切换成 HTTP 方式下载 sra 数据。另外 fastq-dump 命令(大概的命令)也能从远端直接下载数据,加上-X 1参数,会预先下载最前的5个 reads,加上-Z参数,则会将这些 reads 打印到终端输出。

/path of sratoolkit/prefetch -t ascp -a “~/.aspera/connect/etc/asperaweb_id_dsa.openssh” SRR2976573

/path of sratoolkit/fastq-dump -X 5 -Z SRR2976573


ascp进行ENA数据库下载

从ENA数据库进行下载,ENA数据库的数据存放位置是fasp.sra.ebi.ac.uk,ENA在Aspera的用户名是era-fasp,era-fasp@fasp.sra.ebi.ac.uk。如果要从ENA数据库下载SRR2976573,我们先搜索:

ENA界面简洁

从截图中,我们可以发现我们可以自己设定显示哪些title(如:FASTQ files (Aspera)、FASTQ files (FTP)、NCBI SRA file (FTP)、NCBI SRA file (Aspera))在表格中,再点击下载TEXT,可以在本地保存需要的信息,以便后期的数据下载。

单个数据下载例子,可以是sra文件,也可以是fastq.gz文件:

####sra文件下载:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/srr/SRR297/003/SRR2976573  ~/rawdata/ascp/ 

####FASTQ文件下载;

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh  era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_1.fastq.gz  ~/rawdata/ascp/

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh era-fasp@fasp.sra.ebi.ac.uk:/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_2.fastq.gz  ~/rawdata/ascp/

批量从ENA下载数据,比如我们在ENA搜索SRP067062,我们得到如下截图:


SRP067062/ PRJNA305211 截图

结果设置显示项目,再下载TEXT,我们可以得到:

aspera的链接显示

分为SRA文件的txt和FASTQ文件的TXT:

####ENA-Aspera-FASTQ.txt:

/vol1/fastq/SRR297/002/SRR2976562/SRR2976562_1.fastq.gz

/vol1/fastq/SRR297/002/SRR2976562/SRR2976562_2.fastq.gz

/vol1/fastq/SRR297/003/SRR2976563/SRR2976563_1.fastq.gz

/vol1/fastq/SRR297/003/SRR2976563/SRR2976563_2.fastq.gz

/vol1/fastq/SRR297/008/SRR2976568/SRR2976568_1.fastq.gz

/vol1/fastq/SRR297/008/SRR2976568/SRR2976568_2.fastq.gz

/vol1/fastq/SRR297/009/SRR2976569/SRR2976569_1.fastq.gz

/vol1/fastq/SRR297/009/SRR2976569/SRR2976569_2.fastq.gz

/vol1/fastq/SRR297/002/SRR2976572/SRR2976572_1.fastq.gz

/vol1/fastq/SRR297/002/SRR2976572/SRR2976572_2.fastq.gz

/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_1.fastq.gz

/vol1/fastq/SRR297/003/SRR2976573/SRR2976573_2.fastq.gz

####ENA-Aspera-SRA.txt:

/vol1/srr/SRR297/002/SRR2976562

/vol1/srr/SRR297/003/SRR2976563 

/vol1/srr/SRR297/008/SRR2976568   

/vol1/srr/SRR297/009/SRR2976569 

/vol1/srr/SRR297/002/SRR2976572  

/vol1/srr/SRR297/003/SRR2976573


批量下载代码:

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh--mode recv --host fasp.sra.ebi.ac.uk --user era-fasp --file-list ENA-Aspera-FASTQ.txt  ~/rawdata/ascp/

###上面代码下载FASTQ.gz文件,下面代码下载的是SRA文件;

ascp -v -QT -l 400m -P33001 -k1 -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh --mode recv --host fasp.sra.ebi.ac.uk --user era-fasp --file-list  ENA-Aspera-SRA.txt   ~/rawdata/ascp/


遇到的问题

ascp下载ENA数据的时候有可能会出现Session Stop,解决方案:

第一、把ascp 的-l 不要设置的太大了,一般设置为500m就可以了;

第二、在root权限下设置udp端口

           使用iptable设置如下:

                    iptables -I INPUT -p udp --dport 33001 -j ACCEPT

                    iptables -I OUTPUT -p udp --dport 33001 -j ACCEPT


总结

Aspera Connect的下载速度是最快的,相对于sratoolkit的套件下载和wget或者curl下载;并且Aspera的下载可以下载fastq文件和SRA文件,免去了SRA转至FASTQ的过程,该过程很耗时,特别耗时!

参考资料

https://blog.csdn.net/herokoking/article/details/78890567

https://ngs-data-for-pathogen-analysis.readthedocs.io/zh_CN/latest/chapter_01/01_get_data.html

https://anjingwd.github.io/AnJingwd.github.io/2017/08/06/SRA%E6%A0%BC%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%8A%A0%E9%80%9F%E4%B8%8B%E8%BD%BD%E6%89%93%E5%8C%85%E8%A7%A3%E5%86%B3/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容