Как рассчитываются пропорции клад и пропорции бипартиций в `ape`? - PullRequest
0 голосов
/ 02 ноября 2018

Рассмотрим следующий набор данных:

fictional.df <- data.frame(L1 = c(0,0,0,0,0,0,0,0), 
                       L2 = c(0,1,0,0,0,1,1,0),
                       L3 = c(1,1,0,1,1,1,1,1), 
                       L4=c(0,0,1,1,0,0,0,0))

Я преобразовал это в phyDat объект и затем создал матрицу парных расстояний следующим образом:

fictional.phydat <- as.phyDat(fictional.df,
                          type="USER",levels=c("1","0"),
                          names=names(fictional.df))
fictional.hamming <- dist.hamming(fictional.phydat)

Из этой матрицы расстояний я затем оценил дерево UPGMA:

fictional.upgma <- upgma(fictional.hamming)

Затем я создал наборы данных начальной загрузки:

set.seed(187)
fictional.upgma.bs <- bootstrap.phyDat(fictional.phydat, FUN =  
function(xx) upgma(dist.hamming(xx)), bs=100)

Затем я вычислил долю разделов в наборе начальной загрузки:

upgma.bs.part <- prop.part(fictional.upgma.bs)

Пока все хорошо. Вот где я был бы признателен за помощь. Когда я вызываю функцию prop.clades, я не понимаю результат:

prop.clades(fictional.upgma,fictional.upgma.bs)
[1] 100  NA  71

Почему эта функция возвращает NA, когда есть доказательства для этого клада в наборе деревьев начальной загрузки?

Второй вопрос:

prop.clades(fictional.upgma,part=upgma.bs.part)
[1] 100  49 112

Если есть только 100 примеров начальной загрузки, почему значение для окончательной клады 112?

1 Ответ

0 голосов
/ 13 февраля 2019

Ваше дерево fictional.upgma укоренено и prop.clades возвращает по умолчанию, как часто встречается каждое разделение на две части. В укорененном дереве два ребра, ведущие к корню, относятся к одному и тому же разделению на две части или разделению:

prop.clades(unroot(fictional.upgma), fictional.upgma.bs)
[1] 100  71

Для корневых деревьев вы иногда хотите посчитать количество одинаковых клад:

prop.clades(fictional.upgma, fictional.upgma.bs, rooted=TRUE)
[1] 100  49  71

Кажется, это ошибка, и вам лучше сообщить об этом Эммануэлю Пардису

prop.clades(fictional.upgma,part=upgma.bs.part)
[1] 100  49 112
...