高通量的原始数据通常情况下会上传到NCBI
的SRA
(Sequence Read Archive
)数据库。
常见的下载方法有^5^:
aspera
工具下载wget
, curl
命令直接下载NCBI
官方的 SRA Toolkit
进行下载aspera
工具配置麻烦, 直接下载容易出错, 所以使用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
为例:
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
.which fastq-dump
.fastq-dump --stdout -X 2 SRR390728
.永久添加环境变量可以写入~/.bashrc
文件.
完整代码如下:
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
提供RUN
的SRR
/DRR
/ERR
检索号即可下载, 如prefetch ERR009357
.
也可以提供列表, 以\n
分隔.
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-Toolkit
中的fastq-dump
工具将SRA
数据转化为fastq
文件。
转换之前需要知道我们拿到的数据是单端还是双端数据^3^。
# 如果返回值是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
.
#!/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 删除。