itol.toolkit包让iTOL使用更丝滑!

简介: itol.toolkit包让iTOL使用更丝滑!

工欲善其事,必先利其器

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())



相关文章
|
IDE Linux 开发工具
如何在Linux运行RStudio Server并实现Web浏览器远程访问
如何在Linux运行RStudio Server并实现Web浏览器远程访问
796 0
|
8月前
|
弹性计算 人工智能 Cloud Native
阿里云无门槛和有门槛优惠券解析:学生券,满减券,补贴券等优惠券领取与使用介绍
为了回馈用户与助力更多用户节省上云成本,阿里云会经常推出各种优惠券相关的活动,包括无门槛优惠券和有门槛优惠券。本文将详细介绍阿里云无门槛优惠券的领取与使用方式,同时也会概述几种常见的有门槛优惠券,帮助用户更好地利用这些优惠,降低云服务的成本。
1330 133
|
7月前
|
机器学习/深度学习 人工智能 编解码
专用蚊子苍蝇检测数据集(含背景样本):适用于目标检测任务
本数据集专为蚊子、苍蝇目标检测打造,含1500张图片(蚊子、苍蝇各600+,背景200+),标注规范,采用YOLO格式,适配YOLOv8等模型。涵盖真实场景干扰,提升模型泛化能力,适用于智能家居、公共卫生、工业防控及AI教学科研,助力高效精准虫害识别系统开发。
专用蚊子苍蝇检测数据集(含背景样本):适用于目标检测任务
|
10月前
|
机器学习/深度学习 存储 PyTorch
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
Neural ODE将神经网络与微分方程结合,用连续思维建模数据演化,突破传统离散层的限制,实现自适应深度与高效连续学习。
894 3
Neural ODE原理与PyTorch实现:深度学习模型的自适应深度调节
|
机器学习/深度学习 人工智能 自然语言处理
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
FullStack Bench是由字节跳动豆包大模型团队与M-A-P社区联合推出的全新代码评估基准,专注于全栈编程和多语言编程能力评估。该基准覆盖超过11种真实编程场景,包含3374个问题,涉及16种编程语言,旨在更有效地衡量大模型在现实世界中的代码开发能力。
714 5
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
基因组组装:Hifiasm 使用教程
基因组组装:Hifiasm 使用教程
1882 1
|
存储 关系型数据库 Linux
在CentOS 7上安装和使用Docker的方法
在CentOS 7上安装和使用Docker的方法
1753 1
|
数据可视化 数据挖掘 Python
|
机器学习/深度学习 算法 数据可视化
突破传统生存分析:利用随机森林进行个体化风险预测
突破传统生存分析:利用随机森林进行个体化风险预测
1853 0
突破传统生存分析:利用随机森林进行个体化风险预测
|
数据库 开发工具 数据中心
宏基因组分箱流程MetaWRAP安装和数据库配置
宏基因组分箱流程MetaWRAP安装和数据库配置
3381 0
宏基因组分箱流程MetaWRAP安装和数据库配置