前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >itol.toolkit中文文档|PRUNE选择分枝

itol.toolkit中文文档|PRUNE选择分枝

作者头像
小汪Waud
发布2023-02-11 11:01:06
5070
发布2023-02-11 11:01:06
举报
文章被收录于专栏:小汪Waud

中文文档先于英文文档发布,TTfriends公众号首发。

最新完整文档请访问在线版:tongzhou2017.github.io/itol.toolkit/

前情

PRUNE模版的功能是选择分枝,其参数结构简单,仅由模版类型和数据构成,属于树结构类模版。

通常情况下,用户通过输入分枝名或节点,来实现对分枝或节点内全部分枝的选择,被选中的分枝会形成新的系统发育树,未被选中的分枝将不会出现在新的系统发育树中。该功能是唯一一个改变分枝数量的模版功能,其他模版功能均只是在系统发育树上进行注释。

本节文档展示使用itol.toolkit对分枝进行选择的方法,过程非常简单,主要难点在于用户需要确定哪些分枝需要被筛选,相较于没有itol.toolkit辅助的工作流,用户需要在割裂的环境分别进行数据分析和可视化准备,而itol.toolkit使整个工作流连贯,让用户在R语言环境中根据背景信息筛选分枝后直接进行模版文件输出。

常规流程

本小节使用内置数据为例,展示不同数据前处理方法,在节点或分枝水平进行分枝筛选。

首先加载Newick格式的树文件,树文件可以来自于多序列比对,也可以来自数值矩阵聚类。以下数据示例df_frequence数据包含了各模版类型在已发表研究中的使用量情况。数据示例template_parameters_count数据包含了模版类型的样式参数和数据参数信息,每列为一种参数,数值为1表示该模版使用了该参数,数值为0表示未使用。使用参数越多的模版,对于用户学习使用的难度越大。

本小节实例,我们的数据处理目的是,通过模版使用情况、模版名称特点、参数数目等信息选出对于用户使用有挑战的模版类型。

代码语言:javascript
复制
library(itol.toolkit)
tree <- system.file("extdata",
                    "tree_of_itol_templates.tree",
                    package = "itol.toolkit")
hub <- create_hub(tree = tree)
df_frequence <- data.table::fread(system.file("extdata",
                                              "templates_frequence.txt",
                                              package = "itol.toolkit"))
data("template_parameters_count")

原始树结构

我们可以混合使用节点名和分枝名,对分枝进行筛选。比如选择用户使用最多的模版以及参数最为复杂的两大类模版类型:样式和基础可视化。

代码语言:javascript
复制
ids <- df_frequence$templates
df_frequence[df_frequence > 1] <- 1 
df_frequence$templates <- ids
most_used_tip = df_frequence$templates[which.max(rowSums(df_frequence[,-1],
                                                         na.rm = T))]
select_item = c(most_used_tip, "theme_style","basic_plot")
unit_3 <- create_unit(data = select_item, 
                      key = "E003_prune_1", 
                      type = "PRUNE", 
                      tree = tree)
write_unit(unit_3,
           paste0(getwd(),"/E003_prune_1.txt"))

E003结果文件

E003效果图

我们也可以根据分枝的名称特点进行筛选,比如E004选择了DATASET_开头的分枝,这些分枝通常具有复杂的参数及格式模版要求,同时也是iTOL最具功能性的模版。

代码语言:javascript
复制
select_tip = hub@tree$main$tip.label[startsWith(hub@tree$main$tip.label,
                                                "DATASET_")]
unit_4 <- create_unit(data = select_tip, 
                                 key = "E004_prune_2", 
                                 type = "PRUNE", 
                                 tree = tree)
write_unit(unit_4,
           paste0(getwd(),"/E004_prune_2.txt"))

E004结果文件

E004效果图

我们也可以根据更多附加信息来对分枝进行筛选,比如E005我们使用了template_parameters_count数据,来筛选具有30个以上参数的模版,这些模版通常具有极复杂的功能。

代码语言:javascript
复制
tpc <- template_parameters_count
select_tip = row.names(tpc)[rowSums(tpc) > 30]
unit_5 <- create_unit(data = select_tip, 
                               key = "E005_prune_3", 
                               type = "PRUNE", 
                               tree = tree)
write_unit(unit_5,
           paste0(getwd(),"/E005_prune_3.txt"))

E005结果文件

E005效果图

PRUNE作为唯一一个改变树拓扑结构的模版功能,通常存在于工作流的前处理阶段,所以在发表论文中并无法体现出来,然而R语言用户更多使用ape::drop.tip来实现这一需求,所以该模版的应用前景堪忧,除非用户需要避免使用过多依赖工具时才有可能按需使用该功能。

红框处:0次被使用

样式修改

由于该模版类型参数简单,所以并不存在样式修改需求。

红框处:参数只有模版类型和数据

Tips

可以将E003~E005的结果加入数据及样式仓库hub对象,统一批量输出。

代码语言:javascript
复制
hub <- hub + unit_3 + unit_4 + unit_5
write_hub(hub, getwd())

文档类型:用户-单功能-树结构

链接状态:无

文档版本:1.0.0

文本:周通

编辑:凌浩

审阅:李明,赵启祥,张思威

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小汪Waud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情
  • 常规流程
  • 样式修改
  • Tips
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档