7、从四分体到系统发育树:方法与算法解析

部署运行你感兴趣的模型镜像

从四分体到系统发育树:方法与算法解析

在生物进化研究中,构建准确的系统发育树对于理解物种间的进化关系至关重要。基于四分体的系统发育树重建方法是其中一种重要的途径,下面将详细介绍该方法的相关概念、问题描述、复杂度分析以及具体算法。

1. 四分体与系统发育树基础概念

四分体可以看作是将四个分类单元划分为两对分类单元的一种方式,例如将分类单元集合 ${a, b, c, d}$ 划分为 ${a, b}$ 和 ${c, d}$,这样的划分表示为 $ab|cd$。在确定了四分体列表后,基于四分体的重建目标是找到一棵系统发育树,使得“满足的四分体”数量最大化。从组合学角度来看,如果所有的 $\binom{n}{4}$ 个四分体都具有正确的拓扑结构,那么底层的树是唯一确定的,并且可以高效构建。但在实际情况中,由于存在误差,可能不存在与所有给定四分体都一致的树。

2. 问题描述与复杂度
2.1 问题定义

问题定义在一组编号为 $1, \cdots, n$ 的 $n$ 个分类单元上,输入包含一组 $k$ 个四分体,第 $j$ 个四分体的相关分类单元和划分表示为 $a_j|b_j|c_j|d_j$,且任意两个四分体不共享相同的四个分类单元。每个输入四分体都伴有一个正权重 $C_j$,表示对该四分体拓扑结构的置信度。

置信度值的计算通常使用自助法(Bootstrap)。具体步骤如下:
1. 独立且有放回地选择原始序列的随机位置,生成与原始长度相等的序列。
2. 对于每次重采样,计算一棵系统发育树。
3. 自助法值等于这些重建结果中产生原始四分体拓扑结构的比例(该值可能低于 $1/3$)。

2.2 规格说明

基于四分体的重建问题的输出是一棵具有 $n$ 个叶子的无根树,叶子由输入的分类单元标记。给定一棵树 $T$ 和一个四元组 ${a, b, c, d}$,可以通过以下步骤计算 $T$ 诱导的四分体拓扑结构:
1. 从树中删除除 $a, b, c$ 和 $d$ 之外的所有叶子。
2. 移除与这些删除叶子相邻的边。
3. 收缩并删除度数为 2 的内部节点,使它们的两个相邻节点相连。
4. 重复此过程,直到没有度数为 2 的内部节点为止。

四元组有四种可能的诱导拓扑结构:三个四分体和星型拓扑(仅由多叉树诱导)。如果树在四个分类单元上诱导出星型拓扑,则称该四分体未解决;否则,四分体要么被满足(如果树诱导的拓扑结构等于四分体的拓扑结构),要么被违反。

树的得分定义为:
[score_Q(T) = \sum_{s \in S} C_s + \frac{1}{3} \sum_{u \in U} C_u]
其中,$S$ 是被树 $T$ 满足的四分体子集,$U$ 是未解决的四分体子集。基于此,基于四分体的重建问题定义为:给定一组四分体 $Q$ 及其相关的置信度得分,找到一棵树 $T$,使得 $score_Q(T)$ 最大化。

2.3 复杂度分析

如果给定 $n$ 个分类单元的所有 $\binom{n}{4}$ 个四分体的完整列表,很容易检查是否存在满足所有四分体的二叉树,并在存在时构建这棵唯一的树。但当给定 $k \leq \binom{n}{4}$ 个四分体时,“是否存在满足所有四分体的树”这一决策问题是 NP 完全的。对于加权四分体列表,最大化树的得分是 NP 难的,甚至是 MAX SNP 完全的。这意味着存在一个绝对常数 $\epsilon > 0$,使得找到得分至少为最大得分的 $1 - \epsilon$ 的树是 NP 难的。

NP 完全性和困难性结果表明,找到多项式时间算法的希望渺茫。但这些结果是渐近的,适用于“最坏情况”的输入实例。在实际的系统发育树重建中,较小的 $n$ 值(如 $15$ 到 $24$)仍然具有生物学意义,此时“温和”的指数时间算法可能具有实际价值。此外,由于可用序列数据中的误差具有随机性,高效的启发式算法可能在接近最优解方面有效。

简单的穷举搜索方法即使对于中等大小的 $n$ 值(如 $n = 15$)也不可行。具有 $n$ 个叶子的无根二叉树的数量为 $\frac{(2n - 5)!}{2^{n - 3}(n - 3)!}$,当 $n = 15$ 时,此类树的数量接近 $8 \times 10^{12}$,而完整列表的四分体数量约为 $1300$。因此,对每棵树遍历所有四分体的算法将需要超过 $10^{16}$ 步,这在当代合理的机器上是不可行的任务。

2.4 树的生根

系统发育重建的目标是构建一棵最能代表进化过程的树,为了理解事件发生的先后顺序,树应该生根。但基于四分体的重建输入是无根的四分体列表,因此需要一些辅助信息来生根树。这个辅助信息是 $n$ 个分类单元中的外群标识。外群是一个不属于其他分类单元同一类别的外部分类单元。如果外群的识别正确,那么该分类单元是最早从其余分类单元中分化出来的。首先根据优化标准生成一棵无根树,然后通过强制外群成为根的直接后代来生根树。

3. 算法介绍

已发表的四分体方法包括 Buneman 树、短四分体方法、邻接法变体和四分体拼图法等。下面详细介绍三种方法:四分体拼图法、几何启发式方法和精确算法。

3.1 四分体拼图法

四分体拼图法采用一种简单的贪心过程(称为“拼图步骤”)将四分体组合成二叉树。为避免陷入局部陷阱,该拼图步骤会多次重复,每次重复时随机排列分类单元的顺序。最后,通过“多数共识”将多个结果树组合成一棵树(可能是多叉树)。

贪心过程的具体步骤如下:
1. 假设分类单元的随机顺序为 $a, b, c, d, e, f, \cdots$,$a, b, c, d$ 的四分体拓扑结构作为树的“锚点”。
2. 为锚点的五条边分别关联一个计数器,并将所有计数器初始化为 0。
3. 检查下一个分类单元 $e$,它应通过从现有边分支的方式添加到当前树中。
4. 假设 $i|j|k|e$ 是输入中的一个四分体,且 $i, j$ 和 $k$ 在随机顺序中先于 $e$,则这三个分类单元已作为叶子出现在当前树中。考虑树中 $i - j$、$i - k$ 和 $j - k$ 三条路径相交的内部节点 $O$,删除 $O$ 会将树分成三个不相交的子树。为不违反 $i|j|k|e$ 四分体,$e$ 应从包含 $k$ 的子树中的某条边分支。从“$i$ 子树”或“$j$ 子树”的边分支会违反该四分体,此时将这两个子树中每条边的计数器加 1。
5. 对涉及 $e$ 的其他此类四分体重复上述过程。
6. 当前步骤结束时,当前树中每条边的计数器包含一个非负整数,表示如果 $e$ 从该边分支将违反的涉及 $e$ 的四分体数量。选择计数器值最小的边(如果有多个这样的边,则随机选择一个)。
7. 将 $e$ 添加到树中后,$e$ 相对于先前分类单元的位置不再改变。然后将所有计数器归零,检查下一个分类单元 $f$。
8. 重复此贪心过程,直到所有 $n$ 个分类单元都被检查并放置。

拼图步骤和多数共识都非常高效,因此四分体拼图法是一种快速的启发式方法,有良好的报告结果。原始的四分体拼图算法需要所有 $\binom{n}{4}$ 个四分体的非加权输入,但如果通过违反四分体的权重更新违反边的计数器,也可以处理加权输入。

3.2 几何启发式方法

几何启发式方法是一种“全局”方法,将每个分类单元分配到 $\mathbb{R}^n$ 中单位球边界上的一个点。嵌入过程利用输入集的“提示”构建,例如,如果列表中有四分体 $ab|cd$,则尝试将 $a$ 和 $b$ 放置得彼此靠近,而 $a$ 和 $d$ 放置得较远。一旦点嵌入到 $\mathbb{R}^n$ 中,使用聚类启发式方法将嵌入转换为树。

  • 半定规划(SDP) :SDP 在组合优化和许多近似算法中起着重要作用。可以使用 SDP 高效地解决(具有任意所需精度)以下形式的优化问题:
    [
    \begin{align }
    &\text{Find } n \text{ vectors } v_1, \cdots, v_n \in \mathbb{R}^n \text{ so as to maximize the quantity } \sum_{i,j} c_{ij} \langle v_i, v_j \rangle\
    &\text{subject to the constraints } \sum_{i,j} a_{ij}^{(k)} \langle v_i, v_j \rangle \leq b^{(k)}
    \end{align
    }
    ]
    其中 $c_{ij}, a_{ij}^{(k)}, b^{(k)}$ 是实数。将使用这种 SDP 形式来找到表示 $n$ 个分类单元的 $n$ 个点的嵌入。

  • 分类单元的几何嵌入 :给定 $k$ 个四分体 $a_j|b_j|c_j|d_j$ 和置信度值 $C_j$($j = 1, \cdots, k$),求解以下半定规划问题:
    [
    \begin{align }
    &\text{maximize: } \sum_{1 \leq j \leq k} C_j (\langle a_j, b_j \rangle + \langle c_j, d_j \rangle) - 0.5 \sum_{1 \leq j \leq k} C_j (\langle a_j, c_j \rangle + \langle a_j, d_j \rangle + \langle b_j, c_j \rangle + \langle b_j, d_j \rangle)\
    &\text{subject to } \langle v_i, v_i \rangle = 1 \quad (1 \leq i \leq n)
    \end{align
    }
    ]
    $n$ 个约束条件将点 $v_i$ 强制到单位球的边界上。四分体的输入被纳入目标函数,该函数将许多局部要求合并为一个表达式。通过实验发现,忽略目标函数中置信度较低的四分体以及施加额外约束可以改善最终结果。

  • 几何聚类 :解决 SDP 问题后,使用简单的聚类启发式方法找到反映几何数据的树。具体步骤如下:
    1. 初始化程序,将 $n$ 个点分别作为 $n$ 个簇。
    2. 算法保持每个簇都关联一个 $\mathbb{R}^n$ 中的点。
    3. 在算法的每一步,通过移除两个“旧”簇并添加一个新簇来减少簇的数量。新添加的节点表示输出树中两个删除节点的父节点。
    4. 通过计算与簇关联的点之间的成对距离,选择欧几里得距离最短的一对簇进行合并。
    5. 新簇关联的点是移除簇的点的质心(点的“质量”为其代表的分类单元数量)。
    6. 当簇的数量达到 1 时,树构建完成。

得到的树是有根的,但由于输入本质上是无根的,因此忽略生根。使用外群分类单元的标识来生根树。这种聚类启发式方法是一般邻接法的一个特例。

下面是四分体拼图法和几何启发式方法的流程对比表格:
| 方法 | 核心步骤 | 特点 |
| ---- | ---- | ---- |
| 四分体拼图法 | 贪心组合四分体,多次重复并随机排列顺序,多数共识合并结果树 | 快速启发式,可处理加权输入 |
| 几何启发式方法 | 半定规划嵌入点,几何聚类构建树 | 全局方法,可处理加权输入 |

以下是四分体拼图法的 mermaid 流程图:

graph LR
    A[初始化分类单元顺序] --> B[确定锚点四分体]
    B --> C[初始化边计数器]
    C --> D[检查下一个分类单元]
    D --> E{是否有相关四分体}
    E -- 是 --> F[计算违反情况并更新计数器]
    E -- 否 --> D
    F --> G[选择计数器最小的边添加分类单元]
    G --> H[归零计数器]
    H --> I{所有分类单元检查完?}
    I -- 否 --> D
    I -- 是 --> J[多数共识合并结果树]
3.3 精确算法

由于底层问题是 NP 难的,无法期望用多项式时间算法来最优地解决它。不过,可以使用动态规划算法,以“温和”的指数运行时间找到最优的系统发育树,该方法适用于规模适中的实例(例如 $n \leq 21$)。

  • 相关定义

    • 对于有根二叉树中的节点 $v$,其左右子节点分别记为 $v_l$ 和 $v_r$。以节点 $v$ 为根的子树记为 $T(v)$,树 $T$ 的叶子集合记为 $L(T)$。对于一对节点 $u$ 和 $v$,它们的最近共同祖先 $lca(u, v)$ 定义为既是 $u$ 又是 $v$ 的祖先,且在 $T(p)$ 中除 $p$ 外没有其他节点是 $u$ 和 $v$ 的共同祖先的节点 $p$。
    • 给定四分体 $q = ab|cd$ 和树 $T$,四分体 $q$ 的最近共同祖先 $qlca(q)$ 定义为满足以下条件的节点 $p$:
      • 定义 2:$p$ 是 ${a, b, c, d}$ 中两对或更多对元素的 $lca$,且在 $T(p)$ 中除 $p$ 外没有其他节点是 ${a, b, c, d}$ 中两对或更多对元素的 $lca$。
      • 定义 3:满足 $|L(T(p)) \cap {a, b, c, d}| \geq 3$,且对于 $p$ 的任何子节点 $s$,$|L(T(s)) \cap {a, b, c, d}| \leq 2$。

    可以证明每个四分体 $q$ 都有唯一的 $qlca(q)$。并且,以 $qlca(q)$ 为根的子树决定了四分体 $q$ 在树 $T$ 中是否被满足。

  • 算法原理

    • 设 $Q$ 是固定的输入四分体集合。对于有根树 $T$ 和其中的节点 $v$,$SAT_Q(T(v))$ 表示 $Q$ 中被 $T$ 满足且 $qlca(q)$ 是 $T(v)$ 中节点的四分体集合,$TOP_Q(T(v))$ 是 $Q$ 中以 $v$ 为 $qlca$ 且被 $T$ 满足的四分体集合。有等式 $SAT_Q(T(v)) = TOP_Q(T(v)) \cup SAT_Q(T(v_l)) \cup SAT_Q(T(v_r))$。
    • 对于四分体集合 $A \subseteq Q$,$sum(A) = \sum_{q \in A} C_q$ 表示其权重之和。子树 $T(v)$ 的得分定义为 $score_Q(T(v)) = sum(SAT_Q(T(v)))$,则有 $score_Q(T(v)) = sum(TOP_Q(T(v))) + score_Q(T(v_l)) + score_Q(T(v_r))$。
    • 设 $S$ 是三个或更多分类单元的集合,$opt\ score_Q(S)$ 表示所有以 $S$ 为叶子集合的树中相对于 $Q$ 的最大得分,$opt\ tree_Q(S)$ 是达到最大得分的树。对于 $S$ 的每个真划分 $S_1$ 和 $S_2$,$T(S_1, S_2)$ 表示一棵以 $S_1$ 和 $S_2$ 为子树的树。
  • 算法步骤

    1. 对于大小为 1 或 2 的集合 $S$,定义 $opt\ score_Q(S) = 0$。
    2. 对于所有可能的分类单元集合 $S$ 及其划分 $S_1$ 和 $S_2$,计算 $score_Q(T(S_1, S_2))$。
    3. 对于每个集合 $S$,选择得分最大的划分 $S_1$ 和 $S_2$,更新 $opt\ score_Q(S)$ 和 $opt\ tree_Q(S)$。

以下是精确算法的 mermaid 流程图:

graph LR
    A[初始化集合得分] --> B[遍历所有集合 S]
    B --> C[遍历 S 的所有划分 S1 和 S2]
    C --> D[计算 score_Q(T(S1, S2))]
    D --> E{是否为最大得分?}
    E -- 是 --> F[更新 opt_score_Q(S) 和 opt_tree_Q(S)]
    E -- 否 --> C
    C --> G{所有划分遍历完?}
    G -- 否 --> C
    G -- 是 --> B
    B --> H{所有集合遍历完?}
    H -- 否 --> B
    H -- 是 --> I[输出最优树]

总结

综上所述,基于四分体的系统发育树重建方法在生物进化研究中具有重要意义。不同的算法有各自的特点和适用场景:
- 四分体拼图法:简单快速,通过贪心策略和多次重复避免局部陷阱,可处理加权输入,适用于大规模数据的初步分析。
- 几何启发式方法:全局方法,利用半定规划和几何聚类,能有效处理加权四分体,对数据的整体结构把握较好。
- 精确算法:虽然是指数时间算法,但对于规模适中的问题能找到最优解,适用于对结果精度要求较高的情况。

在实际应用中,需要根据数据规模、精度要求和计算资源等因素选择合适的算法。同时,随着生物数据的不断积累和计算技术的发展,未来可能会有更高效、更准确的算法出现。

下面是三种算法的特点总结表格:
| 算法 | 复杂度 | 特点 | 适用场景 |
| ---- | ---- | ---- | ---- |
| 四分体拼图法 | 相对较低 | 贪心组合,多次重复,可处理加权输入 | 大规模数据初步分析 |
| 几何启发式方法 | 适中 | 全局方法,半定规划和几何聚类 | 数据整体结构分析 |
| 精确算法 | 指数级 | 动态规划找最优解 | 小规模高精度问题 |

希望通过本文的介绍,能帮助读者更好地理解基于四分体的系统发育树重建方法及其相关算法。在实际研究中,不断探索和尝试不同的算法,以获得更准确的系统发育树,为生物进化研究提供有力支持。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究改进中。
标题中的"EthernetIP-master.zip"压缩文档涉及工业自动化领域的以太网通信协议EtherNet/IP。该协议由罗克韦尔自动化公司基于TCP/IP技术架构开发,已广泛应用于ControlLogix系列控制设备。该压缩包内可能封装了协议实现代码、技术文档或测试工具等核心组件。 根据描述信息判断,该资源主要用于验证EtherNet/IP通信功能,可能包含测试用例、参数配置模板及故障诊断方案。标签系统通过多种拼写形式强化了协议主题标识,其中"swimo6q"字段需结合具应用场景才能准确定义其技术含义。 从文件结构分析,该压缩包采用主分支命名规范,符合开源项目管理的基本特征。解压后预期可获取以下技术资料: 1. 项目说明文档:阐述开发目标、环境配置要求及授权条款 2. 核心算法源码:采用工业级编程语言实现的通信协议栈 3. 参数配置文件:预设网络地址、通信端口等连接参数 4. 自动化测试套件:包含协议一致性验证和性能基准测试 5. 技术参考手册:详细说明API接口规范集成方法 6. 应用示范程序:展示设备数据交换的标准流程 7. 工程构建脚本:支持跨平台编译和部署流程 8. 法律声明文件:明确知识产权归属及使用限制 该测试平台可用于构建协议仿真环境,验证工业控制器现场设备间的数据交互可靠性。在正式部署前开展此类测试,能够有效识别系统兼容性问题,提升工程实施质量。建议用户在解压文件后优先查阅许可协议,严格遵循技术文档的操作指引,同时需具备EtherNet/IP协议栈的基础知识以深入理解通信机制。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值