子树()在RapePackage-内部节点是如何在子树中标记的?

jhkqcmku  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在R中使用ape包。我想要一个phylogenetic树中所有可能的subtree的列表。然后我想遍历子树列表并得到每个子树的根。我的问题是,每个子树列出的第一个内部节点是该子树的根吗?
举个例子可以更好地说明我的问题。我创建了一个有12个tips的随机树,然后提取子树。我复制了子树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.
f87krz0w

f87krz0w1#

看起来是这样的。为了验证,你可以通过将树转换成一个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

相关问题