“工欲善其事,必先利其器”
itol.toolkit产品发布
Installation安装
# from CRAN install.packages("itol.toolkit") # from GitHub # install.packages("devtools") # if you have not installed "devtools" package devtools::install_github("TongZhou2017/itol.toolkit")
作者推荐使用Github版,更新速度更快!
Quickstart使用
# load package library(itol.toolkit) # read data tree <- system.file("extdata", "tree_of_itol_templates.tree", package = "itol.toolkit") data("template_groups") df_group <- data.frame(id = unique(template_groups$group), data = unique(template_groups$group)) # create hub hub <- create_hub(tree = tree) ## create unit unit <- create_unit(data = df_group, key = "Quickstart", type = "DATASET_COLORSTRIP", tree = tree) ## add unit into hub hub <- hub + unit ## write template file write_hub(hub,getwd())
支持文档https://tongzhou2017.github.io/itol.toolkit/
官方地址https://cran.r-project.org/web/packages/itol.toolkit/index.html
以下是利用该R包制作的实例图
上述内容均来自itol.toolkit
友情推荐新款R包
如果感兴趣的话欢迎探索
以下是作者专栏
官方使用示例:
library(itol.toolkit) library(dplyr) library(data.table) library(ape) library(stringr) library(tidyr)
tree <- system.file("extdata","tree_of_itol_templates.tree",package = "itol.toolkit") data("template_groups") data("template_parameters_count") hub <- create_hub(tree = tree) ## 1,7 data df_group <- data.frame(id = unique(template_groups$group), data = unique(template_groups$group)) ## 2 data df_count <- cbind(template_groups,as.data.frame(rowSums(template_parameters_count))) ## 3 data df_rename <- data.frame(id = template_groups$template, new_label = str_to_title(str_replace_all(template_groups$template,"_"," "))) ## 5 data tab_tmp_01 <- as.data.frame(t(template_parameters_count)) tab_tmp_connect <- convert_01_to_connect(tab_tmp_01) tab_tmp_connect <- full_join(tab_tmp_connect, template_groups, by=c("row" = "template")) tab_tmp_connect <- tab_tmp_connect %>% filter(val > 10) %>% filter(row != col) ## 6 data tab_tmp <- fread(system.file("extdata","parameter_groups.txt",package = "itol.toolkit")) tab_id_group <- tab_tmp[,c(1,2)] tab_tmp <- tab_tmp[,-c(1,2)] tab_tmp_01 <- convert_01(object = tab_tmp) tab_tmp_01 <- cbind(tab_id_group,tab_tmp_01) order <- c("type","separator","profile","field","common themes","specific themes","data") tab_tmp_01_long <- tab_tmp_01 %>% tidyr::gather(key = "variable",value = "value",c(-parameter,-group)) template_start_group <- tab_tmp_01_long %>% group_by(group,variable) %>% summarise(sublen = sum(value)) %>% tidyr::spread(key=variable,value=sublen) template_start_group$group <- factor(template_start_group$group,levels = order) template_start_group <- template_start_group %>% arrange(group) start_group <- data.frame(Var1 = template_start_group$group, Freq = apply(template_start_group[,-1], 1, max)) start_group$start <- 0 for (i in 2:nrow(start_group)) { start_group$start[i] <- sum(start_group$Freq[1:(i-1)]) } template_start_group[template_start_group == 0] <- NA template_end_group <- template_start_group[,2:(ncol(template_start_group)-1)] + start_group$start template_end_group <- data.frame(group = order,template_end_group) template_end_group_long <- template_end_group %>% tidyr::gather(key = "variable",value = "value",-group) names(template_end_group_long)[3] <- "end" template_end_group_long$start <- rep(start_group$start,length(unique(template_end_group_long$variable))) template_end_group_long <- template_end_group_long %>% na.omit() template_end_group_long$length <- sum(start_group$Freq) template_end_group_long <- template_end_group_long[,c(2,5,4,3,1)] template_end_group_long$group <- factor(template_end_group_long$group,levels = order)
unit_1 <- create_unit(data = df_group, key = "E1_template_types", type = "TREE_COLORS", subtype = "clade", line_type = c(rep("normal",4),"dashed"), size_factor = 5, tree = tree) unit_2 <- create_unit(data = df_count, key = "E2_parameter_number", type = "DATASET_SYMBOL", position = 1, tree = tree) unit_3 <- create_unit(data = df_rename, key = "E3_template_rename", type = "LABELS", tree = tree) unit_4 <- create_unit(data = template_groups, key = "E4_template_name_color", type = "DATASET_STYLE", subtype = "label", position = "node", size_factor = 1.5, tree = tree) unit_5 <- create_unit(data = tab_tmp_connect[,1:4], key = "E5_template_similarity", type = "DATASET_CONNECTION", tree = tree) unit_6 <- create_unit(data = template_end_group_long, key = "E6_template_parameters_structure", type = "DATASET_DOMAINS", tree = tree)
unit_2@specific_themes$basic_plot$size_max <- 40 unit_5@specific_themes$basic_plot$size_max <- 100 unit_8@specific_themes$heatmap$color$min <- "#ffd966" unit_8@specific_themes$heatmap$color$max <- "#cc0000" unit_8@specific_themes$heatmap$use_mid <- 0 unit_9@specific_themes$basic_plot$size_max <- 100
hub <- hub + unit_1 + unit_2 + unit_3 + unit_4 + unit_5 + unit_6 + unit_7 + unit_8 + unit_9 write_hub(hub,tempdir())