SRA-Toolkit工具下载SRA数据
引言
高通量的原始数据通常情况下会上传到NCBI的SRA(Sequence Read Archive)数据库。
常见的下载方法有1:
aspera工具下载wget,curl命令直接下载NCBI官方的SRA Toolkit进行下载
aspera 工具配置麻烦,直接下载容易出错,所以使用 SRA-Toolkit工具下载。(2024年04月27日)SRA-Toolkit工具无断点续传,所以使用srapath获得地址后使用axel下载。
过程
srapath获得地址后使用axel下载 (2024年04月27日)
本来其实SRA-Toolkit足够好用了,但是当下载的文件由2G变成20G, 一旦出现网络波动几个小时的工作量就会付之东流…
所以还是万能的下载链接好使。
大概意思如下:
1 | link=$(srapath $(sed -n "${i}p" $srr_acc_list_file)) |
使用 SRA-Toolkit 工具进行下载
下载 SRA-Toolkit 工具并安装
主要流程来源于官方教程及网络2-3.
官方教程链接:
02. Installing SRA Toolkit · ncbi/sra-tools Wiki · GitHub
https://github.com/ncbi/sra-tools/wiki/02.-Installing-SRA-Toolkit
以CentOS为例:
- 下载sratoolkit.current-centos_linux64.tar.gz, 可以
wget, 但推荐本地下载后传入。 - 传入目标文件夹,如
/dev/sda1/home/tenney/app/sratoolkit/, 并在终端中进入该地址,如cd /dev/sda1/home/tenney/app/sratoolkit/, 对文件解压,tar -vxzf sratoolkit.tar.gz, 注意tar -vxzf后的内容可能产生变化,以实际为准,比如我是tar -vxzf sratoolkit.current-centos_linux64.tar.gz. - 将二进制文件的路径附加到
PATH环境变量中,如:export PATH=$PATH:$PWD/sratoolkit.3.0.5-centos_linux64/bin. - 验证二进制文件是否可由shell找到:
which fastq-dump. - 测试工具包是否有效:
fastq-dump --stdout -X 2 SRR390728.
永久添加环境变量可以写入~/.bashrc文件。
完整代码如下:
1 | cd /dev/sda1/home/tenney/app/sratoolkit/ |
prefetch 工具下载数据
提供RUN的SRR/DRR/ERR检索号即可下载,如prefetch ERR009357.
也可以提供列表,以\n分隔。
1 | cat SRR_Acc_List.txt |
其中,-O .代表下载到当前文件夹,$(<SRR_Acc_List.txt)代表读入的列表。
Aspera的下载和安装
如果想获得更快的下载速度,就需要使用ibm-aspera软件。
Aspera——利用SRR号批量高效下载FASTQ或SRA数据 - 知乎
首先,在linux系统上,最推荐使用conda安装。
conda install -c hcc aspera-cli
如果使用全版本安装,可能会出现依赖包不匹配等问题,特别是最新版非常不推荐使用。
测试运行代码:
1 | ascp -vQT -l 500m -P33001 -k 1 -i \ |
SRA数据转化为fastq文件
使用SRA-Toolkit中的fastq-dump工具将SRA数据转化为fastq文件。
转换之前需要知道我们拿到的数据是单端还是双端数据4。
1 | # 如果返回值是4,就是单端SE;如果返回值是8,那么就是双端PE。 |
可以写一个批量脚本,输入文件在/data/input, 输出文件在/data/output.
1 | #!/bin/bash |
结论
值得注意的是,一个GSM编号是可能对应多个Run(SRR) 的,应对的方法可以是分别qc和align,最后quantification的时候考虑合并5。
简单来说,PRJNA相当于是一个project,里面可以有许多experiment(SRX)以及样品(SRS),每个SRX可以有若干个Run(SRR)。你这3个Run应该分开qc和align,如果都没问题的话,最后quantification的时候可以合并。这样的好处是,如果里面有一个Run的数据不好,你可以知道并随时舍弃,而不会影响你最后的结果。
