Длина ветвей и деревьев ТНТ
Часть 2
Про длины и цены ветвей написано в работе J. Felsenstein «Interferring Phylogenies”, 2004. Только там, в основном, для Нетворка –Мурки (о сетях).
ТНТ же, по-видимому, программа строит бифуркационное дерево.
Справка из Вики:
«Укоренённое и неукоренённое филогетическое дерево может быть бифуркационным или небифуркационным. В бифуркационном дереве к каждому узлу подходят ровно три ветви (в случае укоренённого дерева — одна входящая ветвь и две исходящие). Таким образом бифуркационное дерево предполагает, что все эволюционные события состояли в происхождении от предкового объекта ровно двух потомков. К узлу небифуркационного дерева могут подходить четыре и более ветви».
То есть, запрограммировано из узла выходят только пара ветвей. Если случайно одно из рёбер окажется нулевой длины (без мутаций), то оно может быть сколлапсировано, и тогда из узла выйдет ветвей больше. Но такие случаи редки (в основном характерны для молодых выборок с большим количеством базовых).
Между тем, произвольная выборка не может быть 100%-но разложена на двузубцы с чёткой длиной ветвей, равной числу мутаций. Дробных же значений ТНТ не допускает. Поэтому длина ветвей определяется следующим образом. По максимуму возможного программа берёт и включает в расчёт локусы с числом мутаций, равным разности данного гаплотипа и базового. Но часть локусов (я бы назвал их «мутными» или «тёмными» аллелями) в расчёт не входят. Или входят с неким нейтральным значением.
Поясню на примере 67-маркерной выборки, состоящей из 4-х гаплотипов (включая базовый). Вид сразу ТНТ-шный (это разность значения аллеля и минимального в выборке):
xread
67 4
Modal 1122312111123123211133211121131442111111121123112121121132121112141
101 1122202141124133411032212111130322111121111134010122032232121113131
102 1122112132132031211164213121054332021111101112112121322233121121111
103 1122112132132031211164213121043632022111101122112121222233131111131
;
ccode +0.66;
Best score: 66. 1 trees retained
Tree 0. min. branch lengths
┌──0 Modal
├──┤ ┌──20 101
└──0┤ ┌──4 103
└──23┴──7 102
Число мутаций в 101 гаплотипе по отношению к базе 31. Однако мы видим на рис., что длина ветви равна всего 20. Это значит, что 11 мутаций, произошедших в «темных» аллелях неучтены. Если убирать по одному локусу и смотреть, какие длины и стоимости получаются, то можно найти такие локусы. Они в таблице:
Locus (number) 5 9 15 25 32 33 42 55 56 66
Base 3 1 2 1 4 4 2 1 1 4
Ivanov 2 4 3 2 3 2 1 2 2 3
Petrov 1 3 3 3 3 3 0 2 2 1
Sidorov 1 3 3 3 6 3 0 2 2 3
Branch length no yes=1 no no no yes=1 no no no no
Best Score +1 +3 +1 +1 +2 +1 +1 +1 +1 +1
Видим, что в основном, к таковым относятся «перекошенные» маркеры. То есть отклонившиеся в одну сторону от базы, что бывает при базовом-первом, постороннем, но есть и иные случаи, по тем или иным признакам выбранные программой. Например, локус №32 – вроде бы «нормальный». Но в расчёт длины ветки не входит И наоборот, №33 – «перекошенный», но в расчёт входит (правда, не с 2-мя мутациями, а только с 1-й).
Возможно какой-то слом происходит на середине гаплотипа (67 маркеров – 33-й как раз по середине).
Так же мутно эти локусы влияют на расчёт цены дерева, добавляя, в основном, по 1 ед. (но и больше тоже) вместо фактических мутаций (см. нижнюю строку таблицы). В остальных маркерах цена рассчитывается, как сумма длин ветвей.
Число «темных» локусов в данном случае 9/67=13%.
За счёт «темных» и длины ветвей и цена дерева всегда меньше (редко равна) истинной величины количества мутаций (к базе).
В более сложных случаях на больших выборках трудно определить «тёмных» из-за множественности деревьев. Как пример, могу привести один «тёмный» - маркер №25 (выпадающий из расчёта) маркер для выборки 90 гаплотипов+базовый:
4(базовый)3(первый)36442332533343451302233454475221011121001211221244231203221224544354435233454455544564554(девяностый).
Что за причина, вызвавшая невключение этого маркера в расчёт длин - неизвестно.
Следует также заметить, что из-за стремления к двузубцу, ТНТ принудительно вводит рёбра длиной 1 ед., которые не вывести в нулевые никакими средствами (и следовательно, не коллапсирующими), даже жёстким снипованием с большими весами.
При этом расчёт возраста предка методом выделенных пар наталкивается на сложность. Фактически, например, в выборке три-четыре или больше ветвей от корня. Но ТНТ предлагает только пару корневых ветвей. Остальные идут с единичными длинами явно принудительно.
Более того, эти единичные рёбра нарушают и расчёт длин ветвей.
Например, в 67-маркерной выборке, из которой приведён вышестоящий пример (90 гаплотипов), есть удобный для слежения за длиной гаплотип №101 (также см. выше). И его длина на 67-маркерах равна 18 (как можно подсчитать, во всей выборке 31-18=13 «темных»). Цена всего дерева 1095.
При уменьшении числа маркеров, время от времени, скачкообразно уменьшается и длина пути, соединяющего №101 с базой. И так до момента, когда остаётся 25 маркеров в гаплотипах. При этом длина пути от №101 до базы равна 5+5 (два ребра)=10 ед.
Цена всего дерева падает до 389.
В этих 90 маркерах 3 известных ветви, которые довольно чётко разделяются (на 1 + 2 ветви через пресловутое единичное ребро).
Но при вычёркивании ещё всего одного маркера, когда остаётся 24 маркера, во первых ломается структура дерева и ветвей. Уже нет чёткого разделения. Вводится большое число единичных рёбер, а длина пути от №101 до базы увеличивается (!) снова до 18 – за счёт добавления в путь множества единичных рёбер.
Вывод. При использовании ТНТ для расчёта возраста ближайшего предка методом выделенных пар необходимо учитывать погрешность на бифуркацию (известно неверное определение числа ветвей от корня), либо считать начальные единичные рёбра нулевыми. В любом случае это влияние необходимо исследовать для выявления величины погрешности.