R ape包中的子树() - 如何在子树中标记内部节点?

时间:2016-06-05 02:57:15

标签: r labels ape-phylo

我正在使用R中的ape包。我想要一个subtree树中每个可能phylogenetic的列表。我想要遍历子树列表并获得每个子树的根。我的问题是,是否为每个子树列出了第一个内部节点,即该子树的根?

一个例子可能会更好地说明我的问题。我创建了一个包含12个提示的随机树,然后提取子树。我已经复制了子树1的输出。然后,R为每个子树列出了一些内容,包括Node labels: 13, 14, ...。节点标签(在本例中为节点13)中列出的第一个节点是否始终是子树的根?

phy = rtree(12)

st = subtrees(phy)

>st[[1]]

> st

[[1]]

Phylogenetic tree with 12 tips and 11 internal nodes.

Tip labels:
    t12, t2, t10, t1, t9, t4, ...

Node labels:
    13, 14, 15, 16, 17, 18, ...

Rooted; includes branch lengths.

1 个答案:

答案 0 :(得分:1)

情况似乎如此。要进行验证,可以通过将树转换为data.tree结构来可视化树:

library(data.tree)
tr <- as.Node(phy)
print(tr)

这将显示为:

                        levelName
1  13                            
2   ¦--t7                        
3   °--14                        
4       ¦--15                    
5       ¦   ¦--t5                
6       ¦   °--t6                
7       °--16                    
8           ¦--17                
9           ¦   ¦--18            
10          ¦   ¦   ¦--19        
11          ¦   ¦   ¦   ¦--20    
12          ¦   ¦   ¦   ¦   ¦--t2
13          ¦   ¦   ¦   ¦   °--t9
14          ¦   ¦   ¦   °--t12   
15          ¦   ¦   °--t4        
16          ¦   °--21            
17          ¦       ¦--22        
18          ¦       ¦   ¦--t3    
19          ¦       ¦   °--t1    
20          ¦       °--23        
21          ¦           ¦--t10   
22          ¦           °--t11   
23          °--t8