Bootstrap

【工具】fastq-dl下载公开SRA数据利器

在这里插入图片描述

介绍

fastq-dl 接收一个 ENA/SRA 编号(研究、样本、实验或运行),并查询 ENA(通过 数据仓库 API)以确定与之相关的元数据。然后,它会为每个运行下载 FASTQ 文件。对于包含多个运行的样本或实验,用户可以选择性地合并这些运行。

安装

fastq-dl 可以从 Bioconda 获取,我非常推荐您通过这个途径进行安装。

conda create -n fastq-dl -c conda-forge -c bioconda fastq-dl
conda activate fastq-dl 

使用

fastq-dl --help

 Usage: fastq-dl [OPTIONS]                                                                     

 Download FASTQ files from ENA or SRA.                                                         

╭─ Required Options ──────────────────────────────────────────────────────────────────────────╮
│ *  --accession  -a  TEXT  ENA/SRA accession to query. (Study, Sample, Experiment, Run       │
│                           accession)                                                        │
│                           [required]                                                        │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Download Options ──────────────────────────────────────────────────────────────────────────╮
│ --provider                    [ena|sra]  Specify which provider (ENA or SRA) to use.        │
│                                          [default: ena]                                     │
│ --group-by-experiment                    Group Runs by experiment accession.                │
│ --group-by-sample                        Group Runs by sample accession.                    │
│ --max-attempts            -m  INTEGER    Maximum number of download attempts. [default: 10] │
│ --sra-lite                               Set preference to SRA Lite                         │
│ --only-provider                          Only attempt download from specified provider.     │
│ --only-download-metadata                 Skip FASTQ downloads, and retrieve only the        │
│                                          metadata.                                          │
│ --ignore                  -I             Ignore MD5 checksums for downloaded files.         │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Additional Options ────────────────────────────────────────────────────────────────────────╮
│ --outdir   -o  TEXT     Directory to output downloads to. [default: ./]                     │
│ --prefix       TEXT     Prefix to use for naming log files. [default: fastq]                │
│ --cpus         INTEGER  Total cpus used for downloading from SRA. [default: 1]              │
│ --force    -F           Overwrite existing files.                                           │
│ --silent                Only critical errors will be printed.                               │
│ --sleep    -s  INTEGER  Minimum amount of time to sleep between retries (API query and      │
│                         download)                                                           │
│                         [default: 10]                                                       │
│ --version  -V           Show the version and exit.                                          │
│ --verbose  -v           Print debug related text.                                           │
│ --help     -h           Show this message and exit.                                         │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯

fastq-dl 需要一个 ENA/SRA 的研究、样本、实验或运行的编号,它会下载该编号下所有运行的 FASTQ 文件。例如,如果提供了一个研究编号,那么该研究下的所有运行都会被下载。默认情况下,fastq-dl 会先尝试从 ENA 下载,如果失败则从 SRA 下载。

–accession

您希望下载相关FASTQ文件的编号。目前接受以下类型的编号。

Accession TypePrefixesExample
BioProjectPRJEB, PRJNA, PRJDBPRJEB42779, PRJNA480016, PRJDB14838
StudyERP, DRP, SRPERP126685, DRP009283, SRP158268
BioSampleSAMD, SAME, SAMNSAMD00258402, SAMEA7997453, SAMN06479985
SampleERS, DRS, SRSERS5684710, DRS259711, SRS2024210
ExperimentERX, DRX, SRXERX5050800, DRX406443, SRX4563689
RunERR, DRR, SRRERR5260405, DRR421224, SRR7706354

这些编号使用了 ENA 培训模块 - 编号 部分中的正则表达式。

–provider

fastq-dl 提供了从 ENA 或 SRA 下载的选项。--provider 选项将指定您希望首先尝试从哪个提供者下载。如果从第一个提供者下载失败,将使用另一个提供者进行额外的尝试。

默认选择 ENA 作为提供者,因为 FASTQ 文件可以直接获取,无需转换。

–only-provider

默认情况下,fastq-dl 会回退到一个次要提供者来尝试下载。在某些情况下,您可能希望禁用此功能,这正是 --only-provider 的用途。当使用此选项时,如果无法从原始提供者下载 FASTQ 文件,则不会进行额外的尝试。

–group-by-experiment & --group-by-sample

有时您可能希望根据实验或样本的编号来分组运行编号。这将根据运行编号相关的实验编号(--group-by-experiment)或样本编号(--group-by-sample)来合并与运行编号相关的FASTQ文件。

–sra-lite

从SRA下载的数据提供SRA标准化和SRA Lite格式。SRA标准化是原始格式,包含完整的碱基质量分数;而SRA Lite由于将质量分数简化为统一的Q30,所以文件更小。默认情况下,偏好设置为SRA标准化,如果您更倾向于SRA Lite,可以使用--sra-lite将偏好设置为SRA Lite

输出文件

ExtensionDescription
-run-info.tsvTab-delimited file containing metadata for each Run downloaded
-run-mergers.tsvTab-delimited file merge information from --group-by-experiment or --group-by-sample
.fastq.gzFASTQ files downloaded from ENA or SRA

案例

Download FASTQs associated with a Study

有时候,您可能在阅读一篇论文,作者非常贴心地提供了他们测序的所有样本的 BioProject 编号。于是,您决定想要下载与该 BioProject 编号相关的所有样本的 FASTQ 文件。fastq-dl 可以帮您做到这一点!

fastq-dl --accession PRJNA248678 --provider SRA
fastq-dl --accession PRJNA248678

上述命令将下载属于研究编号 PRJNA248678 下的3个运行的文件,可以从SRA(使用--provider SRA)或ENA(不使用--provider)下载。

Download FASTQs associated with an Experiment

假设您不想下载整个 BioProject,而只想下载其中的一个实验。您也可以做到这一点。

fastq-dl --accession SRX477044

上述命令将下载属于实验编号 SRX477044 下的运行编号,这些文件来自 ENA。

实验编号与运行编号之间的关系是一对多的关系,也就是说,一个实验编号可以关联多个运行编号(例如,对同一个样本进行重复测序)。尽管在大多数情况下,这种关系是一对一的,但您可以使用 --group-by-experiment 选项,将与实验编号相关的多个运行编号合并到一个FASTQ文件中。

Download FASTQs associated with an Sample

好的,这次您可能只想下载一个样本(Sample)或生物样本(BioSample)。

fastq-dl --accession SRS1904245 --provider SRA

上述命令将从SRA下载属于样本编号SRS1904245的运行编号。

与实验编号类似,样本编号与运行编号之间的关系也是一对多的关系,即一个样本编号可以关联多个运行编号。尽管在大多数情况下,这种关系是一对一的,但您可以使用--group-by-sample将与样本编号相关的多个运行编号合并到一个FASTQ文件中。

**警告!**对于某些类型菌株(例如S. aureus USA300),一个生物样本编号可能与成百上千个运行编号相关联。这些运行编号可能与许多不同的条件相关,因此不应该归于一个单一的生物样本编号下。在使用--group-by-sample时,请务必考虑这一点。

Download FASTQs associated with a Run

让我们保持简单,只下载一个运行(Run)。

fastq-dl --accession SRR1178105 --provider SRA

上述命令将从 SRA 下载运行编号 SRR1178105。运行编号是最终的层级(一对一关系),因此您总是会得到预期的运行。

参考

  • https://github.com/rpetit3/fastq-dl
;