微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 nwk 格式的树在 ggtree 中斜体显示物种名称? 提取和转换引导值使用提示标签提取标签并删除下划线使用提示标签提取标签并删除下划线ggtree 使用 label_value 使用没有下划线的标签ggtree 使用 geom_tiplabel 使用没有下划线的标签,不起作用ggtree 使用 geom_tiplabel,添加数据框,加入粗体,物种名称斜体,addinfo 正常

如何解决如何使用 nwk 格式的树在 ggtree 中斜体显示物种名称? 提取和转换引导值使用提示标签提取标签并删除下划线使用提示标签提取标签并删除下划线ggtree 使用 label_value 使用没有下划线的标签ggtree 使用 geom_tiplabel 使用没有下划线的标签,不起作用ggtree 使用 geom_tiplabel,添加数据框,加入粗体,物种名称斜体,addinfo 正常

我将我的树以 nwk 格式导入 R。

我能够按照 FAQ 中的说明进行操作(提取引导值并显示大于 70% 的引导),但很难在没有下划线的情况下使用我的新标签。当我使用 label_value 时它起作用 geom_tiplabel 但不是当我使用 aes(label=....) 时。 我也没有成功地将物种名称斜体。理想情况下,我希望有斜体的“物种名称”,而不是斜体的“加入”和“菌株 XYZ”。

我不知道我的错误在哪里。非常感谢任何帮助。

您将在下面找到我制作的示例脚本。我还附上了 nwk 格式的示例树 here

tree1 <- read.tree("example.nwk")    

tree1    
plot(tree1)      


p1ex <- ggtree(tree1)    

plot(p1ex)    

提取和转换引导值

q <- ggtree(tree1)    
q    

d <-q$data    
b<-d[!d$isTip,]    

b$label = as.numeric(b$label)    
b$label = round(b$label * 100)    
b$label <- as.numeric(b$label)    

使用提示标签提取标签删除下划线

d <-q$data    
l<-d[d$isTip==T,]    

l$label ='label'= gsub("_"," ",l$label)    

使用提示标签提取标签删除下划线

df<-p1ex[[1]] 

newcolumn<-df[[4]]               

labelnew<-data.frame('label'=gsub("_",newcolumn))     
labelnew    

ggtree 使用 label_value 使用没有下划线的标签

windows(height=8,width=8)    

q +     
  geom_tree() +     
  theme_tree()+    
  geom_text2(data=b,aes(label=label,subset = !is.na(as.numeric(label)) & as.numeric(label) > 
70),size = 4,color = "black",hjust=1.3,vjust=1.3,parse = TRUE)+    
  geom_nodepoint(size=1)+    
  xlim(0,1.8) +    
  geom_tiplab(data=l,size=4,label_value(labelnew))+    
  geom_treescale(x=0,y=12,fontsize = 5)    

ggtree 使用 geom_tiplabel 使用没有下划线的标签,不起作用

windows(height=8,width=8)    

q +       
  geom_tree() +     
  theme_tree()+    
  geom_text2(data=b,aes(label=label))+    
  geom_treescale(x=0,fontsize = 5)    

更新

我再次使用了 FAQ 中的示例。

ggtree 使用 geom_tiplabel,添加数据框,加入粗体,物种名称斜体,addinfo 正常

q %<+% lnew + 
  geom_tree() + 
  theme_tree()+
  geom_text2(data=b,subset = 
!is.na(as.numeric(label)) & as.numeric(label) > 70),parse = TRUE)+
  geom_nodepoint(size=1)+
  xlim(0,1.8) +
  geom_tiplab(aes(label=paste0('bold(',Accession,')~italic(',species,')~',addinfo)),parse=T)+
 geom_treescale(x=0,fontsize = 5)

添加的数据框是 here。这棵树现在看起来像这样。 This is the tree I got with the above script

我知道该脚本之所以有效,是因为我删除了数据框中的空格(例如,物种名称变成了物种名称)。

因此,如果我现在将数据框改回原始数据,我该如何使用 parse 来避免出错并将其包含在 ggtree 中?

解析错误(text = text[[i]]) : :1:33: 意外符号 1:粗体(加入)~斜体(物种名称) ^

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?