はじめての環境DNA
研究室から現場まで、実践で使える知識を!
バイオインフォマティックス

aria2とpigzでNCBI ntのBlastDBを作成する

手元のPCでntデータベースを使用する機会があり、その際、時短に貢献してくれたツールについて備忘録を残しておきます。

第2世代シーケンサーやキャピラリーシーケンサー、Long readシーケンサーから得られたDNA配列の分類群を推定するとき、BLASTnによる相同性検索はメジャーな方法です。

BLASTnは誰でもweb上で行えるweb BLASTと、自身のPCに解析環境を用意して行うLocal Blast(BLAST+)があり、web BLASTはNCBIの配列データベースをそのまま使える利点がある一方で、カスタムやオートメーションには向かない印象。また、メンテナンスやサーバーダウンといった自身の管理下にないアクシデント時には、待つしか無いというデメリットがあります。

Local Blastはweb BLASTほど誰でも使えるといった簡便さは劣るものの、比較的、導入・使用までのハードルが低い相同性検索ツールです。

塩基配列に対してのBLAST検索はBLASTnを用い、その際必要となるのは以下の2点

  1. 系統推定したいDNA配列
  2. DNA配列データベース

BLAST検索したいと思うのであれば、なにかしら系統推定したいDNA配列は持っているでしょう。とすると、後はBLAST+の導入とDNA配列データベースが必要となります。

私の手元のPC環境はLinux PCとWindows PCだけなので、MaxOSで同様に動作するかは不明。

  1. Linux PC
    1. OS Ubuntu LTS 20.04
  2. Windows PC
    1. OS Windows 10
    2. WSL (Ubuntu LTS 20.04をインストール) 表現があっているかは不明

BLAST+の導入

windowsにおいても、WSLの実行環境を整えているのであれば.exeなどの実行ファイルを用意しなくてもいいみたいです。

下記コマンドで導入

確認

ここまでは、すでに整っている方が大体なのではないかと思います。

pigzの導入

マルチコアで.gz圧縮・解凍を行ってくれるツール。.xzや.bz2についてはpxz/pixzやpbzip2があります。

確認

aria2の導入

curlやwgetと比べて、複数コネクションによる並列ダウンロードに対応しているようで、大きなファイルを短時間でダウンロードしたい場合には強力なツールです。

確認

これで必要なツールの導入は完了

NBCI v5 blastdbの確認

NCBIのデータベースはいくつかの括りがある。対象分類群が決まっているのであればそれにあったデータベースをダウンロードするほうが良いようです。

v5 ftpサイトは下記

最も大きい区分の塩基配列データベースはntデータベースのよう。2022年3月現在で58個に分割されているのですべてダウンロードします。おおよそ138GB。

aria2でntデータベースのblastdbをダウンロードしてtarとpigzで解凍する

aria2での並列ダウンロード

同時接続コネクション数は5 4。サーバーに負荷がかかるので、コネクション数には注意しましょう。

※ NCBI ftp serverから制限を受ける可能性があるので、aria2cのコネクト数を制限するオプションを追記
※ md5sumファイルの同時ダウンロードとファイルチェックを追記
※ –split=4 を追加

例えば00番のデータベースをダウンロードするのであれば、

とします。

ただ、これを59回もするのは面倒なので、for文で実行します。また、-Zオプションを使用して、md5sumファイルも同時にダウンロードします。

これでカレントディレクトリにnt.??.tar.gzファイルとnt.??.tar.gz.md5ファイルがダウンロードされました。

ダウンロードしたデータベースファイルのmd5sum値を確認していきます。

nt.00.tar.gz: OK
nt.01.tar.gz: OK
nt.02.tar.gz: OK

といった感じでダウンロードした全ファイルのmd5値が一致していることを確認します。もし、FAILEDとなってしまった場合は再度ダウンロードしましょう。

tarとpigzで並列解凍

※ 解凍元のファイルを維持したままにする-kオプション を追記

tarはアーカイブ(複数のファイルやフォルダを1つにまとめる)ファイル(.tar)を作成したり、アーカイブされているものを分割できます。

pigzは単体では解凍と圧縮はできる一方で、アーカーブやアーカイブされているものを分割したりはできません。

そのため、複数階層・ファイルをもつフォルダの場合には、tarと一緒に利用することでフォルダを圧縮・解凍する可能です。

aria2でダウンロードしたnt.??.tar.gzの並列解凍は以下のようにします(ダウンロード時と同じくforを使用)。

これでnt-databaseフォルダにblastnのデータベースファイルが用意できました。あとは好みの設定でblastnを実行して系統推定を進めてみてください。

感想

コアの多いPCの場合、並列実行や平行実行で作業・待ち時間を短縮できる可能性があるので、積極的に並列・並行化は進めていくといいと感じました。

xargsやGNU parallelも並列処理には有効だったのでぜひ使用してみてください。

Reference

各ツールのUSAGE

blastn

pigz

aria2

ABOUT ME
しばた
分析・データ解析なんでもします。環境DNA使って研究したい方、気軽に相談ください。