iSeq
iSeq 是一个bash脚本。要用户的系统支持FTP、HTTP和HTTPS协议,并且必须连接到网络。它提供了一个基本的下载和处理流程,旨在简化从多个数据库获取原始测序数据的过程。其不仅具有多数据库支持(支持GSA、SRA、ENA和DDBJ等多个数据库的下载)、多线程、文件合并、文件校验、自动重试等特性,而且简单易用,上手快。
-
Github:https://github.com/BioOmics/iSeq/tree/main
-
如何安裝
conda安装
推荐使用conda 安装,因为依赖的软件比较多
##创建环境
conda create -n iseq
##下载
conda install iseq
##激活环境
conda activate iseq
完整的依赖
依赖项
避坑
不建议和kingfisher安装在一个环境。因为两者依赖性会有冲突(如图所示)。如果不了解kingfisher,见:
一行代码下载原始数据—Kingfisher
如何使用
## 直接下载gz格式的FASTQ文件
iseq -i accession [options]
-i # accession号 (Project, Study, Sample, Experiment, or Run)
-g #直接下载gzip格式的FASTQ文件,如果不能直接下载,则会下载SRA文件并通过fasterq-dump和pigz转换为gzip格式。
-q #将下载完成的SRA文件分解为多个未压缩的FASTQ格式。可结合 `-t` 参数指定fasterq-dump调用的线程
-t #指定拆分SRA文件为FASTQ文件或者压缩FASTQ文件的线程数,默认为8。
-p #开启多线程下载。让`iSeq`调用`axel`工具进行多线程下载
-a #让`iSeq`调用`ascp`工具进行下载
-d #指定下载SRA文件的数据库。支持`ena`和`sra`两种数据库
-e #将Experiment中的多个FASTQ文件合并为一个FASTQ文件。大多数情况下,一个Experiment仅包含一个Run,但是有些测序数据中的Experiment中可能包含多个Run。
-i
支持以下5种数据库,6种数据格式
支持数据库
数据格式示例
总之,无论你的accession是6种数据格式的哪一种,最终都会对其中包含的Run ID逐一下载并检查文件的md5值,如果md5值和公共数据库中的不一致,则会进行至多3轮的重新下载。如果在3次尝试内下载并校验成功,则会将文件名存入
success.log
中,否则,下载失败,文件名将会存入
fail.log
中。
使用示例
仅下载样本信息
iseq -i GSE235331 -m
-m ##仅下载元数据信息
SRA 数据库下载
iseq -i GSE235331 -g
下载日志
成功下载
下载完还会进行文件校验,完全不用担心数据下载不完整。
单个sra拆分为多个文件
对比kingfisher使用体验 ,kingfisher只有从ENA数据下载比较快速方便(目前ENA数据库还总是下载失败)。虽然说其也支持从SRA下载数据然后自动拆分。但其调用的fasterq-dump没有使用
--include-technical
参数,对于单细胞数据,往往只能拆分出来2个fastq.gz文件。这样带来一个问题就是,其拆分出来的并不一定是我们所需的R1.gz、R2.gz文件。而iseq并不存在这个小bug,其支持将sra文件拆分为多个fastq文件
iseq -i SRR13176241 -g -d sra
注
:初步使用了一下,就目前简单的使用体验来说用来代替prefetch从SRA下载数据是个非常不错的选择。不知道是不是GSA数据库的下载规则有过更新,还是我网络的问题。虽然软件介绍上有说明支持GSA数据的下载,但是目前测试了两个CRA数据集,均无法成功下载。
更多示例见:https://github.com/BioOmics/iSeq/blob/main/docs/ChineseTutorial.md