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

萌哥碎碎念

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

  • 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的关系。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,233评论 6 495
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,357评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,831评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,313评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,417评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,470评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,482评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,265评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,708评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,997评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,176评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,503评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,150评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,391评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,034评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,063评论 2 352

推荐阅读更多精彩内容