如何在TikTok上赚钱?真的能在TikTok上赚到钱吗?
0 2025-06-11
传统邻接法(NJ)在计算最小速率校正距离时,偶尔会碰到多个相同的最小值。举个实际例子:用熊的细胞色素数据建树时,调整输入顺序后竟生成两种不同拓扑结构(图1a vs 图1b)。问题出在哪?关键在于它只允许两两合并节点:
INJ算法的核心改进在于引入多节点合并规则(步骤5)。当出现三个节点(i, j, t)的速率校正距离值Mᵢⱼ=Mᵢₜ=Mₘᵢₙ时,直接合并成三叉节点:
plaintext复制# INJ合并公式示例(节点A为新父节点) d_Ai = d_ij/2 + (r_i - r_j)/(2N-4) d_Aj = d_ij - d_Ai d_At = (d_it + d_jt - d_ij)/2
实际效果多明显? 还是熊细胞色素数据,INJ生成的进化树包含唯一的三叉结构(图3),capt4、pola2等物种关系一目了然。这种设计更符合生物演化现实——某些物种本就是同期分化的嘛!
根据我的项目经验,按以下步骤操作能高效避免拓扑歧义:
距离矩阵计算
用Jukes-Cantor模型算序列间进化距离,别忘验证矩阵对称性(dᵢⱼ=dⱼᵢ)。
净分歧度校正
对每个节点i计算:
r_i = Σd_ik (k=1→N)
此处建议用Python的SciPy库自动求和,手动算易出错。
锁定最小Mᵢⱼ
速率校正距离公式:
Mᵢⱼ = dᵢⱼ - (r_i + r_j)/(N-2)
关键技巧:用条件语句判断是否存在三个相等Mᵢⱼ值,是则跳转三节点合并。
递归合并至收敛
拿我们团队分析过的真菌基因组数据来说,传统NJ树在10次独立运行中给出3种拓扑,而INJ结果完全一致。更棒的是:
所以你看,INJ方法像不像个“防手抖神器”?通过允许三节点合并这个巧思,既保留了NJ的速度优势,又根除了拓扑歧义的老毛病。如果你正在写相关论文或工具包,强烈建议试试它。当然啦,若是碰到超大规模数据(比如物种数>5000),可能需要结合并行计算优化——这块咱们下次再聊!欢迎在评论区分享你的建树体验~