利用R语言heatmap.2函数进行聚类并画热图

news2024/11/27 7:32:20

数据聚类然后展示聚类热图是生物信息中组学数据分析的常用方法,在R语言中有很多函数可以实现,譬如heatmap,kmeans等,除此外还有一个用得比较多的就是heatmap.2。最近在网上看到一个笔记文章关于《一步一步学heatmap.2函数》,在此与大家分享。由于原作者不详,暂未标记来源,请原作者前来认领哦,O(∩_∩)O哈哈~

数据如下:

  
  
  1. library(gplots)
  2. data(mtcars)
  3. x <- as.matrix(mtcars)
  4. rc <- rainbow(nrow(x), start=0, end=.3)
  5. cc <- rainbow(ncol(x), start=0, end=.3)

利用R语言heatmap.2函数进行聚类并画热图-图片1

X就是一个矩阵,里面是我们需要画热图的数据。

Rc是一个调色板,有32个颜色,渐进的

Cc也是一个调色板,有11个颜色,也是渐进的

首先画一个默认的图:

  
  
  1. heatmap.2(x)

利用R语言heatmap.2函数进行聚类并画热图-图片2

然后可以把聚类数可以去掉:就是控制这个dendrogram参数

  
  
  1. heatmap.2(x, dendrogram=“none”)

利用R语言heatmap.2函数进行聚类并画热图-图片3

然后我们控制一下聚类树

  
  
  1. heatmap.2(x, dendrogram=“row”) # 只显示行向量的聚类情况
  2. heatmap.2(x, dendrogram=“col”) #只显示列向量的聚类情况

 

下面还是在调控聚类树,但是我没看懂跟上面的参数有啥子区别!

  
  
  1. heatmap.2(x, keysize=2) ## default - dendrogram plotted and reordering done.
  2. heatmap.2(x, Rowv=FALSE, dendrogram=“both”) ## generate warning!
  3. heatmap.2(x, Rowv=NULL, dendrogram=“both”) ## generate warning!
  4. heatmap.2(x, Colv=FALSE, dendrogram=“both”) ## generate warning!

接下来我们可以调控行列向量的label的字体大小方向

首先我们调控列向量,也就是x轴的label

  
  
  1. heatmap.2(x, srtCol=NULL)
  2. heatmap.2(x, srtCol=0, adjCol = c(0.5,1) )
  3. heatmap.2(x, srtCol=45, adjCol = c(1,1) )
  4. heatmap.2(x, srtCol=135, adjCol = c(1,0) )
  5. heatmap.2(x, srtCol=180, adjCol = c(0.5,0) )
  6. heatmap.2(x, srtCol=225, adjCol = c(0,0) ) ## not very useful
  7. heatmap.2(x, srtCol=270, adjCol = c(0,0.5) )
  8. heatmap.2(x, srtCol=315, adjCol = c(0,1) )
  9. heatmap.2(x, srtCol=360, adjCol = c(0.5,1) )

利用R语言heatmap.2函数进行聚类并画热图-图片4

然后我们调控一下行向量,也就是y轴的label

  
  
  1. heatmap.2(x, srtRow=45, adjRow=c(0, 1) )
  2. heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=45, adjCol=c(1,1) )
  3. heatmap.2(x, srtRow=45, adjRow=c(0, 1), srtCol=270, adjCol=c(0,0.5) )

利用R语言heatmap.2函数进行聚类并画热图-图片5

设置 offsetRow/offsetCol 可以把label跟热图隔开!

  
  
  1. ## Show effect of offsetRow/offsetCol (only works when srtRow/srtCol is
  2. ## not also present) heatmap.2(x, offsetRow=0, offsetCol=0)
  3. heatmap.2(x, offsetRow=1, offsetCol=1)
  4. heatmap.2(x, offsetRow=2, offsetCol=2)
  5. heatmap.2(x, offsetRow=-1, offsetCol=-1)
  6. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=0, offsetCol=0)
  7. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=1, offsetCol=1)
  8. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=2, offsetCol=2)
  9. heatmap.2(x, srtRow=0, srtCol=90, offsetRow=-1, offsetCol=-1)

利用R语言heatmap.2函数进行聚类并画热图-图片6

  
  
  1. ## Show effect of z-score scaling within columns, blue-red color scale
  2. hv <- heatmap.2(x, col=bluered, scale=“column”, tracecol=“#303030”)

hv是一个热图对象!!!

  
  
  1. > names(hv) # 可以看到hv对象里面有很多子对象
  2. > “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)],
  3. xlab=‘CellLines’,
  4. ylab=‘Probes’,
  5. main=Cluster_Method[i],
  6. col=greenred(64))
  7. dev.off()
  8. }

 

这样就可以一下子把七种cluster的方法依次用到heatmap上面来。而且通过对cluster树的比较,我们可以从中挑选出最好、最稳定到cluster方法,为后续分析打好基础!

 

对下面这个数据聚类:

利用R语言heatmap.2函数进行聚类并画热图-图片12

  
  
  1. require(graphics)
  2. hc <- hclust(dist(USArrests), “ave”)
  3. plot(hc)

利用R语言heatmap.2函数进行聚类并画热图-图片13

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

利用R语言heatmap.2函数进行聚类并画热图-图片14

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

利用R语言heatmap.2函数进行聚类并画热图-图片15

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

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

相关文章

西南科技大学C++程序设计实验十一(泛型程序设计与C++标准模板库)

一、实验目的 1. 掌握泛型程序设计概念; 2. 掌握vector、deque、list容器使用方法; 3.了解set、map容器使用方法。 二、实验任务 1.分析完善以下程序,理解vector容器使用方法: #include <iostream> __#include <vector>_______ //补充vector模板头文件 …

DTS认证

一、什么叫DTS DTS 是“Digital Theatre System“的缩写&#xff0c;是”数字化影院系统“的意思。是一种音频格式&#xff0c;从技术上讲&#xff0c;把音效数据存储到另外的CD-ROM中&#xff0c;使其与影像数据同步。这样不但空间得到增加&#xff0c;而且数据流量也可以相对…

IntelliJ IDEA创建一个spark的项目

在开始之前&#xff0c;需要说明的是 要跑通基本的wordcount程序&#xff0c;是不需要在windows上安装 hadoop 和spark的&#xff0c;因为idea在跑程序的时候&#xff0c;会按照 pom.xml配置文件&#xff0c;从指定的 repository源&#xff0c;按照properties指定的版本&#x…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 3 “编译 NXP i.MX RT1060”( 完 )

此章节叙述如何修改、建构 i.MX RT1060 的 Sample Code“aws_remote_control_wifi_nxp” 1. 点击“Import SDK example(s)” 2. 选择“MIMXRT1062xxxxA”>“evkmimxrt1060”&#xff0c;并确认 SDK 版本后&#xff0c;点击“Next>” 3. 选择“aws_examples”>“aw…

AI创作系统ChatGPT网站源码,AI绘画,支持GPT联网提问/即将支持TSS语音对话功能

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

概率测度理论方法(第 2 部分)

一、说明 欢迎回到这个三部曲的第二部分&#xff01;在第一部分中&#xff0c;我们为测度论概率奠定了基础。我们探索了测量和可测量空间的概念&#xff0c;并使用这些概念定义了概率空间。在本文中&#xff0c;我们使用测度论来理解随机变量。 作为一个小回顾&#xff0c;在第…

数据结构——二叉树的链式结构

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ 一、二叉树的创建 这里我们使用先序遍历的思想来创建二叉树&#xff0c;这里的内容对于刚接触二…

将单体应用程序迁移到微服务

多年来&#xff0c;我处理过多个单体应用&#xff0c;并将其中一些迁移到了微服务架构。我打算写下我所学到的东西以及我从经验中用到的策略&#xff0c;以实现成功的迁移。在这篇文章中&#xff0c;我将以AWS为例&#xff0c;但基本原则保持不变&#xff0c;可用于任何类型的基…

医院信息系统源码,采用JAVA编程,支持跨平台部署应用,满足一级综合医院(专科二级及以下医院500床)的日常业务应用

医院HIS系统源码&#xff0c;HIS系统全套源码&#xff0c;支持电子病历4级&#xff0c;自主版权 his医院信息系统内设门诊/住院医生工作站、门诊/住院护士工作站。各工作站主要功能依据职能要求进行研发。如医生工作站主要功能为编辑电子病历、打印、处理医嘱&#xff1b;护士工…

LAMP安装部署网站

目录 什么是LAMP? 实验&#xff08;搭建一个论坛&#xff09; 一&#xff0c;安装apache 1.关闭防火墙&#xff0c;将安装Apache所需软件包传到/opt目录下 2.安装环境依赖包 3.配置软件模块 4.编译及安装 5.优化配置文件路径&#xff0c;并把httpd服务的可执行程序文件…

本科毕业论文查重的依据

大家好&#xff0c;今天来聊聊本科毕业论文查重的依据&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 本科毕业论文查重依据&#xff1a;维护学术诚信的基石 摘要&#xff1a; 本科毕业论文是衡量学生学…

“探究HarmonyOS:深入解析鸿蒙操作系统架构”

前言 一、鸿蒙操作系统是什么&#xff1f; 二、为什么要学习鸿蒙操作系统 1.从开发者角度看&#xff1a; 2.从使用者角度看&#xff1a; 总结 前言 随着智能化时代的到来&#xff0c;操作系统的发展也越来越快&#xff0c;人们对于智能化生活的需求也越来越强烈。鸿蒙操作系统作…

idea__SpringBoot微服务05——JSR303校验(新注解)(新的依赖),配置文件优先级,多环境切换

JSR303校验&#xff0c;配置文件优先级&#xff0c;多环境切换 一、JSR303数据校验二、配置文件优先级三、多环境切换一、properties多环境切换二、yaml多环境切换————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#x…

华为数通---配置Smart Link主备备份示例

定义 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个接口作为另一个的备份。Smart Link常用于双上行组网&#xff0c;提供可靠高效的备份和快速的切换机制。 目的 下游设备连接到上游设备&#xff0c;当使用单上行方式时&…

HarmonyOS应用程序框架——UIAbility实操

UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供窗口在其中绘制界面。 每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任务。 一个应用可以有一个UIAbility&…

【LuatOS】笔记(二)基础框架

开发环境搭建 合宙官方搭建的是&#xff1a;vscodeLuatOS-SOC推荐拓展包(vscode插件)&#xff0c;原文链接&#xff1a;LuatOS开发环境搭建。安装完创建项目文件&#xff0c;创建main.lua文件&#xff0c;就可以开始编写了。 函数与使用 LuatOS-SOC接口文档1&#xff0c;该文档…

OpenCL学习笔记(四)手动编译开发库(ubuntu+gcc+rk3588)

前言 笔者本次使用的是RK3588的开发板&#xff0c;内部烧写的是ubuntu20.04&#xff0c;gcc版本是9 本文档简单记录下编译的过程&#xff0c;有需要的小伙伴可以参考下 一、安装所需软件 1.安装git&#xff0c;教程比较多&#xff0c;不再重复 2.安装cmake&#xff0c;教程…

SSL 协议

SSL 是用于安全传输数据的一种通信协议。它采用公钥加密技术、对称密钥加密技术等保护两个应用之间的信息传输的机密性和完整性。但是&#xff0c;SSL 也有一个不足&#xff0c;就是它本身不能保证传输信息的不可否认性。 SSL 协议包括服务器认证、客户认证、SSL 链路上的数据完…

【qt】Qt+OpenCv读取带有中文路径的图片

【opencv4.5.1版本】下载exe解压即可。。。https://opencv.org/releases/page/2/ 【qt5.15.2】 pro文件 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to …

CentOS 7.9安装宝塔面板,安装gitlab服务器

docker安装方式比较慢&#xff0c;安装包1.3GB 安装后启动很慢 docker logs q18qgztxdvozdv_gitlab-ce-gitlab-1 docker ps docker exec -it q18qgztxdvozdv_gitlab-ce-gitlab-1 sh cd /etc/gitlab cat initial_root_password 软件商店安装方式&#xff0c;失败了2023.12…