SRA数据加速下载打包解决

  NCBI维护Short Read Archive (SRA)作为大规模平行测序(NGS)项目产生的数据仓库。这些方法在单个循环中能产生数百万碱基至千兆级碱基的数据,是标准Sanger测序仪输出的数百万倍。运用这些技术,包括新基因组的测序,捕获基因组区域测序,多个个体的完整基因组测序来寻找变异,转录组测序来研究样本可变剪切变异和表达水平,环境样本和其他宏基因组,染色质DNA结合蛋白分析等。SRA数据库可以用于搜索和展示SRA项目数据,包括SRA主页和 Entrez system。

  NCBI维护Short Read Archive (SRA)作为大规模平行测序(NGS)项目产生的数据仓库。这些方法在单个循环中能产生数百万碱基至千兆级碱基的数据,是标准Sanger测序仪输出的数百万倍。运用这些技术,包括新基因组的测序,捕获基因组区域测序,多个个体的完整基因组测序来寻找变异,转录组测序来研究样本可变剪切变异和表达水平,环境样本和其他宏基因组,染色质DNA结合蛋白分析等。SRA数据库可以用于搜索和展示SRA项目数据,包括SRA主页和 Entrez system。

SRA下载方式:
(1)Aspera
(2)sratoolkit
(3)FTP

比较:通过sratoolkit,可以直接下载成fastq格式,速度比ftp快,比aspera慢。

Aspera

关于速铂Aspera

  速铂Aspera是一套商业的高速文件传输解决方案,随着高通量数据的大量产生,从而对于大文件快速传输的需求,开始应用到生物领域,目前NCBI、EBI的SRA库都提供这样的服务。

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

Aspera使用的两种方式

(1)客户端的下载与安装

  即便Aspera是商业软件,但是作为客户应用方(相对于NCBI),我们使用其客户对进行数据的上传与下载是不用支付费用的

  网页下载:速度很快,不过需要把数据再上传到服务器上,多费一道工序下载网页版AsperaConnectML-3.5.2.97180.msi安装,网页上下载SRA数据时点aspera下载链接就可以。

  • 客户端下载链接:

http://downloads.asperasoft.com/connect2/

  • 设置下载目录及速度限制等:

至此,客户端工具准备妥当了~

(2)使用ascp下载SRA数据:ascp是Aspera Connect的命令行程序。

下载与安装(不需要root或者sudo权限):

curl -O http://download.asperasoft.com/download/sw/connect/3.6.1/aspera-connect-3.6.1.110647-linux-64.tar.gz  
tar zxf asper-connect-3.6.1.110647-linux.tar.gz 
sh aspera-connect-3.6.1.110647-linux-64.sh  

添加环境变量:

export PATH="/home/u641750/.aspera/connect/bin:$PATH"

可以将密钥备份到/home/的家目录下方便使用(后文将用到):

$ cp ~/.aspera/connect/etc/asperaweb_id_dsa.openssh ~/

至此,命令行工具准备妥当了~

那么如何找到我们要下载的SRA数据呢?

首先我们需要了解下NSBI的SRA数据结构的层次关系:

NCBI官网说明:https://www.ncbi.nlm.nih.gov/books/NBK7522/

  SRA数据库中的数据分为Studies, Experiments, Samples和相应的Runs四个层次。Studies有一个总体目标并可能包含数个Experiments。一个Experiments描述具体测了什么和使用的方法。它包括DNA来源信息,样本,测序平台,数据处理。每个Experiments由一个或者多个Runs组成。一个Run包含来自每个spot的reads结果。在未来,一些数据将具有相关分析。这些分析可能包括short reads组装为基因组或者转录组的contigs,现有基因组的比对,SRA数据的比对。每个水平的记录具有唯一的accession identifiers ,并且具有三个大写字母前缀:

  NCBI中SRA数据结构的层次关系:

  • Studies:
    • SRA Study accessions (prefixes SRP, DRP, ERP)
    • Examples: SRP000002, DRP000617, ERP002000
    • BioProject accessions (prefixes PRJNA, PRJDB, PRJEB)
    • Examples: PRJNA111397, PRJDB90, PRJEB1976
    • dbGaP study accessions (prefix phs)
    • Example: phs000159
    • GEO Study (prefix GSE)
    • Example: GSE12578
  • Samples:
    • SRA Sample accessions (prefixes SRS, DRS, ERS)
    • Examples: SRS000013, DRS000020, ERS000016
    • BioSample accessions (prefixes SAMN, SAME)
    • Examples: SAMN00000013, SAMEA774460
    • GEO Sample (prefix GSM)
    • Example: GSM769008
  • SRA Experiment(s)
    • SRA Experiment accessions (prefixes SRX, DRX, ERX)
    • Example: SRX000002,SRX000003,SRX000004

Figure 2 shows Study (SRP000095, top panel), Experiment (SRX000113, middle panel, and SRX000114), and Run (SRR000416, bottom panel) records for the 454 sequencing of James Watson’s genome by Cold Spring Harbor Laboratory. Study and Run records are displayed in the SRA browser. The corresponding Experiment records are displayed in the NCBI Entrez system as described in the next section.

在SRA浏览页面和Entrez可以搜索和查看SRA数据

Studies, Runs和它们相关的Samples可以通过SRA主页浏览和查看:

www.ncbi.nlm.nih.gov/Traces/sra

Experiment记录可以通过搜索 Entrez SRA数据库获得:

www.ncbi.nlm.nih.gov/sites/entrez?db=sra

接下来具体介绍:

搜索地址:https://www.ncbi.nlm.nih.gov/Traces/study/

(1)通过以上网址,查询得到SRA数据的SRA Experiment accessions (prefixes SRX, DRX, ERX)

(2)在NCBI的SRA数据库搜索SRA Experiment accessions,例如:SRX000004,点选All runs ,下载Accession List ,使用prefetch下载(prefetch直接调用ascp,没有安装ascp之前直接用http

点击Download data:

此时鼠标选中SRX实验或者任意一个SRR记录,通过Aspera client客户端下载。但这样需要等下载完再使用FTP上传到自己的服务器,前面提过,FTP速度很慢!!!

那么如何在服务器使用ascp命令行工具下载呢?

命令格式:

ascp -i <path-to-asperaweb_id_dsa.openssh> -k1 -QTr –l200m anonftp@ftp-private.ncbi.nlm.nih.gov:/<files to transfer> <local destination>

相关的参数

  • –Q (for adaptive flow control) – needed for disk throttling!
  • –T to disable encryption
  • –k1 enable resume of failed transfers
  • –l (maximum bandwidth of request, try 200M and go up from there)
  • –r recursive copy
  • –i <密钥文件>

表明下载存放路径,一定要有,缺少会报错!!!
关键是如何获取,也就是你要下载的SRR数据的地址,并且一定要保证其存在,否则会报错!!!

将鼠标选中上图任意一个SRR文件,例如SRR00006.sra,右键,复制链接地址:
fasp://anonftp@ftp.ncbi.nlm.nih.gov:22/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000006/SRR000006.sra?auth=no&port=33001&bwcap=300000&targetrate=100p&policy=fair&enc=none&lockpolicy=no&locktargetrate=no&lockminrate=no&v=2

摘取/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000006/SRR000006.sra部分即为

网上有其他教程说遵循如/sra/sra-instant/reads/ByRun/sra/SRR/SRR689/SRR689250/SRR689250.sra固定的格式,但实际并非如此,比如上面的例子,所以并不能图省事硬套上述格式,还是要再win下如上述方法找到文件具体的地址,摘取部分,以确保文件存在,否则会报错:“ascp: no remote host specified, exiting”

举个栗子:

(1)单个文件下载:

ascp -i ~/asperaweb_id_dsa.openssh -k1 -Tr -l100m anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000006/SRR000006.sra ~

(2)批量下载:

观察发现,一个SRX Experiment accessions下的是有规律的,如win下的目录结构所示,只是后两个字段不同:
/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000006/SRR000006

因此可以整理为下面的格式黏贴在文本SRR_Download_List_file_list.txt 中:

/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000006/SRR000006.sra
/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000009/SRR000009.sra
/sra/sra-instant/reads/ByExp/sra/SRX/SRX000/SRX000004/SRR000010/SRR000010.sra

…….等

ascp  -i  ~/asperaweb_id_dsa.openssh --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp   --file-list  SRR_Download_List_file_list.txt ~

如此可以实现批量下载!

使用后会发现,从NCBI上下载SRA速度,一般的宽带的话,也可以达到100M/s,大大节约了下载的时间,非常给力

注意事项:

(1)如果报错:Error: Server aborted session: Client requests stronger encryption than server allows,那么可以参考:https://support.asperasoft.com/hc/en-us/articles/216126788-Error-Client-requests-stronger-encryption-than-server-allows 对客户端和命令行两种方式都给出了解决方案。在linux命令行下也就是加个-T参数,即:

ascp -T -i  ~/asperaweb_id_dsa.openssh --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp   --file-list  SRR_Download_List_file_list.txt ./

(2)放入后台下载,这样不用担心关闭客户端,下载也停止了~

nohup ascp -T -i  ~/asperaweb_id_dsa.openssh --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp   --file-list  SRR_Download_List_file_list.txt ./ &

(3)aspera默认不支持断点续传,要支持这个功能添加参数:

ascp -k1 -T -i  ~/asperaweb_id_dsa.openssh --mode recv --host ftp-private.ncbi.nlm.nih.gov --user anonftp   --file-list  SRR_Download_List_file_list.txt ./

所以 ascp -i ~/asperaweb_id_dsa.openssh -k1 -Tr -l100m anonftp@ftp-private.ncbi.nlm.nih.gov:命令可以通用

(4)从EBI上下载也类似,给个例子:

ascp -i ~/asperaweb_id_dsa.putty era-fasp@fasp.sra.ebi.ac.uk:/vol1/ERA012/ERA012008/sff/library08_GJ6U61T06.sff

提供Aspera的数据库:

(1)NCBI的Sequence Read Archive (SRA), dbGaP.

(2)1000genomes – EBI Aspera site, the NCBI Aspera site

1000genomes – EBI Aspera site:

http://www.internationalgenome.org/aspera

1000genomes – the NCBI Aspera site

https://www.ncbi.nlm.nih.gov/projects/faspftp/1000genomes/

sra数据转为fastaq

  sra是NCBI 推出的存储高通量数据的格式,而平常我们工作用得多是fastq格式。如果需要把sra 转成fastq,则下载NCBI SRA Toolkit。

下载地址:
https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=show&f=software&m=software&s=software

(1)下载安装(CentOS Linux 64 bit architecture):

curl -O https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.8.2-1/sratoolkit.2.8.2-1-centos_linux64.tar.gz

tar xzvf sratoolkit.2.8.2-1-centos_linux64.tar.gz

cd  sratoolkit.2.8.2-1-centos_linux64

程序都在bin目录下,来看看有什么:

cd bin

SRA Toolkit Documentation, Frequently Used Tools:

  • fastq-dump: Convert SRA data into fastq format

  • prefetch: Allows command-line downloading of SRA, dbGaP, and ADSP data

  • sam-dump: Convert SRA data to sam format

  • sra-pileup: Generate pileup statistics on aligned SRA data

  • vdb-config: Display and modify VDB configuration information

  • vdb-decrypt: Decrypt non-SRA dbGaP data (“phenotype data”)

(2)添加环境变量

echo 'export PATH=/home/wangdong/softwares/sratoolkit.2.8.2-centos_linux64/bin'>>~/.bashrc

source ~/.bashrc

(3)使用:

使用prefetch下载SRA数据

下载文件:

(1)单个下载

prefetch SRR1553610

(2)批量下载

for i in $(seq 58 79);do prefetch -v SRR8287$i ;done

或者使用 prefetch --option-file sra.ids ,其中sra.ids一行一个SRR编号

(3)检查给定序列号是否可以能够下载

prefetch -c SRR390728

这些文件区哪儿了?这些文件去哪里了?存在了你home目录下的一个默认文件夹里。

ls ~/ncbi

从NCBI下下来的数据,双端测序数据是放在一个文件里的,所以需要把它们重新拆解为两个文件。注意,下载下来的这个SRA文件虽然只有一份,但是里面其实存了read1和read2的测序数据。
我们用程序fastq-dump来把文件拆包

fastq-dump --split-files SRR1553610

那么我怎么知道哪些数据是双端测序的呢?上文的网址关于NSBI的SRA数据结构的Study层次对实验方法有具体介绍:网址再贴一遍:https://www.ncbi.nlm.nih.gov/Traces/study/

小细节之拆包后文件的命名:

File name Description
SRR030257_1.fastq Paired-end Illumina, First of pair, FASTQ format
SRR030257_2.fastq Paired-end Illumina, Second of pair, FASTQ format

因为在后续分析,mapping到RefSeq上时,单端测序和双端测序命令有些不同!需要注意下。

更多的说明,请参见官方的SRA下载手册:

NCBI: https://www.ncbi.nlm.nih.gov/books/NBK242625/

EBI: http://www.ebi.ac.uk/ena/about/sra_data_download


FTP下载方式:

使用Xftp5 匿名登录FTP站点即可下载资源,慢点就慢点吧~有时需要下载的文件也就1-2M

三大数据库的FTP地址:

ensembl : ftp://ftp.ensembl.org/pub

NCBI : ftp://ftp.ncbi.nih.gov/genomes/

UCSC:ftp://hgdownload.soe.ucsc.edu/goldenPath

补充:使用SRA Run Selector下载

网址:https://www.ncbi.nlm.nih.gov/Traces/study/
帮助(步骤很详细了):https://www.ncbi.nlm.nih.gov/Traces/study/?go=help


参考:

(1)博耘生物:

http://boyun.sh.cn/bio/?p=1933

(2)Keep Learning的博客

http://blog.csdn.net/xubo245/article/details/50513201

(3)郑俊娟的博客:

http://blog.sciencenet.cn/blog-1271266-775638.html

(4)鳉鲈的博客:

http://blog.sina.com.cn/s/blog_71df25810102w2vf.html

(5)生信笔记的博客:

http://www.bioinfo-scrounger.com/

(6)Rethink的博客

http://blog.leanote.com/post/hwoihann/how-to-download-series-of-sra-data-in-one-command

-------------本文结束感谢您的阅读-------------