RAxML-NGの使い方

最尤法による系統樹探索ソフト[**RAxML-NG**](https://github.com/amkozlov/raxml-ng)の使い方を簡単に説明します。
RAxMLと比較してRAxML-NGはコマンドがシンプルになって非常に使いやすくなっています。
また、選択できるモデルの種類も増えています。

本ページは初心者向けの内容です。
詳しいオプションやモデルについては公式のマニュアルを参考にしてください。

https://github.com/amkozlov/raxml-ng

※MacOSの場合で説明します。
※モデル推定は省略していますが、[ModelTest-NG](https://github.com/ddarriba/modeltest/releases)がRAxML-NGと互換性があって使いやすいです。

### 環境
```
macOS 12.3.1
raxml-ng 0.9.0
```

## RAxML-NGのインストール

Mac用のパッケージマネージャである[**Homebrew**](https://brew.sh/index_ja)でRAxML-NGをインストールします。
Homebrewのインストールは[公式サイト](https://brew.sh/index_ja)を参考にしてください（スクリプトをターミナルにコピペして実行するだけ）。

1. まだHomebrewのリストに`brewsci/bio`（バイオインフォマティクス系のパッケージ）を追加していない場合は、ターミナルから`brew tap brewsci/bio`を実行する。
2. `brew install raxml-ng`でRAxML-NGをインストールします。



なぜか[ModelTest-NG](https://github.com/ddarriba/modeltest/releases)はHomebrewからインストールできません。なんでぇ・・・。

### RAxML-NGを使ってみよう
とりあえず起動してみる。
Homebrewからインストールした場合は既にパスが通っているので、いちいちRAxML-NGのフルパスを打ち込む必要はありません。

### RAxML-NGのバージョン確認

```bash:ターミナル
$ raxml-ng -v

RAxML-NG v. 0.9.0git released on 24.05.2019 by The Exelixis Lab.
Developed by: Alexey M. Kozlov and Alexandros Stamatakis.
Contributors: Diego Darriba, Tomas Flouri, Benoit Morel, Sarah Lutteropp, Ben Bettisworth.
Latest version: https://github.com/amkozlov/raxml-ng
Questions/problems/suggestions? Please visit: https://groups.google.com/forum/#!forum/raxml
```

### 塩基配列データの解析
```bash:ターミナル
$ raxml-ng --msa inputfile.fasta --all --model GTR+G+I --bs-trees 100 --threads 8

# --msa アライメントされたインプットファイルを指定
# --all　樹形探索とブートストラップ解析を行う
# --model　モデルを指定
# --bs-trees　ブートストラップ数を指定
# --threads　解析に使うスレッド数を指定。塩基配列長が短いときは少なめにする。
```
基本的にはこれ。適宜オプションを見ながら変更してください。
置換モデルの一覧は[こちら](https://github.com/amkozlov/raxml-ng/wiki/Input-data#evolutionary-model)。
Outfileはカレントディレクトリに出力されます。

### SNPデータの解析
```bash:ターミナル
$ raxml-ng --msa inputfile.phylip --all --model GTR+G+ASC_LEWIS --bs-trees 100 --threads 8
```
SNPベースの系統解析を行う際は、Acquisition Bias (Ascertainment Bias) 補正をしたモデルを選択します。

以下のサイトが詳しいです。

https://nemunemu-nyanko.hatenablog.com/entry/2020/12/28/173117

### 複数遺伝子座を用いた系統解析
複数遺伝子座で領域ごとに別のモデルを用いる場合、パーティションを組んで一気に解析します。
事前に`モデル名, 遺伝子名, 領域の位置`を指定するパーティションファイルを作成します。
下はパーティションファイルの一例です。

```bash:mtDNA_partition.txt
TIM2+I+G4, 12S = 1-972
TIM2+I+G4, 16S = 973-2728
TrN+I+G4, ND1 = 2729-3703
TrN+I+G4, ND2 = 3704-4749
TPM2uf+I+G4, COI = 4750-6300
HKY+I+G4, COII = 6301-6991
HKY+I+G4, ATPase8 = 6992-7159
TIM1+I+G4, ATPase6 = 7160-7842
HKY+I+G4, COIII = 7843-8627
TPM3uf+I+G4, ND3 = 8628-8976
TrN+I+G4, ND4L  = 8977-9273
TIM1+I+G4, ND4 = 9274-10655
TrN+I+G4, ND5 = 10656-12500
TIM3+I+G4, ND6 = 12501-13022
HKY+I+G4, Cytb = 13023-14163
```
あとは`--model`でパーティションファイルを指定してRunするだけです。

```bash:ターミナル
$ raxml-ng --msa ./mtDNAseq.fasta --model ./mtDNA_partition.txt --all --bs-trees 100 --threads 16
```
これで終わりです。

# 結果の可視化
[Figtree](http://tree.bio.ed.ac.uk/software/figtree/)を使います。

RAxML-NGのRunが終わると、Output fileが8つほど出力されます。

```bash:ターミナル
$ ls
inputfile.phylip	#シーケンス配列
inputfile.phylip.raxml.bestModel	
inputfile.phylip.raxml.bestTree	
inputfile.phylip.raxml.bootstraps	
inputfile.phylip.raxml.log	#解析のログ
inputfile.phylip.raxml.mlTrees	
inputfile.phylip.raxml.rba	
inputfile.phylip.raxml.startTree	
inputfile.phylip.raxml.support	#これをFigtreeから読み込む
```

`.raxml.support`ファイルをFigtreeで開きます。
ブートストラップ値は「Node Labels」にチェックを入れて、「label」を表示すればOK。

# トラブル
- うまく起動しない時は必要なパッケージが足りていない場合がある。Homebrewからインストール`brew install bison flex gmp`
- Abort trap: 6が出てエラーになるときは`--force model_lh_impr`を付けると回る（無理やり）
- スレッド数あたりのアライメント数は200–1000 bpが良いらしい。配列長に対してスレッド数が多いと警告がでる。

# その他
**GUIバージョンも提供されています**
コマンドラインに慣れていない方はこちらがおすすめ。

https://antonellilab.github.io/raxmlGUI/

**WebサーバーでもRAxML-NGが使えます**
PCのスペックが低い方や環境構築が手間な方におすすめ。

https://raxml-ng.vital-it.ch/#/


# 文献
**RAxML-NG**
- Alexey M. Kozlov, Diego Darriba, Tomáš Flouri, Benoit Morel & Alexandros Stamatakis. **2019**. RAxML-NG: A fast, scalable, and user-friendly tool for maximum likelihood phylogenetic inference. **Bioinformatics**, btz305. [doi:10.1093/bioinformatics/btz305](https://doi.org/10.1093/bioinformatics/btz305)

**SNPベースの系統解析の際のモデル選択**
- Adam D. Leaché, Barbara L. Banbury, Joseph Felsenstein, Adrián nieto-Montes de Oca & Alexandros Stamatakis. **2015**. Short Tree, Long Tree, Right Tree, Wrong Tree: New Acquisition Bias Corrections for Inferring SNP Phylogenies. **Systematic Biology**, 64(6): 1032–1047. [ doi: 10.1093/sysbio/syv053](https://doi.org/10.1093/sysbio/syv053)