聚类热图怎么分析(聚类热图分析怎么看)

本篇文章给大家谈谈聚类热图怎么分析,以及聚类热图分析怎么看对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

R 数据可视化 —— 聚类热图 pheatmap

在前面的章节中,我们介绍了如何使用 ggplot2 绘制热图

ggplot2 绘制热图的方式很多,如 geom_raster 、 geom_tile 等

但通常仅仅绘制热图是不够的,还需要对数据进行聚类,即绘制聚类热图。

例如,最常用的就是将差异基因的表达值绘制聚类热图,来查看基因在不同样本中的表达差异情况,或者比较不同聚类分组之间的前逗差异。

绘制聚类热图的包有很多,我们主要介绍 pheatmap 和 ComplexHeatmap

假设我们有如下数据

要绘制简单的热图,可以使用内置的 heatmap 函数

更改颜色,并为列添加列样本的分类颜色条

内置函数提供的样式较少,无法对某些图形属性进行设置。

所以下面我们使用 pheatmap 包来绘制热图

pheatmap 对图形属性提供了更精细的控制

这样看起来怪怪的,应该是基因的表达量差异,所以对行进行标准化

嗯,一下子就顺眼多了,实验组和对照组的基因表达量差别明显

默认情况下,会对数据的行列分别进行层次聚类,如果我们想在进行层次聚类之前,先对行特征,也就是基因进行 k-means 聚类,我们可以

先将基因聚为 3 类,再进行层次聚类

如果只想对其中行列中的一个进行聚类,可以使用 cluster_rows 和 cluster_cols 参数,取消对行或列的距离

默认的距离度量为欧氏距离,也可以分别为行列指定不同的距离度量,例如

也可以使用 clustering_method 参数来指定不同的聚类方法,支持以下几种方法:

图例的设置很简单,即通过 legend_breaks 参数设置断点, legend_labels 参数设置断点处的标签

如果不想显示图例,直接设置 legend = F 就行

设置边框颜色

删除边框

默认情况下,单元格的长度和宽度会根据图片的大小自动调整,如果想固定单元格的大小,可以使用 cellwidth 和 cellheight 两个参数

如果我们想在单元格中显示对于的数值,可以设置 display_numbers = TRUE

对显示的数值进行格式化

或者,为 display_numbers 参数传递一个矩阵

例如,根据表达值是否大于 100 来显示不同的标记

在不对数据进行聚类的情况下,可以纯兆对行列进行自定义划分为不同的块

或者只对行或列进行分块

总之,只能对未聚类做悔租的行或列进行分块

或者,根据层次聚类的结果,对数据进行分块

使用 main 参数来设置图像的标题

可以使用 show_colnames 和 show_rownames 不显示标签

分别设置标签的大小,同时设置列标签的倾斜角度,可选的角度有 270、0、45、90、315

也可以使用 fontsize 参数统一行列标签的大小

也可以自定义行列标签

我们可以分别为行和列构建分组信息,例如对于行是基因,可以将其分为癌基因和抑癌基因等,而列为样本可以分为癌症和配对正常样本,同时样本对应的患者应该会有年龄性别等信息

例如

我们可以将这些信息以颜色条的方式添加到图中

隐藏图例

我们可以回去 pheatmap 函数返回的对象的信息

可以看到,返回对象 p 中包含 4 个变量,我们可以根据 tree_row 和 tree_col 提取出对应的行列顺序

提取这些信息有助于我们对数据进行分组,用于后续分析

参数列表

数据:

[img]

转录组热图怎么看

这个热图上你会得到两个信息,第一是表达量和颜色关系:

高原红就是山派厅高表达,原谅色就是低表达。当然,由于这个工具是聚类热图,所以左侧和顶上,会有聚类的树状图:

其实这个在GEO Analysis Tool里也能进羡尘行聚类,最常用的就是HCL分层聚类,怎么说呢,实际上就是按照表达的具体数值,用皮尔森法或者别的什么方法,比较基因或者样本之间的相似度。把表达模式逗隐相似的归为一类,有点像序列比对吧。

SC3 聚类结果中的几张热图

我们之前在 SC3 : 单细胞转录组聚类分析R包 中介绍过SC3聚类算法,对于细胞异质性未知的样本,聚成几个类我们不知道,这时候可以多尝试几种聚类策略。SC3这个时候就派上用场了。

SC3在可视化上面为我们贡献了几张热图,那么他们都是什么意思呢?

共识矩阵是一个N×N矩阵,其中N是输入数据集中的细胞数。根据所有聚类参数组合的聚类结果的平均值,表示细胞之间的相似性。similarity 0(蓝色)表示这两个细胞总是被分配到不同的群。相反,similarity 1(红色)表示这两个细胞总是被分配到相同的群。共识矩阵采用层次聚类方法进行聚类,具有对角块结构。直观地说,当所有对角块都是完全红色,所有非对角元素都是完全蓝色时,就可以实现完美的聚类。

表达热图表示基因以kmeans进行聚类,k = 100(左侧为树状图),heatmap表示基因簇中心在log2- scale后的表达水平。

差异基因的计算采用非参数Kruskal-Wallis检验。SC3提供了调整p值 0.01的所有差异表达基因的列表,并绘制了p值培型磨最低的50个基因的基因表达谱。值得注意的是,聚类后的差异表达计算可能会在p值的分布中引入偏差,因此我们建议仅使用p值对基因进行排序。

为了找到标记基因租轿,每个基因都建立一个基于平均聚类表达值的二元分类器。然后利用基因表达配斗序列计算分类器预测,ROC曲线下的面积用来量化预测的准确性。利用Wilcoxon符号秩检验为每个基因分配一个p值。默认选择ROC曲线下面积(AUROC)为 0.85且p值 0.01的基因,在此heatmap中显示每个簇的前10个标记基因。

按照热图聚类结果来给样本分组

输入数据是个表达矩阵,行为基因,列为样本,用随机数整一个。

常规的热图很简单

我们能知道图上样本的排列顺序,但是不码烂知道每一簇都有多少个样本,对应着哪些。

让三簇分的更清楚一些

加上cutree_cols参数,热图上就有了沟,将样本分成了指定数量的组。

还是不知道怎样能得出三组个自是哪些样本的信息。我以为 p2$tree_col$order 里面会指明,然而迟仔漏并没有。

遂, 搜索 关键词get cluster in pheatmap,找到了一个网页: ,看到cutree居然还是个单独的函数。摸索了一下怎么使用

这就完事儿了。m里面记录了每个样本属于哪个分组。这就是我想要的信息。

常规的差异分析也会用到列注释热图来展示数据的分组,那是已知分组,直接展示两戚尺组间差别的,和今天做的 根据聚类的结果来分组 不一样的哦

至于列注释如何添加上去查看帮助文档,按照annotation_col参数的示例来组织数据即可啦!

这样 我们就根据聚类的结果来给原来的矩阵列(样本)分了组~

转录组DEGs聚类热图和功能富集分析

我们上面计算的是withinss,即cluster内的误差平方和,同一个cluster趋势越一致则越小。所以cluster越多则这个值越小,这和我们认知一致。 但是 ,cluster太多了信息很杂,太少了就成了生拉硬扯成cluster了

AIC介绍,

理论上来讲,增加自由参数的数目可以提高拟合的优良性,但是过多,模型过于复杂容易造成过拟合现象。因此,AIC不仅要提州好高模型拟合度(极大似然),而且引入了惩罚项,使模型参数尽可能少,有助于降低仿迹闹过拟合的可能性。

这里如果遇到提示

运行下面的命令即可

下面就可以进行GO和KEGG富集分析了

列备罩一个例子,GO富集的生物学过程

到此结束

关于聚类热图怎么分析和聚类热图分析怎么看的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表