文章MSM_metagenomics(九):偏差图、UpSet图、棒棒糖图

news2024/11/24 20:43:59

欢迎大家关注全网生信学习者系列:

  • WX公zhong号:生信学习者
  • Xiao hong书:生信学习者
  • 知hu:生信学习者
  • CDSN:生信学习者2

介绍

本教程旨在通过不同的图表来可视化微生物组的生物标志物。

数据

大家通过以下链接下载数据:

  • 百度网盘链接:https://pan.baidu.com/s/1f1SyyvRfpNVO3sLYEblz1A
  • 提取码: 请关注WX公zhong号_生信学习者_后台发送 复现msm 获取提取码

Deviation plot

R packages required

  • ggpubr

在本教程中,我们将使用R包ggpubr中的ggdotchart 函数来可视化与MSM个体中性伴侣数量相关的LefSe生物标志物: biomarkers: ./data/npartners_lefse_deviation_plot.tsv

  • 加载biomarkers: ./data/npartners_lefse_deviation_plot.tsv.
npartner_lefse_df <- data.frame(read.csv("./data/npartners_lefse_deviation_plot.tsv", header = TRUE, sep = "\t"))
  • 画图
library(ggpubr)

ggdotchart(npartner_lefse_df, x = "feature", y = "lda_score",
           color = "class",
           palette = c("#0073C2FF", "#0073C2FF")
           sorting = "descending",                       
           add = "segments",                            
           add.params = list(color = "lightgray", size = 1.5),
           group = "class",             
           rotate = T,
           dot.size = 4,         
           shape = "class",   
           ggtheme = theme_pubr()) +  
  theme(text = element_text(size = 13, family = "Arial")) +  
  scale_x_discrete(position = "top")

UpSet plot

R packages required

  • ComplexHeatmap

在这一部分,我们将向您展示如何使用UpSet图来可视化与多个群体相关的LefSe生物标志物。我们的数据data: ./data/UpSet_matrix1.tsv包含了与性行为相关的LefSe生物标志物,包括接受肛交RAI: Yes (receiving anal intercourse), having >3 sexual partners (# partners: >3), practicing oral sex (Oral sex: Yes), diagnosed with sexually transmitted infection (STI: Positive), condomless during RAI (Condom use (during RAI): No)。首先加载我们的数据 data: ./data/UpSet_matrix1.tsv

library(ComplexHeatmap)

upset_matrix <- data.frame(read.csv("./data/UpSet_matrix1.tsv",
                                    header = TRUE,
                                    sep = "\t"))
rownames(upset_matrix) <- upset_matrix[, colnames(upset_matrix)[[1]]]
upset_matrix[, colnames(upset_matrix)[[1]]] <- NULL
upset_matrix <- upset_matrix[as.logical(rowSums(upset_matrix != 0)),] # This step is optional.

一旦数据加载完成,我们可以使用在ComplexHeatmap包中实现的UpSet()函数来绘制一个UpSet图

comb <- make_comb_mat(upset_matrix, mode = "intersect") # generate combination data
c_size <- comb_size(comb) # find combination sizes for setting order later
sets <- c("RAI.yes", "X.partners.3", "Oral.yes",  "STI.positive", "condom.no") # manually set the set order

upset_plot <- ComplexHeatmap::UpSet(
      comb,
      comb_col = "#fb5238", # the color for combination columns
      bg_col = "#ffbeab", # the color for background of columns 
      bg_pt_col = "#ffdfd5", # the color for background of column patches
      set_order = sets,
      comb_order = order(c_size),
      top_annotation = HeatmapAnnotation(
          "# shared taxonomic biomarkers" = anno_barplot(c_size,
                                                         ylim = c(0, max(c_size)*1.1),
                                                         border = FALSE,
                                                         gp = gpar(fill = "#fb5238", col = "#fb5238"),
                                                         height = unit(8, "cm")),
          annotation_name_side = "left",
          annotation_name_rot = 90),
          right_annotation = NULL)
  • 生成了基本框架之后,接下来我们将使用 decorate_annotation函数在条形图上显示值:
upset_plot <- draw(upset_plot)
col_order <- column_order(upset_plot)

decorate_annotation("# shared taxonomic biomarkers", {
  grid.text(c_size[col_order], x = seq_along(c_size), y = unit(c_size[col_order], "native") + unit(2, "pt"), 
            default.units = "native", just = c("left", "bottom"), 
            gp = gpar(fontsize = 6, col = "#404040"), rot = 45)
})

类似的代码可以用于另一组与特定条件或群体相关的LefSe生物标志物: RAI: No (not receiving anal intercourse), having 0-3 sexual partners (# partners: 0-3), not practicing oral sex (Oral sex: No), free from sexually transmitted infection (STI: Negative), use condom during RAI (Condom use (during RAI): Yes).

请添加图片描述

Lollipop plot

R packages required

  • ggpubr

在最后一节中,我们将使用棒棒糖图来展示与不同性行为相关的共享生物标志物的数量。这里,您可以直接从我们准备好的文件shared_biomarkers.tsv: ./data/shared_biomarkers.tsv开始,该文件包含了不同性行为(分类为风险增加和风险减少)共享的LefSe生物标志物的数量。加载shared_biomarkers.tsv: ./data/shared_biomarkers.tsv

library(ggpubr)
shared_biomarkers <- data.frame(read.csv("./data/shared_biomarkers.tsv", header = TRUE, sep = "\t"))

一旦数据加载完成,我们使用在ggpubr包中实现的 ggdotchart函数来进行可视化。这个函数非常适合创建点状图,可以用来展示不同组别或条件下的数值,例如生物标志物的丰度或数量。通过 ggdotchart,您可以轻松地添加误差线、调整点的大小和颜色,以及自定义图表的其他视觉元素,以更清晰地传达数据信息。

ggdotchart(shared_biomarkers, x = "group.number", y ="shared.biomarker.number",
           color = "type", palette = c("#fb5238", "#469537"), size = 5, 
           add = "segment",
           shape = 19,
           group = "cate",
           add.params = list(color = "lightgray", size = 2.5),
           position = position_dodge(0.25),
           ggtheme = theme_pubclean()) + 
  geom_text(aes(label = n_common_sps, group = cate), 
      position = position_dodge(0.8),
      vjust = -0.5, size = 3.5)
请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05眼动识别软件详情2波形优化-滤波

对应视频链接点击直达 01项目点击下载&#xff0c;可直接运行&#xff08;含数据库&#xff09; 05眼动识别软件详情2 对应视频链接点击直达期望的数据展示数据波形对比如何实现几种常用滤波介绍维纳滤波巴特沃斯滤波器中值滤波排序滤波 推荐 结语其他以下是废话 原始数据的波…

大型工业烤箱工作原理及结构特点有哪些

在工业领域&#xff0c;大型工业烤箱以其高效的干燥能力和稳定的性能得到了广泛的应用。无论是电子产品的生产&#xff0c;还是化工材料的制备&#xff0c;甚至是食品加工&#xff0c;大型工业烤箱都发挥着不可或缺的作用。那么&#xff0c;大型工业烤箱是如何工作的?它的结构…

CSDN 自动上传图片并优化Markdown的图片显示

文章目录 完整代码一、上传资源二、替换 MD 中的引用文件为在线链接参考 完整代码 完整代码由两个文件组成&#xff0c;upload.py 和 main.py&#xff0c;放在同一目录下运行 main.py 就好&#xff01; # upload.py import requests class UploadPic: def __init__(self, c…

SpringSecurity6从入门到实战之自定义登录页面

SpringSecurity6从入门到实战之自定义登录页面 在使用SpringSecurity进行认证操作的时候,可以发现默认提供的登录页面比较简陋.那么我们能否对登录页面进行自定义配置呢?接下来开始讲解应该如何进行配置 自定义登录页面流程 引入模板依赖 由于自定义登录页面会使用到前端相关…

树与图的深度优先遍历——AcWing.846树的重心

树与图的深度优先遍历 定义 从图的某个顶点出发&#xff0c;沿着一条路径尽可能深地访问图中顶点。 运用情况 图的连通性判断。寻找特定路径或回路。 注意事项 要标记已访问的节点&#xff0c;以避免重复访问导致死循环。对于有向图和无向图可能需要不同的处理。 解题思…

mysql数据库中触发器的使用

一、修改分隔符号 delimiter $$或者是//或者~~都行 二、创建触发器函数名称 create trigger 函数名 三、什么样的操作出发&#xff0c;操作那个表 after&#xff1a;.....之后触发 befor&#xff1a;.....之前触发 insert&#xff1a; 插入触发 update&#xff1a;修改被触发 d…

鸿蒙APP开发的技术难点

鸿蒙APP开发的技术难点主要体现在以下几个方面&#xff0c;鸿蒙APP开发是一项技术难度较高的工作&#xff0c;需要开发者具备扎实的编程基础、分布式开发能力和学习新技术的意愿。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 多…

充电宝什么牌子好?买多少毫安充电宝合适?这几个误区别踩!

在选择充电宝时&#xff0c;很多消费者常常被各种品牌和容量规格搞得眼花缭乱。不少人认为&#xff0c;容量越大越好&#xff0c;但事实并非如此。其实&#xff0c;根据日常使用需求&#xff0c;选择10000毫安的充电宝已经足够应对大多数情况。10000毫安的充电宝不仅能够满足手…

css-padding

文章目录 paddingpadding与元素的尺寸对于block块状水平元素复杂关系影响元素尺寸不影响元素尺寸最小宽度显示 关系总结 对于inline内联水平元素复杂关系水平padding影响尺寸垂直padding影响背景色区域 padding负值和百分比值负值百分比值inline水平元素的padding的百分比值空i…

WPF 深入理解三、控件结构

控件结构 演示&#xff1a; 思考疑问 为什么有一些元素是Content显示内容,而一些元素是Text显示内容? 凡是继承于Contentcontrol的控件,他们的定义内容用Content&#xff0c;除了TextBlock使用的是Text,大部分都是Content设置其显示内容。 为什么有一些元素有Padding,而一些元…

铁砧帝国延迟高?铁砧帝国延迟严重这样解决

铁砧帝国是一款少见的多人在线游戏&#xff0c;游戏能支持上千名玩家建立帝国并互相作战。而且这款游戏在细节方面也做足准备&#xff0c;设计了攻城梯和攻城锤等设备&#xff0c;以攻破坚固的城墙和要塞&#xff0c;不过具体获取方法就需要玩家自己摸索。因为最近开放了测试申…

Vue3基础介绍

文章目录 一、简介1、简介2、性能提升3、源码升级4、拥抱TypeScript5、新特性 二、创建Vue3.0工程1、使用vue-cli创建2、使用vite创建 三、分析工程结构1、main.js2、组件中 一、简介 1、简介 2020年9月18日&#xff0c;Vue.js发布3.0版本&#xff0c;代号(One Piece)海贼王 …

K8sGPT+Ollama:免费的 Kubernetes 自动化诊断方案

周末检查博客草稿&#xff0c;发现了这篇。记得当时是与 Kubernetes 自动化诊断工具&#xff1a;k8sgpt-operator 一起写的&#xff0c;算算过去了一年之久&#xff0c;这拖延症也算是病入膏肓了。原本想使用 K8sGPT LocalAI 的方案&#xff0c;由于之前试过 Ollama&#xff0…

OpenMMlab AI实战营第五、六期培训

OpenMMlab AI实战营第五、六期培训 OpenMMlab实战营第五、六次课2023.2.7-9学习参考第五次课笔记第六次课笔记一、什么是语义分割二、语义分割 v.s. 实例分割 v.s. 全景分割三、语义分割经典模型1.语义分割的基本思路2.**复用卷积计算**3.全连接层的卷积化4.预测图的升采样5.双…

Stable Diffusion 3 Medium 正式开源,用户对此产品评价如何?

前两天 Stability.AI 终于开源了 Stable Diffusion 3&#xff0c;虽然只是中杯的 Medium 版本&#xff0c;没有放出当初宣布的 8B 版本[1]&#xff0c;但也在很多方面取得了进步。本想第一时间尝鲜测试&#xff0c;但这几天出差在外&#xff0c;使用颇不方便。 正好老朋友揽睿…

HTTP/3 协议学习

前一篇&#xff1a; HTTP/2 协议学习-CSDN博客 HTTP/3 协议介绍 HTTP/3 是互联网上用于传输超文本的协议 HTTP 的第三个主要版本。它是 HTTP/2 的后继者&#xff0c;旨在进一步提高网络性能和安全性。HTTP/3 与前两个版本的主要区别在于它使用了一个完全不同的底层传输协议—…

安泰电压放大器的选型原则是什么

电压放大器是电子电路中常用的一种器件&#xff0c;主要用于放大输入电压信号。在选型电压放大器时&#xff0c;需要考虑以下几个原则。 根据应用需求确定放大倍数。放大倍数是指输出电压与输入电压之间的倍数关系&#xff0c;也称为增益。不同的应用场景对放大倍数的要求不同&…

3个火火火的AI项目,开源了!

友友们&#xff0c;今天我要给你们安利三个超酷的开源项目&#xff0c;它们都和AI有关&#xff0c;而且每一个都能让你的日常生活变得更加有趣和便捷&#xff01;(最近AI绘图又又超神了&#xff0c;分享以下美图养眼) 01 字节出品&#xff0c;文字转语音Seed-TTS 字节推出了一…

Ubuntu,Centos,Linux服务器安装Mellanox MCX653105A IB网卡HCA卡驱动

Mellanox 官方驱动下载地址 https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 选择对应操作系统 官方链接速度比较慢&#xff0c;推荐个友商的下载地址 https://support.xfusion.com/support/#/zh/rack-servers/2288h-v5-pid-21872244/software …

【算法专题--链表】K个一组翻转链表 -- 高频面试题(图文详解,小白一看就懂!!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 -- 采用哨兵位头节点 &#x1f95d; 什么是哨兵位头节点&#xff1f; &#x1f34d; 案例图解 四、总结与提炼 五、共勉 一、前言 K个一组翻转链表 这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典…