SRA-toolkitを使ってサンプルデータをダウンロード

次世代シーケンサー(NGS)データを学術論文で公表する場合、シーケンサーから出力された配列データやアノテーションに関するデータを公共データベースに登録することが必要です。
このデータ群が登録される先が、International Nucleotide Sequence Database Collaboration (INSDC) が運用しているGenBankデータベースです。

現在、GenBankは以下の3つにより構成されています。

これらのデータベース間では、相互に塩基配列データが交換されており、指数関数的に増加し続けています。

登録されるデータは次世代シーケンサー (NGS) から出力される配列データ、及びそのアライメント、アノテーションデータ等多岐に及びます。

SRA-toolkitは、その中でも SRA (Sequence Read Archives) 、即ち配列に関するデータを扱うためのツール群です。
今回は、fastq-dump及び prefetchコマンドを使用してfastqファイルやそのもととなるSRAファイルをダウンロードする方法をご紹介します。

インストール

f:id:kimoppy126:20190624112754p:plain

こちら から、お使いのOSに合ったバイナリファイルをダウンロードして下さい。
良しなに解凍し、パスを通してください。

CentOSの場合

$ wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-centos_linux64.tar.gz
$ tar xvzf sratoolkit.current-centos_linux64.tar.gz
$ mv sratoolkit.current-centos_linux64 ~/src/
$ ln -s ~/src/sratoolkit.current-centos_linux64/bin/* ~/bin

使用方法

fastq-dump

fastq-dumpコマンドを使用すると、

  1. SRAファイルを ~/ncbi/public/sra 以下にダウンロードした後、
  2. ダウンロードしたSRAファイルがfastq形式に変換されます。

引数を指定することで出力形式を変えることが可能です。

ペアエンドの場合

以下のように --split-files を付けてあげます。 Foward、Reverseのファイルはそれぞれ {ファイル名}_1.fastq{ファイル名}_2.fastqというファイル名で保存されます。

例:SRR390728のサンプルをペアエンドとしてダウンロード

$ fastq-dump --split-files SRR390728

gz圧縮形式で取得

大抵のバイオインフォツールはgz圧縮形式の入力に対応しています。
ファイルをダウンロードする際は、基本的にgz圧縮形式で取得するのが良いでしょう。
--gzip引数を指定します。

例:SRR390728のサンプルをgz圧縮形式のペアエンドとしてダウンロード

$ fastq-dump --gzip --split-files SRR390728

fastaを取得

fasta形式でダウンロードするには --fasta {fasta1行辺りの文字数}引数を指定します。 fastaファイルは1行当たりの文字数が任意なので文字数を指定するようにします。

例:SRR390728のサンプルを1行60文字のfasta形式でペアエンドとしてダウンロード

$ fastq-dump --split-files --fasta 60 SRR390728

QC済みのデータを取得

例:SRR390728のサンプルのうち、Phred クオリティスコアが64を上回るリードのみをペアエンドとしてダウンロード

$ fastq-dump --split-files --aligned -Q 64 SRR390728

ダウンロード済みのSRAファイルを指定してfastqファイルを作成

以下で説明するprefetchコマンドによりSRAファイルのみをダウンロードしている場合、 ローカルのSRAファイルを指定することによってfastqファイルの作成を行うことも可能です。

例:ローカルに存在するSRR390728.sraからペアエンドのfastqファイルを作成

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

prefetch

prefetchコマンドを使うと、fastq-dumpの1段階目、
SRAファイルのダウンロードのみを行うことができます。

例:SRR390728.sraをダウンロード

$ prefetch SRR390728

複数データ一気にダウンロード

例えばSRX5982330のデータをすべてダウンロードしたいとします。 SRA Run Selectorのページから、プロジェクト内で使用されたサンプルのAccession Listをダウンロードすることができます。

ここでダウンロードした SRR_Acc_List.txt の中身は、以下のようにダウンロードするSRA番号が改行区切りで記載されています。

SRR9211436
SRR9211437
SRR9211438
SRR9211439
SRR9211440
SRR9211441
SRR9211442
SRR9211443
SRR9211444
SRR9211445
SRR9211446
SRR9211447

このAccession Listを使用することで、以下のように複数のSRAファイルを一気にダウンロードすることができます。

例:SRR_Acc_List.txt に記載したSRAファイルをダウンロード

$ prefetch --option-file SRR_Acc_List.txt 

このコマンドによりダウンロードしたファイルはfastq-dumpの1段階目 ~/ncbi/public/sra/ 以下に保存されます。

おまけ

Ohtaさんが公開しているpfastq-dumpを使用すればダウンロードを並列化させることが可能なようです。
簡単なシェルスクリプトで並列化されていて勉強にもよきですね。

github.com

参考