はじめに - SRA Toolkitについて -
SRA Toolkitは、NCBIのデータベースである、Sequence Read Archivesのデータを扱うためのツール群である。 もっと簡単に言うと、コマンドラインでシークエンス・データを取得・処理するための、入れておくと便利なツール群である。
現状、WEBブラウザ(GUI)では、 NCBIのWebアーカイブからFASTQファイルをダウンロードできない仕様のようで、 その代わり、CUIのSRA Toolkitが用意されているようだ。
SRA Toolkitは、コマンド操作に慣れていれば、 ソースファイルをダウンロードして、比較的簡単に設定ができる。
wgetコマンドを使って、SRA Toolkitを取得する
まずはターミナルを起動して、wgetで、Mac用のSRA Toolkitファイルをダウンロードして、 圧縮ファイルをtarコマンドで解凍する。
あるいは、wgetを使わなくても、openでもダウンロード可能である。
#ダウンロード wget http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-mac64.tar.gz #あるいは open http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-mac64.tar.gz #でも可 #tar.gzを解凍する tar -zxvf sratoolkit.current-mac64.tar.gz #使わない、圧縮ファイルを削除する rm -rf sratoolkit.current-mac64.tar.gz
次に、sratoolkit.current-mac64のソースファイルを任意のフォルダに移動させる。 今回は、アプリケーション・フォルダ(/Applications)に移動させ、続きの設定を行う。
#アプリケーション・フォルダに移動させる mv -f sratoolkit.2.11.2-mac64 /Applications
sratoolkit.2.11.2-mac64のパス設定
fastq-dumpのパス設定を見てみると、 当然ながら、まだ設定されていない。
# fastq-dumpのパス確認 which fastq-dump #fastq-dump not found
最近のMacでは、zshがデフォルトシェルになっているので、
ホームディレクトリにある.zshrc
にパス設定を追記する。
.zshrc
がない場合でも、同じ実行コマンドで、.zshrcが作成されて書き込みされる(はず)。
#パス設定の追記 echo "export PATH=$PATH:/Applications/sratoolkit.2.11.2-mac64/bin" >> ~/.zshrc #追記されたか確認 cat ~/.zshrc #export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/sratoolkit.2.11.2-mac64/bin #な感じ行が書き込まれてたら、OK #即時適用する source ~/.zshrc #パス出力 echo $PATH # fastq-dumpのパス確認 which fastq-dump #/Applications/sratoolkit.2.11.2-mac64/bin/fastq-dump
「which fastq-dump」が無事に通れば、パスの設定はOKである。
SRA Toolkitでよく使うツール
このセクションでは、SRA Toolkitでよく使われると思われるコマンドを概説した。
今回は、vdb-config
とfastq-dump
のコマンドを試す。
vdb-config : VDBの設定情報の表示と変更
fastq-dump : SRAデータをFASTQ形式に変換する
prefetch : SRA、dbGaP、ADSPデータのコマンドラインダウンロードを行う
sam-dump : SRAデータをsam形式に変換する
sra-pileup : アラインメントされたSRAデータのパイルアップ統計を生成する
vdb-decrypt : non-SRA dbGaP data ("phenotype data")の復号化
fastq-dumpを使って、NCBIからシークエンスデータをダウンロードする
fastq-dumpコマンドは、NCBIのデータリポジトリからSRA データをダウンロードして、 その後、得られたSRA形式(.sra)を自動的にFASTQファイル(.fastq)に変換してくれる非常に役に立つコマンドである。
シングルリード・シークエンスデータ取得の実施例として、 The microbial communityが公開しているSRR17327096をダウンロードして、FASTQファイルへの変換を試みる。
fastq-dumpの最もシンプルな文法は、 Run ID (e.g. SRR17327096)との組み合わせである。
fastq-dump SRR17327096
しかしながら、、初めに、fastq-dumpコマンドを実行すると、以下のようなエラーメッセージが表示されるだろう。
This sra toolkit installation has not been configured. Before continuing, please run: vdb-config --interactive For more information, see https://www.ncbi.nlm.nih.gov/sra/docs/sra-cloud/
このメッセージがでたら、SRA configurationを行うために、 そのまま続けて、以下のコマンドを実行する。
vdb-config --interactive
これを実行すると、ターミナル上に、下記の青い画面が表示される。
やや奇怪な表示であるが、何てことはない。 ここで、「x」を押すと、「Enable Remote Access」の設定が完了する。
これで、NCBIからSRAがダウンロードできる環境設定になっている。
SRAを取得して、FASTQファイルに変換するコマンド(シングルリードの設定)
上記と同じであるが、fastq-dumpの文法は、Run ID(アクセッション番号)を指定して実行するだけである。
#ダウンロード fastq-dump SRR17327096 #head表示(一部) head -n 4 SRR17327096.fastq #@SRR17327096.1 1 length=488 #CCTACGGGAGGCAGCAGTGAGGAATATTGGTCAATGGGCGAG #+SRR17327096.1 1 length=488 #FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
実行の結果、「SRR17327096.fastq」がローカルディレクトリに作成される。
約116MBのFASTQファイルが生成され、実行時間としては10-15秒くらいかかる。
gz圧縮形式で、FASTQファイルを取得するコマンド(シングルリードの設定)
--gzip
をつけることで、gz圧縮形式で取得することもできる。
#ダウンロード + gz圧縮 fastq-dump --gzip SRR17327096
FASTA形式でダウンロードする
デフォルト設定で取得される、FASTQファイルだと結果が冗長となる。
そこで、クオリティデータがない、FASTA形式でダウンロードするには、
--fasta
オプションをつける。
--fasta
オプションで、1行あたりの塩基数を設定する。
例えば、--fasta 60
で、1行あたり60塩基のFASTAファイルに変換できる。
#1行60ベースのFASTA取得 fastq-dump --fasta 60 SRR17327096 #head表示 head SRR17327096.fasta #>SRR17327096.1 1 length=488 #CCTACGGGAGGCAGCAGTGAGGAATATTGGTCAATGGGCGAGAGCCTGAACCAGCCAAGT #AGCGTGAAGGATGACTGCCCTATGGGTTGTAAACTTCTTTTATAAAGGAATAAAGTCGGG #TATGCATACCCGTTTGCATGTACTTTATGAATAAGGATCGGCTAACTCCGTGCCAGCAGC #CGCGGTAATACGGAGGATCCGAGCGTTATCCGGATTTATTGGGTTTAAAGGGAGCGTAGA #TGGAGGACTACTCGGGTATCTAATCCTGTTTGATACCCACACTTTCGAGCCTCAATGTCA #GTTGCAGCTTAGCAGGCTGCCTTCGCAATCGGAGTTCTTCGTGATATCTAAGCATTTCAC #CGCTACACCACGAATTCCGCCTGCCTCAACTGCACTCAAGATATCCAGTATCAACTGCAA #TTTTACGGTTGAGCCGCAAACTTTCACAACTGACTTAAACATCCATCTACGCTCCCTTTA #AACCCAAT
FASTQは@
を、FASTAは>
をデータの先頭としてそれぞれ始まる。
また、FASTA形式の場合も、--gzip
をつけることで、gz圧縮が可能である。
#1行60ベースのFASTA取得 + gz圧縮 fastq-dump --gzip --fasta 60 SRR17327096
初めの5リードをFASTQにして標準出力するコマンド(シングルリードの設定)
SRAの一部のリードだけを読み込み、ターミナル上に表示だけしたい場合には、-Xや-Zのオプションを使用する。
fastq-dump -X 5 -Z SRR17327096
この設定の場合、標準出力だけで、ローカルにファイルは保存されない。
fastq-dumpの基本形
Usage: fastq-dump [options] <path/file> [<path/file> ...] fastq-dump [options] <accession>
fastq-dumpの代表的なオプション
オプション | 概要 |
---|---|
-h |
ヘルプ表示 |
-V |
プログラムのバージョンを表示 |
--split-files |
ペアードエンド・リード用のオプション。各リードを別々のファイルにダンプする。ファイルにはリード番号に対応するサフィックスが付く。 |
--fasta <塩基数> |
FASTQ変換。1行あたりの塩基数を指定。 |
-F |
Deflineにオリジナルの配列名のみを表示する。 |
-N |
ダンプされる最小スポットID。範囲を指定してダンプする場合は、"X "と一緒に使用する。 |
-X |
ダンプされる最大スポットID。範囲を指定してダンプする場合は、"N "と一緒に使用する。 |
-Z |
標準出力に出力する。分割されたデータはすべて1つのストリームに結合されます。 |
-O |
出力ディレクトリ。デフォルトは現在の作業ディレクトリ ('.')。 |
--gzip |
ファイルをgz圧縮形式で出力 |
--bzip2 |
ファイルをbzip2圧縮形式で出力 |
まとめ
シークエンスデータのRun IDが分かれば、 簡単にFASTQファイル・FASTAファイルが取得できるのは結構便利である。
一方で、1回のコマンド実行で、 複数のFASTQファイルをダウンロード・処理できないようなので、 別途、複数ダウンロード用のスクリプトを組み必要がありそうだ。