Skip to content

命令行下载公共数据库测序数据

内容简介

很多场合下需要用到公共数据库中他人提交的基因组,就需要下载基因组数据。常规方法可以通过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校验值。