R:列表列表中的newick树

时间:2013-04-05 05:26:52

标签: r tree dataframe phylogeny

我正在努力从孩子名单中创建一个新树。我有一个列表列表,其中列表名称是父名称,列表元素是子项。这是一个例子:

$`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递归中已知很糟糕。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您正在寻找预先固定的解决方案,我相信bioconductor / ape库有一个列表 - > newick转换器

http://www.r-phylo.org/wiki/HowTo/InputtingTrees

否则,我不久前写了一些代码,为邻居加入算法做了这个;它非常简洁(写在一个紧迫的截止日期),但也许会有所帮助。

https://github.com/rgrannell1/NJ/blob/master/main.R

希望有所帮助