Footsteps on my way !
perl/linux/测序分析

物种树构建(species tree build)

物种树是展示各物种进化关系的遗传发育树,phd(Plant Homolog Database)的物种树信息来源于NCBI的ncbi_taxonomy.xml。名为:species_tree_rio.Plants_complete.xml,下面是具体制作过程。

Demo地址: http://pan.baidu.com/s/1c011YgC 密码: xjrj

使用支持phyloxml格式的遗传发育树可视化软件打开ncbi_taxonomy.xml,找到你想添加的物种在这里我以Oryza punctata为例。

a.  打开Archaeopteryx (我这里用的可视化软件是Archaeopteryx)java -Xmx2048m -cp forester_1036.jar org.forester.archaeopteryx.Archaeopteryx

b. 找到Oryza punctata,并记住他的分类信息:这里是  ……->Oryzeae(科)->Oryza(属)->Oryza punctata(种)(如图1),所以我们把这个物种添加到species_tree_rio.Plants_complete.xml的对应的Oryza属的下面(如图2)即可,另外,如果species_tree_rio.Plants_complete.xml没有对应的科,属,种信息,我们就得自己找到共同的上一级,一级一级往下填,直至有完善的界门岗目科属种信息。添加的物种信息如code,scientific name等能在specieslist.txt 中找到。

图1图2

 

 

 

 

 

 

由于在进行GSDI预测的时候需要二叉树,目前没有找到程序自动将phyloxml 格式的树文件改成二叉树,所以也只能手动修改。下面是手动修改流程:

1. 多叉树转二叉树原理(远离有很多种,我这里只介绍我所用的方法),我用的方法原理就是通过增加额外节点,迫使多叉树显示成二叉树,原理图如下:

多叉树: 多叉树祖先节点A下有 G,F,E,D,C,B这6个子节点

+—G
|
+—F
|
+—E
|
A
|
+—D
|
+—C
|
+—B

二叉树:通过增加额外子节点得到的二叉树如下,额外子节点用X表示

              +—X
               |
        +—X
        |      |
        |      +—X
        |
+—X
|      |
|      |     +—G
|      |     | 
|     +—X
|            |
|           +—F
A
|            +—E
|             |
|     +—X
|      |      |
|      |     +—D
|      |
+—X
       |
       |      +—C
       |       | 
       +—X
              |
              +—B

2. 手工多叉转二叉树

a: 检测物种树中为多叉的节点:species_tree_force_binary.pl,如下所示:

[shell][/shell]

yangls-Mac:yangl$ perl species_tree_force_binary.pl -species species_tree_rio.Plants_complete.xml
Brassicaceae
Oryza
Triticeae
Trebouxiophyceae

由结果可看出有Brassicaceae,Oryza,Triticeae, Ostreococcus,Trebouxiophyceae,这5个节点为多叉节点,我们可以根据上面所说的原理并结合phyloxml文件的特点进行多叉树到二叉树的转换。
b: 根据上面所说的原理并结合phyloxml文件的特点进行多叉树到二叉树的转换。由于原文件不便于演示,此处我举个例子:

多叉树二叉树
对应的可视化展示:
屏幕快照 2015-07-22 下午6.44.04 双叉树

尊重他人劳动成果,转载请注明出处:Bluesky's blog » 物种树构建(species tree build)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址