我正在努力从孩子名单中创建一个新树。我有一个列表列表,其中列表名称是父名称,列表元素是子项。这是一个例子:
$`825`
[1] 824
$`824`
[1] 823
$`823`
[1] 822
$`822`
[1] 821
$`821`
[1] 820 777
$`820`
[1] 819 816 789 787 785 783
$`789`
[1] 788
$`787`
[1] 786
$`785`
[1] 784
$`783`
[1] 782
$`777`
[1] 776
因此我想要的输出是newick格式的phylo树,如下所示:
825(824(823(822(821(820(819,816,789(788),787,785(784),783(782)),777(776)))))
最好的方法是什么?一种方法是编写一个递归函数,该函数以第一顺序遍历并创建树。但是在R递归中已知很糟糕。
感谢。
答案 0 :(得分:1)
如果您正在寻找预先固定的解决方案,我相信bioconductor / ape库有一个列表 - > newick转换器
http://www.r-phylo.org/wiki/HowTo/InputtingTrees
否则,我不久前写了一些代码,为邻居加入算法做了这个;它非常简洁(写在一个紧迫的截止日期),但也许会有所帮助。
https://github.com/rgrannell1/NJ/blob/master/main.R
希望有所帮助