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的数据不好,你可以知道并随时舍弃,而不会影响你最后的结果。
引用
Gitalking ...