linux环境下如何方便地下载NCBI和NGDC上的测序数据

62

1. NCBI

ncbi上的数据用起来真方便啊,下载sra号后,只需要运行下面的命令就可以把数据全部下载下来了。

  1. 在SRA Run Selector中下载Accession List,格式如下

SRR000001
SRR000002
SRR000003

  1. 使用sratool下载数据(conda里的版本目前是2.5.7,官网最新的已经到3.0.3了)

sratool下载链接:https://github.com/ncbi/sra-tools/wiki/

  • 一个run:prefetch SRR000001
  • 一个Accession List文件:prefetch --option-file SraAccList.txt
  1. SRA转fastq格式

参考:https://www.ncbi.nlm.nih.gov/sra/docs/sradownload/#download-sequence-data-files-usi

  • 标准方法:fasterq-dump --split-files SRR11180057.sra
  • 不进行预提取,直接下载并转换:fasterq-dump --split-files SRR11180057
  • 下载原始提交文件:prefetch --type fastq SRR11180057
  1. 另外,如果翻看一些老教程,还会让你下载Aspera,但现在prefetch已经不支持这个了。

  2. 附一些我之前下载时用的小脚本,不过现在应该有更优雅的办法
    注:好像分开同时使用prefetch下载速度会很快。

# 合订本
for i in `cat $1`
do
	prefetch $i #step1 下载sra数据
	fasterq-dump --split-3 $i -e 40 && pigz $i*.fastq & #step2 sra转为fastq并压缩
done

# 分开时step1/2
for i in `cat $1`
do
	prefetch $i &
	#fasterq-dump --split-3 $i -e 40 && pigz $i*.fastq &
done
# 分开时step2/2
for i in `cat $1`
do
	#prefetch $i
	fasterq-dump --split-3 $i -e 40 && pigz $i*.fastq &
done
  1. 测试 下载SRR12534285

#下载sra数据

  • nohup prefetch SRR12534285 &

#使用两种方法提取fastq看看

  • fasterq-dump --split-files SRR12534285/SRR12534285.sra
  • fasterq-dump --split-3 SRR12534285/SRR12534285.sra

以上两种方法结果相同

#试一下多线程 #-e 40时,fastq文件的顺序会改变,因此md5sum值与以上不同

  • fasterq-dump --split-3 SRR12534285/SRR12534285.sra -e 40

#直接下载fastq文件,速度好像有点慢?

  • nohup fasterq-dump --split-files SRR12534285 &

#使用--type any参数,下载的结果和nohup prefetch SRR12534285 &中相同

  • nohup prefetch --type any SRR12534285 &
  1. 总结
    fasterq-dump命令中,使用--split-files还是--split-3呢?在以上例子中,这两个参数输出结果一样。但是据说在单细胞的sra数据中,只有--split-files可以输出正常结果。而且官方教程里,只简单地说了用--split-files。所以看来一般无脑用--split-files就可以了。

# 一个run
prefetch SRR000001
# 一个Accession List文件
prefetch --option-file SraAccList.txt
# 提取fastq文件并压缩
fasterq-dump --split-files SRR000001.sra -e 40 && pigz SRR000001*.fastq

2. NGDC

参考链接:https://ngdc.cncb.ac.cn/ettrans/files/edgeturbo%E5%AE%A2%E6%88%B7%E7%AB%AF%EF%BC%88linux%E7%89%88%EF%BC%89%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.pdf

  1. 安装edgeturbo
  2. 熟悉简单的命令
#启动客户端
edgeturbo start
#重新启动客户端
edgeturbo restart
#停止客户端
edgeturbo stop
#下载
edgeturbo download/dl <remote_path> [Llocal_path]
#查看任务状态
edgeturbo ps
#删除所有任务
edgeturbo rm
#设置本地下载目录(也可以不设置,每次使用L参数临时指定)
edgeturbo set /home/lnjoying/mydownload
#查看帮助
edgeturbo help
  1. 下载实例
  • 首先取这个项目的GSA页面,下载元数据信息
  • 复制要下载的文件路径,格式化为以下形式(在项目GSA页面下载MetaData有现成路径可以提取)
edgeturbo dl \
/gsa/CRA004570/CRR303879/CRR303879_f1.fastq.gz \ #每个文件的在数据库中的路径
/gsa/CRA004570/CRR303880/CRR303880_f1.fastq.gz \
/gsa/CRA004570/CRR303881/CRR303881_f1.fastq.gz \
L/mnt/caigui/68_xdx_wjw_rnaseq #下载数据保存的本地路径
  • 之后会进入edgeturbo客户端,ctrl+C退出即可,会后台继续下载
  • 如果要删除某个下载进程,edgeturbo进入客户端,然后按d,输入任务编号回车即可。暂停为p,续传为r。
  • 20240219update: 下载的MetaData中文件保存路径和实际保存路径可能有差距,比如CRA008540项目,metadata文件显示数据保存在/gsa/下,但点进一个实际的run比如CRR589087后,可以发现给的FTP下载路径是在/gsa2/下,以实际为准
  1. 如果你想试试aspera
  • 在GSA页面,点开Aspera命令行,下载key file,就是一个后缀openssh的文件
  • 下载实例,速度确实快一点,从上面的400kb/s升到了700kb/s。ascp4 -P33001 -i aspera01.openssh -QT -l100m -k1 -d aspera01@download.cncb.ac.cn:gsa/CRA004570/CRR303879/CRR303879_f1.fastq.gz /mnt/caigui/99_test/03_sra