NCBI上下载的原始数据为SRA数据,而适用于大部分生物软件的是fastq格式,所以我们需要将sra格式的原始数据转为fastq格式。NCBI提供了数据转换的软件fastq-dump。
1、下载软件
wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.9.2/sratoolkit.2.9.2-centos_linux64.tar.gz
tar zxf sratoolkit.2.9.2-centos_linux64.tar.gz
解压后软件就在./sratoolkit.2.9.2-centos_linux64/bin/fastq-dump
2、转换格式
使用基本命令行
./sratoolkit.2.9.2-centos_linux64/bin/fastq-dump /path/to/xxx.sra
但是这个默认使用方法得到结果往往很糟, 比如说他默认会把双端测序结果保存到一个文件里, 但是如果你加上--split-3之后, 他会把原来双端拆分成两个文件,但是原来单端并不会保存成两个文件. 还有你用--gzip就能输出gz格式, 能够节省空间的同时也不会给后续比对软件造成压力, 比对软件都支持,就是时间要多一点。
3、遇到过的问题
-
如何下载sra的信息,如insert size、read长度、测序平台等?
-- 输入srp/srx/srr编号查询到对应信息后,点击右上角的"Send to",选择"File"->"RunInfo"->"Create File",下载下来的.csv文件里有很详细的样品、文库和测序信息。 -
如果不知道文库是single end还是paired end,如何转换成fastq?
方法一:一个简单方法是在SRA Run Browser上输入SRR编号查询: (http://trace.ncbi.nlm.nih.gov/Traces/sra/),"Browse" -> "Run Browser" -> then input your ID,LAYOUT会标明是SINGLE还是PAIRED,也可以在Reads结果页面查看,如果展示1条read就是single end,2条reads就是paired end。
方法二:可以先用sra-stat对sra文件进行统计,从统计结果里可以知道是单末端还是双末端。
方法三:直接跑fastq-dump,用参数--split-files就自可以自动分辨出来,结果是一个文件就是single end,两个文件就是paired end。
方法四:fastq-dump的--split-spot可以用来分辨
srr="SRR3184279"
numLines=$(fastq-dump -X 1 -Z --split-spot $srr | wc -l)
if [ $numLines -eq 4 ]
then
echo "$srr is single-end"
else
echo "$srr is paired-end"
fi
参考
1、 如何使用fastq-dump转换SRA格式