我们搞完了1.8,使用两种不同的方法进行展示了图,现在我们加一些临床信息。
# 结合临床信息分型
# extract PAM50, pathologic stage and age for sample annotation
annCol <- surv.info[,c("PAM50", "pstage", "age"), drop = FALSE]
# generate corresponding colors for sample annotation
annColors <- list(age = circlize::colorRamp2(breaks = c(min(annCol$age),
median(annCol$age),
max(annCol$age)),
colors = c("#0000AA", "#555555", "#AAAA00")),
PAM50 = c("Basal" = "blue",
"Her2" = "red",
"LumA" = "yellow",
"LumB" = "green",
"Normal" = "black"),
pstage = c( "T1" = "green",
"T2" = "blue",
"T3" = "red",
"T4" = "yellow",
"TX" = "black"))
# comprehensive heatmap (may take a while)
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 = cmoic.brca$clust.res, # consensusMOIC results
clust.dend = NULL, # show no dendrogram for samples
show.rownames = c(F,F,F,F), # specify for each omics data
show.colnames = FALSE, # show no sample names
show.row.dend = c(F,F,F,F), # show no dendrogram for features
annRow = NULL, # no selected features
color = col.list,
annCol = annCol, # annotation for samples
annColors = annColors, # annotation color
width = 10, # width of each subheatmap
height = 5, # height of each subheatmap
fig.name = "COMPREHENSIVE HEATMAP OF CONSENSUSMOIC")
首先我们从 surv.info 中提取了每个样本的临床信息,包括 PAM50 亚型、病理分期 pstage 和 age 年龄,用于在热图中注释样本。
age: 使用 circlize::colorRamp2 函数生成了一个连续颜色渐变,用于表示年龄,从最低年龄到最高年龄依次显示为蓝色(#0000AA)、灰色(#555555)和黄色(#AAAA00)。 PAM50: 设置了 PAM50 亚型的颜色,Basal 用蓝色,Her2 用红色,LumA 用黄色,LumB 用绿色,Normal 用黑色。 pstage: 为病理分期(T1, T2, T3, T4, TX)设置了颜色,分别用绿色、蓝色、红色、黄色和黑色。
然后我们就结合这几个信息进行画图。
data = plotdata: 标准化后的多组学数据,包含 mRNA 表达、lncRNA 表达、甲基化和突变数据。 row.title = c("mRNA","lncRNA","Methylation","Mutation"): 为每个子热图设置标题。 is.binary = c(F,F,F,T): 指定哪些数据是二进制的,这里只有突变数据是二进制(T)。 legend.name = c("mRNA.FPKM","lncRNA.FPKM","M value","Mutated"): 为图例设置名称,帮助解读每个数据类型。 clust.res = cmoic.brca$clust.res: 使用共识聚类 cmoic.brca 的分型结果。 clust.dend = NULL: 不显示样本的层次聚类树。 show.rownames = c(F,F,F,F) 和 show.colnames = FALSE: 不显示行名和列名。 show.row.dend = c(F,F,F,F): 不显示行的层次聚类树。 annRow = NULL: 不标记特定的基因特征。 color = col.list: 设置每种组学数据的颜色。 annCol = annCol: 使用临床信息进行样本注释。 annColors = annColors: 定义注释颜色。 width = 10 和 height = 5: 设置每个子热图的宽度和高度。 fig.name = "COMPREHENSIVE HEATMAP OF CONSENSUSMOIC": 定义输出文件的名称。
得到的图中分为多个子图,分别展示了mRNA 表达、lncRNA 表达、甲基化和突变数据。每个子图的颜色表示不同的表达或甲基化水平、突变状态。
mRNA 子图:颜色从绿色到红色,表示不同的 mRNA 表达水平(绿色低,红色高)。 lncRNA 子图:颜色从蓝色到红色,表示 lncRNA 的表达水平(蓝色低,红色高)。 Methylation 子图:颜色从蓝色到黄色再到红色,表示甲基化水平(蓝色低甲基化,红色高甲基化)。 Mutation 子图:灰色表示无突变,黑色表示有突变。 样本的临床注释:在图的右侧,有样本的临床信息注释: PAM50:样本的 PAM50 亚型,用不同颜色表示。 pstage:样本的病理分期(T1 到 T4,TX),用不同颜色表示。 age:样本的年龄,颜色渐变表示不同年龄段。 分型(Subtype):热图中的 Subtype 表示不同的分型(CS1 到 CS5)。这些分型来自共识聚类结果,颜色编码帮助识别不同的分型群体。
帮助我们观察不同分型在多个层面(mRNA、lncRNA、甲基化和突变)上的特征差异,以及这些分型与临床信息(PAM50 亚型、病理分期和年龄)的关系。这种综合的可视化方式为理解肿瘤分型的分子特征和其临床关联性提供了有力的支持。
1.9画一下生存曲线图
surv.brca <- compSurv(moic.res = cmoic.brca,
surv.info = surv.info,
convt.time = "m", # 把天变成月
surv.median.line = "h",
xyrs.est = c(5,10), # 计算5年和10年生存率
fig.name = "KAPLAN-MEIER CURVE OF CONSENSUSMOIC")
moic.res = cmoic.brca: 使用共识聚类 cmoic.brca 的分型结果,表明这些分型(CS1 到 CS5)是通过共识聚类分析获得的。
surv.info = surv.info: 生存信息,包含样本的生存时间和生存状态(如是否死亡),用于生成生存曲线。
convt.time = "m": 时间单位转换,将生存时间从天转换为月。
surv.median.line = "h": 在图中添加一条水平线,表示中位生存率的参考线(如图中虚线)。
xyrs.est = c(5,10): 计算并在图上显示每个分型的5年和10年生存率,帮助评估不同分型的长期生存差异。
fig.name = "KAPLAN-MEIER CURVE OF CONSENSUSMOIC": 输出图的文件名,命名为 "KAPLAN-MEIER CURVE OF CONSENSUSMOIC"。
生存曲线:每条曲线代表一个分型的生存率随时间的变化情况(CS1 到 CS5),纵轴为生存概率(%),横轴为生存时间(以月为单位)。
各曲线的颜色对应不同的分型,曲线的下降表示随着时间推移,样本的生存率在逐渐降低。
P 值:图中显示了总的 P < 0.001,表示通过 log-rank 检验得出的结果。这个显著性水平表明不同分型之间的生存差异具有统计学显著性,即不同分型的生存曲线显著不同。
生存差异表:在图中间部分,有一个生存差异的表格,显示了不同分型之间的成对 P 值。该表帮助我们了解每个分型与其他分型之间的生存差异是否显著。例如:
CS1 和 CS3 之间的 P 值为 <0.001,表明这两个分型的生存差异显著。
CS3 和 CS5 之间的 P 值为 0.033,表明它们之间的生存差异也具有统计学显著性。
中位生存线:虚线(水平线)表示中位生存率的参考线,这条线帮助我们直观地看到各分型是否达到50%的生存率及其对应的时间。
在风险样本数:图下方显示了每个时间点各分型的在风险样本数量,表示在每个时间点上仍在观测中的样本数量。随着时间推移,在风险样本数量会减少。
Kaplan-Meier 曲线展示了通过共识聚类得到的分型(CS1 到 CS5)在生存率上的差异。各分型的生存曲线有显著差异,说明这些分型在生存预后方面具有不同的表现。P 值表明某些分型之间的生存差异具有统计学显著性,这为进一步的临床应用提供了有价值的信息。