命令行下载公共数据库测序数据¶
内容简介
很多场合下需要用到公共数据库中他人提交的基因组,就需要下载基因组数据。常规方法可以通过NCBI的entrez或者EBI的在网页端搜索后,对检索到的结果以文件形式下载。
如果要大规模下载数据,则建议在服务器端命令行中要进行操作,并通过构建自动化工作流程,实现无人值守同步数据。本节主要介绍 NCBI/EBI/DDBJ的公共数据库中数据在服务器端命令行下获得的方法。
基本概念¶
1. NCBI¶
NCBI常用的基因组数据库:
- Genbank
- Assembly
- SRA
- Geo
关于下载速度¶
不同地区、不同时间下载速度会有很大差异。但总体上来说,峰值速度上,国内我们所在的网络线路速度如下:
- EBI ENA ascp 下载峰值 10~30Mb/s
- AWS s3 cp 下载峰值 ~1Mb/s
- NCBI http wget/curl/aria2c 不同工具的速度差异明显,但是总体上速度 <1MB/s,大部分时间稳定在100KB/s
- prefetch http 下载最慢,~10KB/s
优点vs缺点
通过ascp
在ENA进行下载是目前的首选,但问题在于ENA也不够稳定,容易遇到无法访问或者认证错误等现象,如果是服务器的原因可能等一段时间就可以继续,这样需要人工干预。
ENA可以直接下载fastq数据,省去sra dump fastq时对于IO和CPU的消耗。但是ENA下载容易中断,导致数据不完整,fastq数据不能像sra一样,可以用vdb-validate
来验证下载数据的完整性。因此需要调用ENA reports API来抓取fastq文件的md5校验值。