系統樹への配列の配置(すなわち、配列を系統樹に挿入する作業)は、メタゲノム解析における分類群の同定や大規模な系統推定など、複数のバイオインフォマティクスパイプラインにおける基本的なステップである。現在最も正確な方法はpplacerで、maximum likelihoodを用いて配置を最適化しようとするが、系統樹に5000の葉を持つデータセットでは頻繁に失敗する。APPLESは現在最もスケーラブルな手法だが、EPA-ngはpplacerよりもスケーラブルでAPPLESよりも正確なものの、50,000分類群の系統樹では多くの場合失敗する。本研究では、系統樹が非常に大規模な場合でもpplacerを使用可能にする分割統治法に基づくpplacerDCを提案する。pplacerDCは優れた精度とスケーラビリティを有し、pplacerが実行可能な場合ではpplacerと同等の精度を保持し、APPLESとEPA-ngよりも精度を向上させ、最大100,000シーケンスのデータセットでも実行可能であることを示した。
インストール
mambaで環境を作って導入した。
依存
- Python >= 3.7
- pplacer v1.1.alpha19 (https://github.com/matsen/pplacer/releases/tag/v1.1.alpha19)
- raxml-ng (https://github.com/amkozlov/raxml-ng.git)
mamba create -n pplacer
conda activate pplacer
python3 -m pip install dendropy==4.5.2
#pplacer 1.1.alpha19が必要
wget https://github.com/matsen/pplacer/releases/download/v1.1.alpha19/pplacer-linux-v1.1.alpha19.zip
unzip pplacer-linux-v1.1.alpha19.zip
cd pplacer-Linux-v1.1.alpha19/
export PATH=$PWD:$PATH
cd ../
#本体
git clone https://github.com/kodingkoning/pplacerDC.git
cd pplacerDC/
export PATH=$PWD:$PATH
$ python3 approach1/src/pplacerDC.py -h
usage: pplacerDC.py [-h] [-j NUMTHREADS] [-m MAX] [-o OUTPUT] [-v VERBOSE] [-x SERIAL_RAXML] -s INFO -t TREE -q QUERY -r REF_MSA
Place a query sequence into a backbone tree.
options:
-h, --help show this help message and exit
-j NUMTHREADS, --numThreads NUMTHREADS
Number of threads (default: 1)
-m MAX, --max MAX Maximum size of subtree to hand to pplacer
-o OUTPUT, --output OUTPUT
Resultant tree with placement
-v VERBOSE, --verbose VERBOSE
Run in verbose mode
-x SERIAL_RAXML, --serial-raxml SERIAL_RAXML
Run RAxML with only one process.
required named arguments:
-s INFO, --info INFO RAxML v7 or v8 info file [NOT raxml-ng]. Path must be relative to directory flag.
-t TREE, --tree TREE Input tree. Path must be relative to directory flag.
-q QUERY, --query QUERY
Query taxa to place into tree. Path must be relative to directory flag.
-r REF_MSA, --ref-msa REF_MSA
Reference MSA. Path must be relative to directory flag.
実行方法
ランするには、バックボーンの系統樹、追加したい配列のfasta、追加したい配列を追加したMSAが必要。
並列計算に対応したraxmlHPC-PTHREADSを使用して最尤法の系統樹を作成。
#アミノ酸配列の進化モデルPROTGAMMAAUTOを指定.-pで乱数のシード値を指定、8CPU。-b <INT>と-# <Replicates Number>でブートストラップ解析
raxmlHPC-PTHREADS -s backbone.aln -n backboneTree -m PROTGAMMAAUTO -p 12345 -T 8
MSAの構築。
mafft --auto backbone_and_query.faa > backbone_query.aln
pplacerDCの実行。
python3 pplacerDC/approach1/src/pplacerDC.py -s RAxML_info.backboneTree -t RAxML_bestTree.backboneTree -q query.faa -r nifH2.aln -o placement_result.tree -j 4 -v 1
テスト時は不明なエラーが出て修正できなかった。ランできたら報告します。
引用
ppIacerDC: a new scalable phylogenetic placement method
Authors: Elizabeth Koning, Malachi Phillips, Tandy WarnowAuthors Info & Claims
BCB '21: Proceedings of the 12th ACM International Conference on Bioinformatics,
Computational Biology, and Health Informatics, Article No.: 3, Pages 1 - 9 Published: 01 August 2021