nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Interops.Visualize.Phylip / MaximumLikelihoodTree

MaximumLikelihoodTree

Full name SMRUCC.genomics.Interops.Visualize.Phylip.Evolution.MaximumLikelihood.MaximumLikelihoodTree Assembly SMRUCC.genomics.Interops.Visualize.Phylip Members 6

最大似然法(ML):给定带分支长度的树 T 与替换模型 M,计算观测数据 D 的条件概率 P(D|T, M),并选择使似然最大的树。

00 Remarks

实现要点:

  1. 以 NJ 树作为初始拓扑;
  2. 使用 计算对数似然;
  3. 对每条分支做一维(黄金分割)分支长度优化;
  4. 使用 NNI / SPR 拓扑算子做爬山式树搜索;
  5. 可选地优化离散 Gamma 的形状参数 α。

01 Syntax

SMRUCC.genomics.Interops.Visualize.Phylip.Evolution.MaximumLikelihood.MaximumLikelihoodTree

02 Methods

NameOverloadsSummary
Build 1 执行最大似然法建树。
SanitizeBranchLengths 1 保证树中所有内部节点的分支长度为一个正数,避免似然计算中出现退化的零长度分支。
OptimizeBranchLengths 1 逐条分支做一维分支长度优化,重复若干轮直至稳定。
OptimizeEdge 1 对单条分支的长度进行一维最大化(黄金分割搜索)。
OptimizeGammaShape 1 通过最大化对数似然估计离散 Gamma 的形状参数 α。
GoldenSection 1 黄金分割搜索(求一维函数的最大值)。

03 Members

method Build #
Build(CharacterMatrix, AminoAcidModel, Int32, Double, Double, PhyloNode, Int32, Boolean, Boolean, Int32, Int32)

执行最大似然法建树。

Parameters
NameTypeDescription
matrixCharacterMatrix

已比对的位点矩阵

modelAminoAcidModel

氨基酸替换模型(默认 LG)

rateCategoriesInt32

离散 Gamma 速率类别数目(默认为 4)

gammaShapeDouble

Gamma 形状参数 α(默认为 1,表示无速率异质性)

invariantProportionDouble

不变位点比例 I(默认 0)

initialPhyloNode

可选初始树;默认使用 NJ 树

maxIterationsInt32

拓扑搜索的最大迭代轮次(默认为 10)

useSprBoolean

是否在 NNI 无法改进时尝试 SPR 移动

optimizeShapeBoolean

是否对 Gamma 形状参数 α 进行最大似然估计

edgeOptimizationRoundsInt32

分支长度优化的轮次

seedInt32

随机种子(用于 SPR 采样)

method SanitizeBranchLengths #
SanitizeBranchLengths(PhyloNode, Double)

保证树中所有内部节点的分支长度为一个正数,避免似然计算中出现退化的零长度分支。

method OptimizeBranchLengths #
OptimizeBranchLengths(PhyloNode, FelsensteinPruning, Int32)

逐条分支做一维分支长度优化,重复若干轮直至稳定。

method OptimizeEdge #

对单条分支的长度进行一维最大化(黄金分割搜索)。

method OptimizeGammaShape #
OptimizeGammaShape(CharacterMatrix, SubstitutionModel, PhyloNode, Int32, Double, Double)

通过最大化对数似然估计离散 Gamma 的形状参数 α。

method GoldenSection #
GoldenSection(Func(Of Double, Double), Double, Double, Double, Int32)

黄金分割搜索(求一维函数的最大值)。