【R语言】R包-探索ggtree进化树美化

文章目录

    • R包-探索ggtree进化树美化
    • 分析流程
    • 1. 关于包的下载
    • 2. 绘制一个基本的进化树图
    • 3. 添加样本名称
    • 3. 添加节点+节点高亮
    • 4. 添加分组
    • 小结

R包-探索ggtree进化树美化

提示:基于nwk文件进行进化树美化,如更换进化树格式,添加分组、节点、遗传距离等

分析流程

1. 关于包的下载

官网ggtree.html

2. 绘制一个基本的进化树图

#下载软件包
BiocManager::install("ggtree")
# 创建模拟数据
library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)
ggtree(tree)

基本进化图

3. 添加样本名称

ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab()
#branch.length = "none",表示标签对齐;
#layout,设置树型;
#geom_tiplab() 显示分支名称样本名称

在这里插入图片描述

3. 添加节点+节点高亮

library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)
ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab2(size = 5, color = "seagreen") +     # 样本名称字体大小、颜色
  geom_text2(aes(label=node), size = 3, color = "red") +   #加节点
  geom_hilight(node = 59, fill = "orange", alpha = 0.5)   #节点高亮

在这里插入图片描述

4. 添加分组

#参数
library(ggtree)
set.seed(1234)
tr=rtree(50)
geom_strip = function(...) geom_cladelabel(label="", barsize=5, align=T, offset=.5, ...)
ggtree(tr) + geom_strip(58, color='red') + geom_strip(84, color='green') + geom_strip(52, color='blue')

#测试 
library(ggtree)
set.seed(2017-02-16)
tree <- rtree(50)

ggtree(tree, branch.length = "none", layout = "circular") +
  geom_tiplab2(size = 3, color = "seagreen") +     # 样本名称字体大小、颜色
  geom_text2(aes(label=node), size = 2, color = "red") +   #加节点
  geom_hilight(node = 59, fill = "orange", alpha = 0.5) +  #节点高亮 node = 59 节点名称
  geom_strip(59, color = "steelblue",
             hjust = "center", 
             angle = 30, 
             extend = 0.2)
 # 其中,geom_tiplab2设置分支名称的标签;
 # geom_text2显示节点名称;geom_hilight 节点高亮;
 # geom_strip对分组进行标注。

在这里插入图片描述

在这里插入图片描述

小结

基于该包,设置好参数,可以批量优化,比在线网站方便的多,但绘制无根树,一直报错,待探索完分享大家

参考来源
1. 详细说明及示例数据参考:4 Phylogenetic Tree Visualization
2. 参考使用Y叔神包ggtree进行基因家族基因进化树构建
3. 使用R包ggtree进行进化树的绘制与美化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/446797.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大厂AI课学习笔记NO.78】智能芯片产业人才能力图谱

有志于从事智能芯片产业的朋友&#xff0c;可以参考下上面的图谱。 比如C站的程序猿很多&#xff0c;那么技能能力中&#xff0c;你要掌握的就包括C/C、Python、Bash等常用的编程语言。 还要熟悉TensorFlow、PyTorch等主流的深度学习框架。 这两个框架&#xff0c;我们都介绍…

SpringSecurity两种验证方式及调用流程

一、HttpBasic方式 <security:http-basic/> 二、Formlogin方式 <security:form-login login-page"/userLogin" /> 三、SpringSecurity执行流程

论文阅读《FENET: FOCUSING ENHANCED NETWORK FOR LANE DETECTION》

ABSTRACT 受人类驾驶专注力的启发&#xff0c;这项研究开创性地利用聚焦采样&#xff08;Focusing Sampling&#xff09;、部分视野评估&#xff08;Partial Field of View Evaluation&#xff09;、增强型 FPN 架构和定向 IoU 损失&#xff08;Directional IoU Loss&#xff…

uniapp:小程序数字键盘功能样式实现

代码如下&#xff1a; <template><view><view><view class"money-input"><view class"input-container" click"toggleBox"><view class"input-wrapper"><view class"input-iconone"…

01hadoop概念

大数据与Hadoop 大数据指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合&#xff0c;需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 Hadoop是什么&#xff1f; Hadoop是一种分析和处理海量数据的…

OD_2024_C卷_200分_8、攀登者2【JAVA】【逻辑分析】

package odjava;import java.util.Arrays; import java.util.HashSet; import java.util.Scanner;public class 八_攀登者2 {// 输入处理public static void main(String[] args) {Scanner sc new Scanner(System.in);int[] heights Arrays.stream(sc.nextLine().split("…

驱动开发常见的通信接口介绍

本文将为您详细讲解驱动开发中常见的通信接口&#xff0c;以及它们的特点、区别和应用场景。在操作系统和硬件设备之间&#xff0c;通信接口扮演着至关重要的角色&#xff0c;它们定义了数据如何在软件和硬件之间传输和交互。 1. 串行通信接口&#xff08;Serial Communication…

防御保护作业六

实验拓扑图&#xff1a; 配置过程&#xff1a; FW1 自定义服务ike 创建nat策略&#xff0c;让10.0.2.0/24访问192.168.1.0/24的流量不进行nat转换,并将这条策略置于nat策略最上面&#xff0c;优先匹配 FW3 测试

CodeReview 规范及实施

优质博文&#xff1a;IT-BLOG-CN 一、为什么需要CodeReview 随着业务压力增大&#xff0c;引发代码质量下降&#xff0c;代码质量的下降导致了开发效率的降低&#xff0c;维护成功高等问题&#xff0c;开发效率下降后又加重了业务压力&#xff0c;最终陷入了死亡三角的内耗之…

Shell常用脚本:文件或目录一键同步到多台服务器

注意&#xff1a; 将本地文件&#xff0c;同步到【/opt/module/script/xsyncByFileIp.txt】里面的目标机器 xsyncByFile.sh #!/bin/bash# 入参参数个数 argsCount$#if(($argsCount0)); thenecho "同步失败&#xff1a;请输入待同步的文件或者目录" exit; fiecho &q…

【大厂AI课学习笔记NO.68】开源和开源发展情况

开源即源代码公开&#xff0c;任何人能获取源代码&#xff0c;查看、修改、分发他们认为合适的代码。 依托同行评审和社区生成&#xff0c;旨在以分散、协作的方式开发。 我们曾经很详细的讨论过开源协议的问题&#xff0c;详细可以参考我的文章&#xff1a; https://giszz.…

OpenCV的常用数据类型

OpenCV涉及的常用数据类型除包含C的基本数据类型,如&#xff1a;char、uchar&#xff0c;int、unsigned int,short 、long、float、double等数据类型外, 还包含Vec&#xff0c;Point、Scalar、Size、Rect、RotatedRect、Mat等类。C中的基本数据类型不需再做说明下面重点介绍一下…

flink重温笔记(十四): flink 高级特性和新特性(3)——数据类型及 Avro 序列化

Flink学习笔记 前言&#xff1a;今天是学习 flink 的第 14 天啦&#xff01;学习了 flink 高级特性和新特性之数据类型及 avro 序列化&#xff0c;主要是解决大数据领域数据规范化写入和规范化读取的问题&#xff0c;avro 数据结构可以节约存储空间&#xff0c;本文中结合企业真…

iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护

iOS17.4这两天已经正式发布&#xff0c; 在iOS 17.4版本中新增了一个名为"失窃设备保护"的功能&#xff0c;并提供了一个"需要安全延迟"的选项。 iOS17.4获取UDID安装mobileconfig描述文件失败 提示“安全延迟进行中”问题 | 失窃设备保护 当用户选择启用…

贝叶斯优化的门控循环神经网络BO-GRU(时序预测)的Matlab实现

贝叶斯优化的门控循环神经网络&#xff08;BO-GRU&#xff09;是一种结合了贝叶斯优化&#xff08;Bayesian Optimization, BO&#xff09;和门控循环单元&#xff08;Gated Recurrent Unit, GRU&#xff09;的模型&#xff0c;旨在进行时序预测。这种模型特别适用于时间序列数…

Linux:kubernetes(k8s)lable和selecto标签和选择器的使用(11)

通过标签是可以让我们的容器和容器之间相互认识&#xff0c;简单来说一边打了标签&#xff0c;一边使用选择器去选择就可以快速的让他们之间耦合 定义标签有两种办法&#xff0c;一个是文件中&#xff0c;一个是命令行里 我们在前几章编进文件的时候里面都有lable比如 这个就是…

OpenCV读取tensorflow神经网络模型:SavedModel格式转为frozen graph的方法

本文介绍基于Python的tensorflow库&#xff0c;将tensorflow与keras训练好的SavedModel格式神经网络模型转换为frozen graph格式&#xff0c;从而可以用OpenCV库在C 等其他语言中将其打开的方法。 如果我们需要训练并使用一个神经网络模型&#xff0c;一般情况下都是首先借助Py…

[mmucache]-ARMV8-aarch64的虚拟内存(mmutlbcache)介绍-概念扫盲

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么&#xff1f; 2、TLB的entry里都是有什么? 3、MMU操作…

QT给QLabel设置背景颜色

1.选中label 2.右键点击"改变样式表" 3.填写样式&#xff0c;点击apply,ok 注意 #{QLabel名称}&#xff0c;例如名称是label就是QLabel#label

opencv人脸识别实战3:多线程和GUI界面设计(PyCharm实现)

一、多线程设计 1、在一个新线程中调用了 scan_face() 函数来进行人脸识别操作。根据识别结果&#xff0c;更新界面显示结果&#xff0c;最后释放资源。 def f_scan_face_thread():var.set(刷脸)ans scan_face()if ans 0:print("最终结果&#xff1a;无法识别")va…