Closed X1angyang closed 1 year ago
谢谢指出,不知是否有可重复错误的代码与文件?能否提供下,我这边看看先
library(ggtree) library(ggplot2) library(treeio)
treetext = "((((T0201:11.5[&&NHX],T0104:4.5[&&NHX]):1[&&NHX], T0103:5.5[&&NHX]):0.5[&&NHX], T0106:3[&&NHX], T0107:2[&&NHX]):1[&&NHX], T0102:7[&&NHX], (T0302:3[&&NHX],T0301:4[&&NHX]):1[&&NHX:S=GRIN2A Loss])[&&NHX];"
tree <- read.nhx(textConnection(treetext)) ggtree(tree, layout='ellipse') + geom_tiplab() + geom_label(aes(x=branch, label=S), fill='lightgreen')
示例中S=GRIN2A Loss,最终结果是无法展示的
删除其中的数字,只保留字符,则可以正常显示
原因是在这里是部分匹配,可以加上^ 和 $
谢谢,我已提交 #97
Y 叔好,
在read.nhx()函数中,对nhx文件的feature进行了数字转换,条件是正则匹配到数字的时候就使用as.numeric()函数将字符串转为数值。但是正则中是部分匹配而非完全匹配,这导致如果feature是字符和数字混合的时候,比如’AAA111‘’,仍然进行字符串转数字的操作,返回结果变成NA,由此引发在作图时使用类似geom_label()得不到预期的现象。我提交分支失败了,可以修复一下^-^
期待回复~