SRA Toolkitの設定
SRA Toolkitの設定は、以前の記事を参考のこと。
Mac版のSRA Toolkitを設定すれば、
そのままの設定で、fasterq-dump
コマンドも実行できる。
fasterq-dumpコマンドで、FASTQファイルを高速に取得する
SRA toolsの2.9.1リリースで、fastq-dumpツールに代わる「fasterq-dump」ツールが利用可能になった。
その名の通り、fasterq-dump
コマンドは、一時ファイルやマルチスレッドを利用して、
より高速に動作し、SRAオブジェクトのFASTQファイルへの大規模な変換に適している。
コマンドのオプションは、従来のfastq-dumpコマンドといくつかの相違点があるので注意が必要である。
fasterq-dumpの基本形
まずは、fasterq-dumpの使い方を以下に示す。
fasterq-dump [ options ] [ SRA accessions(s) / ID ]
fastq-dump
では、ペアリードを左端と右端に分離するためのオプション設定(--split-3)が必要であるが、
fasterq-dumpではデフォルト設定となっている。
fastq-dumpコマンドと同じく、SRAアクセッション番号を指定して実行する。 以下のコマンドは同等であるが、fasterq-dumpを使用した方が高速に実行される。
#fastq-dumpの実行例 fastq-dump [SRR_ID] --split-3 --skip-technical #fasterq-dumpの実行例 fasterq-dump [SRR_ID]
以下に、Run ID: SRR17327096での実行結果を示した。
#プログレス表示にて実行 fasterq-dump SRR17327096 -p #join :|-------------------------------------------------- 100% #concat :|-------------------------------------------------- 100% #spots read : 110,774 #reads read : 221,548 #reads written : 221,548 ls #SRR17327096_1.fastq SRR17327096_2.fastq
100MBくらいのサイズだとよく分からんけど、気持ち早い気がする。
複数のSRAオブジェクトに対する、fasterq-dumpの実行
シェルスクリプトで複数のファイルに対して処理する場合には、 以下のコードが使える。
while read line; do; fasterq-dump -p $line; done < ./SRR_Acc_ListR.txt
ここで、SRR_Acc_ListR.txtには、下記例のように、1行に1つずつ、SRR IDを記載した形とする。 この時の注意ポイントとして、txtファイルの最終行に、必ず空行を入れておくこと。
fasterq-dumpのオプション
Options: -o|--outfile output-file -O|--outdir output-dir -b|--bufsize size of file-buffer dflt=1MB -c|--curcache size of cursor-cache dflt=10MB -m|--mem memory limit for sorting dflt=100MB -t|--temp where to put temp. files dflt=curr dir -e|--threads how many thread dflt=6 -p|--progress show progress -x|--details print details -s|--split-spot split spots into reads -S|--split-files write reads into different files -3|--split-3 writes single reads in special file --concatenate-reads writes whole spots into one file -Z|--stdout print output to stdout -f|--force force to overwrite existing file(s) -N|--rowid-as-name use row-id as name --skip-technical skip technical reads --include-technical include technical reads -P|--print-read-nr print read-numbers -M|--min-read-len filter by sequence-len --table which seq-table to use in case of pacbio --strict terminate on invalid read -B|--bases filter by bases -A|--append append to output-file --fasta produce FASTA output --fasta-unsorted produce FASTA output, unsorted --seq-defline custom defline for sequence: $ac=accession, $sn=spot-name, $sg=spot-group, $si=spot-id, $ri=read-id, $rl=read-length --qual-defline custom defline for qualities: same as seq-defline -U|--only-unaligned process only unaligned reads -a|--only-aligned process only aligned reads --ngc <PATH> PATH to ngc file -h|--help Output brief explanation for the program. -V|--version Display the version of the program then quit. -L|--log-level <level> Logging level as number or enum string. One of (fatal|sys|int|err|warn|info|debug) or (0-6) Current/default is warn -v|--verbose Increase the verbosity of the program status messages. Use multiple times for more verbosity. Negates quiet. -q|--quiet Turn off all status messages for the program. Negated by verbose. --option-file <file> Read more options and parameters from the file.
補足
single-endか、paired-endの判定プログラム
fastq-dumpの-split-spotオプションを使う、シンプルな方法で、 SRAファイルがシングルエンドかペアエンドかを判断できる。
以下に、シェルスクリプトでの実行コードを示す。
srr="SRR17327096"; numLines=$(fastq-dump -X 1 -Z --split-spot $srr | wc -l); if [ $numLines -eq 4 ]; then; echo "$srr is single-end"; else; echo "$srr is paired-end"; fi
fastq-dumpコマンドとの相違点
-Z(--stdout) オプションは、split-3とsplit-files では機能しない。 この場合、ツールはファイルの生成にフォールバックする。
--gzipや--bizp2のオプションがないので、ファイルを出力した後に別処理で圧縮する必要がある。
accessionには、-Aオプションがない。accessionまたは絶対パスを指定することになる。
fastq-dumpは複数のaccessionsを取らず、1つだけ取る。
-N(--minSpotId) と -X(--maxSpotId) オプションはない。
fastq-dumpは、Linux、MacOS、Windowsの3つのプラットフォームで利用できる。