R-猿/phangorn:如何包装提示标签



我正在使用ape::plot.phylo(通过phangorn::plotBS?(来绘制一些系统发育树。问题是Tip标签很长,我想以某种方式将它们包裹起来。我似乎找不到plotplot.phylo/plotBS中的任何选项。

有什么想法我如何使tip.labels被文本包装?

样品尖端标签:" Qer echinodermata Asterozoa Asteroidea Asteroidea forcipulatacea forcipulatida asteriidae Asteriidae Asteria asterias.rubens unid1"

最简单的解决方案确实是更改phylo对象中的tip.label元素。

## 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] "thsdmrigunfpykvlawqbz" "dlicefyjonnmqugbptxzr" "adioznspgnbkjqryelfum"

当然,您还可以通过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)

最新更新