差异表达基因热图怎么看_差异基因热图绘制:heatmap.2

在RNA-seq数据分析中,差异表达基因分析是一项基本的技能,其中热图又是一种特别常见的用来展示差异表达基因分析结果的方式,今天分享一个非常好用的绘制热图的R函数:heatmap.2。该函数来自gplots包。

安装

install.packages("gplots")library(gplots)

使用

1. 读取数据

# 毫无疑问,绘制热图需要一个数值矩阵作为输入# 我准备好了一个基因表达数据集,存放在名为data的文件中,该数据集含有11个样本,50个基因# 每列是一个样本,每行是一个基因# commanddata                              sep = "\t",                             header = T,row.names = 1,                             stringsAsFactors = F))

f130c3998da3d5dae26cac03a99efa8c.png

数据集data的一部分

2. 最基本使用方法

# 有了数值矩阵就可以绘制热图了,# commandheatmap.2(data,trace="none")# 参数:  # 1. data: 刚才读入的数值矩阵  # 2. trace: 稍后再讲# 结果说明:  # 1. 上述命令可以说是使用heatmap.2最简单的方式  # 2. 在这种情况下,除 trace这个参数之外,其余的参数均使用默认值  # 3. 得到的结果如下所示  # 4. 在默认情况下,生成的热图有如下要点:    # a. 函数默认计算各行和各列数据之间的相关性,并根据它们的相似程度对行和列进行聚类,并且对行和列都绘制了系统发生树    # b. 左上角的标度中有一条线,这条线表示处于各个颜色区段内的值的个数    # c. 函数默认以输入矩阵的行名和列名为热图中行和列的lable,在这个例子中,行的lable数目不等于矩阵中的行数,是因为图比较小,不足以显示所有的lable,R自动选择显示了一部分    # d. 热图的配色使用默认配色

34fe81197cac6d6b295fccc84611bea1.png

3. 更多参数

# commandheatmap.2(data,trace="none",          Rowv = F)  # commandheatmap.2(data,trace="none",          Colv = F)# 新参数:  # 1. Rowv: 该参数接受一个逻辑值 TRUE(T)或FALSE(F),表示是否根据各行数据之间的相似程度对它们进行聚类 ,默认值为TRUE  # 2. Colv:与Rowv类似,表示是否根据各列数据之间相似程度对它们进行聚类,默认值为TRUE  # 结果说明:  # 1. 新结果如下方所示  # 2. 当Rowv被设置为FALSE时,可以看到函数不再根据各行数据之间的相似性对其聚类,自然也就不会绘制系统发生树  # 3. 当Colv被设置为FALSE时,不再对列进行聚类,也没有系统发生树的绘制

ba82743dd2b277bbc7560764b997e3be.png

将RowV设置为FALSE

40d52524a0e116ae0e97d1aaf13c9f54.png

将ColV设置为FALSE

# commandheatmap.2(data,trace="none",          dendrogram = "row")# 新参数  # 1. dendrogram:该参数接受以下三个值中的一个:    # a. "row":表示只对行绘制系统发生树    # b. "column":表示只对列绘制系统发生树    # c. "both:表示对行和列都绘制系统发生树,这也是该参数的默认值  # 注意:    # 1. 该参数只是指定是否系统发生树,不会干扰对行和列进行聚类   # 2. 在参数Rowv和Colv为TRUE的情况下,函数仍然会进行行和列的聚类   # 结果说明:  # 1. 新结果如下方所示  # 2. 可以看到该参数并没有影响行和列的聚类

5e382ce43ce6fc66bd373b020364e61b.png

dendrogram = "row"

fed59374005d75501abfec5430c2f342.png

dendrogram = "column"

# commandheatmap.2(data,trace="none",          dendrogram = "column",          scale = "row")# 新参数  # 1. scale:该参数接受以下三个值中的一个:    # a. "row":表示将每行数据进行转化,使每行数据的平均数为0,其实就将每行数据转为其 Z score    # b. "column": 表示将每列数据转换为对应的Z score    # c. "none":行和列的数据都不做转换,该值是该参数的默认值    # 结果说明:  # 1. 新结果如下所示  # 2. 与上边的图相比,对数据进行转换使得不同类别间的差别更明显,图片也更好看

0f5bf3a939174109dd6f6417ecc920d4.png

# commandheatmap.2(data,trace="none",          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          sepcolor = "blue")          # 新参数  # 1. colsep:指定一个正整数n,然后函数将会在热图中的第n列与第n+1列中间留出一段间隔  # 2. rowsep:与colsep功能类似,指定一个正整数n,然后函数将会在热图中的第n行与第n+1行中间留出一段间隔  # 3. sepcolor:间隔的颜色,如果不指定该参数,则默认值为白色# 结果说明:  # 1. 新结果如下方所示  # 2. 可以看到,与上图相比,热图中多出了两个蓝色的间隔

947274e8cc5d916df1e0b630b900787a.png

# commandheatmap.2(data,trace="none",          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          cellnote = data,          notecex = 1.2,          notecol = "red")          # 新参数:  # 1. cellnote:指定一个矩阵,将该矩阵中的值添加到热图上的每个色块中,该矩阵应该与绘制热图的矩阵有相同的行数和列数  # 2. notecex:与cellnote对应,表示将填充到色块上的值放大到默认大小的多少倍,大于1表示放大,小于1表示缩小  # 3. notecol:填充到色块中的值的字体颜色  # 说明:  # 1. 将值添加到色块上适合色块比较少的热图,该例子中色块较多,添加了值之后一片模糊,因此在这里就不展示了
# commandheatmap.2(data,          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          trace = "column")          # 参数:  # 1. trace:该参数接受如下4个值中的一个    # a. "row":表示对每行数据绘制一条曲线,曲线高低起伏表示色块对应的值的大小    # b. "column":表示对每列数据绘制一条曲线,曲线高低起伏表示色块对应的值的大小,该值为该参数的默认值    # c. "both":表达对行和列都绘制曲线    # d. "none":表示对行和列都不绘制曲线    # 结果说明:  # 1. 新结果如下方所示  # 2. 一般热图不需要绘制该曲线,该曲线让热图看起来杂乱  # 3. 因为该参数的默认值为 column,因此在之前的例子中,该参数被专门设置为none

de10b535069c3c57af04b62d96850e8e.png

# commandheatmap.2(data,trace = "none",          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          cexRow = 1.5,          cexCol = 1.5)          # 新参数:  # 1. cexRow:表示将行的lable变为默认值的多少倍,大于1表示放大,小于1表示缩小  # 2. cexCol:与cexRow类似# 结果说明:  # 1.可以看到行和列的lable都比之前大了一些

78d19730c72782db22b938d618e9e2bb.png

# commandheatmap.2(data,trace = "none",          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          labRow = 1:50,          labCol = 1:11,          colRow = c("red","red"),          colCol = c("blue","blue"))          # 新参数  # 1. labRow:指定一个向量作为行的lable,指定为NA则不显示lable  # 2. labCol:指定一个向量作为列的lable,指定为NA则不显示lable  # 3. colRow:指定行lable的颜色  # 4. colCol:指定列lable的颜色  # 注意:  # 1. colRow 和 colCol的值不会循环补齐,也就说,指定几个颜色,就给几个lable着色,其它lable仍然使用默认的黑色  # 结果说明:  # 1. 新结果如下方所示  # 2. 可以看到,我们分别只指定了两个行和列lable的颜色,因此也就分别只有两个lable被着色

d6b166d4a7efbf53faefbac8d605ab9e.png

# commandheatmap.2(data,trace = "none",          dendrogram = "column",          scale = "row",          colsep = 4,          rowsep = 42,          key = TRUE,          density.info = "none",          key.title = "GENE",          key.xlab = "Z Score",          key.ylab = NA)# 新参数:  # 1. key:接受一个逻辑值TRUE或FALSE,表示是否绘制左上角的颜色标度条,默认为TRUE  # 2. density.info:接受一下3个值中的一个:    # a. "none":表示在颜色标度条中不绘制密度曲线或直方图    # b. "histogram":表示在颜色标度中绘制直方图    # c. "density",表示在颜色标度中绘制密度曲线  # 3. key.title:标度条的名称,绘制在标度条的上方  # 4. key.xlab:标度条的 x 轴的名称,绘制在标度条的下方,设置为NA则不显示  # 5. key.ylab:标度条的 y 轴的名称,绘制在标度条的左侧,设置为NA则不显示  # 结果说明:  # 1. density.info 被设为"none",因此没有了标度条中的线条  # 2. 标度条的 x,y轴名称也发生了相应的变化

b6fcd64e4f287e8387d3b8decc533eb6.png

# commandlibrary(RColorBrewer)mypalette "PiYG")morecols heatmap.2(data,          dendrogram = "column",          scale="row",          col=rev(morecols(150)),          trace="none",          colsep = 4,          rowsep = 42,          labRow = NA,          density.info = "none",          key.title = NA,          key.xlab = "Z Score",          key.ylab = NA)          # 新参数  # 1. col:指定用来绘制热图的颜色# 说明:  # 1. 这里产生用来绘制热图的渐变色用到了一个RColorBrewer包和colorRampPalette函数,这里不细讲,感兴趣的可以自己学习  # 2. 新结果如下方所示  # 3. 最后用AI稍微修一修,比如调整一下标度条的位置,就可以了

255a29d789f740a1a81320e9f731ff14.png

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

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

相关文章

朋友公司招聘用的一套C#基础面试题,10个码农8个错2个蒙,我也跳坑了…

朋友公司的一套面试题,很有意思,参见如下代码:class Program{static void Main(string[] args){var t Num();Console.WriteLine(t);Console.ReadLine();}static int Num(){int i 10;try{return i;}finally{i 11;Console.WriteLine($"…

【原创】ucos信号量的操作及原理

信号量的操作及原理 1.OSSemCreate创建信号量semaphore在使用信号量之前,要先用OSSemCreate创建一个信号量,并通过返回的合法事件结构体指针使用信号量。OS_EVENT *OSSemCreate(INT16U cnt){#if OS_CRITICAL_METHOD 3 /* 原理请查看http://blog.csdn.ne…

JMeter之JMS接口测试

JMeter中的JMS Point-to Point、JMS Publisher和JMS Subscriber分别用于发送JMS的PTP消息和PUB/SUB消息,可以选择使用JMeter来测试JMS。 MOM(消息中间件)作为消息数据交换的平台,也是影响应用执行效率的潜在环节。在Java程序中&am…

AutoRest - 具有 C# 和 Razor 模板的 Swagger 规范代码生成器。

简介AutoRest工具生成用于访问 RESTful Web 服务的客户端库。AutoRest是使用OpenAPI 规范格式描述 REST API 的规范。AutoRest 是一个提供代码生成框架的工具,用于将 OpenAPI 2.0 和 3.0 规范转换为客户端库,用于这些规范所描述的服务。它是在 OpenAPI I…

java内存四大区,jvm基础-内存区域

1.运行时数据区java虚拟机在执行java程序的过程中会爸它所管理的内存分为若干个不同的数据区域jvm内存主要分为堆、程序计数器、方法区、虚拟机栈喝本地方法栈,直接内存等。java方法的运行和虚拟机栈虚拟机栈是线程运行java方法所需要的数据,指令&#x…

【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名

在ArcGIS中,要为矢量数据或栅格数据重命名,需要到ArcCatalog中进行,但是只能一个个重命名。ArcGIS中也提供了矢量、栅格数据的重命名工具:【重命名】,如下图所示: 双击运行该工具,可以看到,更改数据集的名称。这包括各种数据类型,其中包括要素数据集、栅格、表 和 sha…

电脑测速软件_网速慢,怎么办,教你测速,教你解决方案

网速慢、网页慢、视频卡、游戏卡,如何判断自己的宽带速率是否有问题,本期我们来讨论下,如何正确测试网速,信道干扰、2.4G与5G信号、IPTV测速。一、电脑测速受到无线环境影响,无线性能瓶颈等多方面原因,电脑…

Xamarin效果第十六篇之GIS添加Mark

在前面几篇文章中简单玩耍了一下在线和离线加载高德地图图层;今天再次完善一下添加Mark图层和展示详细信息弹窗;来看看最终效果:添加Mark无非就是用了PictureMarkerSymbol:PictureMarkerSymbol picMarkSymbol await GetPictureMarker(); MapPoint mapPoint new MapPoint(foot…

Android规范发展

一、Android 编码规范 1.java 代码中不出现中文。最多凝视中能够出现中文 2.局部变量命名、静态成员变量命名 仅仅能包括字母,单词首字母出第一个外,都为大写,其它字母都为小写 3.常量命名 仅仅能包括字母和_,字母所有大写&#x…

js input 自动换行_矿用自动灭火装置水基型自动灭火装置原理国内分析研讨_搜狐汽车...

山 东潍坊九通消防科技(九通长胜)是国内最早针对矿用车辆发动机舱自动灭火的要求研发设计的超细干粉、水基型自动灭火装置是当下国内解决矿用车辆(地表车辆、井下车辆)灭火的非常好的技术,目前在掘进机、凿岩台车、皮卡、吉普车、轻卡、巨无霸、电传动汽车、露天矿山…

关于WannaCry勒索病毒 你需要知道的8个问题

近日来,WannaCry勒索病毒席卷全球,超过150个国家至少30万名用户中招,造成损失达80亿美元(约合人民币550亿元)。 目前,多名网络安全专家指出,目前病毒事态只是由于多种原因而稍显缓和,但许多网络用户特别是中…

C# ReaderWriterLockSlim类

为了使锁定机制允许锁定多个读取器(而不是一个写入器)访问某个资源,可以使用 ReaderWriterLockSlim 类。这个类提供了一个锁定功能,如果没有写入器锁定资源,就允许多个读取器访问资源,但只能有一个写入器锁定该资源。ReaderWriter…

LOG4NET用法

log 4net组件下载:log4net.dll web.config配置如下&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <configuration><configSections><section name"log4net" type"log4net.Config.Log4NetConfigurationSectio…

怎么计算信息完整度_德阳冻货运镖怎么计算费用

德阳冻货运镖怎么计算费用物流”一词我们并不陌生&#xff0c;它把小到零食玩具、大到家用电器&#xff0c;一一送到我们手中&#xff0c;但传统的物流运输模式只能满足部分物品的运输要求。随着人们的生活品质不断提高、消费不断升级。德阳冻货运镖怎么计算费用息平台的支撑&a…

AI+时代,谈谈产品经理对图像识别技术的阈值控制

产品满足用户的需求有一个阈值&#xff0c;产品值低于阈值用户会觉得了无生趣&#xff0c;即产品一般般&#xff0c;也即产品经理做了功能经理。产品值等于阈值产品功能基本满足了用户的需求&#xff0c;而只有产品经理驾驭了需求&#xff0c;把产品做成作品&#xff0c;产品值…

【亲身经验】如何在 6 个月内成为“微软 MVP”

前言很荣幸&#xff0c;在愚人节这天&#x1f601;&#xff0c;收到了获得“微软 MVP”奖项的通知&#xff1a;由于该奖项评选标准只涉及 2021 年所做的贡献&#xff0c;而我的贡献主要是公众号文章。因此以我从 2021/06 开始运营个人公众号算起&#xff0c;可以说&#xff0c;…

3500个常用汉字表_小学常用560个汉字笔画笔顺表,打印下来,小学六年慢慢练...

温馨提示公众号改版后很多孩子及家长朋友找不到我们了为了方便大家更快地找到我们获取更多学习工具和资料您可以按照下面的方式 星标或置顶我们☟ ☟ ☟小学阶段&#xff0c;字写得好很重要&#xff0c;笔顺写对了也很重要。写对笔顺有利于把字写得美观&#xff0c;考试时碰到笔…

SVN安装和使用总结

SVN简介&#xff1a; 为什么要使用SVN&#xff1f; 程序员在编写程序的过程中&#xff0c;每个程序员都会生成很多不同的版本&#xff0c;这就需要程序员有效的管理代码&#xff0c;在需要的时候可以迅速&#xff0c;准确取出相应的版本。 Subversion是什么&#xff1f; 它是一…

从部署 httpd 入手,理清 k8s 配置中的 containerPort、port、nodePort、targetPort

注&#xff1a;文中各种内网、公网 IP 仅为示例&#xff0c;不保证所有 IP 都可以访问&#xff0c;且你的环境中 IP 可能不同。背景在上一篇文章 自己搭建一个k8s环境 中&#xff0c;我们一顿操作猛如虎&#xff0c;搭建出了由 1 个 master 和 1 个 worker 节点组成的 k8s 集群…