Таким образом, вы должны создать случайные матрицы и применить UPGMA к каждой.
Более полный ответ ниже
Просто используйте алгоритм UPGMA.Это алгоритм кластеризации, используемый для разрешения попарной матрицы.
Вы берете общее генетическое расстояние между двумя парами "таксонов" (технически OTU) и делите его на две.Вы назначаете ближайших членов парной матрицы в качестве первого «узла».Переформатируйте матрицу, чтобы эти две пары были объединены в одну группу («удалена») и нашли следующего «ближайшего соседа» до бесконечности.Я подозреваю, что у R 'ape' будет ультраметрический алгоритм, который избавит вас от программирования.Я вижу, что вы используете Python, поэтому у BioPython MIGHT есть это (большое MIGHT), лично я бы передавал это через предварительно скомпилированную программу на C и собирал результаты через paup.Я не собираюсь писать код, потому что я предпочитаю Perl и получаю пламя, если какой-либо код Perl появляется в вопросе о Python (Империя установила).
В любом случае, вы обнаружите, что этот алгоритм создает идеальное ультраметрическое дерево.Чистым людям не нравятся ультраметрические деревья, полученные с помощью такого алгоритма.Тем не менее, в ваших расчетах это может быть полезно, потому что вы можете найти филогению по реальным данным, которая наиболее «похожа на часы» по сравнению с нулевым распределением, которое вы производите.В этом контексте это было бы здорово.
Возможно, вы захотите поднять вопрос об обмене стеками биоинформатики.