我有一个Newick格式的层次树,例如:
(A:0.556705,(B:0.251059,C:0.251059):0.305646):0.556705;
括号表示树拓扑(分支结构/分组),数字表示分支长度(距离),例如:
我需要折叠到末端(终端节点/尖端/叶)的平均距离小于给定值x的clades(子树),这样输入和折叠的输出都是Newick格式的。例如,如果x是0.29,那么上面的B和C分解成BC,我们得到如下结果:
^{pr2}$
对于任何Newick树(例如Python),有没有一种简单的方法可以通过编程实现这种折叠?在
Tags:
这里可能有一个更健壮的解析器,它将使用所有的示例here。
这个快速而肮脏的代码片段似乎可以在您的最小树上运行,但是我需要更多的示例数据来用更复杂的树来检查它:
未折叠的树是:
^{pr2}$3的倒塌树是:
1.0版本的折叠树是:
0.1折叠的树是:
^{pr2}$这里是代码的另一个更简洁的版本(它产生了nerwick符号输出):
NOTA BENE:输入树必须用括号括起来。在
输出为(修改输入):
相关问题 更多 >
编程相关推荐