前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SRA-Toolkit工具下载SRA数据

SRA-Toolkit工具下载SRA数据

原创
作者头像
叶子Tenney
发布2023-05-24 20:29:44
1.6K0
发布2023-05-24 20:29:44
举报

引言

高通量的原始数据通常情况下会上传到NCBISRASequence Read Archive)数据库。

常见的下载方法有^5^:

  1. aspera 工具下载
  2. wget, curl命令直接下载
  3. NCBI官方的 SRA Toolkit 进行下载

aspera 工具配置麻烦, 直接下载容易出错, 所以使用SRA-Toolkit工具下载.

过程

使用 SRA-Toolkit 工具进行下载

下载 SRA-Toolkit 工具并安装

主要流程来源于官方教程及网络^1-2^.

官方教程链接:

02. Installing SRA Toolkit · ncbi/sra-tools Wiki · GitHub

https://github.com/ncbi/sra-tools/wiki/02.-Installing-SRA-Toolkit

CentOS为例:

  1. 下载sratoolkit.current-centos_linux64.tar.gz, 可以wget, 但推荐本地下载后传入.
  2. 传入目标文件夹, 如/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.
  3. 将二进制文件的路径附加到PATH环境变量中, 如: export PATH=$PATH:$PWD/sratoolkit.3.0.5-centos_linux64/bin.
  4. 验证二进制文件是否可由shell找到: which fastq-dump.
  5. 测试工具包是否有效:fastq-dump --stdout -X 2 SRR390728.

永久添加环境变量可以写入~/.bashrc文件.

完整代码如下:

代码语言:shell
复制
cd /dev/sda1/home/tenney/app/sratoolkit/
wget --output-document sratoolkit.tar.gz https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz
tar -vxzf  sratoolkit.current-centos_linux64.tar.gz
export PATH=$PATH:$PWD/sratoolkit.3.0.5-centos_linux64/bin
which fastq-dump
# ~/app/sratoolkit/sratoolkit.3.0.5-centos_linux64/bin/fastq-dump
fastq-dump --stdout -X 2 SRR390728
prefetch 工具下载数据

提供RUNSRR/DRR/ERR检索号即可下载, 如prefetch ERR009357.

也可以提供列表, 以\n分隔.

代码语言:shell
复制
cat SRR_Acc_List.txt
# ERR003133
# ERR003134
# ERR003135
# ERR003136
# ERR003137
echo $(<SRR_Acc_List.txt)
# SRR12697742 SRR12697743 SRR12697759 SRR12697758 SRR12697757 SRR12697756 SRR12697751 SRR12697750 SRR12697749 SRR12697748 SRR12697741 SRR12697740
prefetch -O . $(<SRR_Acc_List.txt)
# 可以使用nohup + &  用于放入后台下载,避免关闭终端导致下载中断
# nohup prefetch -O . $(<SRR_Acc_List.txt) &   

其中, -O .代表下载到当前文件夹, $(<SRR_Acc_List.txt)代表读入的列表.

SRA数据转化为fastq文件

使用SRA-Toolkit中的fastq-dump工具将SRA数据转化为fastq文件。

转换之前需要知道我们拿到的数据是单端还是双端数据^3^。

代码语言:shell
复制
# 如果返回值是4,就是单端SE;如果返回值是8,那么就是双端PE。
fastq-dump -X 1 --split-spot -Z SRR5489805.sra | wc -l

#SE数据
fastq-dump SRR15671203 -O ./ 

#PE数据
fastq-dump ERR009357.4 --split-3 -O ./

可以写一个批量脚本, 输入文件在/data/input, 输出文件在/data/output.

代码语言:shell
复制
#!/bin/bash

# 获取当前脚本所在目录,并输出
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
echo $SHELL_FOLDER

# 将当前脚本所在目录加上"/data/input"作为输入目录
Input_Folder=${SHELL_FOLDER}"/data/input"

Output_Folder=${SHELL_FOLDER}"/data/output"
cd $Input_Folder

export PATH=$PATH:/dev/sda1/home/tenney/app/sratoolkit/sratoolkit.3.0.5-centos_linux64/bin
while read line
do
  fastq-dump $line -O $Output_Folder
done < SRR_Acc_List.txt

结论

值得注意的是, 一个GSM编号是可能对应多个Run(SRR)的, 应对的方法可以是分别qc和align,最后quantification的时候考虑合并。^4^

简单来说,PRJNA相当于是一个project,里面可以有许多experiment(SRX)以及样品(SRS),每个SRX可以有若干个Run(SRR)。你这3个Run应该分开qc和align,如果都没问题的话,最后quantification的时候可以合并。这样的好处是,如果里面有一个Run的数据不好,你可以知道并随时舍弃,而不会影响你最后的结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 过程
    • 使用 SRA-Toolkit 工具进行下载
      • 下载 SRA-Toolkit 工具并安装
      • prefetch 工具下载数据
    • SRA数据转化为fastq文件
    • 结论
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档