Newick格式是进化树最为普遍的储存格式,很多生信工作者都和它打过交道【1】。如何准确、高效地处理Newick格式文件也是不少科研人员常遇到的难题。
为方便研究人员更好地对newick格式的文件进行操作,2010年,来自瑞士生物信息学研究所(Swiss Institute of Bioinformatics)的Thomas Junier 和Evgeny Zdobnov共同开发了一套名为Newick Utilities的Linux Shell环境下对newick格式树文件的处理和编辑工具【2】。其操作简单,功能强大,容易上手。今天我们为大家简单介绍一下其使用方法。
下载地址为:https://github.com/tjunier/newick_utils
或http://cegg.unige.ch/newick_utils
目前最新版本为version 1.6
让我们从TreeBase里选择一棵简单而大家又较为熟悉的进化树作为例子。在搜索栏键入mammals。只有一个输出结果,但这棵只有8种哺乳动物进化树作为示例正好合适,就选它了。
该树的TreeID为Tr87201,来自2015年发表于BMC Genomics的一篇关于野山羊基因组测序的文章的Fig. S9,由昆明动物所、西北农林、伊朗农业技术研究所等单位的科学家合作完成【3】。
下载下来,得到一个叫做TB1551581540892.nex的文件。这个树的格式是Nexus格式,我们需要把它转化成Newick格式。最简单的方法是打开文件,在第21行可以看到Newick格式的树,我们粘贴到一个新的文件里,起名为mammals.nwk。
0. 先看下原文
按照TreeBase的信息,该树来自【2】的Fig S9,。我们首先在原文Fig S9中看一看这棵树大概是什么样子(后面的卡通图案帮助大家辨识拉丁文学名所加):
可以看到,共八个物种,由上到下依次为Homo Sapies(人),Canis(犬),Equus(马),Bos(牛),Capra hircus(家山羊),Capra aegagrus(野山羊),Ovis(绵羊),Sus scrofa(野猪)。
下面为大家介绍一下Newick Utilities的主要功能。
1. 可视化树(nw_display)
终端直接画出树图
nw_display mammals.nwk
注意,这棵树没有在其他的进化树中常会见到的bootstrap value(自展值),而在bootstrap的位置显示的是分化时间。比如,最基部的位置,92.5-115.2表明(树的作者认为)这八个物种的共同祖先大概起源的时间为92.5-115.2(单位应该是百万年,或者说9250万年到1.152亿年)。
2. 统计基本情况(nw_stats)
nw_stats mammals.nwk
3. 重新定根(nw_reroot)
比如,我们想把家山羊和野山羊的祖先位置定位进化树的根:
nw_reroot mammals.nwk Capra_hircus Capra_aegagrus
如果我们想可视化地看下tree的根有无变化,可以用前面刚刚说的命令nw_display,串起来的命令如下:
nw_reroot mammals.nwk Capra_hircus Capra_aegagrus | nw_display -
这里,最后的代表标准输入的横杠不可省略哦。
4. 提取子树(nw_clade)
只想要家山羊和野山羊的clade:
nw_clade mammals.nwk Capra_hircus Capra_aegagrus
5. 裁剪树(nw_prune)
如果我们想生成一棵没有人、家山羊及野山羊、但同时保持其他哺乳动物且枝长和拓扑结构都维持不变的树:
nw_prune mammals.nwk Homo_sapiens Capra_hircus Capra_aegagrus
如果恰恰相反,希望把除上述三种动物外的动物们都prune掉,加一个-v在前头即可:
nw_prune -v mammals.nwk Homo_sapiens Capra_hircus Capra_aegagrus
当然,也可以把想处理的物种名单列在一个文件里(命名为list),作为-f的参数递给nw_prune:
nw_prune mammals.nwk -f list | nw_display -
6. 删除bootstrap或枝长信息(nw_topology)
6.1 保留bootstrap(这里为分化时间),不要枝长
nw_topology mammals.nwk
6.2 枝长和bootstrap(这里为分化时间)都不要(-I)
nw_topology -I mammals.nwk
6.3 要枝长不要bootstrap(这里为分化时间)(-bI)
nw_topology –bI mammals.nwk
7. 获得距离信息(nw_distance)
nw_distance mammals.nwk
在这个例子中,每一个物种到根节点的距离都是1.01424(因为本文的例子中树的枝长代表分化时间,从这八种动物的共同祖先到现在它们经历的进化时间显然是一样的)
想看的更清楚一些,可以用-n参数
nw_distance -n mammals.nwk
如果想了解每一个节点到其父节点的距离:
nw_distance -n -m p -s a mammals.nwk
参数解释:
-m p代表父节点(mode)
-s a是选择所有节点(select all),也就是说对每一个节点都去计算其到父节点的枝长
如果想实现matrix形式输出,可以加上-t参数
8. 重新排序(nw_order)
按字母顺序(-c a)
nw_order -c a mammals.nwk
按分支位置(看一下nw_display的结果就明白了,尽可能地把descendants的clade甩到树的靠下的位置)
w_order -c n mammals.nwk | nw_display -
9. 重命名(nw_rename)
对物种按照新的规则命名,我们可以选择软件自带的HRV数据集(在data文件夹下可以找到)
nw_rename data/HRV_numeric data/HRV.map
10. Newick Utilities还有很多功能和参数没有介绍,感兴趣的读者可以参考其使用手册。使用过程中也可以加-h参数对每一个命令的参数说明进行查询。
引文
1. 生信人Newick的前世今生. 2018
2. Thomas Junier and Evgeny M. Zdobnov. The Newick Utilities: High-throughput Phylogenetic tree Processing in the UNIX Shell. Bioinformatics. 2010
3. Dong Y, Zhang X, Xie M, Arefnezhad B, Wang Z, Wang W, et al. Reference genome of wild goat (capra aegagrus) and sequencing of goat breeds provide insight into genic basis of goat domestication. BMC Genomics. 2015;16: 431. pmid:26044654
更多生信分析需求,请联系电话(同微信号):13120220117