前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Newick: tree文件格式简介

Newick: tree文件格式简介

作者头像
生信修炼手册
发布2020-05-08 16:37:21
发布2020-05-08 16:37:21
8K00
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:0
代码可运行

欢迎关注”生信修炼手册”!

Newick 是最常见的进化树文件格式,了解这种格式之前,有必要先掌握树状结构的构成。首先来看一个tree的示例

对于一棵树而言,其节点可以分成三类

  1. root node
  2. internal nodes
  3. leaf nodes

在上述示例中,一共有A-F共6个节点。其中A-D, 通常称之为叶子节点leaf nodes, 叶子节点往下在没有其他的节点了; E称之为内部节点internal nodes,往下还有其他的节点;F称之为根节点root node, 是整个树中所有节点的公共祖先。

所有节点之间存在了层级关系,A,B,E这3个节点直接和根节点F相连,是树状结构中的第一层,CDE相连,是树状结构中的第二层。位于同一层级的节点,互称为同胞节点sliding nodes; 层级关系中位于上一层的节点,称之为父节点parent node,比如E就是CD的父节点; 类似的,CD称为E的子节点child node

树状结构中,除了节点外,还包括了分支 branch, 分支长度是非常重要的属性。比对从根节点F到叶子节点A的分支长度为0.1, 到叶子节点B的长度为0.2。

当我们表示一个树状结构时,本质上是表示节点和分支的信息。对于newick这种格式,采用圆括号将同胞节点括起来,多个节点之间用逗号相连,比如A和B表示为

代码语言:javascript
代码运行次数:0
运行
复制
(A,B)

对于父节点,直接写在子节点圆括号的外面,比如C,D, E 表示为

代码语言:javascript
代码运行次数:0
运行
复制
(C,D)E

通过圆括号的嵌套区分不同层级,然后就可以表示出一个完整的树,上述的tree表示为

代码语言:javascript
代码运行次数:0
运行
复制
(A,B, (C,D)E)F

上述的表示方式缺少了分支的信息,对于分支的信息,将其当做节点的属性来表示,和节点的名称之间用冒号:分割,比如A:0.1。当加上分支信息后,上面的tree表示为

代码语言:javascript
代码运行次数:0
运行
复制
(A:0.1,B:0.2,(C:0.3, D:0.4)E:0.5)F

这种表示方式涵盖了tree文件中所有的信息,但是在实际使用中,我们通常更关注叶子节点,内部结点只是用来呈现tree的层级结构,其名称并不是很重要。同时根节点也可以忽略不显示,所以上述tree可以表示为

代码语言:javascript
代码运行次数:0
运行
复制
(A:0.1,B:0.2,(C:0.3, D:0.4):0.5)

·end·

—如果喜欢,快分享给你的朋友们吧—

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档