macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

(GPU対応) 距離ベースの系統解析を超高速に行う DIPPER

 

 距離に基づく手法は、その優れた速度、スケーラビリティ、理論的保証により、さまざまな用途で系統樹を再構築する際によく用いられている。しかし、従来のde novoアルゴリズムは立方時間(cubic time)と二次メモリ(quadratic memory)の計算量に制約されており、数百万の配列を含む新しいデータセットには実用的ではない。最近の配置(placement)ベースの代替手法は、アルゴリズム上のスケーラビリティは向上しているが、進化距離の計算コストが高く、メモリ使用量も多いため、実際の大規模データへの適用には課題がある。さらに、現行のツールは現代のCPUおよびGPUアーキテクチャの並列処理能力を十分に活用していない。本研究では、DIPPERという新しい距離ベース系統解析ツールを提案する。DIPPERはGPU上での超高速かつ超大規模な系統樹再構築を可能にし、高い精度と低メモリ使用量を維持するよう設計されている。DIPPERは、ランタイムとメモリ計算量を大幅に改善する「分割統治(divide-and-conquer)戦略」、「配置(placement)戦略」、および「オンザフライ距離計算器(on-the-fly distance calculator)」など、いくつかの新しい技術革新を導入している。これにより、DIPPERはN個の系統群(taxa)に対して、ランタイム計算量O(N log N)、メモリ計算量O(N)を達成できる。分割統治戦略により、DIPPERは系統群の数に依存せずGPU上で低いメモリ使用量を維持できる。DIPPERは速度、精度、メモリ効率のいずれにおいても既存手法を一貫して上回り、既存ツールの限界を1〜2桁上回るサイズの系統樹にも対応できる。単一のNVIDIA RTX A6000 GPUを用いることで、DIPPERは1,000万件の未整列配列(unaligned sequences)から7時間未満で系統樹を再構築でき、この規模と効率で動作する唯一の距離ベース手法となる。DIPPERのコードはMITライセンスの下で自由に利用可能であり、https://github.com/TurakhiaLab/DIPPERで入手できる。DIPPERのドキュメントはhttps://turakhia.ucsd.edu/DIPPERで参照できる。

 

インストール

配布されているdockerイメージを使ってテストした(GPU)。

依存

  • Docker
  • Git

Github

#dockerhub (link)
docker pull swalia14/dipper:latest

$ docker run -it --gpus all --rm swalia14/dipper:latest

> dipper --help

DIPPER Command Line Arguments:

 

Required Options:

  -i [ --input-format ] arg   Input format:

                                d - distance matrix in PHYLIP format

                                r - unaligned sequences in FASTA format

                                m - aligned sequences in FASTA format

  -I [ --input-file ] arg     Input file path:

                                PHYLIP format for distance matrix

                                FASTA format for aligned or unaligned sequences

  -O [ --output-file ] arg    Output file path

 

Optional Options:

  -o [ --output-format ] arg  Output format:

                                t - phylogenetic tree in Newick format 

                              (default)

                                d - distance matrix in PHYLIP format (coming 

                              soon)

  -m [ --algorithm ] arg      Algorithm selection:

                                0 - default mode

                                1 - force placement

                                2 - force conventional NJ

                                3 - force divide-and-conquer

  -K [ --K-closest ] arg      Placement mode:

                                -1 - exact mode

                                10 - default

  -k [ --kmer-size ] arg      K-mer size:

                                Valid range: 2-15 (default: 15)

  -s [ --sketch-size ] arg    Sketch size (default: 1000)

  -d [ --distance-type ] arg  Distance type to calculate:

                                1 - uncorrected

                                2 - JC (default)

                                3 - Tajima-Nei

                                4 - K2P

                                5 - Tamura

                                6 - Jinnei

  -a [ --add ]                Add query to backbone using k-closest placement

  -t [ --input-tree ] arg     Input backbone tree (Newick format), required 

                              with --add option

  -h [ --help ]               Print this help message

  -v [ --version ]            Print DIPPER version

 

 

実行方法

1、De novo系統再構築

未整列のFASTA配列かは整列済み配列、もしくは 距離行列(PHYLIP) に対応している。デフォルトでは

< 30,000 個のシーケンス:通常の NJ(Neighbor-Joining)を使用

< 1,000,000 個未満:placement 技術を自動使用

>= 1,000,000 個の場合:divide-and-conquer 技術を優先
となっている。-mでモードは指定できる。

 

入出力ファイル、入出力フォーマット、それぞれを指定して実行する。docker立ち上げ時は--gpus allを指定してGPUを認識できるようにする。

#カレントパスをマウントするようにして立ち上げる
docker run -itv $PWD:/data -w /data --gpus all --rm swalia14/dipper:latest
#未整列配列
dipper -i r -o t -I t2.unaligned.fa -O tree.nwk

#整列(MSA)済み配列
dipper -i m -o t -d 2 -I t1.aligned.fa -O tree.nwk
  • -i     Input format:
            d - distance matrix in PHYLIP format
            r - unaligned sequences in FASTA format
            m - aligned sequences in FASTA format
  • -I     Input file path:
  • -O   Output file path
  • -o    Output format:
            t - phylogenetic tree in Newick format   (default)
            d - distance matrix in PHYLIP format (coming soon)
  • -m   Algorithm selection:
            0 - default mode
            1 - force placement
            2 - force conventional NJ
            3 - force divide-and-conquer

 

コメント

レポジトリにいくつかの使用例が書かれています。確認してみてください。

引用

Ultrafast and Ultralarge Distance-Based Phylogenetics Using DIPPER
Sumit Walia,  Zexing Chen,  Yu-Hsiang Tseng,  Yatish Turakhia

bioRxiv, Posted August 12, 2025.