我使用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?
谢谢。