利用R语言heatmap.2函数进行聚类并画热图
数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与大家分享。由于原作者不详,暂未标记来源,请原作者前来认领哦,O(∩_∩)O哈哈~
数据如下:
- library(gplots)
- data(mtcars)
- x <- as.matrix(mtcars)
- rc <- rainbow(nrow(x), start=0, end=.3)
- cc <- rainbow(ncol(x), start=0, end=.3)

X就是一个矩阵,里面是我们需要画热图的数据。
Rc是一个调色板,有32个颜色,渐进的
Cc也是一个调色板,有11个颜色,也是渐进的
首先画一个默认的图:
- heatmap.2(x)

然后可以把聚类数可以去掉:就是控制这个dendrogram参数
- heatmap.2(x, dendrogram=“none”)

然后我们控制一下聚类树
- heatmap.2(x, dendrogram=“row”) # 只显示行向量的聚类情况
- heatmap.2(x, dendrogram=“col”) #只显示列向量的聚类情况
下面还是在调控聚类树,但是我没看懂跟上面的参数有啥子区别!
- heatmap.2(x, keysize=2) ## default - dendrogram plotted and reordering done.
- heatmap.2(x, Rowv=FALSE, dendrogram=“both”) ## generate warning!
- heatmap.2(x, Rowv=NULL, dendrogram=“both”) ## generate warning!
- heatmap.2(x, Colv=FALSE, dendrogram=“both”) ## generate warning!
接下来我们可以调控行列向量的label的字体大小方向
首先我们调控列向量,也就是x轴的label
- heatmap.2(x, srtCol=NULL)
- heatmap.2(x, srtCol=0, adjCol = c(0.5,1) )
- heatmap.2(x, srtCol=45, adjCol = c(1,1) )
- heatmap.2(x, srtCol=135, adjCol = c(1,0) )
- heatmap.2(x, srtCol=180, adjCol = c(0.5,0) )
- heatmap.2(x, srtCol=225, adjCol = c(0,0) ) ## not very useful
- heatmap.2(x, srtCol=270, adjCol = c(0,0.5) )
- heatmap.2(x, srtCol=315, adjCol = c(0,1) )
- heatmap.2(x, srtCol=360, adjCol = c(0.5,1) )

然后我们调控一下行向量,也就是y轴的label
- heatmap.2(x, srtRow=45, adjRow=c(0, 1) )
- heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=45, adjCol=c(1,1) )
- heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=270, adjCol=c(0,0.5) )

设置 offsetRow/offsetCol 可以把label跟热图隔开!
- ## Show effect of offsetRow/offsetCol (only works when srtRow/srtCol is
- ## not also present) heatmap.2(x, offsetRow=0, offsetCol=0)
- heatmap.2(x, offsetRow=1, offsetCol=1)
- heatmap.2(x, offsetRow=2, offsetCol=2)
- heatmap.2(x, offsetRow=-1, offsetCol=-1)
- heatmap.2(x, srtRow=0, srtCol=90, offsetRow=0, offsetCol=0)
- heatmap.2(x, srtRow=0, srtCol=90, offsetRow=1, offsetCol=1)
- heatmap.2(x, srtRow=0, srtCol=90, offsetRow=2, offsetCol=2)
- heatmap.2(x, srtRow=0, srtCol=90, offsetRow=-1, offsetCol=-1)

- ## Show effect of z-score scaling within columns, blue-red color scale
- hv <- heatmap.2(x, col=bluered, scale=“column”, tracecol=“#303030”)
hv是一个热图对象!!!
- > names(hv) # 可以看到hv对象里面有很多子对象
- > “rowInd” “colInd” “call” “colMeans” “colSDs” “carpet” “rowDendrogram” “colDendrogram” “breaks” “col” “vline” “colorTable” ## Show the mapping of z-score values to color bins hvKaTeX parse error: Expected 'EOF', got '#' at position 638: …an class="com">#̲# Extract the r…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n class="str">"#̲FFFFFF"</span><…colorTable[hvKaTeX parse error: Expected 'EOF', got '#' at position 124: …n class="str">"#̲FFFFFF"</span><…colSDs + hv c o l M e a n s < / s p a n > < s p a n c l a s s = " p u n " > , < / s p a n > < s p a n c l a s s = " p l n " > w h i t e B i n < / s p a n > < s p a n c l a s s = " p u n " > [ < / s p a n > < s p a n c l a s s = " l i t " > 2 < / s p a n > < s p a n c l a s s = " p u n " > ] < / s p a n > < s p a n c l a s s = " p l n " > < / s p a n > < s p a n c l a s s = " p u n " > ∗ < / s p a n > < s p a n c l a s s = " p l n " > h v colMeans</span><span class="pun">,</span><span class="pln"> whiteBin</span><span class="pun">[</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> hv colMeans</span><spanclass="pun">,</span><spanclass="pln">whiteBin</span><spanclass="pun">[</span><spanclass="lit">2</span><spanclass="pun">]</span><spanclass="pln"></span><spanclass="pun">∗</span><spanclass="pln">hvcolSDs + hvKaTeX parse error: Expected 'EOF', got '#' at position 1148: …n class="str">"#̲303030"</span><…Type)],
- xlab=‘CellLines’,
- ylab=‘Probes’,
- main=Cluster_Method[i],
- col=greenred(64))
- dev.off()
- }
这样就可以一下子把七种cluster的方法依次用到heatmap上面来。而且通过对cluster树的比较,我们可以从中挑选出最好、最稳定到cluster方法,为后续分析打好基础!
对下面这个数据聚类:

- require(graphics)
- hc <- hclust(dist(USArrests), “ave”)
- plot(hc)

首先对一个数据框用dist函数处理得到一个dist对象!

Dist对象比较特殊,专门为hclust函数来画聚类树的!

相关文章:
利用R语言heatmap.2函数进行聚类并画热图
数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与…...
伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证
深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…...
nodejs微信小程序+python+PHP的游戏测评网站设计与实现-计算机毕业设计推荐
目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...
在 JavaScript 中导入和导出 Excel XLSX 文件:SpreadJS
在 JavaScript 中导入和导出 Excel XLSX 文件 2023 年 12 月 5 日 使用 MESCIUS 的 SpreadJS 将完整的 JavaScript 电子表格添加到您的企业应用程序中。 SpreadJS 是一个完整的企业 JavaScript 电子表格解决方案,用于创建财务报告和仪表板、预算和预测模型、科学、工…...
【Pytorch】Fizz Buzz
文章目录 1 数据编码2 网络搭建3 网络配置,训练4 结果预测5 翻车现场 学习参考来自: Fizz Buzz in Tensorflowhttps://github.com/wmn7/ML_Practice/tree/master/2019_06_10Fizz Buzz in Pytorch I need you to print the numbers from 1 to 100, excep…...
C++ Primer Plus第十四章笔记
目录 1.包含对象成员的类 valarray类简介 1.2 Student类的设计 1.3 接口和实现 1.4 C和约束 2. 私有继承 2.1 私有继承和组合的异同 2.2 初始化基类组件 2.3 访问基类的方法 2.4 访问基类对象 2.5 访问基类的友元函数 2.5 使用组合还是私有继承 3. 保护继承 4. 使…...
CentOS 7 mini 运行环境搭建与测试——CentOS Mini 安装ifconfig工具【云原生开发部署实践笔记】
云原生开发部署实践笔记 一、开发测试环境搭建与测试 1.1 Linux运行环境的搭建与测试 虽然CentOS已经更新到Stream 9 版本,但基于大多数企业和单位多数使用CentOS 7版本作为运行底座,7版本也一直在更行维护,此实践基于CentOS 7 Mini版本搭…...
案例061:基于微信小程序的互助学习系统
文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…...
【ELK03】ES 索引的Mapping映射详解、数据类型和settings属性设置
一、ES 索引的映射和设置 1.MAPPING 映射(MAPPING)就是es中一个决定了文档如何存储,如何生成索引,字段各种类型定义的过程.类似于我们在关系型数据库中创建一个表格数据之前先定义表格有哪些字段,每个字段是什么类型,然后数据会按照这个配置写入表格,ES中同样是这个过程,它由…...
线性代数入门与学习笔记
该内容为重拾部分线性代数知识的学习笔记,内容上更多的是为了解决问题而学习的内容,并非系统化的学习。 针对的问题为:Music算法推导求解过程中的矩阵计算知识。 学习的内容包括:矩阵原理、矩阵行列式、矩阵的秩、线性变换矩阵变换…...
Linux安全学习路标
1. 操作系统基础知识 首先,你需要建立坚实的操作系统基础知识,包括Linux文件系统和目录结构、Linux进程管理、权限管理等基本概念。 2. 网络和通信安全 学习关于网络和通信安全的基础知识,包括TCP/IP协议栈、网络攻击类型、防火墙配置、网…...
常见的中间件--消息队列中间件测试点
最近刷题,看到了有问中间件的题目,于是整理了一些中间件的知识,大多是在小破站上的笔记,仅供大家参考~ 主要分为七个部分来分享: 一、常见的中间件 二、什么是队列? 三、常见消息队列MQ的比较 四、队列…...
【USRP】5G / 6G OAI 系统 5g / 6G OAI system
面向5G/6G科研应用 USRP专门用于5G/6G产品的原型开发与验证。该系统可以在实验室搭建一个真实的5G 网络,基于开源的代码,专为科研用户设计。 软件无线电架构,构建真实5G移动通信系统 X410 采用了目前流行的异构式系统,融合了FP…...
ubuntu20.04设置开机自启动jar(依赖其他服务)
目的: 有的时候我们的项目是部署在物理机上给其他公司员工使用,对于他们来说操作越简单越好。所以我需要实现将我的jar部署在ubuntu上,实现开机自启。(我的项目依赖emqx服务)。 步骤: 切换到system目录 …...
【GEE笔记】在线分类流程,标注样本点、分类和精度评价
GEE在线分类流程 介绍 GEE(Google Earth Engine)是一个强大的地理信息处理平台,可以实现在线的遥感影像分析和处理。本文将介绍如何使用GEE进行在线的分类流程,包括标注样本点、分类和精度评价。本文以2020年5月至8月的哨兵2影像…...
MATLAB基础运算
矩阵和数字相乘 就是矩阵里面每个元素跟这个数字乘一遍 矩阵和矩阵相乘 能不能相乘,需要前面矩阵的列数等于后面矩阵的行数,出来的矩阵大小是前面矩阵的行数*后面矩阵的列数。 所以大家会发现,矩阵相乘如果前后调转了,结果会完全…...
Linux DAC权限的简单应用
Linux的DAC(Discretionary Access Control)权限模型是一种常见的访问控制机制,它用于管理文件和目录的访问权限。作为一名经验丰富的Linux系统安全工程师,我会尽可能以简单明了的方式向计算机小白介绍Linux DAC权限模型。 在Linu…...
JVS低代码表单引擎:数据校验与处理的先锋
随着信息技术的迅速发展,数据校验与处理已经成为了各类应用中不可或缺的一环。尤其是在涉及敏感信息,如密码处理时,其安全性和准确性显得尤为重要。JVS低代码表单引擎提供了强大的文本组件触发逻辑校验功能,它能够在用户填写数据的…...
clickhouse删除partition分区数据
clickhouse分布式表tencent_table_20231208_DIST,本地表tencent_table_20231208_local; 30台clickhouse存储服务器; 本地表:tencent_table_20231208_local CREATE TABLE tencent_sz.tencent_table_20231208_local (id Int64 DEFA…...
持续集成交付CICD:CentOS 7 安装 Nexus 3.63
目录 一、实验 1.CentOS 7 安装Nexus3.63 二、问题 1.安装Nexus报错 2.Nexus启动停止相关命令 一、实验 1.CentOS 7 安装Nexus3.63 (1)当前操作系统版本&JDK版本 cat /etc/redhat-releasejava -version(2)下载Nexus新…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
