Используя пакет Phylo в Python3, я пытаюсь вычислить расстояния между двумя конечными узлами (листьями) соседнего дерева.Для этого в пакете реализована функция расстояния.Однако функция расстояния дает мне результат, отличный от того, что есть в моем файле 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, а не 0.3, как описано в формате newick.
Я пытался посмотреть исходный код: 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 вместо0.3, как описано в формате newick?
Заранее спасибо.