Курсив и обычный текст в метках наконечников по филогении в R

Следующий код построит филогенетическое дерево с метками кончиков, выделенными курсивом, и символами подчеркивания, замененными пробелами.

library(ape)
tr <- rtree(5, tip.label=c("a_b_x1", "b_c_2", "c_d_3y", "d_e_4", "e_f_5"))
plot(tr)

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

Я пытался использовать expression с tiplabels, но это не работает из-за интерпретации индексации. Также форматирование sub для выбора двух частей в expression не удалось.

tip <- unlist(strsplit("a_b_x1", "_"))
tiplabels(expression(italic(paste(tip[1:length(tip)-1], collapse = " ")) * tip[length(tip)]), 
    tip = which(tr$tip.label == "a_b_x1"), frame = "n", bg = "white")

person nya    schedule 12.04.2017    source источник


Ответы (1)


Мы можем создавать выражения с bquote:

library(ape)
set.seed(1)
tr <- rtree(5, tip.label=c("a_b_x1", "b_c_2", "c_d_3y", "d_e_4", "e_f_5"))
plot(tr, show.tip.label = F)

for(i in seq_along(tr$tip.label)){
    tip <- unlist(strsplit(tr$tip.label[i], "_"))

    tiplabels(
        bquote(italic(.(paste(tip[-length(tip)], collapse = ' '))) ~ .(tip[length(tip)])),
        tip = i, adj = c(0, 0.5), frame = "n", bg = "white"
    )

}

введите здесь описание изображения

person mt1022    schedule 13.04.2017