【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