biopython (python3) phylo, как работает функция расстояния? - PullRequest
0 голосов
/ 26 ноября 2018

Используя пакет 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?

Заранее спасибо.

...