【3.6】 一级核酸数据库-SRA(二代测序的原始数据,Sratools,)

跟GEO类似,NCBI的SRA(Sequence ReadArchive,https://www.ncbi.nlm.nih.gov/sra/ )数据库是专门用于存储二代测序的原始数据,包括 454, IonTorrent, Illumina, SOLiD, Helicos and CompleteGenomics等。 除了原始序列数据外,SRA现在也存在raw reads在参考基因的aligment information。

该数据库也是International Nucleotide Sequence Database Collaboration (INSDC) 的一部分。INSDC包含:NCBI Sequence Read Archive (SRA), European Bioinformatics Institute (EBI), 和 DNA Database of Japan (DDBJ)。数据提交给其中任何一个数据库中后,数据都是共享的。

一、数据库结构

每个数据库都有自己最小的可发表单元。例如:PubMed最小可发表单元是一篇文献,SRA中最小可发表单元是一次实验(标签为:SRX#)。

NCBI中SRA数据结构的层次关系:Studies,Experiments, Samples,Runs:

Studies是就实验目标而言的,一个study可能包含多个experiment。
Experiments包含了样本,DNA source,测序平台,数据处理等信息。
一个experiment可能包含一个或多个runs。
Runs 表示测序仪运行所产生的reads.

SRA数据库用不同的前缀加以区分:ERP or SRP for Studies, SRS for samples, SRX for Experiments, and SRR for Runs。

二、数据上传

2.1 登陆NCBI账号

2.2 注册你的项目和生物样本

注册项目:https://www.ncbi.nlm.nih.gov/bioproject/

注册样本:https://www.ncbi.nlm.nih.gov/biosample/

2.3 上传SRA数据

上传SRA metadata (关于该项目、实验的等信息)

上传序列数据

更详细的说明,参见 https://www.ncbi.nlm.nih.gov/sra/docs/submit/

三、Sratools–操作SRA文件

如果要下载每个study对应的runs的所有数据,我们需要下载安装SRA Toolkit!

  • Sratools是NCBI官方提供,用于操作SRA (reads and reference alignments) 数据的工具集合
  • 一般常用于下载SRA文件,从SRA文件中提取fastq,sam文件,查看SRA文件信息等

3.1 安装

(未测试)

这里提供两种方法,选择一种安装即可,强烈建议使用Conda方式安装

方法一:Conda 安装

conda install -y sra-tools

方法二:传统安装

已测试:

wget -c https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.2/sratoolkit.3.0.2-centos_linux64.tar.gz

tar xzvf sratoolkit.3.0.2-centos_linux64.tar.gz

vim /etc/profile
export PATH=/data/software/sratoolkit.3.0.2-centos_linux64/bin:$PATH
  • 下载地址1:https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?cmd=show&f=software&m=software&s=software
  • 下载地址2:https://github.com/ncbi/sra-tools/wiki/Downloads

在Linux系统(以CentOS为例)下将上述的链接下载到本地

wget http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.9.6-1/sratoolkit.2.9.6-1-centos_linux64.tar.gz

解压

gunzip -c sratoolkit.2.9.6-1-centos_linux64.tar.gz | tar xf -

设置环境变量

所有的可执行文件均在sratoolkit.2.9.6-1-centos_linux64/bin目录下

环境变量添加的详细方法:Linux 添加环境变量的五种方法

打开环境变量设置文件

sudo vim /etc/environment

添加软件 bin 目录的路径,并用 : 隔开

执行source命令,使配置立即生效

sudo source /etc/enviroment

3.2 使用

官方文档:https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc

下载SRA

文档: https://github.com/ncbi/sra-tools/wiki/HowTo:-Access-SRA-Data

下载单个文件

prefetch SRR390728
prefetch SRR776503  SRR776505  SRR776506

fasterq-dump --split-3 SRR1535191.sra -O fastq

下载多个文件

prefetch cart_0.krt

抽取fastq文件

fastq-dump --split-3 SRR893046 -O fastq

注意:NCBI其实已经更新了一个多线程抽取工具fasterq-dump,可以在sratools的bin目录里找到,但是文档没有写,没有特殊需求的话,可以考虑直接用新工具替代。

这个fasterq-dump (a faster fastq-dump) 与fastq-dump相比,就像动车碾压绿皮火车,用法如下:

fasterq-dump --split-3 SRR893046 -O fastq

如上代码运行时如果出现报错 err: invalid accession ‘SRR5318040.sra ‘,请改用如下代码

fasterq-dump --split-3 ./SRR5318040 

注意,这个 ./ 非常重要,这意味着我们使用的是下载到本地的sra数据。

重点参数是-e|threads, 用于选择使用多少线程进行运行,默认是6个线程。 同时考虑到有些人容易着急,还提供了-p选项用于显示当前进度。

我用一个9G大小的SRA文件,分别以fastq-dump和fasterq-dump进行了测试。

time fastq-dump --split-3 -O test SRR5318040.sra
# 558.76s user 41.36s system 101% cpu 9:51.82 total
time fasterq-dump --split-3 SRR5318040.sra -e 20 -o SRR5318040
# 582.70s user 121.06s system 1130% cpu 1:02.25 total

同样的如果上面的fastqer-dump运行报错,请把 SRR5318040.sra 改成 ./SRR5318040.

下载完成后,会在你的工作主目录下生成一个ncbi的文件夹。

Sra子文件夹中的.sra文件就是对应的runs文件。 ‘.sra’的后缀是SRA数据库对fastq文件的特殊压缩。使用前,我们需要将其解压为fastq文件。SRA Toolkit 包含了解压函数fastq-dump : $fastq-dump SRR776503.sra

通过命令行来下载

for ((i=204;i<=209;i++)) ;
do 
wget ftp://ftp-trace.ncbi.nlm.nih.gov/sra/sra-instant/reads/ByStudy/sra/SRP/SRP017/SRP017311/SRR620$i/SRR620$i.sra;
done
ls *sra |while read id; do ~/biosoft/sratoolkit/sratoolkit.2.6.3-centos_linux64/bin/fastq-dump --split-3 $id;done

3.3 SRA Tools 其他功能

Frequently Used Tools:

  • fastq-dump: Convert SRA data into fastq format
  • prefetch: Allows command-line downloading of SRA, dbGaP, and ADSP data
  • sam-dump: Convert SRA data to sam format
  • sra-pileup: Generate pileup statistics on aligned SRA data
  • vdb-config: Display and modify VDB configuration information
  • vdb-decrypt: Decrypt non-SRA dbGaP data (“phenotype data”)

Additional Tools:

  • abi-dump: Convert SRA data into ABI format (csfasta / qual)
  • illumina-dump: Convert SRA data into Illumina native formats (qseq, etc.)
  • sff-dump: Convert SRA data to sff format
  • sra-stat: Generate statistics about SRA data (quality distribution, etc.)
  • vdb-dump: Output the native VDB format of SRA data.
  • vdb-encrypt: Encrypt non-SRA dbGaP data (“phenotype data”)
  • vdb-validate: Validate the integrity of downloaded SRA data

四、其他

4.1 1. 上传或下载数据遇到问题,

可咨询: sra@ncbi.nlm.nih.gov

参考资料

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn