一行代码绘制高分SCI火山图
一、概述
在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」!
经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包——ggVolcano, 它是一个基于R语言和ggplot2绘图包开发的生物信息学数据可视化工具。它可以用于绘制火山图(Volcano plot),帮助研究者分析高通量实验数据,如基因表达谱或蛋白质组学数据,以识别差异表达或差异富集的基因或蛋白质。
二、数据集
1. 安装及使用
由于无法直接安装ggVolcano,我们需要下载devtools,通过devtools直接从github下载,代码如下:
# 下载器
install.packages("devtools")
library(devtools)
# 火山图
devtools::install_github("BioSenior/ggvolcano")
library(ggvolcano)
# 拼图
install.packages("patchwork")
library(patchwork)
# 渐变色色彩修改
install.packages("RColorBrewer")
library(RColorBrewer)
2. 读取数据
首先,我们需要读取aSAH数据集,查看数据集信息
data(deg_data)
head(deg_data,3)
数据集展示
row baseMean log2FoldChange lfcSE stat pvalue padj
GCR1 GCR1 7201.5782 2.244064 0.2004959 11.19256 4.434241e-29 2.153711e-25
OPI10 OPI10 1009.4171 -2.257454 0.2096469 -10.76789 4.880607e-27 1.185255e-23
AGA2 AGA2 249.1173 3.829474 0.3623263 10.56913 4.143136e-26 6.707736e-23
三、基础用法
ggVolcano绘制的火山图可以根据指定的差异表达或统计显著性阈值,将基因或蛋白质标记为显著差异的或富集的(例如p值小于0.05或fold change大于2),并且根据其差异表达或显著性水平值的高低,用颜色或大小进行编码。此外,它还支持在图中显示用户自定义的标注、注释或基因集富集分析结果,以帮助观察者更好地理解和解释结果。该包主要配置了三个函数:
1. 普通火山图:ggvolcano
- 方法参数解释:
result: DEG结果数据。 x: 对应于x轴的列名,默认为“log2FoldChange”。 y: 对应于y轴的列名,默认为“padj”。 pointSize: 点的大小。 pointShape: 点的形状。 fills: 包含点的填充颜色的向量。 colors: 包含点的画笔颜色的向量。 x_lab: x轴的标签。 y_lab: y轴的标签。 legend_title: 图例的标题。 legend_position: 图例的位置。您可以从“UL”–左上,“UR”–右上,“DL”–左下和“DR”–右下中选择一个位置。 log2FC_cut: log2FC的截止值。 FDR_cut: FDR的截止值。 add_line: 一个逻辑值,表示是否添加虚线,默认值为TRUE。 add_label: 一个逻辑值,表示是否添加基因标签,默认值为TRUE。 label: 对应于标签的列名。 label_number: 您想在图中显示多少基因标签。 custom_label: 包含您感兴趣的基因名称的向量,您想要添加到图中。 output: 一个逻辑值,表示是否保存图片,默认值为TRUE。 filename: 如果output=TRUE,请设置一个文件名。
- 代码演示
data <- add_regulate(deg_data, log2FC_name="log2FoldChange",fdr_name = "padj",log2FC = 1, fdr = 0.05) ggvolcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE)
- 火山图样式修改
p1 <- ggvolcano(data, x = "log2FoldChange", y = "padj",fills = c("red","green","blue"),colors = c("red","green","blue"),label = "row", label_number = 8, output = FALSE)p2 <- ggvolcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 8, output = FALSE,legend_position="DR")+ggsci::scale_color_aaas()+ggsci::scale_fill_aaas()
p1|p2
2. 渐变色火山图:gradual_volcano
- 方法参数解释:
result: DEG结果数据。 x: 对应于x轴的列名,默认为“log2FoldChange”。 y: 对应于y轴的列名,默认为“padj”。 pointSize: 点的大小。 pointShape: 点的形状。 fills: 包含点的填充颜色的向量。 colors: 包含点的画笔颜色的向量。 x_lab: x轴的标签。 y_lab: y轴的标签。 legend_title: 图例的标题。 legend_position: 图例的位置。您可以从“UL”–左上,“UR”–右上,“DL”–左下和“DR”–右下中选择一个位置。 log2FC_cut: log2FC的截止值。 FDR_cut: FDR的截止值。 add_line: 一个逻辑值,表示是否添加虚线,默认值为TRUE。 add_label: 一个逻辑值,表示是否添加基因标签,默认值为TRUE。 label: 对应于标签的列名。 label_number: 您想在图中显示多少基因标签。 custom_label: 包含您感兴趣的基因名称的向量,您想要添加到图中。 output: 一个逻辑值,表示是否保存图片,默认值为TRUE。 filename: 如果output=TRUE,请设置一个文件名。
- 代码演示
gradual_volcano(deg_data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE,legend_title="")
- 火山图样式修改
这里不能直接修改颜色了,需要引入RColorBrewer
包,用来调整色彩。
p1 <- gradual_volcano(data, x = "log2FoldChange", y = "padj",fills = brewer.pal(5, "RdYlBu"),colors = brewer.pal(10, "RdYlBu"),label = "row", label_number = 10, output = FALSE,legend_title="")p2 <- gradual_volcano(data, x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE,legend_title="")+ggsci::scale_color_gsea()+ggsci::scale_fill_gsea()
p1|p2
3. GO通路火山图:term_volcano
参数和样式修改方法和上述两个方法类似,不再赘述,接下来展示基础使用方法:
data("term_data")term_volcano(deg_data, term_data,x = "log2FoldChange", y = "padj",label = "row", label_number = 10, output = FALSE,legend_background_fill = "green")
本文由博客一文多发平台 OpenWrite 发布!
相关文章:

一行代码绘制高分SCI火山图
一、概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包…...

chmod是什么?cron是什么?
chmod 和 cron 是 Unix 和类 Unix 系统(如 Linux)的常用命令。 chmod:这是一个命令行工具,用于更改文件或目录的权限。在 Unix 和类 Unix 系统中,每个文件和目录都有一个访问权限集,该集定义了哪些用户可以…...

励志长篇小说《周兴和》书连载之三 十五岁时做父亲
十五岁时做父亲 周兴和的父亲一天天更衰老了。 他母亲身体也越来越是消瘦。近一两年来,她常常感到全身无力、胸口发堵、心慌气紧、吞咽困难,做什么事都力不从心了。 这时,他母亲不知是心血来潮,还是她预感到了什么,出…...

文件一直处于修改状态 git checkout 无法还原的问题解决方法
问题描述 最近在 RT-Thread 时,使用 Git 回退版本验证问题,后来 git pull 拉取最新代码后,发现里面有几个文件,一直为【修改】状态,并且无法还原,git checkout xxx git reset --hard 都用了,依旧…...

Julia入门-3、Julia包管理工具
文章目录 0、Julia 的包管理工具是Pkg1、使用Julia包管理工具过慢 0、Julia 的包管理工具是Pkg Julia 的包管理工具是Pkg,可以用于安装、更新、卸载和管理 Julia 中的软件包。以下是一些常用的 Pkg命令: Pkg.add("Package"):安装一…...

选择正确的 Azure 存储服务
Azure Storage 是 Microsoft 基于云的存储解决方案,提供了全面的现代存储服务。在本文中,我们将探讨各种可用的服务及其特定用例,使您能够选择最适合您需求的服务。 Azure Blob 存储 Azure Blob 存储是一项功能强大且可缩放的存储服务&…...

隐语团队研究成果再创佳绩,两篇论文分别被USENIX ATC‘23和IJCAI‘23接收!
“USENIX ATC年度技术会议”(USENIX ATC,USENIX Annual Technical Conference)是计算机系统领域的顶级学术会议之一。本年度 USENIX ATC’23将于7月10日至12日在美国波士顿召开。本次会议共投稿353篇论文,接收65篇,…...

美团数据指标体系搭建实战
在美团商家版中,美团为商家搭建的数据指标体系,很好的指导了商家的经营发展方向以及提供经营状况概览。 本文通过体验美团商家版经营数据子功能,对美团商家版数据指标体系搭建的情况做出一个概述。 美团商家版的店铺子功能下,…...

prometheus实战之五:飞书通知告警
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《prometheus实战》系列链接 prometheus实战之一:用ansible部署prometheus实战之二:使用常见指标prometheus实战之三:告警…...

【华为OD机试真题】不含101的数(python版)100%通过率 超详细代码注释 代码解读
【华为OD机试真题 2022&2023】真题目录 @点这里@ 【华为OD机试真题】信号发射和接收 &试读& @点这里@ 【华为OD机试真题】租车骑绿道 &试读& @点这里@ 不含101的数 时间限制:1s空间限制:256MB限定语言:不限 题目描述: 小明在学习二进制时,发现了一…...

基于AT89C52单片机的交通信号灯设计
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87772657 源码获取 主要内容: 本次设计所提出的一种基于单片机技术的简易计算器的方案,能更好的解决计算机计算的问题,随着数字生活的到来&…...

chatGPT4.0-基于Python+Appium的APPUI关键字驱动自动化测试框架demo
以下是一个简单的UI关键字驱动+数据驱动的自动化测试框架代码示例,使用Python和Appium进行移动应用测试。我们将使用openpyxl库读取Excel数据,使用Appium-Python-Client库进行UI自动化测试。 首先,请确保已安装以下库: pip install openpyxl pip install Appium-Python-C…...

C++模板进阶
一、非类型模板参数 模板参数分为:类型形参、非类型形参 类型形参:class与typename都是参数类型 非类型形参:用一个常量作为模板的一个参数,一般是整型常量 #include<iostream> #include<array> using namespace …...

【人力资源管理】第4集 免费开源ERP: Odoo 16 Appraisal员工绩效评估 构建一体化企业人力资源管理
文章目录 前言一、概览二、主要功能1.设置定期的员工评估2.构建正确的评估3.设计您自己的调查4.自动评估过程 总结 前言 在员工工作中创建评估。同时审查员工表现。 一、概览 员工评价 评估内容 目标制定 评价指标 评价分析 二、主要功能 1.设置定期的员工评估 强化贵公司的…...

「AI 孙燕姿」翻唱华语乐坛歌曲爆红全网,AI 翻唱将带来哪些影响?是否会有版权等问题?
在某视频平台上,“AI孙燕姿”成了新网红,它翻唱过周杰伦的《发如雪》、翻唱过郭顶的《水星记》、翻唱过赵雷的《我记得》,受到了网友的追捧,甚至有网友宣布“这是2023年最火的声音”。 网上除了AI孙燕姿,还有AI周杰伦…...

路径规划算法:基于灰狼优化的路径规划算法- 附代码
路径规划算法:基于灰狼优化的路径规划算法- 附代码 文章目录 路径规划算法:基于灰狼优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法灰狼…...

推荐系统综述
目录 推荐系统架构1、传统推荐方式1.1 基于内容推荐(Content-Based recommendation,CB)1.2 协同过滤推荐(Collaborative Filtering recommendation, CF)1.2.0 UserCF举例:1. 2. 1 基于内存的推荐…...

SQLIST数据库编程
目录 数据库简介 1.常用数据库 2. SQLite基础 3.创建SQLite数据库 虚拟中sqlite3安装 基础SQL语句使用 sqlite3编程 数据库简介 1.常用数据库 大型数据库 :Oracle 中型数据库 :Server是微软开发的数据库产品,主要支持windows平台 小型数据库…...

vue2中操作对象的方法
在 Vue2 中,我们可以使用以下方法来操作对象: Vue.set(object, key, value):用于在 Vue 实例中添加响应式属性。它会确保添加的属性是响应式的,并触发视图更新。 Vue.delete(object, key):用于从 Vue 实例中删除属性。…...

左值引用、右值引用,std::move() 的汇编解释
1:左值引用 引用其实还是指针,但回避了指针这个名字。由编译器完成从地址中取值。以vs2019反汇编: 如图,指针和引用的汇编代码完全一样。但引用在高级语言层面更友好,对人脑。比如可以少写一个 * 号和 -> 。 &…...

LiangGaRy-学习笔记-Day11
LiangGaRy-学习笔记-Day11 1、课前回顾 1.1、脚本回顾讲解 题目: 脚本实现搭建LAMP架构可以写一段,后试一段引入变量、函数、尝试增删改查手工执行一遍 [rootNode1 ~]# vim auto_lanmp.sh #!/bin/bash #Author By LiangGaRy #2023年5月7日 #Usage …...

【异常解决】浏览器无法访问此网站ERR_UNSAFE_PORT/网页可能无法连接,或者它已永久性地移动到了新网址问题解决方案
浏览器无法访问此网站ERR_UNSAFE_PORT问题解决方案 一、问题描述二、问题原因三、解决方案3.1 方案1修改服务器访问端口号(推荐)3.2 方案2修改浏览器设置3.2.1 Chrome浏览器3.2.2 Firefox浏览器3.2.3 Edge浏览器 一、问题描述 访问某一个特定的网址之后…...

Python函数的参数
定义一个函数非常简单,但是怎么定义一个函数,需要什么参数,怎么去调用却是我们需要去思考的问题。 如同大多数语言一样(如 Java),Python 也提供了多种参数的设定(如:默认值参数、关…...

【Hive大数据】Hive分区表与分桶表使用详解
目录 一、分区概念产生背景 二、分区表特点 三、分区表类型 3.1 单分区 3.2 多分区 四、动态分区与静态分区 4.1 静态分区【静态加载】 4.1.1 操作演示 4.2 多重分区 4.2.1 操作演示 4.3 分区数据动态加载 4.3.1 分区表数据加载 -- 动态分区 4.3.2 操作演示 五、…...

C#NPOI操作Excel详解
C# NPOI 是一个基于 .NET Framework 的 Excel 和 Word 操作库。它不仅可以读取和写入 Excel 和 Word 文件,还可以对 Excel 和 Word 文件进行格式化和样式编辑,支持多种常见的文件格式,如XLS,XLSX等。本篇文章将针对C# NPOI操作Exc…...

CSS中文字体 Unicode 编码表
一、简介 CSS(层叠样式表)是用于样式化Web页面的强大工具,它可以用来控制页面的外观和行为。在CSS中,可以使用多种字体来设置文本的外观和格式,包括中文字体。中文字体的实现需要引入相应的字体文件,并且需…...

《微服务实战》 第四章 Spring Cloud Netflix 之 Eureka
前言 Eureka 是 Netflix 公司开发的一款开源的服务注册与发现组件。 Spring Cloud 使用 Spring Boot 思想为 Eureka 增加了自动化配置,开发人员只需要引入相关依赖和注解,就能将 Spring Boot 构建的微服务轻松地与 Eureka 进行整合。 1、Eureka 两大组…...

11. 深入理解并发编程-AQS与JMM
AQS (AbstractQueuedSynchronizer) 他的实现类诸如: CountDownLatch、ThreadLocalPool和ReentrantLock 在这些类中,AQS都是以内部类的形式存在的 AQS使用了模板方法设计模式 例子: 做蛋糕分为3个步骤,定一个抽象类,重写3个方法,做模型、烘焙和涂抹原料,然后在另外1个方法做蛋糕…...

深度解耦:使用Jetpack新技术Hilt实现依赖注入
注入解耦是一种软件设计模式,旨在将应用程序的不同组件解耦。通过采用依赖注入、控制反转、面向接口编程等技术,注入解耦模式可以帮助开发人员将应用程序分解为可重用和可扩展的组件。这样做可以减少代码的耦合度,提高模块化和可测试性&#…...

C++ 构造函数-2
构造函数-2 构造函数体赋值 在对象创建的时候,编译器会调用构造函数,给对象当中的成员赋一个合适的初始值。 class Date { public: Date(int year, int month, int day) { _year year; _month month; _day day; } private: int _year; int _month; i…...