python 进化树_Python ete3有没有一种方法来扩展系统进化树的分支?
过了很长时间,我找到了一个解决办法:
据我所知,在PhylogenticPython库中没有内置函数来扩展树。这很奇怪,我希望我错了。在
然而,一旦你了解了它们的数据结构,就有了一种简单的方法:你只需要遍历树的所有边,然后将它们乘以所需的因子。这是不同的,这取决于您使用的库。
以下是两个示例,如何使用dendropy和ete3拉伸两倍大小的树:from ete3 import Tree
import dendropy as dp
original_tree = "(2azaa:0.1871453443,1dz0a:0.1944528747,(((1joi:0.1917345578,1nwpa:0.206793251):0.2050584423,"\
"(1jzga:0.3027313573,1rkra:0.2710518895):0.08148637118):0.06756061176,(1cuoa:0.2959705289,"\
"((1qhqa:0.585997308,1gy1a:2.509606787):0.1590837051,(1kdj:0.9427371887,"\
"((1iuz:0.1918780006,7pcy:0.2035503755):0.1750205426,((2plt:0.2727097306,(2b3ia:0.6259053315,"\
"(((1bawa:0.3036227494,1nin:0.5134587308):0.1375675558,((2raca:0.4617882857,1id2a:0.3274320042):0.7764884063,"\
"(1pmy:0.7017063073,(1bqk:0.2214168026,(1adwa:0.4171298259,1paz:0.4214910379):0.08599165577):0.2074622534):0.9354371144):0.4486761297)"\
":0.1105387947,(1m9wa:0.4551681561,1bxva:0.3931722476):0.06879588421):0.1131812572):0.4242876607):0.1447393581,"\
"(1plb:0.2176281022,(1byoa:0.2314554253,(9pcy:0.2456728049,(1ag6:0.1776514893,1plc:0.318467746):0.02728470893)"\
":0.07383541027):0.1260361833):0.2659408726):0.05013755844):0.2637791318):1.001560925):1.018869112):0.4609302267):0.1807238866);"
#dendropy test
print("These are the dendropy results:")
t1 = dp.Tree.get_from_string(original_tree,"newick")
t2 = dp.Tree.get_from_string(original_tree,"newick")
for edge in t2.levelorder_edge_iter():
if(edge.length == None):
continue
edge.length *=2
print(t1)
print(t2)
#ete3 test
print("These are the ete3 results:")
t3 = Tree(original_tree)
t4 = Tree(original_tree)
for node in t4.iter_descendants():
node.dist*=2
print(t3.write())
print(t4.write())
从这个例子中我们可以学到的另一个教训-在搜索内置函数之前,一定要对所使用的数据结构做功课。。。在
python 进化树_Python ete3有没有一种方法来扩展系统进化树的分支?相关推荐
- python 重载_python模块重载的五种方法
环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 bar.py 的内容非常简单,只写了个 print 语句 只要 bar.py 被导入一次,就被执行一次 print 禁止重复导入 ...
- python字符串百分号_Python字符串格式化的2种方法
本文介绍了Python字符串格式化,主要有两种方法,分享给大家,具体如下 用于字符串的拼接,性能更优. 字符串格式化有两种方式:百分号方式.format方式. 百分号方式比较老,而format方式是比 ...
- python 获取csv的列数_Python读取excel的两种方法
excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...
- python怎么复制字符串_python字符串复制的几种方法
>>> list1 = [1,2] >>> id(list1) 50081032 >>> list2 = list1.copy() >> ...
- bufferedreader读取中文乱码_Python读取excel的两种方法
excel是什么 Microsoft Excel是一个使用非常广泛的电子表格程序.它的用户友好性和吸引人的功能使其成为数据科学中常用的工具.对于excel来说,整个excel文件称为工作簿,工作簿中的 ...
- python csv库,Python 中导入csv数据的三种方法
Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...
- python打开文件不存在-Python判断文件是否存在的三种方法
原标题:Python判断文件是否存在的三种方法 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件 ...
- python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...
- python 命令-python解析命令行参数的三种方法详解
这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...
- python使用教程cmd啥意思-对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
最新文章
- 基于python和OpenCV构建智能停车系统
- 【手把手教你全文检索】Apache Lucene初探
- python字典属于无序序列_Python序列结构--字典
- WordPress添加背景音乐
- python爬虫学习:电商数据分析
- 實驗項目wordcount
- 半岛电视台员工遭iOS iMessage app零点击0day 漏洞利用攻击
- MOQL-复杂事件处理(CEP)
- Django表单系统
- 多源信息融合中的一些名词及知识点
- Excel:筛选后序号自动排序。
- 【刷题-每天一算法】赛马
- icloud与mysql_ICloud 应用实例(一)
- 软件设计师近10年上午真题解析知识点(并非绝对完整版)
- javascript使用小技巧
- Doctrine浅析
- ipad协议827版技术分析
- android 图片分析,Android ImageView圆形头像 图片完全解析
- Linux内核中断系统处理机制-详细分析
- Activiti7工作流介绍及使用
热门文章
- Koo叔说Shader—UV旋转
- ftp 服务器 性能,Xlight FTP服务器网络性能测试
- 如何修改github博客主题
- windows10更新服务器修改,Windows 10彻底关闭自动更新(Windows Update和Windows Update Medic Service)...
- dw中css制作导航,四点告诉你Dreamweaver中制作漂亮导航条的方法
- 重装系统——最纯净的windows10系统安装方法
- 饿了么Redis Cluster集群化演进
- Java Duration类和Period类
- raspberry(树莓派)的简介及实验
- 排序算法之python实现(上)