APE / Phangorn: как обернуть этикетки с наконечниками? - PullRequest
0 голосов
/ 06 мая 2019

Я использую ape::plot.phylo (вызывается через phangorn::plotBS?) Для построения некоторых филогенетических деревьев.Проблема в том, что метки наконечников довольно длинные, и я бы хотел, чтобы они как-то обернулись.Я не могу найти какие-либо варианты в plot или plot.phylo / plotBS, чтобы позаботиться об этом.

Есть какие-нибудь идеи, как я могу получить tip.labels для переноса текста?

Пример этикетки: "QER Echinodermata Asterozoa Asteroidea Forcipulatacea Forcipulatida Asteriidae Asterias Asterias.rubens UNID1"

1 Ответ

1 голос
/ 08 мая 2019

Самым простым решением было бы действительно изменить элемент tip.label в объекте phylo.

## Making a tree with three tips of 20 characters each
tree <- rcoal(3, tip.label = replicate(3, paste(sample(letters, 20), collapse = "")))
## The tree tip labels
tree$tip.label
# [1] "thsdmrigufpykvlawqbz" "dlicefyjonmqugbptxzr" "adioznspgbkjqryelfum"

Затем можно обернуть каждый n-й символ новой строкой (\n) следующим образом:

## Declaring the pattern and text to replace at a specific position
position <- 10
pattern <- paste0('^([a-z]{', position-1, '})([a-z]+)$')
text <- paste0('\\1', "\n", '\\2')
wrap_tips <- gsub(pattern, text, tree$tip.label)
wrap_tips
# [1] "thsdmrigu\nfpykvlawqbz" "dlicefyjo\nnmqugbptxzr" "adioznspg\nbkjqryelfum"

Конечно, вы также можете заменить определенный символ (например, _ или .) на \n, что более просто (например, gsub("_", "\\n", tree$tip.label)).

Затем вы можете создать копию дерева и присвоить ему завернутые метки:

## Duplicating the tree
tree_to_plot <- tree
## Changing the labels
tree_to_plot$tip.label <- wrap_tips
## Plotting the wrapped labels
plot(tree_to_plot)
...