biopython(python3)phylo,距离函数如何工作?

时间:2018-11-26 16:47:08

标签: biopython

我使用Python3中的Phylo包,试图计算相邻树的两个终端节点(叶)之间的距离。为此,程序包实现了距离功能。但是,距离函数给我的结果与newick文件中的结果不同(差异很小,但在我的工作中非常重要)。这是我的代码:

#Libraries  

import os
from Bio import Phylo
from io import StringIO

# Tree
handleD = StringIO("((E:0.2,D:0.1,C:0.1,B:0.3)2:0.3,A:0.5)1;")
treeD = Phylo.read(handleD,"newick")

# Distance
treeD.distance("E","D")

距离返回0.30000000000000004,而不是newick格式中描述的0.3。

我试图查看源代码:http://biopython.org/DIST/docs/api/Bio.Phylo.BaseTree.TreeMixin-class.html#distance 导致该功能:http://biopython.org/DIST/docs/api/Bio.Nexus.Trees-pysrc.html#Tree.sum_branchlength 但这并不能解释为什么值存在差异。

您是否得到了解释,为什么该函数返回0.30000000000000004而不是newick格式中描述的0.3?

谢谢。

0 个答案:

没有答案