邻接法(Neighbor-Joining, Saitou & Nei 1987):允许不同支系演化速率不等, 从星状树出发逐步合并最近邻居,输出一棵无根树。
NeighborJoining
00 Remarks
每一步不再选择原始距离最小的对,而是选择使 Q 值最小的对:
Q(i,j) = (n-2) * d(i,j) - Σ_k d(i,k) - Σ_k d(j,k)
分支长度:
L(i,u) = 1/2 d(i,j) + 1/(2(n-2)) [ Σ_k d(i,k) - Σ_k d(j,k) ] L(j,u) = d(i,j) - L(i,u)
新节点到剩余节点的距离:
d(u,k) = ( d(i,k) + d(j,k) - d(i,j) ) / 2
当剩余 3 个分类单元时,三条分支长度由三方距离公式收尾。
01 Syntax
SMRUCC.genomics.Interops.Visualize.Phylip.Evolution.NeighborJoining.NeighborJoining
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| Build | 2 | 由字符矩阵(比对位点矩阵)先行估计距离,再构建 NJ 树。 |
| CleanLength | 1 | 清除浮点运算产生的极小数值(例如 1E-17),使得输出结果中不会出现无意义的“伪分支”。 |
03 Members
Build(DistanceMatrix)
由距离矩阵构建 NJ 无根树(以三叉根节点表示)。
Build(CharacterMatrix, DistanceModel)
由字符矩阵(比对位点矩阵)先行估计距离,再构建 NJ 树。
CleanLength(
Double)清除浮点运算产生的极小数值(例如 1E-17),使得输出结果中不会出现无意义的“伪分支”。