如何从 dendropy 中提取教父距离 phylogenetic_distance_matrix

How to extract patristic distances from dendropy phylogenetic_distance_matrix

我使用以下方法在 dendropy 中创建了一个共生距离矩阵:

from dendropy.simulate import treesim
tree = treesim.birth_death_tree(birth_rate=1.0, death_rate=0.5, ntax=10)
pdm = tree.phylogenetic_distance_matrix()

但是,在阅读了文档并尝试了很多东西后,我无法以可用的方式从对象中提取实际矩阵 "pdm"

注意有一个方法 as_data_table 这个 class 我也无法理解

as_data_table() returns dendropy.utility.container.DataTable 类型的对象。此 DataTable 是一个自定义容器 class,它实现了许多可用于获取数据的有用方法。你可以在这里阅读源代码来理解它:

https://dendropy.org/_modules/dendropy/utility/container.html

您可以通过查看其 _data 变量以您可以理解的格式快速查看数据:

from dendropy.simulate import treesim
import pprint


tree = treesim.birth_death_tree(birth_rate=1.0, death_rate=0.5, ntax=10)
pdm = tree.phylogenetic_distance_matrix()

pp = pprint.PrettyPrinter(depth=2)
pp.pprint(pdm.as_data_table()._data)

输出:

{'T1': {'T1': 0.0,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 1.8146189808922477,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 0.5848837844916799,
        'T7': 0,
        'T8': 1.6307174196094565,
        'T9': 1.8146189808922477},
 'T10': {'T1': 1.832709865628535,
         'T10': 0.0,
         'T2': 2.2418431376329204,
         'T3': 1.832709865628535,
         'T4': 0.8434862029618123,
         'T5': 1.215095937098336,
         'T6': 1.832709865628535,
         'T7': 1.832709865628535,
         'T8': 1.832709865628535,
         'T9': 1.832709865628535},
 'T2': {'T1': 2.2418431376329204,
        'T10': 2.2418431376329204,
        'T2': 0.0,
        'T3': 2.2418431376329204,
        'T4': 2.2418431376329204,
        'T5': 2.2418431376329204,
        'T6': 2.2418431376329204,
        'T7': 2.2418431376329204,
        'T8': 2.2418431376329204,
        'T9': 2.2418431376329204},
 'T3': {'T1': 1.8146189808922477,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 0.0,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 1.8146189808922477,
        'T7': 1.8146189808922477,
        'T8': 1.8146189808922477,
        'T9': 1.4811625503429378},
 'T4': {'T1': 1.832709865628535,
        'T10': 0.8434862029618123,
        'T2': 2.2418431376329204,
        'T3': 1.832709865628535,
        'T4': 0.0,
        'T5': 1.215095937098336,
        'T6': 1.832709865628535,
        'T7': 1.832709865628535,
        'T8': 1.832709865628535,
        'T9': 1.832709865628535},
 'T5': {'T1': 1.832709865628535,
        'T10': 1.215095937098336,
        'T2': 2.2418431376329204,
        'T3': 1.832709865628535,
        'T4': 1.215095937098336,
        'T5': 0.0,
        'T6': 1.832709865628535,
        'T7': 1.832709865628535,
        'T8': 1.832709865628535,
        'T9': 1.832709865628535},
 'T6': {'T1': 0.5848837844916799,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 1.8146189808922477,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 0.0,
        'T7': 0.5848837844916799,
        'T8': 1.6307174196094565,
        'T9': 1.8146189808922477},
 'T7': {'T1': 0,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 1.8146189808922477,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 0.5848837844916799,
        'T7': 0.0,
        'T8': 1.6307174196094565,
        'T9': 1.8146189808922477},
 'T8': {'T1': 1.6307174196094565,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 1.8146189808922477,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 1.6307174196094565,
        'T7': 1.6307174196094565,
        'T8': 0.0,
        'T9': 1.8146189808922477},
 'T9': {'T1': 1.8146189808922477,
        'T10': 1.832709865628535,
        'T2': 2.2418431376329204,
        'T3': 1.4811625503429378,
        'T4': 1.832709865628535,
        'T5': 1.832709865628535,
        'T6': 1.8146189808922477,
        'T7': 1.8146189808922477,
        'T8': 1.8146189808922477,
        'T9': 0.0}}