大家好,今天来介绍pheatmap怎么读(如何用r软件绘制热图)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
Heatmap——热图那些事
注脚:
scale 标准化,根据每列或者行数据的均值标准化,主要是为了防止单个数据过大(过小),导致冷热色分布不明显的现象,可选row,column,none。
key 是否需要图标以及图标大小,key=T或者F,keysize=1.5;
Colv=NA 表示不对行聚类,Rowv=NA不对列聚类
dendrogram =‘column’or ‘none’or’row’ or”both”显示聚类树状图,
trace ,是否需要基准线(均值,方差之类的),trace=”both”,”row” 或者”column”
density.info 指示图内的线, density.info=’none’
cexCol=1,cexRow=1 设置xlab和ylab的字符大小
#col ,优化颜色:redgreen或者greenred, 调整配色,括号内表示这个配色区间分成多少格区分度; breaks=seq 自己设置颜色分度breaks=seq(-5, 5, 1))
labels,labCol调整每列的标记 labCol = NA,或者 labCol = c(‘Age’, ‘A’, ‘B’, ‘C’))
margins 调整画布边距; margins=c(5,5),
main =’Heatmap’增加伍举辩标题。
注脚:
第一个参数是需要用pheatmap画图的数据
color: 设置颜色。精细程度按照括号内设置的数值来定
main: 标题名称
fontsize: 设置row的字体大小
scale: 设置归一化为正态分布,可选row,column,none。
border_color: 是否显示边框及边框的颜色,NA不显示,red显示红色。支持简单的颜色单词
na_col: 设置缺失值的颜色,支持简单颜色单词,一般设置为灰色就满好识别的。
cluster_rows&cluster_cols: 设置是否对行或者列进行聚类,按照实际需求设置。当缺失值较多的时候是无法进行聚类的。一个解决办法是读取数据的时候不设置缺失值。
show_rownames&show_colnames: 是否显示行/列的名称
treeheight_row&treeheight_col: 当前面设置了聚类之后,两边会出现聚类的树,这个参数是设置树的高度的。
cellheight&cellwidth: 设置每个各自格的宽度和高度。
cutree_row&cutree_col: 是否根据聚类情况把树切开,可以设置切开的份数。
display_numbers: 设置是否显示每个单元格的值。
legend: 设置是否显示旁边的bar状图例。
filename: 设置输出文件的名字。可以设置的文件类型有腔缺:pdf,png,jpg,tiff,bmp。
优点:1、支持多种的颜色配置;2、支持样品和基因的双聚类;
缺点:基因名称显示似乎不太行,还在尝试,数据上限:2,500 rows and 300 columns;答备
操作参考-没有,慢慢摸索就好,简单易上手,似乎没有数据上限?
似乎全英,看着好累
这个工具看着也蛮好用的,操作参考也很详细,全中文参考: 重磅推荐,超详细热图在线绘制教程资料! – ,不过我不想注册,就没尝试
R绘图pheatmap热图绘制——高阶篇
绘图场景 :在高通量检测数据中,我们在数据展示上往往都喜欢将感兴趣的功能或者通路基因绘制成热图形式,能够让读者一目了然的发现某功能是增强了?还是减弱了?在实际过程中,表型实验上已经证明了炎症反应的走向,从初期增强到后期减弱。但在对应的高通量数据中却不是如我们所想,趋势很凌乱,很难说炎症这个过程的增强减弱。因此在拿到数据后,需要有选择性的筛选和展示。今天就以项目为例,记录整个绘制过程。
1. 对促炎数据做聚类分析并提取所需信息
首先清除环境,安装并加载所需要的R包
读入促炎数据并对数据做简单处理
绘图查看基因聚类情况
从上图发现,基因按照表达模式可分为3大类,其中1和2类是想要的数据。
那如何提取这部分数据呢?
首先将表达数据与聚类分类信息合并
按照聚类顺序将聚类1和2的数据提取出来
2. 对抑炎数据做聚类分析并提取所需信息
读入抑炎数据并对数据做简单处理
绘图查看基因聚类情况
从上图发现,基因按照表达模式可分为2大类,其中1类是想要的数据。
那如何提取这部分数据呢?
首先将表达数据与聚类分类信息合并
按照聚类顺序将聚类1和2的数据提取出来
3. 限定pos组数据的颜色,统一颜色标尺
首席清除环境,加载R包并读入上游筛选出的促炎数据
限定颜范围
绘图(促炎帆悔指热图)
4. 限定neg组数据的颜色,统一颜色标尺
首席清除环境,加载R包并读入上游筛前链选出的促炎数据
限定颜范围
绘图(抑炎热图)
5. 合并两张图片
最后可以用态配AI组合两个结果,也许R包也可以,还没有学。。。成图如下:整体体现出促炎反应随着时间减弱,抑炎随着时间增强,两个功能呈现此消彼长的趋势,符合实验表型。
往期回顾
R绘图ggplot2散点图的绘制
R绘图pheatmap热图绘制——基础篇
R绘图pheatmap热图绘制——中阶篇
今天的内容就到这里~~ ,更多内容可关注公共号“YJY技能修炼” ~~
在线热图绘制graphpadpri*7怎么做热图如何使用graphpadpri*制作热图啊
热图绘制
公众号链接:
热图是做分析时常用的展示方式,简单、直观、清晰。可以用来显示基因在不同样品中表达的高低、表观修饰水平的高低等。任何一个数值矩阵都可以通过合适的方式用热图展示。
本篇使用R的ggplot2包实现从原始数据读入到热图输出的过程,并在教程结束后提供一份封装好的命令行绘图工具,只需要提供矩阵,即可一键绘图。
上一篇讲述了Rstudio的使用作为R写作和编译环境的入门,后面的命令都可以拷贝到Rstudio中运行,或写成一个R脚本,使用Rscriptheatmap.r运行。我们还提供了Bash的封装,在不修改R脚本的情况下,改变参数绘制出不同的图形。
绘图首先需要数据。通过生成一堆的向量,转换为矩阵,得到想要的数据。
注意:运算符的优先级。
Vector转为矩阵(matrix),再转为数据框()。
虽然方法比较繁琐,但一个数值矩阵已经获得了。
还有另外2种获取数值矩阵的方式。
可以看到列名字中以数字开头的列都加了
X
。一般要尽量避免行或列名字燃滚凯以
数字开头
,会给后续分析带去一些困难;另外名字中出现的非字母、数字、下划线、点的字符都会被转为
点
,也需要注意,尽量只用字母、下划线和数字。
与上一步类似,只是改为文件名,不再赘述。
数据读入后,还需要一步格式转换。在使用ggplot2作图时,有一种长表格模式是最为常用的,尤其是数据不规则时,更应该使用(这点,我们在讲解箱线图时再说)。
数据转换后就可以画图了,分解命令如下:
热图出来了,但有点不对劲,横轴重叠一起了。一个办法是调整图像的宽度,另一个是旋转横轴标记。
设置想要的颜备信色。
调整legend的位置。
调整背景和背景格线以及X轴、Y轴的标题。
合并以上命令,就得到了下面这个看似复杂的绘图命令。
图形出来了,就得考虑存储了,
至此,完成了简单的heatmap的绘图。但实际绘制时,经常会碰到由于数值变化很大,导致颜色过于集中,使得图的可读性下降很多。因此需要对数据进行一些处理,具体的下次再说。
graphpadpri*7怎么做热图?如何使用graphpadpri*制作热图啊?
点开Graphpadpri*7.0软件,如图所示。
将XY换成Grouped。如图所示。
点击heatmap(热图),点击create,开始热图绘制。
接着在Group底下那一栏输入你要研究的基因名称,在tableformatgrouped下方输入组别名称。如下图所示。
点击左侧的graphs底下的Data1,弹出如下对话框。
这里的热图有几种表现形式,你可以挑选你想要的形式,这里选择第四种。
点击ok,即可出现你想要的结果。
点击export,可输出你想要的图片来。这里选择tiff格式。
【R】热图绘制
theme:是处理图美观的一个函数,可以调整横纵轴label的选择、图例的位置等。
这里选择X轴标签45度。
hjust和vjust调整标签的相对位置,
具体见下图。
简单说,hjust是水平的对齐方式,0为左,1为右,0.5居中,0-1之间可以取任意值。
vjust是垂直对齐方式,0底对齐,1为顶对齐,0.5居中,0-1之间可以取任意值。
,可以接受的值有top,bottom,left,right,和一个坐标c(0.05,0.8)(左上角,坐标是相对于图的左下角(即原点)计算的)
为了更好的可视化效果,需要对数据做些预处理,主要有对数转换,Z-score转换,抹去异常值,非线性颜色等方式。
Z-score又称为标准分数,是一组数中的每个数减去这一组数的平均值再除以这皮唤一组数的标准差,代表的是原始分数距离原始平均值的距离,以标准差为单位。可以对不同分布的各原始分数进行比较,用来反映数据的相对变化趋势,而非绝对变化量。
正常来讲,颜色的赋予在最小值到最大值之间是均匀分布的。如果最小值到最大值之间用100个颜色区分,则其中每一个bin,不论其大小、有没有值都会赋予一个颜色。非线性颜色则是对数据比较小但密集的地方赋予更多颜色,数据大但分布散的地方赋予更少颜色,这样既能加大区分度,又最小的影响原始数值。通常可以根据数据模式,手动设置颜色区间。为了方便自动化处理,也可选择用四分位数的方式设置颜色区间。
如果想保持图中每一行的顺序与输入的数据框一致,需要设置因子的水平。这也是ggplot2中调整图例或横纵轴字符顺序的常用方式。
绘制热图除了使用ggplot2,还可以有其它的包或函数,比如pheatmap::pheatmap(pheatmap包中的pheatmap函数)、gplots::heatmap.2等。
相比于ggplot2作heatmap,pheatmap会更为简单一些,一个函数设置不同的参数,可以完成行列聚类、行列注释、Z-score计算、颜色自定义等。
给矩阵的行和列进行分组注释
pheatmap行标签顺序大调整
在科学论文中,我们经常要用到热图。我们在 热图在单细胞数据分析中的应用 比较系统地介绍了热图的一般规则。但是在实际操作中还是会遇到一些细节问题,如标签顺序。
我们知道一个好的热图,薯毕要能反映出数据历手饥规律,直觉上就是要有明显的色块。那么色块是如何来的呢?和行与列的顺序有关。如一张好的热图大概率是这样的:
但是如果我们调整顺序,他可以变成这样的:
对我们来说重要的是获得这个顺序,然后指定给绘图函数。我们以熟悉的pheatmap为例来探索一下。首先生成示例数据:
看看数据长什么样子:
默认参数:
这时的顺序是按聚类顺序来的。
不聚类时,行顺序就是我们的输入矩阵的数据顺序。
我们把行名按字母排个序。
这时候就是字母序了。
有时候,我们只想留下聚类结果,并不想展示聚类轴,怎么办呢?
最后,我们肢返把这四张图拼在一起,对读着有个交代。
DoHeatmap clustering specific genes and not top x genes #2261
继续来看pheatmap那些有趣的事情
热图如何去掉聚类树的同时保留聚类的顺序?
【r<-ggplot2】cowplot在网格中排列图形
Arranging plots in a grid
https://github.com/satijalab/seurat/issues/2222
宏基因组代谢组:高分文章中物种与代谢物相关性热图是怎么画的
测序行业的蓬勃发展,带来微生物组学日新月异的变化。目前,单一组学的文章不断“贬值”,前沿研究的目光从单一组学逐步拓此扰展至多组学对贯穿分析,即结合多个组学的分析角度,从多个层面阐述生物学机制。
微生物多组学贯穿分析策略十分丰富:如常见的16s与宏基因组贯穿分析,可以验证物种的特征、丰富功能的探究;而16s与森弯旦代谢组的贯穿分析思路同样常见于高分文章中,通过16s探究不同处理/环境下菌群的物种组成变化,结合代谢组对应的代谢物的变化,进而找到不同处理/环境下引发细菌丰度差异最终导致代谢表型差异的机制。参考阅读《选好思路和方法,给自己一篇多组学高分文章 》
在16s与代谢组贯穿分析中,相关性热图是一个重要的分析手段,主要用于逐一呈现细菌物种与代谢物间的相关性高低,是筛选潜在关联的物种与代谢物的主要途径,对于下游的实验起到指导意义。此类相关性热图在高分文章中频繁出现,足见其重要性(图1、图2)。
图1 物种代谢物热图(2015,Cell Host& Microbe,IF=15.753 )[1]
图2 物种代谢物热图(2018,NatureMedicine,IF=30.641)[2]
那么,该如何画出此类高分文章中的相关性热图呢?这里,以16s与代谢组的数据为例,向大家分享如何使用R语言进行两个组学数据的相关性计算、绘制相关性热图。
1.加载R包
library(psych)
library(pheatmap)
library(reshape2)
2.读入数据
phy <-read.table(file = "phy.xls", sep = "t", header = T,row.names= 1)
图3 微生物丰度信息表格
met <-read.table(file = "met.xls", sep = "t", header = T,row.names= 1)
图4 代谢物丰度信息表格
3.计算相关性、p值
cor <-corr.test(phy, met, method = "pearson",adjust= "none")
cmt <-cor$r
pmt <- cor$p
head(cmt)
head(pmt)
4.数据保存
cmt.out<-cbind(rownames(cmt),cmt)
write.table(cmt.out,file= “cor.txt”,sep= “t”,row.names=F)
图5 相关性系数表格
pmt.out<-cbind(rownames(pmt),pmt)
write.table(pmt.out,file= “pvalue.txt”,sep= “t”,row.names=F)
图6 p值表格
df <-melt(cmt,value.name= "cor")
df$pvalue <- as.vector(pmt)
head(df)
write.table(df,file= “cor-p.txt”,sep= “t”)
图7 关系对信息
5.绘制显著性标记
if(!is.null(pmt)){
ssmt <- pmt< 0.01
pmt[ssmt] <- ''
smt 0.01& pmt < 0.05
pmt[smt] <- '*'
pmt[!ssmt&!smt]<- ''
} else{
pmt <- F
}
6.绘制相关性闹搏热图
mycol<-colorRampPalette(c("blue","white","tomato"))(800)
pheatmap(cmt,scale = “none”,cluster_row = T, cluster_col = T, border=NA,
display_numbers = pmt,fontsize_number = 12, number_color = “white”,
cellwidth = 20, cellheight =20,color=mycol)
图8 R语言绘制的物种+代谢物相关性热图
pheatmap(cmt,scale = “none”,cluster_row = T, cluster_col = T, border=NA,
display_numbers = pmt, fontsize_number = 12, number_color = “white”,
cellwidth = 20, cellheight = 20,color=mycol,filename= “heatmap.pdf”)
参考文献
[1]Kostic AD, Gevers D, Siljander H, et al. The dynamics ofthe human infant gut microbiome in development and in progression toward type 1diabetes. Cell Host Microbe. 2015;17(2):260–273.doi:10.1016/j.chom.2015.01.001
[2]Hoyles, Lesleyet al. “Molecular phenomics and metagenomics of hepatic steatosis innon-diabetic obese women.” Nature medicine vol. 24,7 (2018):1070-1080. doi:10.1038/s41591-018-0061-3
原文 https://www.sohu.com/a/366652239_278730