R语言丨Pheatmap绘制基因表达量热图

news2024/11/19 4:38:53

Pheatmap绘制基因表达量热图

论文中展示基因表达量变化通常使用热图,今天分享一个快速绘制不同基因在各处理下表达量变化的方法,使用R语言中pheatmap包,它可以用于可视化数据集中的数值,以便更好地理解数据之间的关系和模式。
image-20230522102950991

创建环境与示例数据

加载R包

library(tibble)
library(tidyverse)
library(pheatmap)

生成随机数据

# 设置随机数种子以确保结果可重复
set.seed(1234)

# 生成随机矩阵
expr_mat <- matrix(rnorm(200, mean = 6, sd = 2), ncol = 8)

# 将矩阵转换为tibble,并设置行名称和列名称
expr_mat <- as_tibble(expr_mat, colnames = paste0("Type", 1:8))
colnames(expr_mat) <- paste0("Type", 1:8)
rownames(expr_mat) <- paste0("Gene",1:25)

# 查看结果
head(expr_mat)

通过上述代码可以生成一个随机的基因表达矩阵,其中每行是一个基因,每列代表一个处理,共有25行8列,展示了25个不同的基因在8个不同处理下表达量的变化情况。数据内容如下:

> head(expr_mat)
# A tibble: 6 × 8
  Type1 Type2 Type3 Type4 Type5 Type6 Type7  Type8
  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl>
1  3.59  3.10  2.39  5.69  6.83  6.16  5.25  4.32 
2  6.55  7.15  4.84  3.22  5.05  4.74  6.20  3.75 
3  8.17  3.95  3.78  4.55  6.13  2.97  9.28 12.1  
4  1.31  5.97  3.97  6.52  5.00  4.73  4.25  6.47 
5  6.86  4.13  5.68  5.37  4.35  6.45  6.24  5.93 
6  7.01  8.20  7.13  5.64  6.33  8.03  8.72  0.536

image-20230522103940222

绘制图像

基础版热图

pheatmap(expr_mat)

直接运行pheatmap函数,输入数据矩阵,即可快速生成漂亮的热图,会自动对行和列进行聚类,这也是最简单的热图生成方法。

image-20230522104202610

进阶版热图

my_palette <- colorRampPalette(c("white", "yellow","red"))(n = 100)

pheatmap(expr_mat,
         cluster_cols = F,
         cluster_rows = T,
         filename = "GeneExpr.pdf",
         color = my_palette,
         width = 2.35*3,
         height = 1*3,
         angle_col = 0)

通常绘制基因表达热图的目的是看不同基因和处理之间的变化关系,比如不同时间下基因的表达量变化,因此不需要对处理进行聚类,为了让图中横轴Type按照顺序排列,取消纵轴聚类,可以使用cluster_cols = F参数,另外可以自定义修改配色的方案,使用colorRampPalette可以自定义颜色。

image-20230522104737544

上面的代码会在当前工作目录下生成一个pdf图片文件,如果想让pheatmap绘制的图形直接显示在Rstudio的右下角plot窗口,删除filename = "GeneExpr.pdf"参数即可。

pheatmap 函数可以根据数据集的值自动为每个单元格分配颜色,并且可以对行和列进行聚类以更好地显示数据之间的关系。此外,pheatmap 还支持自定义颜色映射,使用户可以将数据映射到自定义颜色范围中。

以下是 pheatmap 函数的一些常见参数:

  • data:要绘制的数据集。
  • scale:是否对数据进行标准化。默认为 “row”,表示对每一行进行标准化。也可以设置为 “column” 或 “none”。
  • color:颜色映射。可以使用内置的颜色映射,也可以使用 colorRampPalette 函数创建自定义颜色映射。
  • cluster_rowscluster_cols:是否对行和列进行聚类。默认为 TRUE。
  • show_rownamesshow_colnames:是否显示行名和列名。默认为 TRUE。
  • fontsize_rowfontsize_col:行名和列名的字体大小。默认为 12。

本文由mdnice多平台发布

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

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

相关文章

STM32单片机WIFI教室灯光控制系统人数自动灯光温度时间

实践制作DIY- GC0135-WIFI教室灯光控制系统 一、功能说明&#xff1a; 基于STM32单片机设计-WIFI教室灯光控制系统 二、功能介绍&#xff1a; 电路&#xff1a;STM32F103C最小系统板DS18B20温度传感器LCD1602显示器ESP8266WIFI模块4个红外槽型光电传感器3个LED灯多个按键蜂鸣…

Linux内核模块编程

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 1 总体设计思路 Linux内核是单体式结构&#xff0c;相对于微内核结构而言&#xff0c;其运行效率高&#xff0c;但是系统的可维护性和可扩展性较差。为此&#xff0c;Linux提供了内核模块&#xff08;module&#xff09;机制&…

腾讯轻量服务器python3.6升级到python3.9.9

由于不了解linux&#xff0c;要配合宝塔的查看文件&#xff0c;这样轻松很多 用得到的2个基本命令: sudo 管理员方式运行&#xff08;我照着网上方法试几次安装都没成功&#xff0c;就是开头没加这句&#xff09; pwd 显示当前的目录 第1步 下载新python sudo wget https://ww…

用写代码的方式画图-试下PlantUML吧 | 京东云技术团队

1 序言 所谓一图胜千言&#xff0c;大家平日在工作中编写文档时&#xff0c;往往都需要画各种图来表达中心思想&#xff0c;比如流程图、时序图、UML 图&#xff0c;很多人选择使用 Axure 、PrecessOn、Diagrams&#xff08;darw.io&#xff09;、XMind、Visio、yEd、Lucidcha…

2023年企业降低云支出的小方法汇总

据悉&#xff0c;2023年全球云基础设施服务支出全年将增长23%&#xff0c;也就是说云支出会持续增长。所以企业有效降低云支出是刻不容缓的。这里就给大家汇总了一些企业降低云支出的小方法&#xff0c;希望有用。 2023年企业降低云支出的小方法汇总 1、寻找价格折扣 提前计…

计算机图形学 | 实验十一:阴影计算

计算机图形学 | 实验十一&#xff1a;阴影计算 计算机图形学 | 实验十一&#xff1a;阴影计算帧缓冲创建一个帧缓冲纹理附件渲染缓冲对象附件总结 阴影映射算法思想深度贴图渲染阴影抗锯齿 assimp库结果 华中科技大学《计算机图形学》课程 MOOC地址&#xff1a;计算机图形学&a…

分布式ID解决方案(一)数据库号段方式

一、前言 在一些简单系统中&#xff0c;我们可以直接使用数据库ID自增方式来标识和保存数据&#xff0c;但是随着系统的逐渐复杂&#xff0c;数据量的日益增多&#xff0c;我们可能需要对数据表、数据库实现分库分表。单纯的使用数据库的ID自增无法满足业务场景了&#xff0c;所…

Seata 的可观测实践

作者&#xff1a;察溯 Seata 简介 Seata 的前身是阿里巴巴集团内大规模使用保证分布式事务一致性的中间件&#xff0c;Seata 是其开源产品&#xff0c;由社区维护。在介绍 Seata 前&#xff0c;先与大家讨论下我们业务发展过程中经常遇到的一些问题场景。 业务场景 我们业务…

数据规模缩小 200 倍!指令微调高效指导大模型学习

夕小瑶科技说 原创 作者 | 智商掉了一地、Python 最近大型语言模型&#xff08;LLMs&#xff09;的指令微调备受研究人员的关注&#xff0c;因为它可以开发 LLM 遵循指令的潜力&#xff0c;使其更加符合特定的任务需求。虽然指令微调&#xff08;Instruction Tuning&#xff…

JavaEE-HTTPS的加密流程

目录 对称加密非对称加密证书的引入 对称加密 对称加密就是用同一个密钥把明文进行加密变成密文,也能把密文解密为明文. 理想状态下: 引入对称加密之后, 即使数据被截获, 由于黑客不知道密钥是啥, 因此就无法进行解密, 也就不知道请求的真实内容是啥了. 但同一时刻服务器服务…

数据库规范与SQL调优

数据库设计规范章节&#xff0c;依旧以《阿里巴巴Java开发手册》为原型进行修正和完善。 MySQL规约 (一) 建表规约 (二) 索引规约 (三) SQL规约 (四) ORM规约 (一) 建表规约 1. 【强制】 表达是与否概念的字段&#xff0c;必须使用is_xxx的方式命名&#xff0c;数据类型是…

Windows修改为Mac的字体方法

一: 首先下载字体文件和修改器 Mac字体修改 https://www.aliyundrive.com/s/KKvcRNYkP5p 提取码: 6d3p 点击链接保存&#xff0c;或者复制本段内容&#xff0c;打开「阿里云盘」APP &#xff0c;无需下载极速在线查看&#xff0c;视频原画倍速播放。 二: 设置并修改字体 1:…

服务(第二十八篇)rsync

配置rsync源服务器&#xff1a; #建立/etc/rsyncd.conf 配置文件 vim /etc/rsyncd.conf #添加以下配置项 uid root gid root use chroot yes #禁锢在源目录 address 192.168.80.10 …

浅谈管网抢维修效率对产销差率的影响

1 背景 多年来&#xff0c;漏损治理工作一直围绕检漏、分区计量或压力管理等相关话题&#xff0c;却忽视了抢维修速度与质量对漏损治理成效的影响。实际上&#xff0c;不管是DMA分区计量&#xff0c;还是检漏&#xff0c;最终还是要通过抢维修来修复漏点达到控制漏损的目的。尽…

Vue 3中利用UseStorage轻松实现本地存储功能,释放数据持久化的力量

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录 一、介绍1.1 什么是本地存储1.2 Vue 3中的UseStorage插件简介 二、…

第18章_MySQL8其它新特性

第18章_MySQL8其它新特性 1. MySQL8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本&#xff0c;可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强&#xff0c;开发者对MySQL的源代码进行了重构&#xff0c;最突出的一点是多MySQL Optimizer优化器…

MySQL-1-SQL语句的分类、MySQL命令、SQL查询语句

一、SQL语句的分类&#xff08;任何一条sql语句以分号结尾&#xff1b;SQL语句不区分大小写&#xff09; DQL&#xff08;数据查询语言&#xff09;&#xff1a;查询语句&#xff0c;凡是select都是DQL。 DML&#xff08;数据操作语言&#xff09;&#xff1a;insert、delete、…

Midjourney 介绍-AI绘画工具

《Midjourney》是一款2022年3月面世的AI绘画工具&#xff0c;创始人是David Holz。 它一款基于浏览器的在线应用程序&#xff0c;因此你无需安装任何软件&#xff0c;只需在浏览器中访问MidJourney的官方网站即可开始使用。 只要输入想到的文字&#xff0c;就能通过人工智能产出…

一文带你了解MySQL之基于成本的优化

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 目录 一、什么是成本二、单表查询的成本2.1 准备数据2.2 基于成本的优化步骤2.3 基于索引统计数据的成本计算 三、连接查询的成本2.1 准备数据2.2 Condition filtering介绍2.3 多表连接的成…

『MySQL 实战 45 讲』16 - “order by” 是怎么工作的

“order by” 是怎么工作的 首先创建一个表 CREATE TABLE t ( id int(11) NOT NULL, city varchar(16) NOT NULL, name varchar(16) NOT NULL, age int(11) NOT NULL, addr varchar(128) DEFAULT NULL, PRIMARY KEY (id), KEY city (city) ) ENGINEInnoDB;全字段排序 在 cit…