欢迎关注”生信修炼手册”!
Newick 是最常见的进化树文件格式,了解这种格式之前,有必要先掌握树状结构的构成。首先来看一个tree的示例
对于一棵树而言,其节点可以分成三类
root node
internal nodes
leaf nodes
在上述示例中,一共有A-F共6个节点。其中A-D, 通常称之为叶子节点leaf nodes
, 叶子节点往下在没有其他的节点了; E称之为内部节点internal nodes
,往下还有其他的节点;F
称之为根节点root node
, 是整个树中所有节点的公共祖先。
所有节点之间存在了层级关系,A
,B
,E
这3个节点直接和根节点F
相连,是树状结构中的第一层,C
和D
和E
相连,是树状结构中的第二层。位于同一层级的节点,互称为同胞节点sliding nodes
; 层级关系中位于上一层的节点,称之为父节点parent node
,比如E
就是C
和D
的父节点; 类似的,C
和D
称为E
的子节点child node
。
树状结构中,除了节点外,还包括了分支 branch, 分支长度是非常重要的属性。比对从根节点F
到叶子节点A
的分支长度为0.1, 到叶子节点B
的长度为0.2。
当我们表示一个树状结构时,本质上是表示节点和分支的信息。对于newick
这种格式,采用圆括号将同胞节点括起来,多个节点之间用逗号相连,比如A和B表示为
(A,B)
对于父节点,直接写在子节点圆括号的外面,比如C,D, E 表示为
(C,D)E
通过圆括号的嵌套区分不同层级,然后就可以表示出一个完整的树,上述的tree表示为
(A,B, (C,D)E)F
上述的表示方式缺少了分支的信息,对于分支的信息,将其当做节点的属性来表示,和节点的名称之间用冒号:
分割,比如A:0.1
。当加上分支信息后,上面的tree表示为
(A:0.1,B:0.2,(C:0.3, D:0.4)E:0.5)F
这种表示方式涵盖了tree文件中所有的信息,但是在实际使用中,我们通常更关注叶子节点,内部结点只是用来呈现tree的层级结构,其名称并不是很重要。同时根节点也可以忽略不显示,所以上述tree可以表示为
(A:0.1,B:0.2,(C:0.3, D:0.4):0.5)
·end·
—如果喜欢,快分享给你的朋友们吧—
扫描关注微信号,更多精彩内容等着你!