聚类热图怎么分析(聚类热图分析怎么看)
本篇文章给大家谈谈聚类热图怎么分析,以及聚类热图分析怎么看对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
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富集的生物学过程
到此结束
关于聚类热图怎么分析和聚类热图分析怎么看的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。