Я пытаюсь построить дерево с помощью модуля BioPython, Phylo.
То, что я сделал до сих пор, это изображение:
каждое имя имеет четырехзначный номер, за которым следует - и номер: этот номер относится к числу раз, которое представлена последовательность. Это означает, что 1578 - 22, этот узел должен представлять 22 последовательности.
файл с выровненными последовательностями: файл
файл с расстоянием для построения дерева: файл
Так что теперь я знаю, как изменить каждый размер узла. Каждый узел имеет свой размер, это легко сделать массивом различных значений:
fh = open(MEDIA_ROOT + "groupsnp.txt")
list_size = {}
for line in fh:
if '>' in line:
labels = line.split('>')
label = labels[-1]
label = label.split()
num = line.split('-')
size = num[-1]
size = size.split()
for lab in label:
for number in size:
list_size[lab] = int(number)
a = array(list_size.values())
Но массив произвольный, я хотел бы поместить правильный размер узла в правильный узел, я попробовал это:
for elem in list_size.keys():
if labels == elem:
Phylo.draw_graphviz(tree_xml, prog="neato", node_size=a)
но при использовании оператора if ничего не появляется.
В любом случае делать это?
Буду очень признателен!
Спасибо всем