Цветные линии для tangelgram - кофилоплот функции пакетной обезьяны

Я пытаюсь провести филогенетическое сравнение двух деревьев, содержащих одни и те же таксоны. Я хочу раскрасить соединения на основе сайта изоляции. Я думал, что выполнил это успешно, но в моем рабочем процессе есть ошибка, т. е. цветные линии не соответствуют месту изоляции точно. Мне было интересно, есть ли у вас какие-либо идеи, пожалуйста, найдите мой воспроизводимый пример ниже.

site <- structure(list(name = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 8L,9L, 10L, 2L), .Label = c("t1", "t10", "t2", "t3", "t4", "t5","t6", "t7", "t8", "t9"), class = "factor"), site = c(1L, 1L,1L, 2L, 2L, 3L, 1L, 3L, 2L, 2L)), .Names = c("name", "site"), row.names = c(NA,10L), class = "data.frame") 

library(ape)
t1 <- rtree(10)
t2 <- rtree(10)
order <- cbind(t1$tip.label)
list <- merge(order, site, by.x="V1", by.y="name")
x <- list$site
A <- cbind(t1$tip.label, t1$tip.label)
cophyloplot(t1, t2, assoc = A, show.tip.label = T, space=50, col = x) 

В нынешнем виде это мой текущий вывод:

сравнение филогенетических деревьев


person AudileF    schedule 16.05.2017    source источник
comment
Я думаю, что это проблема с точным извлечением меток наконечников из дерева.   -  person AudileF    schedule 17.05.2017


Ответы (2)


Только что заметил эту тему при извлечении меток наконечников, и она работает. правильный порядок наконечника ярлыки в обезьяне

Мне также нужно включить sort=F в функцию слияния.

Итак, для завершения рабочий процесс выглядит так:

site <- structure(list(name = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 8L,9L, 
10L, 2L), .Label = c("t1", "t10", "t2", "t3", "t4", "t5","t6", "t7", "t8", 
"t9"), class = "factor"), site = c(1L, 1L,1L, 2L, 2L, 3L, 1L, 3L, 2L, 2L)), 
.Names = c("name", "site"), row.names = c(NA,10L), class = "data.frame") 

library(ape)
t1 <- rtree(10)
t2 <- rtree(10)
is_tip<- t1$edge[,2] <= length(t1$tip.label)
ordered_tips <- t1$edge[is_tip,2]
order <-t1$tip.label[ordered_tips]
order <- as.data.frame(order)
list <- merge(order, site, by.x="V1", by.y="name", sort=F)
x <- list$site
A <- cbind(t1$tip.label, t1$tip.label)
cophyloplot(t1, t2, assoc = A, show.tip.label = T, space=50, col = x) 
person AudileF    schedule 16.05.2017

Только в качестве продолжения в моей работе правильный порядок меток был изменен командой слияния. Моя древовидная структура довольно сложна, и, вероятно, эту проблему создавало отсутствие/присутствие особей между обоими деревьями. Я просто исправил, добавив вектор с позициями в data.frame заказа.

порядок ‹- as.data.frame (порядок, seq = seq (1: длина (порядок)) )

Последний может легко изменить структуру data.frame в соответствии с древовидной структурой.

Ваше здоровье,

person Alejandro R. Walker    schedule 08.01.2019