ハイスループットシーケンス技術により、利用可能なシーケンスデータの量はかつてないほど爆発的に増加しており、それらは通常FASTAファイルやFASTQファイルとして保存されている。配列データを生物学的知識に変換する目的で、この種のファイルを処理・操作するツールがいくつか文献に見られる。しかし、いずれも逐次処理に基づくため、今後数年でテラバイト単位になると思われる非常に大きなファイルを効率的に処理するには適していない。よく知られたseqkitツールの一部のルーチンだけが部分的に並列化されている。いずれにせよ、そのスケーラビリティは、1つの計算ノードで数スレッドを使用する程度に限られている。
本アプローチであるBigSeqKitは、FASTA/FASTQファイルの操作を高速化する目的で、seqkitに含まれるコマンドを並列化し最適化するために、ハイパフォーマンス・コンピューティング-ビッグデータ・フレームワークを活用している。こうすることで、ほとんどの場合、いくつかの最新ツールよりも数十倍から数百倍高速になる。同時に、本ツールキットは使いやすく、どのようなハードウェアプラットフォーム(ローカルサーバーやクラスタ)にもインストールでき、そのルーチンはバイオインフォマティクスライブラリーとして、あるいはコマンドラインから使用できる。BigSeqKitは、大規模なFASTAおよびFASTQファイルを処理・操作するための、非常に完全で超高速なツールキットである。https://github.com/citiususc/BigSeqKitで利用できる。
インストール
BigSeqKit(およびIgnisHPC)はローカルコンピュータ上での実行と、ワークロードマネージャとしてSlurmを使用するHPCクラスタ上での利用に焦点を当てて使い方が説明されている。ここではローカルコンピュータ上(ローカルサーバ上)での使用方法を確認する。ローカルコンピュータではdockerを使って実行する。
#初めにignis-deployを導入
pip install ignishpc
#docker imageのpull(dockerhub)$注; ":latest"のTAGを導入する事
docker pull ignishpc/full:latest
実行方法
コンテナなしで使用するためにignis-submitスクリプトを展開する(初回のみ必要)。
docker run --rm -v $(pwd):/target ignishpc/submitter ignis-export /target
=> ignisディレクトリができる。
続いて以下の環境変数をセットする
export IGNIS_DFS_ID=$(pwd)
# set docker as scheduler
export IGNIS_SCHEDULER_TYPE=docker
# set where docker is available
export IGNIS_SCHEDULER_URL=/var/run/docker.sock
あとはコマンドまたはルーチン(seqkitの完全なリスト)を選択し、構文に従ってコマンドラインから引数を渡すことで使用できる。
./ignis/bin/ignis-submit ignishpc/full bigseqkit <cmd> <arguments>
seqkit seqの-nオプションで配列名(ヘッダ)だけ取り出す例
./ignis/bin/ignis-submit ignishpc/full bigseqkit seq -n -o names.txt input-file.fa
- -n only print names
論文では、使用方法の説明や1ノードから256ノードまでのHPCノード上での実行時間の表(Table 3~9)もあります。確認してみて下さい。
引用
BigSeqKit: a parallel Big Data toolkit to process FASTA and FASTQ files at scale
César Piñeiro, Juan C Pichel
GigaScience, Volume 12, 2023
関連