Palmsonntagmorgen

NGSデータを使った解析と、その周辺。

SRAからfastqを取得する (2019/07/16 追記あり)

更新の間が随分空いてしまいました。 その間に2つの学会に参加してきたのですが、海外の解析手法の進化具合にずいぶん衝撃を受けました。
が、ここは予定通り初歩的な作業から説明していきたいと思います。

今日はSRA(Sequence Read Archive) からfastqファイルを取得する方法です。

SRA Toolkit

まずはNCBIのサイトから SRA Toolkit をダウンロードします。

SRA Toolkit download

MAC用、Win用、Linux用と分かれているので、適切なものを選んでください。
例えばubuntu64なら、ダウンロードした圧縮ファイル(sratoolkit.2.8.2-1-ubuntu64.tar.gz)を解凍後、sratoolkit.2.8.2-1-ubuntu64/bin ディレクトリにパスを通せばOKです。
SRA Toolkitはかなり頻繁にアップデートされるので、ちょくちょく最新版をチェックしておくことをおすすめします。
2017/7/5時点での最新版は 2.8.2-1 です。

fastq-dumpでfastqをダウンロード (single-end)

ここではサンプルデータとして SRR390728 を使います。

 $ fastq-dump SRR390728

single-end データの場合、基本的にはこれだけでOKです。 Hiseqデータならば.fastq形式で、SOLiDでシーケンスされたcolor spaceデータならばcsfastq形式で出力されます。
圧縮形式(.fastq.gz)で出力したければ --gzip オプションを使います。

 $ fastq-dump SRR390728 --gzip

その他のオプションが知りたい場合は--help オプションを使用してください。

fastq-dumpでfastqをダウンロード (paired-end)

paired-endの場合、デフォルトで変換するとF3, F5リードがつながったSRR390728.fastq ファイルが出力されてしまいます。
F3, F5リードを分割して出力するには --split-files オプションを追加します。

 $ fastq-dump SRR390728 --split-files

これで、SRR390728_1.fastq, SRR390728_2.fastq と分割されたfastqファイルが生成されます。
なお、single-end データに --split-files オプションを使った場合、XXX_1.fastq ファイルのみ生成され、内容はオプションなしの場合と同一です。 ので、single-end とpaired-endデータが混在していて面倒という場合には、全てのファイルに --split-files オプションを付加しても問題ありません。

fastq-dumpで.sraから.fastqに変換

上記コマンドを実行した場合、fastq-dumpコマンドは内部で

(1) .sraファイルのダウンロード(~/ncbi/public/sraに保存される)
(2) .sraファイルの.fastqへの変換

を行っています。

fastq-dumpでダウンロードされた.sraファイルは.fastq変換完了後も削除されませんので、 何らかの理由で.fastqファイルへの変換に失敗した(paired-endなのに--split-files オプションをつけ忘れたなど)場合には、 ダウンロード済の.sraから.fastqの変換を行うと二度手間になりません。

 $ fastq-dump ~/ncbi/public/sra/SRR390728.sra

こうすると、 SRR390728.sra から SRR390728.fastq への変換のみが行われます。
逆に、.sraファイルをいつまでも保存していると容量を圧迫しますので、必要なくなった.sraファイルはまとめて削除しましょう。

(2019/07/16 追記) version 2.9.1 から、fasterq-dumpというコマンドが登場しています。fastq-dumpの後継で、マルチスレッドにすることで高速化しているようです。fastq-dumpは将来的に廃止されるそうですので、今後はこちらを使うとよいでしょう。なお--gzip オプションは消えているようですので、生成したfastqを pigzなどで圧縮するようにしましょう。

prefetchでsraをダウンロード

fastqファイルの取得・変換には時間がかかります。
大量のデータを一度に取得する場合には、 安全を期してまず.sraファイルを取得したいという場合もあるでしょう。
prefetchコマンドを使うと、sraファイルのダウンロードのみを行うことができます。

 $ prefetch SRR390728

このコマンドを実行すると、SRR390728.sra ファイルが ~/ncbi/public/sraに保存されます(出力先ディレクトリを何故指定できないのかは謎です…)。

--option-file コマンドを使うと、一度に複数の.sraファイルをダウンロードすることもできます。

 $ prefetch --option-file SRR_Acc_List.txt 

こうすると、SRR_Acc_List.txt に記載されているサンプル全てをダウンロードします。
これらのオプションはツールのバージョンアップと共に変わっていく可能性がありますので、新しいバージョンを使う場合には動作確認を忘れずに。