skbio.tree.TreeNode.compare_tip_distances

TreeNode.compare_tip_distances(other, sample=None, dist_f=<function distance_from_r>, shuffle_f=<built-in method shuffle of numpy.random.mtrand.RandomState object>)[源代码]

使用端到端距离矩阵将自身与其他人进行比较。

状态:从0.4.0开始实验。

返回的值为 dist_f(m1, m2) 对于两个矩阵。默认情况下使用皮尔逊相关系数,+1表示距离为0,-1表示距离为+1(最大可能值)。根据应用程序的不同,您可能希望使用distance_from_r_squared,它将+1和-1的相关性计算为相同的(0距离)。

注意:自动去除不匹配的名称(对于这个方法来说这是必要的,因为不匹配的名称和匹配的名称之间的距离在不匹配的树中是未定义的,而且我们需要重新排序两个树中的名称以匹配距离矩阵)。

参数:
  • other (TreeNode) -- 要比较的树

  • sample (int or None) -- 随机地对树之间的共同点进行抽样比较。这在比较非常大的树时非常有用。

  • dist_f (function) -- 用于比较两个尖端距离矩阵的距离函数

  • shuffle_f (function) -- 如果 sample 不是没有

返回:

树木之间的距离

返回类型:

float

抛出:

ValueError -- 如果树之间不存在公共提示,则引发ValueError

示例

>>> from skbio import TreeNode
>>> # note, only three common taxa between the trees
>>> tree1 = TreeNode.read(["((a:1,b:1):2,(c:0.5,X:0.7):3);"])
>>> tree2 = TreeNode.read(["(((a:1,b:1,Y:1):2,c:3):1,Z:4);"])
>>> dist = tree1.compare_tip_distances(tree2)
>>> print("%.9f" % dist)
0.000133446