美文网首页
原始数据下载专题 | 用fasq-dl下载fastq数据

原始数据下载专题 | 用fasq-dl下载fastq数据

作者: 卖萌哥 | 来源:发表于2024-12-23 09:14 被阅读0次

萌哥碎碎念

一直以来都想写一下下载数据的这些命令和工具,现在刚好收集了一些,可以写一整个专题。先分别写,也许之后还能出一个横评。目前规划的软件有:

  • fastq-dl
  • gget
  • ffq
  • iSeq
  • kingfisher
  • datasets

这里面datasets比较特殊,是NCBI的官方软件,并且主要不是用来下载原始数据的,是下载比如基因组或者获取一些NCBI上的元信息的(例如一个物种的系统分类信息,可以参考我之前的推文),因为同类别的软件比较少,所以就一起放在这个专题里吧。

今天先介绍fastq-dl。

目前没有发表文章,但是引用的话可以引用github地址: https://github.com/rpetit3/fastq-dl

安装

可以用conda一键安装:

conda install fastq-dl

当然你也可以用pip来安装:

python -m pip install fastq-dl

目前最新版是 3.0.0 。这个版本的主要更新是:

  1. 增加了忽略检查md5值的 --ignore 的选项

  2. 需要3.9及以上版本的python

打印一下帮助文档,会发现参数不是很多,使用起来不太复杂。

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.                                                                                                                                                │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

场景1:下载单个SRA文件

假设我要下载的文件的SRA数据库编号是 SRR7492801

(随手搓的,搜了一下发现是人类的转录组数据,就很巧)

使用起来很简单:

fastq-dl -a SRR7492801 --prefix SRR7492801 --cpus 8

默认是去ena数据库下载, 你也可以手动用 -a 指定从sra数据库下载。

-prefix 是指定样品的metadata信息的前缀,会以一个类似于SRR7492801-run-info.tsv的名字保存下来。

一般我会把这个文件保存下来,方便之后整理成表格,特别是发表的时候可能会用到。有这个信息,下次也不用去NCBI再挨个查这些样品到的是对照还是处理之类的信息了。

--cpus 是指定用多少个线程数来下载, 默认是1。

默认情况下fastq-dl就会完成下载和文件md5检验的过程,确保下载的数据是完整的。而不用自己再去根据md5文件去验证,省时省力省心。

下载的速度也不错,起码我这里是的 :-)

场景二:下载一整个bioproject

有的时候我们想复现别人的文章里的分析,会遇到希望一键把这篇文章的bioproject里的所有样品都下载下来的场景,这个软件也是支持这样的操作的:

fastq-dl -a PRJDB17334 --group-by-experiment --prefix PRJDB17334

其实各个层级都是可以的哈,不管是Study, Sample, Experiment 还是 Run accession。

说到这些名词,就得介绍一下NCBI的数据存放的架构了。

NCBI的数据存放架构

这个工具是允许以多层级的方式进行下载的。那么数据在NCBI的数据库里一般有哪几级呢?

Accession Type Prefixes Example
BioProject PRJEB, PRJNA, PRJDB PRJEB42779, PRJNA480016, PRJDB14838
Study ERP, DRP, SRP ERP126685, DRP009283, SRP158268
BioSample SAMD, SAME, SAMN SAMD00258402, SAMEA7997453, SAMN06479985
Sample ERS, DRS, SRS ERS5684710, DRS259711, SRS2024210
Experiment ERX, DRX, SRX ERX5050800, DRX406443, SRX4563689
Run ERR, DRR, SRR ERR5260405, DRR421224, SRR7706354

如果这个项目很大,那么一个BioProject可能包含基因组、转录组、chip-seq之类的各种类别的数据,但是我们一般只需要其中的一部分。

下载的最小单位是run,也就是一个或者一对fastq(如果双端测序的话)数据。

而Experiment和run之间的关系,按照官网的介绍是:

The relationship of Experiment to Run is a 1-to-many relationship, or there can be many Run accessions associated with a single Experiment Accession (e.g. re-sequencing the same sample). Although in most cases, it is a 1-to-1 relationship, you can use --group-by-experiment to merge multiple runs associated with an Experiment accession into a single FASTQ file.

简单讲就是在NCBI的系统里,一个Experiment可能会对应着多个Run,比如有的样品测一次没测够足够的数据,后来又补测了一部分,那么这里就会有两个Run也就是两个SRA数据库编号的数据对应到一个Experiment的情况,虽然大多数时候两者都是1对1的关系。

因为软件太简单了所以似乎没有更多觉得值得说的内容了,那么如果你对这个软件的使用有疑惑欢迎在下面评论或者给我的微信公众号萌哥与生信留言,我看到会及时回复的你哦。

相关文章

网友评论

      本文标题:原始数据下载专题 | 用fasq-dl下载fastq数据

      本文链接:https://www.haomeiwen.com/subject/ayzuejtx.html