零基础入门转录组数据分析——绘制差异火山图

零基础入门转录组数据分析——绘制差异火山图


差异分析的火山图(Volcano Plot)在生物信息学数据分析中,特别是在基因表达差异分析中,是一个非常直观和有用的工具。

本教程将从导入的数据结构开始,一步步带大家在R中绘制好看的火山图,最后对火山图进行解读,确保读者理解代码的同时学会解读火山图里的每个元素所代表的意思。

首先来看一下最终的火山图长啥样:
在这里插入图片描述



火山图的构建基于两个主要的度量指标:

基因表达对数2倍变化(Log2FoldChange):这个指标衡量了基因在不同组别之间的表达水平变化。正值表示基因表达上调,负值表示表达下调。

统计显著性(p.value/p.adj):这个指标是基因表达变化的p值,用于评估观察到的效应(如基因表达的变化)是否可能是由于随机误差引起的,通常认为P < 0.05则结果是显著的,并且更小的p.value/p.adj意味着变化更显著。

注:绘制差异火山图需要用到差异分析的结果

差异分析参考之前的教程:生信数据分析——limma差异分析和生信数据分析——DESeq2差异分析


本项目以GSE203346数据集(高通量测序数据)展示火山图绘制过程
实验分组:疾病组(18例),对照组(19例)
R版本:4.2.2
R包:tidyverse,lance,ggplot2,ggrepel	

废话不多说,代码如下:

设置工作空间:

rm(list = ls()) # 删除工作空间中所有的对象
setwd('/XX/XX/XX') # 设置工作路径
if(!dir.exists('./01_DEGs')){dir.create('./01_DEGs')
} # 判断该工作路径下是否存在名为01_DEGs的文件夹,如果不存在则创建,如果存在则pass
setwd('./01_DEGs/') # 设置路径到刚才新建的01_DEGs下

加载包:

library(tidyverse)
library(lance)
library(ggplot2)
library(ggrepel)

导入差异分析结果(limma/DESeq2都可以):

DEG <- read.csv('./GSE203346/DEG_all.csv', row.names = 1, check.names = F)
sig_diff <- read.csv('./GSE203346/DEG_sig.csv', row.names = 1, check.names = F)

DEG如下图所示, sig_diffDEG相似,只不过sig_diff少了那些没有显著差异的基因。
在这里插入图片描述

直接通过ggplot2绘制火山图(需要用到的是DEG中的log2FoldChangepvaluechange这三列)

ggplot(data = DEG, aes(x = log2FoldChange, y = -log10(pvalue), color = change)) +geom_point(size = 1.2, alpha = 0.4, na.rm = T)  # 设置点的大小和透明度

在这里插入图片描述

修改火山图中散点的颜色(上调基因用红色,下调基因用绿色,不显著基因用灰色表示)

ggplot(data = DEG, aes(x = log2FoldChange, y = -log10(pvalue), color = change)) +geom_point(size = 1.2, alpha = 0.4, na.rm = T)+  # 设置点的大小和透明度scale_color_manual(values = c("seagreen", "darkgray","firebrick3"))  # 设置颜色

在这里插入图片描述

给火山图横纵坐标加上阈值线:(横坐标是-0.5,0.5,纵坐标是-log10(0.05)

注:这个阈值线可以自己调整,要和差异分析的筛选阈值保持一直

ggplot(data = DEG, aes(x = log2FoldChange, y = -log10(pvalue), color = change)) +geom_point(size = 1.2, alpha = 0.4, na.rm = T)+  # 设置点的大小和透明度scale_color_manual(values = c("seagreen", "darkgray","firebrick3"))+ # 设置颜色geom_vline(xintercept = c(-0.5, 0.5), # 给x坐标轴的-0.5, 0.5处添加竖线lty = 4, # lty参数设置竖线的形式(直线,虚线等)col = "black", # 竖线颜色设置为黑色lwd = 0.4 # 设置线条的宽度) +geom_hline(yintercept = -log10(0.05), # 给y坐标轴添加横线lty = 4, # lty参数设置竖线的形式(直线,虚线等)col = "black", # 竖线颜色设置为黑色lwd = 0.4 # 设置线条的宽度)

在这里插入图片描述

给火山图添加主题,并且设置x轴,y轴,标题以及副标题字体,大小和颜色(其中axis.text是坐标轴文本设置,axis.title是坐标轴标题设置,plot.title是标题设置

问:什么是主题?
答: ggplot2主题是一种系统,它允许对图像中的非数据元素进行精细的调整,而不会影响几何对象和标度等数据元素。主题不能改变图像的感官性质,但可以使图像更具美观,满足整体一致性的要求。

简单说:可以理解成是一个模板,这个模板对网格线、背景色、图片留白以及标题设置等都有统一的设定,可以在主题的基础上进一步修改字体,排版等一切元素

如下面代码中用到的就是theme_bw()这个主题,之后在theme()中修改主题的参数

ggplot(data = DEG, aes(x = log2FoldChange, y = -log10(pvalue), color = change)) +geom_point(size = 1.2, alpha = 0.4, na.rm = T)+  # 设置点的大小和透明度scale_color_manual(values = c("seagreen", "darkgray","firebrick3"))+ # 设置颜色geom_vline(xintercept = c(-0.5, 0.5), # 给x坐标轴的-0.5, 0.5处添加竖线lty = 4, # lty参数设置竖线的形式(直线&#x

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

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

相关文章

数字范围按位与

题目链接 数字范围按位与 题目描述 注意点 0 < left < right < 2^31 - 1包含 left 、right 端点 解答思路 返回区间内所有数字按位与的结果&#xff0c;所以区间内所有数字在某一位的值相同&#xff0c;则结果该位数字为该值&#xff0c;否则该位数字为0&#xf…

二、Java语法基础

1、Java语言的关键字、标识符及命名规范 1)java关键字 2)标识符 3)JAVA中的命名规范 包名的命名规范:域名.公司名称.项目名称.模块名称 类的命名规范:首字母大写,第二个单词的首字母大写,以此类推。 2、进制间的转换(二进制、十进制) 1)十进制->二进制 采用…

火狐浏览器垂直标签页对比 Sidebery vs Tab Center Reborn

Sidebery 链接 商店 评价 大而全&#xff0c;各种功能&#xff0c;以及相关的配置项&#xff0c;应有尽有&#xff1b;功能包括但不限于&#xff1a; 树形标签页、着色、面板、容器、快照最近关闭、标签页、历史 默认的配置就已经很好用了&#xff1b; 快捷键&#xff1a;F…

2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;安全员-C证证模拟考试题库是根据安全员-C证最新版教材&#xff0c;安全员-C证大纲整理而成&#xff08;含2024年…

TSINGSEE青犀多模型、算力调度与智能分析AI算法中台介绍及应用

TSINGSEE青犀AI算法中台是一款平台型产品&#xff0c;专注于提供各行业中小场景中部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点&#xff0c;可提供丰富的视图接入能力和智能分析能力。平台将不同类型、不同协议前端设备&#xff0c;支持通过不同网络环…

css简单动画实现

html源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工程大学</title><link …

N9010A安捷伦N9010A信号分析仪

181/2461/8938产品概述&#xff1a; Keysight N9010A EXA 信号分析仪是最大限度提高生产线吞吐量的最快方法。从测量速度到代码兼容性&#xff0c;它让每一毫秒都很重要&#xff0c;并帮助您降低总体测试成本。 我们无法预测未来&#xff0c;但安捷伦可以利用我们面向未来的测…

深入探讨Docker in Docker:原理与实战指南

在软件开发和部署中&#xff0c;容器化技术已经成为一个不可或缺的工具。而在使用Docker进行容器化时&#xff0c;有时可能会遇到需要在一个Docker容器中运行另一个Docker容器的情况&#xff0c;这就是所谓的"Docker in Docker"&#xff08;简称DinD&#xff09;。本…

分治法课堂案例(1-8未完,只有1-5,待续)

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.30 Last edited: 2024.03.30 目录 分治法课堂案例 第1关&#xff1a;二分搜索技术 任务描述 编程要求 测试说明 代码如下&#xf…

【大数据】Flink学习笔记

文章目录 认识FlinkDocker安装Flink基本概念Flink的特点Flink 和 Spark Streaming 对比 基本使用WordCount实现依赖 批模式代码流模式代码网络流模式代码在web UI上提交代码创建项目[^1]编写代码配置打包在Web UI上提交 Flink 架构系统架构核心概念并行度算子链(Opeartor Chain…

一次性了解C语言中文件和文件操作

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 文件及文件操作 前言1. 文件分类1.1 文本文件1.2 二进制文件1.3 文本文件和二进制文件的区别 2…

基于哈希槽的docker三主三从redis集群配置

目录 一、三主三从redis集群配置 1、关闭防火墙启动docker后台服务 2、新建6个docker容器redis实例 3、进入容器redis-node-1为6台机器构建集群关系 3.1进入容器 3.2构建主从关系 4、查看集群状态 4.1链接进入6381作为切入点 二、主从容错切换迁移按例 1、数据读写存储…

最好的超声波清洗机排行榜有哪些?好评爆表超声波清洗机盘点

在如今这个视觉为王的时代&#xff0c;一副清晰的眼镜不仅是视力矫正的工具&#xff0c;更是提升形象的重要配饰。然而&#xff0c;眼镜的日常清洁往往让人头疼&#xff0c;传统的清洗方法既费时又难以彻底去除镜片上的污渍和细菌。这时&#xff0c;一台高效的超声波清洗机便成…

类与对象中C++

加油&#xff01;&#xff01;&#xff01; 文章目录 前言 一、类的6个默认成员函数 ​编辑 二、构造函数 1.概念 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 拷贝构造函数典型调用场景 五、赋值运算符重载 1.运算符重载 2.赋值运算符重载 赋值运算符重载格式…

module ‘numpy‘ has no attribute ‘int‘

在 NumPy 中&#xff0c;如果遇到了错误提示 "module numpy has no attribute int"&#xff0c;这通常意味着正在尝试以错误的方式使用 NumPy 的整数类型。从 NumPy 1.20 版本开始&#xff0c;numpy.int 已经不再是一个有效的属性&#xff0c;因为 NumPy 不再推荐使用…

西门子触摸屏SMART 700 IE V3数据记录的记录周期

问题的提出 需要解决的问题&#xff1a;目前我使用的工况是记录2s内速度变化情况&#xff0c;大概需要记录100个点&#xff0c;时间间隔或者说周期还是挺小的。 PLC端 S7-200的编程过程中&#xff0c;这个用填表程序add_to_table指令完成了&#xff0c;但是记录过程最多只能…

数字乡村发展之路:探索农村智慧化新模式

一、引言 随着信息技术的迅猛发展和普及&#xff0c;数字化已经成为推动乡村发展的重要引擎。数字乡村建设旨在通过信息化、智能化手段&#xff0c;提升农村地区的生产生活水平&#xff0c;推动农村经济社会的转型升级。本文旨在探讨数字乡村的发展之路&#xff0c;分析农村智…

iOS开发进阶之列表加载图片

iOS开发进阶之列表加载图片 列表加载图片通常使用UITableView或UICollectionView&#xff0c;由于列表中内容数量不确定并且对于图片质量要求也不确定&#xff0c;所以对于图片加载的优化是很有必要的。 首先借鉴前文&#xff0c;我们逐步进行操作&#xff0c;以下是加载1000…

基于springboot实现数据库的加解密

项目地址 https://github.com/Chenchicheng/spring-ibatis-encryption 功能说明 支持使用注解的方式目标类进行加解密支持同一个类多个字段分别使用不同的加密方式支持自定义加密方法 本地调试 pull代码到本地&#xff0c;更换application.yml中的数据库用户名和密码&…