Ошибка в функции DendroPy birth_death_tree?

Я не уверен, что делаю что-то не так, но я пытался запустить функцию LTT для DendroPy, используя birth_death_tree (фрагмент кода ниже:)

import dendropy

tree = dendropy.model.birthdeath.birth_death_tree(1.0,0.1,max_time = 5.0)

# Returns distance of node furthest from root, i.e., maximum time available on
# tree
total_time = tree.max_distance_from_root()

# Divide time span into 10 steps
step = float(total_time) / 10

# To store tuples of (time, number of lineages)
ltt = []

# Start at first time step
current_time = step
while current_time <= total_time:
    # Get number of lineages at current time
    num_lineages = tree.num_lineages_at(current_time)
    # Store it
    ltt.append( (current_time, num_lineages) )
    # Move to next time step
    current_time += step

# Get the final number of lineages
# Note: may not be the same as the number of tips if the tree has extinct
# tips/taxa; though, if this were the case, we would not be dealing with an
# ultrametric tree.
if current_time < total_time:
    ltt.append( (total_time, tree.num_lineages_at(total_time)) )

# Print results
for t, num_lineages in ltt:
    print("{:12.8f}\t{}".format(t, num_lineages))

Я использую функцию ltt, которая есть в их документации, и заменяю встроенное дерево деревом моделей https://pythonhosted.org/DendroPy/library/birthdeath.html

Вывод для количества линий дает мне уменьшение количества узлов к концу. Это маловероятно, поскольку все узлы в модели должны заканчиваться в одном и том же месте. Может кто-нибудь понять, почему это происходит?

0 ответов

Другие вопросы по тегам