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

SRA数据库官方工具—SRA Toolkit

作者头像
生信菜鸟团
发布2023-12-06 18:44:43
1.5K0
发布2023-12-06 18:44:43
举报
文章被收录于专栏:生信菜鸟团

工欲善其事必先利其器

SRA Toolkit

SRA Toolkit 是由美国国家生物技术信息中心(NCBI)提供的一组工具,专门用于处理 Sequence Read Archive(SRA)中存储的高通量测序数据。这个工具包包含了一系列命令行工具,用于检索、转换、处理和分析来自 SRA 的数据。其具有以下特性:

  1. 数据下载与转换:允许用户从 SRA 中下载数据并转换成标准的 FASTQ 格式,以便在常用的分析软件中进行进一步处理(常用功能)
  2. 数据查询与检索:可以通过访问号、关键词、实验名称等方式在 SRA 中检索数据,提供强大的查询和过滤功能
  3. 数据处理与压缩:支持对 SRA 数据进行基本的处理、压缩和格式转换,以满足用户需求
  4. 质量控制与分析:提供了一些工具和选项,用于质量控制、测序数据的初步分析和统计(基本不用,因为有专门的质控软件)
  5. 全平台:提供二进制文件和相应的源代码,适用于Windows、MacOS、Linux

SRA数据库: Sequence Read Archive:隶属NCBI (National Center for Biotechnology Information),它是一个保存高通量测序原始数据以及比对信息和元数据 (metadata) 的数据库,所有已发表的文献中高通量测序数据基本都上传至此,方便其他研究者下载及再研究。其中的数据则是通过压缩后以.sra文件格式来保存的。

官网:

  • https://www.ncbi.nlm.nih.gov/home/tools/
  • https://github.com/ncbi/sra-tools/wiki

常用工具

prefetch 是SRA Toolkit中的工具包中提供的一个专门用来下载SRR数据的工具

fasterq-dump 从 SRA 下载数据并将其转换为 FASTQ 格式的工具,比 fastq-dump 速度更快

如何安装

一般我们推荐是从conda来安装管理软件,但是对于这个软件采用conda安装时,需要注意软件名是 sra-tools,而不是 sratoolkit 不要安装错了。sratoolkit 也能安装上,但是版本是2.5.7,没有3.0版的 fasterq-dump 子命令

代码语言:javascript
复制
## 注意软件名也不是prefetch
conda install -y sra-tools

## conda install -c daler sratoolkit

最新版

版本较低

当然它也有二进制版本,安装也很简单

代码语言:javascript
复制
## 下载二进制安装
wget -c https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.7/sratoolkit.3.0.7-ubuntu64.tar.gz
tar -xf sratoolkit.3.0.2-ubuntu64.tar.gz

## 添加到环境变量
echo 'export PATH=/home/username/software/sratoolkit.3.0.7-ubuntu64/bin:$PATH ' >> ~/.bashrc 

最小化使用

代码语言:javascript
复制
##下载数据
prefetch SRR000001 
##提交后台下载(example)
nohup prefetch -O ~/project/b_rawdata SRR24304118 --max-size 50G  1>prefetch.log 2>&1 & 

##转换sra文件为fastq
fasterq-dump SRR000001
##提交后台转换(example)
nohup fasterq-dump -O ~/project/b_rawdata/SRR24304118/ --split-files -e 8 --include-technical SRR24304118.sra 1>dump.log 2>&1 &

注意:执行提取前需要估计一下硬盘空间,最终转换的fastq文件会是 .sra文件的7~8 倍左右。同时,转换过程中需要的临时空间大约是fastq文件的 1.5倍。所以整个转换过程,大概需要sra文件的17倍左右的空间。

可以通过下面的例子对比查看一下:

代码语言:javascript
复制
## example
### sra文件
9.1G 12月  4 17:42 SRR19904954.sra

##转换为 fastq 文件后
79G 12月  4 23:57 SRR19904954.fastq

其余参数及用法

关于转换后reads拆分的输出设置

  • --split-spot: 将双端测序分为两份,但是都放在同一个文件中
  • --split-files: 将双端测序分为两份,放在不同的文件,但是对于一方有而一方没有的reads直接丢弃
  • --split-3 : 将双端测序分为两份,放在不同的文件,但是对于一方有而一方没有的reads会单独放在一个文件夹里 其中 fasterq-dump reads拆分默认是 split-3

split-3

split-spot

split-files

代码语言:javascript
复制
prefetch 可选参数

--max-size 设置最大下载文件大小,默认所20G
--max-size u 设置为u,则下载大小不设限制
-T:指定要下载的文件类型,默认为 sra
-t:指定传输方式,默认是both ;可以选择 http(传统的HTTP下载)、fasp(高速传输协议) 或 both(优先尝试fasp,如果无法使用fasp则使用http)。其中,fasp 使用 aspera connect(ascp)进行快速传输
-f:强制对象下载的选项,可以选择 no、yes、all 或 ALL ,(默认为no); 
 no:跳过已存在的对象;
 yes:即使已存在也强制下载 
-r:是否允许断点续传,可以选择 yes 或 no(默认为 yes)
-C:下载后验证文件的完整性,可以选择 yes 或 no(默认为yes)
-a:指定 ascp 程序和私钥文件的路径
--ascp-options <value>:传递给 ascp 命令行的任意选项
-o:指定输出文件的名称
-O:指定输出目录


fasterq-dump 可选参数
-F:指定输出格式。默认为FASTQ。可以选择特殊格式(special)或FASTQ格式
-f:强制覆盖现有文件
-o:指定输出文件的名称
-O:指定输出目录
-t:指定临时文件的位置,默认为当前目录。
-e:指定线程数量,默认为6个线程。
-p:显示进度。
-x:打印详细信息。
-s|--split-spot:见上文
-S|--split-files:见上文
-3|--split-3:见上文
--include-technical:包含技术性reads(如果不加这个参数是不会分解出来index和barcode文件)
--fasta:生成FASTA格式的输出
--fasta-unsorted:生成未排序的FASTA输出。


fastq-dump 可选参数

-O:指定输出位置
-Q:质量转换偏移量,默认为33
--gzip:使用gzip压缩输出
--bzip2:使用bzip2压缩输出
--split-spot: 见上文
--split-files: 见上文
--split-3    : 见上文
--skip-technical:多标签序列,如果你原来建库测序使用了多个标签来区分序列, 默认不会输出这个标签。但是如果不输出标签,我们怎么区分呢? 所以一定要显示声明
--fasta:指定解压成fasta格式,默认是fastq格式

单样本处理

先下载再转换

有两个子命令可以实现 sra 转换为 fastq,分别是fastq-dumpfasterq-dump , 但是fastq-dump 拆分非常慢,一般不建议使用

我们简单来对比一下fastq-dump和fasterq-dump的速度差异

代码语言:javascript
复制
##下载
prefetch SRR19904954 --max-size u
#下载耗时(m:ss):24:03.53

##转换sra文件为fastq

fasterq-dump -S SRR19904954/SRR19904954.sra -O ./fasterq_out/
#faster-dump转换耗时(m:ss):4:42.89

##设定多线程转换
fasterq-dump -O ~/project/b_rawdata/SRR24304118/ --split-files -e 8 --include-technical SRR24304118.sra 

##旧版本,速度很慢
fastq-dump  --split-files SRR19904954/SRR19904954.sra
#fastq-dump转换耗时(m:ss):20:02.63

##转换同时采用gzip压缩输出
fastq-dump --gzip --split-files -O ./gz_out/ ./SRR19904954/SRR19904954.sra
##耗时(h:mm:ss): 2:23:06

可以明显看到 fastq-dump 的速度是远远慢于 fasterq-dump 的,而且fasterq-dump 还可以自定义多线程(不过需要注意,一次性不要提交太多任务,避免把服务器IO占完)

直接下载fastq

代码语言:javascript
复制
## 直接下载fastq
###查询 SRR 预存路径
srapath SRR19904954
# https://sra-download.ncbi.nlm.nih.gov/srapub/SRR000001

fasterq-dump -S SRR19904954
##或者
fastq-dump --split-files  SRR19904954

测试过程中,直接下载fastq速度也是非常慢(同样的文件,8~9个小时还没处理完),不如采用先下载再转换来的快。

多样本批处理

下载

代码语言:javascript
复制
#方法一:
##首先要创建一个SRR号的列表文件,也可以直接下载
$cat srr_acc_list.txt 
SRR11182006
SRR11182007
SRR11182008
SRR11182009
SRR11182010
SRR11182011
SRR11182012
##批量循环下载
prefetch -O /home/project/b_rawdate4 --option-file /home/project/b_rawdate4/srr_acc_list.txt --max-size u 1>down.log 2>&1

##批量后台循环下载(因为下载时间比较久,建议放后台下载)
nohup prefetch -O /home/project/b_rawdate4 --option-file /home/project/b_rawdate4/srr_acc_list.txt --max-size u 1>down.log 2>&1 &

##方法二:并行下载
cat srr.list |while read id;do ( nohup prefetch  --max-size u $id & );done

转换

代码语言:javascript
复制
##循环转换
ls SRR*/*sra|while read id ; do (fasterq-dump -O /home/sc_learn/b_rawdata/ --split-files -e 8 --include-technical ${id} );done

参考

  1. https://github.com/ncbi/sra-tools/wiki/HowTo:-fasterq-dump
  2. https://github.com/ncbi/sra-tools/wiki/08.-prefetch-and-fasterq-dump
  3. https://blog.csdn.net/Cs_mary/article/details/78378552
  4. https://www.jianshu.com/p/a8d70b66794c
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信菜鸟团 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SRA Toolkit
  • 常用工具
  • 如何安装
  • 最小化使用
  • 其余参数及用法
    • 单样本处理
      • 先下载再转换
      • 直接下载fastq
    • 多样本批处理
      • 下载
      • 转换
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档