最近在学习 Bioinformatics with python cookbook 这本书第六章 Phylogenetics 的内容,了解到python中与系统发育相关的两个模块 Dendropy和 ete3 (A Python framework for the analysis and visualization of trees),浏览ete3的文档的时候发现了很多非常漂亮的图片,第一感觉是和R语言里的ggtree功能很相似,所以觉得还是有必要学习一下。以下内容记录自己重复ete3文档中漂亮图片的过程。(题外话:个人感觉python绘图系统的默认配色比R语言的配色漂亮一点)
第一步 安装
自己 windows 的电脑按住了Anaconda3,直接在DOS命令行下使用easy_install即可安装相应的python模块.(正常应该使用pip install安装也是可以的,但是自己尝试的时候遇到了报错,没有搞清楚是什么原因)
easy_install ete3
第一个简单的小例子
读入树文件,查看,然后保存为pdf文件
from ete3 import Tree
t = Tree("../../Desktop/Malus.output.fasta.treefile")
t.show()
运行完 t.show() 会跳出来一个ETE Tree Browser
25.PNG
有点像figtree
未完待续......
更新
将读入的树文件写入到新文件中
from ete3 import Tree
t = Tree("(A:1,(B:1,(E:1,D:1)Internal_1:0.5)Internal_2:0.5)Root;")
t.write() #输出到屏幕
t.write(outfile="new_tree.nex") #写入到文件中
文档的内容有些枯燥,还是先从重复美图开始吧
t.show()函数运行后会跳出来ETE Tree Browser窗口,将树显示到桌面上
t.render()函数可以将树输出到图片里,可以生成png,pdf,svg格式
一个简单的小例子
from ete3 import Tree, TreeStyle
t = Tree()
t.render("mytree.png",w=183,units="mm")
mytree.png
第二个简单的小例子
from ete3 import Tree
from ete3 import TreeStyle
t = Tree()
t.populate(10)
ts.show_leaf_name = True
ts.mode = "c"
ts.arc_start = -180
ts.arc_span = 180
t.show(tree_style=ts)
t.render("tree.png",tree_style=ts)
tree.png
3、第三个简单的小例子
from ete3 import Tree
t = Tree("((((a1,a2),a3), ((b1,b2),(b3,b4))), ((c1,c2),c3));")
t.render("46.png")
46.png
from ete3 import Tree
from ete3 import NodeStyle
t = Tree("((((a1,a2),a3), ((b1,b2),(b3,b4))), ((c1,c2),c3));")
n1 = t.get_common_ancestor("a1","a2","a3")
nst1 = NodeStyle()
nst1["bgcolor"] = "LightSteelBlue"
n1.set_style(nst1)
t.render("47.png")
47.png
from ete3 import Tree
from ete3 import NodeStyle
from ete3 import AttrFace
from ete3 import faces
from ete3 import TreeSty