NCBIのfastq-dumpはリソース(ネットワーク、IO、CPU)が速くても、時には非常に遅くなることがある(Githubのprotipを参照)。 fastq-dumpにはsraファイルの特定の範囲を照会するオプション(-Nと-X)があるため、このツールparallel-fastq-dumpは作業を要求されたスレッド数に分割し、複数のfastq-dumpを並列実行して高速化する。結果は内部で連結され、fastq-dumpを実行したのと同じ結果が得られる。
インストール
mac os10.14でテストした。
依存
- SRA Toolkit (link)
本体 Github
#Anaconda環境ならcondaで導入可能(依存関係にあるsra toolkitも導入される)
mamba install -c bioconda -y parallel-fastq-dump
> parallel-fastq-dump -h
$ parallel-fastq-dump -h
usage: parallel-fastq-dump [-h] [-s SRA_ID] [-t THREADS] [-O OUTDIR]
[--tmpdir TMPDIR] [-V]
parallel fastq-dump wrapper, extra args will be passed through
optional arguments:
-h, --help show this help message and exit
-s SRA_ID, --sra-id SRA_ID
SRA id
-t THREADS, --threads THREADS
number of threads
-O OUTDIR, --outdir OUTDIR
output directory
--tmpdir TMPDIR temporary directory
-V, --version shows version
実行方法
例えば"SRR8240026"をダウンロードし、out_dir/にペアエンドfastq.gz出力する。
parallel-fastq-dump --threads 8 --split-files --gzip \
--outdir out_dir --sra-id SRR8240026
#追記 複数
parallel-fastq-dump --threads 8 --split-files --gzip \
--outdir out_dir --sra-id SRR1767325 SRR1767326 SRR1767327
out_dir
感想
回線帯域が十分な条件でテストする限り、fastq-dumpだけでダウンロード、fastq変換するより7~8倍早く終わりますね("--threads 8"でテスト)。
引用
GitHub - rvalieris/parallel-fastq-dump: parallel fastq-dump wrapper
関連