admin管理员组

文章数量:1037775

工具:iSeq下载公开SRA数据科研利器

介绍

高通量测序技术[下一代测序(NGS)]越来越多地用于解决各种生物学问题。尽管NGS数据中包含丰富的信息,特别是来自NGDC基因组序列档案(GSA)等存储库的数据集不断增长,但对公共测序数据和元数据的程序化访问仍然有限。

我们开发iSeq是为了通过命令行界面从多个数据库中快速、直接地检索元数据和NGS数据。iSeq支持从GSA, SRA, ENA和DDBJ数据库同时检索。它处理超过25种不同的接入格式,支持Aspera下载、并行下载、多线程进程、FASTQ文件合并和完整性验证,简化了数据采集并增强了重新分析NGS数据的能力。

特性

  • 多数据库支持:支持多个生物信息学数据库(GSA/SRA/ENA/DDBJ/GEO)。
  • 多输入格式:支持多种访问编号(项目、研究、样本、实验或运行访问编号)。 元数据下载:支持为每个访问编号下载样本元数据。
  • 文件格式选择:用户可以选择直接下载 gzip 格式的 FASTQ 文件,或者下载 SRA 文件并将其转换为 FASTQ 格式。
  • 多线程支持:支持使用多线程加速 SRA 转换为 FASTQ 文件或 FASTQ 文件的压缩。
  • 文件合并:对于实验级别的访问编号,脚本可以将多个 FASTQ 文件合并为一个。
  • 并行下载:支持并行下载连接,允许指定连接数量以加快下载速度。 支持 Aspera 高速下载:对于 GSA/ENA 数据库,脚本支持使用
  • Aspera 进行高速数据传输。 自动重试机制:如果下载或验证失败,脚本将自动重试,直到达到设定的尝试次数。
  • 自动文件验证:下载完成后,脚本将自动验证文件的完整性,包括检查文件大小和 MD5 校验和。
  • 错误处理:脚本在遇到错误时提供错误消息和解决方案建议。

安装

使用conda安装

代码语言:javascript代码运行次数:0运行复制
conda install bioconda::iseq

查看版本

代码语言:javascript代码运行次数:0运行复制
# Use the following command to check whether dependent software is installed
iseq --version

案例

  1. 通过项目编号下载
代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801

  1. 使用Aspera下载fastq
代码语言:javascript代码运行次数:0运行复制
iseq -i SRR_Acc_List.txt -a -g

使用手册

代码语言:javascript代码运行次数:0运行复制
$ iseq --help

Usage:
  iseq -i accession [options]

Required option:
  -i, --input     [text|file]   Single accession or a file containing multiple accessions.
                                Note: Only one accession per line in the file, all accessions must be from the same database.

Optional options:
  -m, --metadata                Skip the sequencing data downloads and only fetch the metadata for the accession.
  -g, --gzip                    Download FASTQ files in gzip format directly (*.fastq.gz).
                                Note: if *.fastq.gz files are not available, SRA files will be downloaded and converted to *.fastq.gz files.
  -q, --fastq                   Convert SRA files to FASTQ format.
  -t, --threads   int           The number of threads to use for converting SRA to FASTQ files or compressing FASTQ files (default: 8).
  -e, --merge     [ex|sa|st]    Merge multiple fastq files into one fastq file for each Experiment, Sample or Study.
  -d, --database  [ena|sra]     Specify the database to download SRA sequencing data (default: ena).
                                Note: new SRA files may not be available in the ENA database, even if you specify "ena".
  -p, --parallel  int           Download sequencing data in parallel, the number of connections needs to be specified, such as -p 10.
                                Note: breakpoint continuation cannot be shared between different numbers of connections.
  -a, --aspera                  Use Aspera to download sequencing data, only support GSA/ENA database.
  -s, --speed     int           Download speed limit (MB/s) (default: 1000 MB/s).
  -o, --output    text          The output directory. If not exists, it will be created (default: current directory).
  -h, --help                    Show the help information.
  -v, --version                 Show the script version.

1. -i, --input

输入你想下载的accession,首先获取accession的metadata,然后逐一对包含在内的Run ID进行下载。v1.1.0版本之后可以接收文件输入,每行一个accession。但是要确保这些accession来自同一个数据库,因为不同数据库使用的密钥有时候不一致会导致下载失败,尤其是在使用aspera下载数据的时候。而且这个文件最好在linux下通过vim编辑,要不然从windows上传的话可能文字编码有问题影响下载(如win通常是CR LF, 而Linux能识别的是LF格式的)。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801

Firstly, iSeq will retrieve the metadata of the accession, then proceed to download each Run contained within.

目前支持以下5个数据库的6种数据格式,支持的accession前缀如下:

Databases

BioProject

Study

BioSample

Sample

Experiment

Run

GSA

PRJC

CRA

SAMC

\

CRX

CRR

SRA

PRJNA

SRP

SAMN

SRS

SRX

SRR

ENA

PRJEB

ERP

SAME

ERS

ERX

ERR

DDBJ

PRJDB

DRP

SAMD

DRS

DRX

DRR

GEO

GSE

\

GSM

\

\

\

其中对于来自于GEO数据库的两种数据格式GSE/GSM,会直接获取到与之关联的PRJNA/SAMN,然后获取到包含在内的Run ID并进行测序数据的下载。因此,本质上还是从SRA数据库中下载测序数据。

以下是一些例子:

Accession Type

Prefixes

Example

BioProject

PRJEB, PRJNA, PRJDB, PRJC, GSE

PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139

Study

ERP, DRP, SRP, CRA

ERP126685, DRP009283, SRP158268, CRA000553

BioSample

SAMD, SAME, SAMN, SAMC

SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083

Sample

ERS, DRS, SRS, GSM

ERS5684710, DRS259711, SRS2024210, GSM7417667

Experiment

ERX, DRX, SRX, CRX

ERX5050800, DRX406443, SRX4563689, CRX020217

Run

ERR, DRR, SRR, CRR

ERR5260405, DRR421224, SRR7706354, CRR311377

总之,无论你的accession是6种数据格式的哪一种,最终都会对其中包含的Run ID逐一下载并检查文件的md5值,如果md5值和公共数据库中的不一致,则会进行至多3轮的重新下载。如果在3次尝试内下载并校验成功,则会将文件名存入success.log中,否则,下载失败,文件名将会存入fail.log中。

2. -m, --metadata

只下载accession的样本信息,跳过测序数据的下载。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m

因此,无论使用不使用-m参数,accession的样本信息都会被获取到,如果metadata获取不到的话,iSeq程序会退出,不会执行后续下载。

Note 注意1:如果检索的accession在SRA/ENA/DDBJ/GEO数据库中,iSeq会首先在ENA数据库中进行检索,如果可以检索到样本信息,则会通过ENA API下载TSV格式的metadata,通常有191列。但是,有些最新在SRA数据库中公开的数据可能不会及时同步到ENA数据库中。因此,如果一旦无法在ENA数据库中获取到metadata的信息,则直接通过SRA Database Backend下载CSV格式的metadata,通常有30列。为了和TSV格式保持一致,会通过sed -i 's/,/\t/g'的方式改为TSV格式,如何单个字段含有逗号,可能会造成列的混乱。最终,你将得到名字为${accession}.metadata.tsv的样本信息。

Note 注意2:如果检索的accession在GSA数据库中,iSeq会通过GSA的getRunInfo接口获取样本信息,下载CSV格式的metadata,通常有25列,上述得到的metadata信息会被保存为${accession}.metadata.csv文件。为了补充更加详细的metadata信息,iSeq会自动通过GSA的exportExcelFile接口获取accession所属的Project的metadata信息,下载XLSX格式的metadata,通常有3个sheet,分别是Sample, Experiment, Run。最终得到的metadata信息会被保存为${accession}.metadata.xlsx文件。总而言之,你最终将得到名字为${accession}.metadata.csv和CRA*.metadata.xlsx的样本信息。

3. -g, --gzip

直接下载gzip格式的FASTQ文件,如果不能直接下载,则会下载SRA文件并通过多线程分解和压缩转换为gzip格式。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -g

由于GSA数据库直接存储的格式大多数为gzip格式,因此,如果检索的accession来自于GSA数据库,无论是否使用-g 参数都可以直接下载gzip格式的FASTQ文件。如果accession来自于SRA/ENA/DDBJ/GEO数据库,那么iSeq会首先访问ENA数据库,如果可以直接下载gzip格式的FASTQ文件,则会直接下载,否则,会下载SRA文件并通过fasterq-dump工具转换为FASTQ, 然后通过pigz工具对FASTQ文件进行压缩,最终得到gzip格式的FASTQ文件。

[!TIP] parallel-fastq-dump can also convert SRA to gzip-compressed FASTQ files, typically 2-3 timesfaster than fasterq-dump + pigz. However, considering IO limitations, iSeq currently does not support parallel-fastq-dump.

4. -q, --fastq

将下载完成的SRA文件分解为多个未压缩的FASTQ格式。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -q

该参数只有在accession来自于SRA/ENA/DDBJ/GEO数据库,并且下载的文件为SRA文件时才有效。总之,SRA文件下载完成后,iSeq会通过fasterq-dump工具转换为FASTQ文件,除此之外,可以通过-t参数指定转换的线程数。

Note 注意1:-q在下载单细胞数据,尤其对于scATAC-Seq数据,可以很好的分解出I1, R1, R2, R3四个文件。而如果通过-g参数直接下载FASTQ文件,只会得到R1, R3两个文件(如:SRR13450125),这可能会导致后续数据分析时出现问题。

Note 注意2:-q和-g同时使用的时候,会先下载SRA文件,然后通过fasterq-dump工具转换为FASTQ文件,最后通过pigz压缩为gzip格式。并不是直接下载gzip格式的FASTQ文件,这对获取全面的单细胞数据非常有用。

5. -t, --threads

指定分解SRA文件为FASTQ文件或者压缩FASTQ文件的线程数,默认为8。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -q -t 10

考虑到测序数据一般都是大文件,因此,可以通过-t参数指定分解的线程数,但是,线程数不是越多越好,因为线程数过多会导致CPU或者IO负载过高,尤其是fasterq-dump会占用大量IO,从而影响其他任务的执行。

6. -e, --merge

将Experiment中的多个FASTQ文件合并为一个FASTQ文件。 v1.1.0版本之后,不仅可以对同一个Experiment中的多个FASTQ文件合并,还可以选择不用的参数对Sample (-e sa)或者Study (-e st)进行合并。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRX003906 -g -e ex

虽然大多数情况下,一个Experiment仅包含一个Run,但是有些测序数据中的Experiment中可能包含多个Run(如SRX003906, CRX020217),因此,可以通过-e参数将Experiment中的多个FASTQ文件合并为一个FASTQ文件。考虑到双端测序时,fastq_1和fastq_2文件需要同时合并且对应行号的序列名需要保持一致,因此,iSeq会按照相同的顺序合并多个FASTQ文件。最终,对于单端测序数据会生成一个文件:SRX*.fastq.gz,对于双端测序数据会生成两个文件:SRX*_1.fastq.gz和SRX*_2.fastq.gz。对于Sample (-e sa)或者Study (-e st)同理。

Note 注意1:如果accession是Run ID,则不能使用-e参数,反正就是你想合并的时候,输入的accession必须大于等于要合并的那一级所需要的accession。目前,iSeq支持合并gzip压缩和未压缩的FASTQ文件,对于bam文件和tar.gz文件等暂不支持合并。

Note 注意2:正常情况下,一个Experiment仅包含一个Run时,相同的Run应该有相同的前缀。如SRR52991314_1.fq.gz和SRR52991314_2.fq.gz都有相同的前缀名SRR52991314,此时,iSeq会直接重命名为SRX*_1.fastq.gz和SRX*_2.fastq.gz。但是有例外的情况,如CRX006713中包含有一个Run为CRR007192,但是该Run包含多个前缀名不同的文件,此时,iSeq会直接重命名为SRX*_原本的文件名,如这里将直接重命名为:CRX006713_CRD015671.gz和CRX006713_CRD015672.gz。

7. -d, --database

指定下载SRA文件的数据库,支持ena和sra两种数据库。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -d sra 

通常情况下,iSeq默认会自动检测可用的数据库,所以不需要指定-d参数。但是,有些SRA文件可能在ENA数据库中下载速度较慢,此时可以通过-d sra强制指定从SRA数据库下载数据。

[!NOTE] 注意:如果在ENA数据库中没有找到对应的SRA文件,即使指定了-d ena参数,iSeq依旧会自动切换到SRA数据库进行下载。

8. -p, --parallel

开启多线程下载,需要指定下载的线程数。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -p 10

考虑到wget在部分情况下下载速度较慢,因此,可以通过-p参数让iSeq调用axel工具进行多线程下载。

[!NOTE] 注意1:多线程下载的断点续传功能只能在同一个线程内有效,即如果在第一次下载时使用了-p 10参数,那么在第二次下载时也需要使用-p 10参数,否则无法实现断点续传。

[!NOTE] 注意2:如上,iSeq将全程保持10个连接进行下载,因此在下载的过程中你将多次看到相同的Connection * finished弹出,这是因为有些连接下载完成后会立即释放,然后重新建立新的连接进行下载。

9. -a, --aspera

使用Aspera进行下载。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -a -g

由于Aspera下载速度较快,因此,可以通过-a参数让iSeq调用ascp工具进行下载。可惜的是,目前仅有GSA和ENA数据库支持Aspera下载,NCBI SRA数据库由于广泛采用了Google Cloud 和 AWS Cloud技术以及其他原因(请看Avoid-using-ascp),暂无法使用Aspera进行下载。

[!NOTE] 注意1:在访问GSA数据库时,如果存在HUAWEI Cloud的下载链接,iSeq会优先通过HUAWEI Cloud通道下载,即使使用了-a参数,iSeq也会自动切换到HUAWEI Cloud下载。这么做的原因是HUAWEI Cloud下载速度更快和稳定。因此,在下载GSA数据时,推荐使用-a参数,这样如果访问不到HUAWEI Cloud通道,通过Aspera通道下载速度也不慢,否则,只能通过wget或者axel进行下载,而这两种方式下载速度较慢。

[!NOTE] 注意2:由于Aspera需要key文件,因此,iSeq会自动在conda环境或者~/.aspera目录下查找key文件,如果没有找到,则无法下载。

10. -o, --output

v1.1.0之后可以选择输出文件的位置,如果不存在相应的文件夹,则创建

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR931847 -o PRJNA211801

11. -s, --speed

v1.2.0之后可以选择限速下载,单位是MB/s

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR931847 -s 10

输出

  • If the query accession in SRA/ENA/DDBJ/GEO database, the following files will be generated:

Output

Description

SRA files

Can be converted to FASTQ files using -q option

.metadata.tsv

Metadata for query accession

success.log

Save the SRA file name that has been downloaded successfully

fail.log

Save the SRA file name that has been downloaded failed

  • If the query accession in GSA database, the following files will be generated:

Output

Description

GSA files

Mostly in *.gz format, and a few are bam/tar/bz2 format

.metadata.csv

Metadata for query accession

.metadata.xlsx

Metadata for Project including query accession in xlsx format

success.log

Save the GSA file name that has been downloaded successfully

fail.log

Save the GSA file name that has been downloaded failed

其他同类型软件

iSeq 的灵感来自 fastq-dl, fetchngs, pysradb, Kingfisher. 软件比较:

Software name

Program languages

Supported databases

Supported accessions

Supported formats

Supported methods

Fetch metadata

MD5 check

Resumable download

Parallel download

Merge FASTQ

Skip downloaded

Conda installable

URL

iSeq

Shell

GSA, SRA, ENA, DDBJ, GEO

All

fq, fq.gz, sra, bam

wget, axel, aspera

工具:iSeq下载公开SRA数据科研利器

介绍

高通量测序技术[下一代测序(NGS)]越来越多地用于解决各种生物学问题。尽管NGS数据中包含丰富的信息,特别是来自NGDC基因组序列档案(GSA)等存储库的数据集不断增长,但对公共测序数据和元数据的程序化访问仍然有限。

我们开发iSeq是为了通过命令行界面从多个数据库中快速、直接地检索元数据和NGS数据。iSeq支持从GSA, SRA, ENA和DDBJ数据库同时检索。它处理超过25种不同的接入格式,支持Aspera下载、并行下载、多线程进程、FASTQ文件合并和完整性验证,简化了数据采集并增强了重新分析NGS数据的能力。

特性

  • 多数据库支持:支持多个生物信息学数据库(GSA/SRA/ENA/DDBJ/GEO)。
  • 多输入格式:支持多种访问编号(项目、研究、样本、实验或运行访问编号)。 元数据下载:支持为每个访问编号下载样本元数据。
  • 文件格式选择:用户可以选择直接下载 gzip 格式的 FASTQ 文件,或者下载 SRA 文件并将其转换为 FASTQ 格式。
  • 多线程支持:支持使用多线程加速 SRA 转换为 FASTQ 文件或 FASTQ 文件的压缩。
  • 文件合并:对于实验级别的访问编号,脚本可以将多个 FASTQ 文件合并为一个。
  • 并行下载:支持并行下载连接,允许指定连接数量以加快下载速度。 支持 Aspera 高速下载:对于 GSA/ENA 数据库,脚本支持使用
  • Aspera 进行高速数据传输。 自动重试机制:如果下载或验证失败,脚本将自动重试,直到达到设定的尝试次数。
  • 自动文件验证:下载完成后,脚本将自动验证文件的完整性,包括检查文件大小和 MD5 校验和。
  • 错误处理:脚本在遇到错误时提供错误消息和解决方案建议。

安装

使用conda安装

代码语言:javascript代码运行次数:0运行复制
conda install bioconda::iseq

查看版本

代码语言:javascript代码运行次数:0运行复制
# Use the following command to check whether dependent software is installed
iseq --version

案例

  1. 通过项目编号下载
代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801

  1. 使用Aspera下载fastq
代码语言:javascript代码运行次数:0运行复制
iseq -i SRR_Acc_List.txt -a -g

使用手册

代码语言:javascript代码运行次数:0运行复制
$ iseq --help

Usage:
  iseq -i accession [options]

Required option:
  -i, --input     [text|file]   Single accession or a file containing multiple accessions.
                                Note: Only one accession per line in the file, all accessions must be from the same database.

Optional options:
  -m, --metadata                Skip the sequencing data downloads and only fetch the metadata for the accession.
  -g, --gzip                    Download FASTQ files in gzip format directly (*.fastq.gz).
                                Note: if *.fastq.gz files are not available, SRA files will be downloaded and converted to *.fastq.gz files.
  -q, --fastq                   Convert SRA files to FASTQ format.
  -t, --threads   int           The number of threads to use for converting SRA to FASTQ files or compressing FASTQ files (default: 8).
  -e, --merge     [ex|sa|st]    Merge multiple fastq files into one fastq file for each Experiment, Sample or Study.
  -d, --database  [ena|sra]     Specify the database to download SRA sequencing data (default: ena).
                                Note: new SRA files may not be available in the ENA database, even if you specify "ena".
  -p, --parallel  int           Download sequencing data in parallel, the number of connections needs to be specified, such as -p 10.
                                Note: breakpoint continuation cannot be shared between different numbers of connections.
  -a, --aspera                  Use Aspera to download sequencing data, only support GSA/ENA database.
  -s, --speed     int           Download speed limit (MB/s) (default: 1000 MB/s).
  -o, --output    text          The output directory. If not exists, it will be created (default: current directory).
  -h, --help                    Show the help information.
  -v, --version                 Show the script version.

1. -i, --input

输入你想下载的accession,首先获取accession的metadata,然后逐一对包含在内的Run ID进行下载。v1.1.0版本之后可以接收文件输入,每行一个accession。但是要确保这些accession来自同一个数据库,因为不同数据库使用的密钥有时候不一致会导致下载失败,尤其是在使用aspera下载数据的时候。而且这个文件最好在linux下通过vim编辑,要不然从windows上传的话可能文字编码有问题影响下载(如win通常是CR LF, 而Linux能识别的是LF格式的)。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801

Firstly, iSeq will retrieve the metadata of the accession, then proceed to download each Run contained within.

目前支持以下5个数据库的6种数据格式,支持的accession前缀如下:

Databases

BioProject

Study

BioSample

Sample

Experiment

Run

GSA

PRJC

CRA

SAMC

\

CRX

CRR

SRA

PRJNA

SRP

SAMN

SRS

SRX

SRR

ENA

PRJEB

ERP

SAME

ERS

ERX

ERR

DDBJ

PRJDB

DRP

SAMD

DRS

DRX

DRR

GEO

GSE

\

GSM

\

\

\

其中对于来自于GEO数据库的两种数据格式GSE/GSM,会直接获取到与之关联的PRJNA/SAMN,然后获取到包含在内的Run ID并进行测序数据的下载。因此,本质上还是从SRA数据库中下载测序数据。

以下是一些例子:

Accession Type

Prefixes

Example

BioProject

PRJEB, PRJNA, PRJDB, PRJC, GSE

PRJEB42779, PRJNA480016, PRJDB14838, PRJCA000613, GSE122139

Study

ERP, DRP, SRP, CRA

ERP126685, DRP009283, SRP158268, CRA000553

BioSample

SAMD, SAME, SAMN, SAMC

SAMD00258402, SAMEA7997453, SAMN06479985, SAMC017083

Sample

ERS, DRS, SRS, GSM

ERS5684710, DRS259711, SRS2024210, GSM7417667

Experiment

ERX, DRX, SRX, CRX

ERX5050800, DRX406443, SRX4563689, CRX020217

Run

ERR, DRR, SRR, CRR

ERR5260405, DRR421224, SRR7706354, CRR311377

总之,无论你的accession是6种数据格式的哪一种,最终都会对其中包含的Run ID逐一下载并检查文件的md5值,如果md5值和公共数据库中的不一致,则会进行至多3轮的重新下载。如果在3次尝试内下载并校验成功,则会将文件名存入success.log中,否则,下载失败,文件名将会存入fail.log中。

2. -m, --metadata

只下载accession的样本信息,跳过测序数据的下载。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -m
iseq -i CRR343031 -m

因此,无论使用不使用-m参数,accession的样本信息都会被获取到,如果metadata获取不到的话,iSeq程序会退出,不会执行后续下载。

Note 注意1:如果检索的accession在SRA/ENA/DDBJ/GEO数据库中,iSeq会首先在ENA数据库中进行检索,如果可以检索到样本信息,则会通过ENA API下载TSV格式的metadata,通常有191列。但是,有些最新在SRA数据库中公开的数据可能不会及时同步到ENA数据库中。因此,如果一旦无法在ENA数据库中获取到metadata的信息,则直接通过SRA Database Backend下载CSV格式的metadata,通常有30列。为了和TSV格式保持一致,会通过sed -i 's/,/\t/g'的方式改为TSV格式,如何单个字段含有逗号,可能会造成列的混乱。最终,你将得到名字为${accession}.metadata.tsv的样本信息。

Note 注意2:如果检索的accession在GSA数据库中,iSeq会通过GSA的getRunInfo接口获取样本信息,下载CSV格式的metadata,通常有25列,上述得到的metadata信息会被保存为${accession}.metadata.csv文件。为了补充更加详细的metadata信息,iSeq会自动通过GSA的exportExcelFile接口获取accession所属的Project的metadata信息,下载XLSX格式的metadata,通常有3个sheet,分别是Sample, Experiment, Run。最终得到的metadata信息会被保存为${accession}.metadata.xlsx文件。总而言之,你最终将得到名字为${accession}.metadata.csv和CRA*.metadata.xlsx的样本信息。

3. -g, --gzip

直接下载gzip格式的FASTQ文件,如果不能直接下载,则会下载SRA文件并通过多线程分解和压缩转换为gzip格式。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -g

由于GSA数据库直接存储的格式大多数为gzip格式,因此,如果检索的accession来自于GSA数据库,无论是否使用-g 参数都可以直接下载gzip格式的FASTQ文件。如果accession来自于SRA/ENA/DDBJ/GEO数据库,那么iSeq会首先访问ENA数据库,如果可以直接下载gzip格式的FASTQ文件,则会直接下载,否则,会下载SRA文件并通过fasterq-dump工具转换为FASTQ, 然后通过pigz工具对FASTQ文件进行压缩,最终得到gzip格式的FASTQ文件。

[!TIP] parallel-fastq-dump can also convert SRA to gzip-compressed FASTQ files, typically 2-3 timesfaster than fasterq-dump + pigz. However, considering IO limitations, iSeq currently does not support parallel-fastq-dump.

4. -q, --fastq

将下载完成的SRA文件分解为多个未压缩的FASTQ格式。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -q

该参数只有在accession来自于SRA/ENA/DDBJ/GEO数据库,并且下载的文件为SRA文件时才有效。总之,SRA文件下载完成后,iSeq会通过fasterq-dump工具转换为FASTQ文件,除此之外,可以通过-t参数指定转换的线程数。

Note 注意1:-q在下载单细胞数据,尤其对于scATAC-Seq数据,可以很好的分解出I1, R1, R2, R3四个文件。而如果通过-g参数直接下载FASTQ文件,只会得到R1, R3两个文件(如:SRR13450125),这可能会导致后续数据分析时出现问题。

Note 注意2:-q和-g同时使用的时候,会先下载SRA文件,然后通过fasterq-dump工具转换为FASTQ文件,最后通过pigz压缩为gzip格式。并不是直接下载gzip格式的FASTQ文件,这对获取全面的单细胞数据非常有用。

5. -t, --threads

指定分解SRA文件为FASTQ文件或者压缩FASTQ文件的线程数,默认为8。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -q -t 10

考虑到测序数据一般都是大文件,因此,可以通过-t参数指定分解的线程数,但是,线程数不是越多越好,因为线程数过多会导致CPU或者IO负载过高,尤其是fasterq-dump会占用大量IO,从而影响其他任务的执行。

6. -e, --merge

将Experiment中的多个FASTQ文件合并为一个FASTQ文件。 v1.1.0版本之后,不仅可以对同一个Experiment中的多个FASTQ文件合并,还可以选择不用的参数对Sample (-e sa)或者Study (-e st)进行合并。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRX003906 -g -e ex

虽然大多数情况下,一个Experiment仅包含一个Run,但是有些测序数据中的Experiment中可能包含多个Run(如SRX003906, CRX020217),因此,可以通过-e参数将Experiment中的多个FASTQ文件合并为一个FASTQ文件。考虑到双端测序时,fastq_1和fastq_2文件需要同时合并且对应行号的序列名需要保持一致,因此,iSeq会按照相同的顺序合并多个FASTQ文件。最终,对于单端测序数据会生成一个文件:SRX*.fastq.gz,对于双端测序数据会生成两个文件:SRX*_1.fastq.gz和SRX*_2.fastq.gz。对于Sample (-e sa)或者Study (-e st)同理。

Note 注意1:如果accession是Run ID,则不能使用-e参数,反正就是你想合并的时候,输入的accession必须大于等于要合并的那一级所需要的accession。目前,iSeq支持合并gzip压缩和未压缩的FASTQ文件,对于bam文件和tar.gz文件等暂不支持合并。

Note 注意2:正常情况下,一个Experiment仅包含一个Run时,相同的Run应该有相同的前缀。如SRR52991314_1.fq.gz和SRR52991314_2.fq.gz都有相同的前缀名SRR52991314,此时,iSeq会直接重命名为SRX*_1.fastq.gz和SRX*_2.fastq.gz。但是有例外的情况,如CRX006713中包含有一个Run为CRR007192,但是该Run包含多个前缀名不同的文件,此时,iSeq会直接重命名为SRX*_原本的文件名,如这里将直接重命名为:CRX006713_CRD015671.gz和CRX006713_CRD015672.gz。

7. -d, --database

指定下载SRA文件的数据库,支持ena和sra两种数据库。

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR1178105 -d sra 

通常情况下,iSeq默认会自动检测可用的数据库,所以不需要指定-d参数。但是,有些SRA文件可能在ENA数据库中下载速度较慢,此时可以通过-d sra强制指定从SRA数据库下载数据。

[!NOTE] 注意:如果在ENA数据库中没有找到对应的SRA文件,即使指定了-d ena参数,iSeq依旧会自动切换到SRA数据库进行下载。

8. -p, --parallel

开启多线程下载,需要指定下载的线程数。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -p 10

考虑到wget在部分情况下下载速度较慢,因此,可以通过-p参数让iSeq调用axel工具进行多线程下载。

[!NOTE] 注意1:多线程下载的断点续传功能只能在同一个线程内有效,即如果在第一次下载时使用了-p 10参数,那么在第二次下载时也需要使用-p 10参数,否则无法实现断点续传。

[!NOTE] 注意2:如上,iSeq将全程保持10个连接进行下载,因此在下载的过程中你将多次看到相同的Connection * finished弹出,这是因为有些连接下载完成后会立即释放,然后重新建立新的连接进行下载。

9. -a, --aspera

使用Aspera进行下载。

代码语言:javascript代码运行次数:0运行复制
iseq -i PRJNA211801 -a -g

由于Aspera下载速度较快,因此,可以通过-a参数让iSeq调用ascp工具进行下载。可惜的是,目前仅有GSA和ENA数据库支持Aspera下载,NCBI SRA数据库由于广泛采用了Google Cloud 和 AWS Cloud技术以及其他原因(请看Avoid-using-ascp),暂无法使用Aspera进行下载。

[!NOTE] 注意1:在访问GSA数据库时,如果存在HUAWEI Cloud的下载链接,iSeq会优先通过HUAWEI Cloud通道下载,即使使用了-a参数,iSeq也会自动切换到HUAWEI Cloud下载。这么做的原因是HUAWEI Cloud下载速度更快和稳定。因此,在下载GSA数据时,推荐使用-a参数,这样如果访问不到HUAWEI Cloud通道,通过Aspera通道下载速度也不慢,否则,只能通过wget或者axel进行下载,而这两种方式下载速度较慢。

[!NOTE] 注意2:由于Aspera需要key文件,因此,iSeq会自动在conda环境或者~/.aspera目录下查找key文件,如果没有找到,则无法下载。

10. -o, --output

v1.1.0之后可以选择输出文件的位置,如果不存在相应的文件夹,则创建

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR931847 -o PRJNA211801

11. -s, --speed

v1.2.0之后可以选择限速下载,单位是MB/s

代码语言:javascript代码运行次数:0运行复制
iseq -i SRR931847 -s 10

输出

  • If the query accession in SRA/ENA/DDBJ/GEO database, the following files will be generated:

Output

Description

SRA files

Can be converted to FASTQ files using -q option

.metadata.tsv

Metadata for query accession

success.log

Save the SRA file name that has been downloaded successfully

fail.log

Save the SRA file name that has been downloaded failed

  • If the query accession in GSA database, the following files will be generated:

Output

Description

GSA files

Mostly in *.gz format, and a few are bam/tar/bz2 format

.metadata.csv

Metadata for query accession

.metadata.xlsx

Metadata for Project including query accession in xlsx format

success.log

Save the GSA file name that has been downloaded successfully

fail.log

Save the GSA file name that has been downloaded failed

其他同类型软件

iSeq 的灵感来自 fastq-dl, fetchngs, pysradb, Kingfisher. 软件比较:

Software name

Program languages

Supported databases

Supported accessions

Supported formats

Supported methods

Fetch metadata

MD5 check

Resumable download

Parallel download

Merge FASTQ

Skip downloaded

Conda installable

URL

iSeq

Shell

GSA, SRA, ENA, DDBJ, GEO

All

fq, fq.gz, sra, bam

wget, axel, aspera

本文标签: 工具iSeq下载公开SRA数据科研利器

更多相关文章

工具:iSeq下载公开SRA数据科研利器

1天前

介绍高通量测序技术[下一代测序(NGS)]越来越多地用于解决各种生物学问题。尽管NGS数据中包含丰富的信息,特别是来自NGDC基因组序列档案(GSA)等存储库的数据集不断增长,但对公共测序数据和元数据的程序化访问仍然有限。我们开发iSeq

发表评论

全部评论 0
暂无评论

友情链接:范文网|范文赏析|幼儿频道|外语|IT技术|FreeNAS中文网|usb迷|福州电脑网|