昨天我们搞到了1.5,完成了聚类,并且保存了一个文件
moic.res.list <- append(moic.res.list,
list("iClusterBayes" = iClusterBayes.res))
# 保存下结果
save(moic.res.list, file = "moic.res.list.rda")
1.6绘制Consensus图
cmoic.brca <- getConsensusMOIC(moic.res.list = moic.res.list,
fig.name = "CONSENSUS HEATMAP",
distance = "euclidean",
linkage = "average")
使用getConsensusMOIC 函数来生成多组学聚类分析的共识热图(consensus heatmap),以便总结不同算法的聚类结果。getConsensusMOIC 函数结合了多个聚类算法的输出结果,生成一个最终的聚类分群,从而提供更稳健的分型结果。以下是每个参数的解释:
moic.res.list = moic.res.list: 这是包含多个聚类算法结果的列表,之前通过 getMOIC 函数生成。moic.res.list 中的结果来自不同的聚类算法(如 SNF、PINSPlus 等),每个算法都生成了自己的聚类分群。 fig.name = "CONSENSUS HEATMAP": 指定生成图像的名称。在此,生成的图像会被命名为“CONSENSUS HEATMAP”,方便后续识别。 distance = "euclidean": 指定用于生成热图的距离度量方式。在这里使用的是欧几里得距离(Euclidean distance),这是常用的一种测量样本间相似性的方法。可以根据需求选择其他距离度量方式,比如曼哈顿距离(Manhattan)。 linkage = "average": 指定聚类算法的连接方法。在这里使用的是平均连接法(average linkage),它在计算聚类时会考虑群内元素之间的平均距离。这种方法生成的树状结构(dendrogram)会比较平滑。getConsensusMOIC 函数的作用是根据不同聚类算法的结果生成一个共识聚类,即将多种算法的结果进行整合,以生成更稳健的分群。最终生成的共识热图展示了样本之间的相似性,帮助评估聚类结果的稳定性。
图的解读
热图矩阵:图的主体部分是一个相似性矩阵,其中每个小方格代表两个样本之间的一致性程度。颜色深浅表示相似性高低,颜色越亮(接近黄色),表示样本在多次聚类中越常被分到同一类。颜色越暗(接近紫色),表示样本间的一致性较低。对角线附近的亮色块通常表示较为一致的聚类群体。 分型(Subtype)标记:图顶端有不同颜色的条带(标记为CS1、CS2、CS3等),表示最终的分型结果。这些颜色代表每个亚型,帮助识别样本属于哪个分型。 层次聚类树(dendrogram):图的顶部和左侧的树状结构显示了样本的层次聚类关系。树状结构可以帮助观察样本如何聚集到不同的分型中,以及每个亚型之间的关系。
从图片中我们可以看到:
分型一致性:如果热图中形成了几个清晰的亮色方块(比如图中的几块较亮区域),说明这些样本在多种算法下都被一致地分到同一组,表示聚类结果的一致性较好。每个亮色方块代表一个亚型。 分型数量的合理性:从分块数量和树状图的层级,可以判断分型数量是否合理。如果看到分型清晰且数量与设定的聚类数(5)一致,说明分型数选择合理;否则,可能需要重新评估聚类数。 亚型的差异:不同颜色代表的分型(CS1、CS2、CS3等)显示了最终的分群结果。可以根据颜色和树状结构来判断不同分型之间的相似性。 相似性度量:图右侧的色条表示相似性强度,从0到1。颜色越亮,表示样本间的一致性越高,这通常是多次聚类后形成的共识结果。
这张热图可以表示可视化样本在多次聚类下的一致性。亮色区域和清晰的分块表示较为一致的聚类结果,暗色区域或无明显分块表示样本分群不够清晰。
图中的5个分型(CS1至CS5)对应于你的聚类数设定(N.clust=5),表明样本可以被合理分为5类。
1.7.接下来我们按照不同的算法进行分析一下数据集
我们首先对选择的数据进行了一个处理。
indata <- mo.data
indata$meth.beta <- log2(indata$meth.beta / (1 - indata$meth.beta))
这里将mo.data 中的 DNA 甲基化数据 meth.beta 从 Beta 值转换为 M 值。M 值的信号更强,转换后的数据更适合用于聚类分析。
接着我们使用R包的内置的函数进行处理:
getStdiz 函数用于对多组学数据进行标准化处理:
halfwidth = c(2,2,2,NA):为每个数据类型设置数据截断范围。前三种组学数据(mRNA、lncRNA、甲基化)进行截断,第四种(突变)则不截断。
centerFlag = c(T,T,T,F):前三种数据进行居中(零中心化),突变数据不进行居中。
scaleFlag = c(T,T,T,F):前三种数据进行标准化,突变数据不进行标准化。
这里提取每种组学数据的前10个重要特征,并将它们存储在 annRow 列表中,用于在热图中标记这些特征:
feat1 到 feat4 分别表示 mRNA、lncRNA、甲基化和突变的特征列表。
# 绘制热图
plotdata <- getStdiz(data = indata,
halfwidth = c(2,2,2,NA), # no truncation for mutation
centerFlag = c(T,T,T,F), # no center for mutation
scaleFlag = c(T,T,T,F)) # no scale for mutation
feat <- iClusterBayes.res$feat.res
feat1 <- feat[which(feat$dataset == "mRNA.expr"),][1:10,"feature"]
feat2 <- feat[which(feat$dataset == "lncRNA.expr"),][1:10,"feature"]
feat3 <- feat[which(feat$dataset == "meth.beta"),][1:10,"feature"]
feat4 <- feat[which(feat$dataset == "mut.status"),][1:10,"feature"]
annRow <- list(feat1, feat2, feat3, feat4)
# set color for each omics data
# if no color list specified all subheatmaps will be unified to green and red color pattern
mRNA.col <- c("#00FF00", "#008000", "#000000", "#800000", "#FF0000")
lncRNA.col <- c("#6699CC", "white" , "#FF3C38")
meth.col <- c("#0074FE", "#96EBF9", "#FEE900", "#F00003")
mut.col <- c("grey90" , "black")
col.list <- list(mRNA.col, lncRNA.col, meth.col, mut.col)
为每种组学数据指定不同的颜色:
mRNA.col、lncRNA.col、meth.col 和 mut.col 分别为 mRNA、lncRNA、甲基化和突变数据设定颜色。
颜色列表 col.list 用于控制每个子热图的配色。
处理好了数据我们就可以进行画图展示了
# 贝叶斯法分型
getMoHeatmap(data = plotdata,
row.title = c("mRNA","lncRNA","Methylation","Mutation"),
is.binary = c(F,F,F,T), # the 4th data is mutation which is binary
legend.name = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"),
clust.res = iClusterBayes.res$clust.res, # cluster results
clust.dend = NULL, # no dendrogram
show.rownames = c(F,F,F,F), # specify for each omics data
show.colnames = FALSE, # show no sample names
annRow = annRow, # mark selected features
color = col.list,
annCol = NULL, # no annotation for samples
annColors = NULL, # no annotation color
width = 10, # width of each subheatmap
height = 5, # height of each subheatmap
fig.name = "COMPREHENSIVE HEATMAP OF ICLUSTERBAYES")
data = plotdata:标准化后的数据。 row.title = c("mRNA","lncRNA","Methylation","Mutation"):为每种组学数据设置标题。 is.binary = c(F,F,F,T):表示第4种数据(突变)是二进制数据,其余是连续数据。 legend.name = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"):为图例设置名称。 clust.res = iClusterBayes.res$clust.res:聚类结果,来自 iClusterBayes 分析。 clust.dend = NULL:不显示聚类树。 show.rownames = c(F,F,F,F):不显示行名。 show.colnames = FALSE:不显示列名。 annRow = annRow:标记选定的特征。 color = col.list:使用指定的颜色。 annCol = NULL 和 annColors = NULL:不对样本进行额外的标注。 width = 10 和 height = 5:每个子热图的宽度和高度。 fig.name = "COMPREHENSIVE HEATMAP OF ICLUSTERBAYES":图的文件名。
通过这段代码得到的就是这个图:
不同组学数据的热图:图中包含 mRNA、lncRNA、甲基化和突变的子热图,分别展示了不同组学数据在各分型(CS1 到 CS5)中的分布和表达情况。
特征标注:每个子热图的右侧列出了选定的特征(如基因名),显示这些特征在不同分型中的表达或状态。 颜色编码:颜色表示表达或甲基化水平的高低(从低到高)或突变状态(0/1),例如红色表示高表达或高甲基化,绿色表示低表达或低甲基化,黑色表示突变。 分型的差异:通过观察颜色的不同,可以直观地看到每个分型(CS1 到 CS5)在不同组学数据上的特征差异,这有助于理解各分型的生物学特征。
1.8通过COCA方法生成热图
# COCA法分型
getMoHeatmap(data = plotdata,
row.title = c("mRNA","lncRNA","Methylation","Mutation"),
is.binary = c(F,F,F,T), # the 4th data is mutation which is binary
legend.name = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"),
clust.res = moic.res.list$COCA$clust.res, # cluster results
clust.dend = moic.res.list$COCA$clust.dend, # show dendrogram for samples
color = col.list,
width = 10, # width of each subheatmap
height = 5, # height of each subheatmap
fig.name = "COMPREHENSIVE HEATMAP OF COCA")
data = plotdata: 传入经过标准化的多组学数据,这些数据包含了 mRNA 表达、lncRNA 表达、DNA 甲基化和突变信息。
row.title = c("mRNA","lncRNA","Methylation","Mutation"): 为每个子热图指定标题,分别表示 mRNA、lncRNA、甲基化和突变数据的内容。
is.binary = c(F,F,F,T): 指定哪些数据是二进制的。这里前三个(mRNA、lncRNA、甲基化)为连续数据,因此设为 F,而突变数据是二进制数据,因此设为 T。
legend.name = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"): 定义图例名称,帮助解读不同数据类型的单位或含义。
mRNA.FPKM 和 lncRNA.FPKM 表示这两种数据的单位是 FPKM(表达量)。
M value 表示甲基化数据的 M 值。Mutated 表示突变状态(0 表示无突变,1 表示有突变)。
clust.res = moic.res.listclust.res: 使用 COCA 方法生成的聚类结果,表示样本的分型。
clust.dend = moic.res.listclust.dend: 样本的层次聚类树状图(dendrogram),显示在热图顶部,用于展示样本间的聚类关系。
color = col.list: 指定每种组学数据的颜色方案。
col.list 是包含了 mRNA、lncRNA、甲基化和突变颜色方案的列表,分别控制各子热图的颜色显示。
width = 10 和 height = 5: 每个子热图的宽度和高度。
fig.name = "COMPREHENSIVE HEATMAP OF COCA": 输出图像文件名,设置为 "COMPREHENSIVE HEATMAP OF COCA"。
子热图:图分为多个子图,分别展示了 mRNA 表达、lncRNA 表达、DNA 甲基化和突变信息。这些子图帮助我们观察不同分型在各组学数据中的特征分布。
mRNA 子图:绿色到红色的渐变表示不同的表达水平,绿色表示低表达,红色表示高表达。
lncRNA 子图:蓝色到红色的渐变表示 lncRNA 的表达水平。
Methylation 子图:蓝色到黄色到红色的渐变表示甲基化水平,蓝色表示低甲基化,红色表示高甲基化。
Mutation 子图:灰色表示无突变,黑色表示有突变。
层次聚类树(dendrogram):图顶部的树状结构表示样本的层次聚类关系。通过观察树状图的分支,可以了解不同样本在 COCA 分型结果中的相似性。
分型(Subtype)和突变状态:图右侧的图例中显示了分型(CS1 到 CS5)和突变状态(0 和 1)的颜色编码。分型颜色帮助区分不同亚型,突变状态颜色帮助识别突变与分型的关系。
分型差异:不同分型在各组学数据上的颜色分布可能存在明显差异。这些差异可以反映出不同分型的生物学特征。例如,某些分型可能在特定的 mRNA 基因上表现为高表达,或在特定甲基化位点上表现为高甲基化。