中文文档先于英文文档发布,TTfriends公众号首发。
最新完整文档请访问在线版:tongzhou2017.github.io/itol.toolkit/
PRUNE模版的功能是选择分枝,其参数结构简单,仅由模版类型和数据构成,属于树结构类模版。
通常情况下,用户通过输入分枝名或节点,来实现对分枝或节点内全部分枝的选择,被选中的分枝会形成新的系统发育树,未被选中的分枝将不会出现在新的系统发育树中。该功能是唯一一个改变分枝数量的模版功能,其他模版功能均只是在系统发育树上进行注释。
本节文档展示使用itol.toolkit
对分枝进行选择的方法,过程非常简单,主要难点在于用户需要确定哪些分枝需要被筛选,相较于没有itol.toolkit
辅助的工作流,用户需要在割裂的环境分别进行数据分析和可视化准备,而itol.toolkit
使整个工作流连贯,让用户在R语言环境中根据背景信息筛选分枝后直接进行模版文件输出。
本小节使用内置数据为例,展示不同数据前处理方法,在节点或分枝水平进行分枝筛选。
首先加载Newick格式的树文件,树文件可以来自于多序列比对,也可以来自数值矩阵聚类。以下数据示例df_frequence
数据包含了各模版类型在已发表研究中的使用量情况。数据示例template_parameters_count
数据包含了模版类型的样式参数和数据参数信息,每列为一种参数,数值为1表示该模版使用了该参数,数值为0表示未使用。使用参数越多的模版,对于用户学习使用的难度越大。
本小节实例,我们的数据处理目的是,通过模版使用情况、模版名称特点、参数数目等信息选出对于用户使用有挑战的模版类型。
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")
原始树结构
我们可以混合使用节点名和分枝名,对分枝进行筛选。比如选择用户使用最多的模版以及参数最为复杂的两大类模版类型:样式和基础可视化。
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最具功能性的模版。
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个以上参数的模版,这些模版通常具有极复杂的功能。
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次被使用
由于该模版类型参数简单,所以并不存在样式修改需求。
红框处:参数只有模版类型和数据
可以将E003~E005的结果加入数据及样式仓库hub对象,统一批量输出。
hub <- hub + unit_3 + unit_4 + unit_5
write_hub(hub, getwd())
文档类型:用户-单功能-树结构
链接状态:无
文档版本:1.0.0
文本:周通
编辑:凌浩
审阅:李明,赵启祥,张思威