重新排序 newick 树,使特定的两个样本最接近

问题描述 投票:0回答:1

我有纽维克树

((a:1, b:1):1, (c:1, d:1):1):1;

我希望特定的两个样本(a或b或c或d)彼此尽可能接近

(当然不破坏树的血统)

例如,如果我选择b和d

结果将是

((a:1, b:1):1, (d:1, c:1):1):1;

它必须适用于更复杂的样本,例如

((a:1, b:1):1, ((c:1, d:1):1, (e:1, f:1, g:1):1):1):1;

如果我选择b和f,结果一定是

((a:1, b:1):1, ((f:1, g:1, e:1):1, (c:1, d:1):1):1):1;

g、e、c、d 的顺序并不重要

tree hierarchy phylogeny
1个回答
0
投票

rotateConstr

包中的
ape
函数通过一些工作模仿了预期的行为。理论上,它应该将提示彼此靠近放置,并限制提示标签的部分列表:

tr2 <- rotateConstr(tr, constraint = c("b", "f"))
在实践中,该函数在有序提示标签的完整列表上表现最佳。

tr3 <- rotateConstr(tr, constraint = c("a", "b", "f", "e", "g", "c", "d"))
    
© www.soinside.com 2019 - 2024. All rights reserved.