作者:顾祖光(z.gu@dkfz.de)
日期: 2018-10-30
库(EnrichedHeatmap)负载(系统。文件(“extdata”、“neg_cr。RData", package = "EnrichedHeatmap")) all_genes = all_genes[unique(neg_cr$gene)] all_tss = promoter (all_genes, upstream = 0, downstream = 1) mat_neg_cr = normalizeToMatrix(neg_cr, all_tss, mapping_column = "gene", w = 50, mean_mode = "w0")
的对象mat_neg_cr
是显示甲基化和基因表达之间显著负相关的区域的归一化矩阵。将负相关区域归一化到基因TSS的上游5kb和下游5kb,窗口为50bpnormalizeToMatrix ()
函数。矩阵中的值表示窗口是否被负相关区域覆盖。
归一化矩阵中,每行对应一个基因,每列对应TSS上游或TSS下游的一个窗口。例如mat_neg_cr
矩阵中,前½列对应TSS的上游,后½列对应TSS的下游。在这里,我们比较了三种不同的方法来排序矩阵中的行(对应于基因)。
行按丰富的分数排序。对于矩阵中的每一行,将某一行的值表示为\(x\),指标1,…,\(n_1\)表示上游窗口,指标\(n_1+1\),…,\(n\)表示下游窗口,\(n_2 = n - n_1\),富集分数计算为\(x\)与TSS距离加权的总和。
\ [\ sum_ {i = 1} ^ {n_1} {x_i \ cdot i / n_1} + \ sum_{我= n_1 + 1} ^ n {x_i \ cdot (n - i + 1) /甲烷}\]
行是通过欧氏距离的层次聚类来排序的。
行按贴近距离的层次聚类进行排序。对于归一化矩阵中的两行,假设\(a_1, a_2,…,a_{n_1}\)是与负相关区域重叠的一个基因的窗口指标,\(b_1, b_2,…b_{n_2}\)是与负相关区域重叠的另一个基因的窗口指标,则根据两个基因重叠窗口的紧密程度定义距离为:
\ [d_{亲密}= \压裂{\ sum_ {i = 1} ^ {n_1} \ sum_ {j = 1} ^{甲烷}{| ai - b_j |}} {n_1 \ cdot甲烷}\]
矩阵中列的排列保持行与行之间的欧氏距离不变,而近距离则考虑了列的顺序,这样可能更适合归一化矩阵的聚类。
下面三个图显示了不同行排序方法下的热图。
EnrichedHeatmap(mat_neg_cr, name = "neg_cr", col = c("白色","深绿色"),top_annotation = HeatmapAnnotation(enrich = anno_enrichment (gp = gpar(col = "深绿色"))),row_title = "默认富集分数")EnrichedHeatmap(mat_neg_cr, name = "neg_cr", col = c("白色","深绿色"),top_annotation = HeatmapAnnotation(enrich = anno_enrichment (gp = gpar(col = "深绿色"))),cluster_rows = TRUE,row_title = "by hierarchy clustering + Euclidean distance\ nendrogram reordered by enrichment scores") EnrichedHeatmap(mat_neg_cr, name = "neg_cr", col = c("白色","深绿色"),top_annotation = HeatmapAnnotation(enrich = anno_enrichment (gp = gpar(col = "深绿色"))),cluster_rows = TRUE, clustering_distance_rows = dist_by_close, row_title = "by hierarchy clustering + close distance\ nendrogram reordered by enrichment scores")
一般情况下,在热图中加入总结各基因均值富集的顶部注释时,不建议按照富集分数排序,因为它提供了与顶部富集注释相同的冗余信息,另一方面,它不能像其他两种方法一样揭示空间聚类。带有欧几里得距离的层次聚类擅长聚类丰富模式,但由于它没有考虑列序,因此仍然有可能两个空间上接近的聚类在热图中分离得很远。利用近距离对富集模式进行了清晰的分类和聚类。
行序、聚类法、距离法均可自调整row_order
,cluster_rows
,clustering_method_rows
,clustering_distance_rows
,公里
而且分裂
参数在EnrichedHeamtap ()
函数。关于如何正确地为这些参数设置值,用户可以访问的帮助页EnrichedHeatmap ()
或热图()
函数。