MAFFTでアラインメントの距離行列を得る

MAFFTTips
"How to get a distance matrix, instead of alignment"
の記述があるものの、まだドキュメントが作成されていないようだったので調査。

mafftのドキュメントにはないが、binaryの中に"mafft-distance"(source)と言うものがあったので使ってみた。

mafft-distance (aa) Version 7.222

$ mafft-distance protein.faa
Calculating i-j scores ... 
1-2 d=0.00 l=241,240
1-3 d=0.00 l=241,240
1-4 d=0.02 l=241,240
1-5 d=0.00 l=241,240
1-6 d=0.01 l=241,240

というような感じで出てくる。各カラムは左から、i番目とj番目の配列、距離スコア、アライメントの長さ(i,j)であろう。
小数点第2位までしか出してくれないのはそれでいいのかという思いと、Protein alignmentのScoreはどうなっているのかという疑問があるが、とりあえずこれをパースして距離行列を作ることはできそう。

ただし、このツール自体はアラインメントを取っていないので、アライメントを取った後の配列で計算したほうが良さそう。
("instead of alignment" ではなくて "after alignment" になってしまっているが)

$ mafft --globalpair --maxiterate 1000 protein.faa > protein.faa.mafft  
$ mafft-distance protein.faa.mafft 

追記
ソースコードをよく見たら(ヘルプには出てないが)"-p"というオプションを付けると小数点6位まで(8.6fで)、かつ行列に変形しやすい形で出してくれた。

$ mafft-distance -p protein.faa.mafft > protein.faa.mafft.dist