京橋のバイオインフォマティシャンの日常

南国のビーチパラソルの下で、Rプログラムを打ってる日常を求めて、、

Mac版のSRA Toolkitを設定して、fastq-dumpを使ってみた件

f:id:skume:20220115212353p:plain

はじめに - SRA Toolkitについて -

SRA Toolkitは、NCBIのデータベースである、Sequence Read Archivesのデータを扱うためのツール群である。 もっと簡単に言うと、コマンドラインでシークエンス・データを取得・処理するための、入れておくと便利なツール群である。

現状、WEBブラウザ(GUI)では、 NCBIのWebアーカイブからFASTQファイルをダウンロードできない仕様のようで、 その代わり、CUIのSRA Toolkitが用意されているようだ。

github.com

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-configfastq-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ファイルへの変換を試みる。

f:id:skume:20211227235120p:plain:w500

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

これを実行すると、ターミナル上に、下記の青い画面が表示される。

f:id:skume:20211227235437p:plain:w500

やや奇怪な表示であるが、何てことはない。 ここで、「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ファイルをダウンロード・処理できないようなので、 別途、複数ダウンロード用のスクリプトを組み必要がありそうだ。

参考資料

github.com

kimbio.info

trace.ncbi.nlm.nih.gov