前面我们分析了好多内容,现在我们可以通过做一下药物敏感性来得到具体的信息。
2.0药物敏感性分析
# 药物敏感性
# drug sensitivity comparison
drug.brca <- compDrugsen(moic.res = cmoic.brca,
norm.expr=fpkm[,cmoic.brca$clust.res$samID],#确保样本顺序一致
drugs=c("Cisplatin", "Paclitaxel","Sorafenib"), #选择药物
tissueType = "breast", # 选择组织类型
test.method = "nonparametric", # statistical testing method
prefix = "BOXVIOLIN OF ESTIMATED IC50")
moic.res = cmoic.brca: 使用共识聚类的分型结果(CS1 到 CS5),将样本划分到不同分型中。 norm.expr = fpkm[,cmoic.brcasamID]: 输入标准化的表达数据,确保样本顺序与分型结果一致。 drugs = c("Cisplatin", "Paclitaxel", "Sorafenib"): 选择要测试的药物,包括顺铂(Cisplatin)、紫杉醇(Paclitaxel)和索拉非尼(Sorafenib)。 tissueType = "breast": 指定组织类型为乳腺(breast),确保药物敏感性分析针对乳腺癌样本。 test.method = "nonparametric": 使用非参数检验方法(例如 Kruskal-Wallis 检验)来评估不同分型的IC50值差异。 prefix = "BOXVIOLIN OF ESTIMATED IC50": 输出图的文件名前缀。
通过这段代码,我们可以得到三张图
图1(Cisplatin - 顺铂):展示了不同分型对顺铂的敏感性,CS1 和 CS4 的 IC50 值相对较低,表明这两个分型对顺铂更敏感,而 CS2 的 IC50 值较高,表明其可能更耐受顺铂。
图2(Paclitaxel - 紫杉醇):展示了不同分型对紫杉醇的敏感性。CS1 的 IC50 值较低,表明该分型对紫杉醇更敏感,而 CS2 的 IC50 值较高,表明其可能对紫杉醇较为耐受。图3(Sorafenib - 索拉非尼):展示了不同分型对索拉非尼的敏感性。不同分型的 IC50 值差异较小,但 Kruskal-Wallis 检验仍显示出显著性差异,表明分型在索拉非尼的敏感性方面可能仍有一些差异。
纵轴(Estimated IC50):IC50 值表示使细胞增殖抑制达到50%的药物浓度。值越低,表示细胞对药物越敏感;值越高,表示细胞对药物耐受性较强。
分型差异:每个分型(CS1 到 CS5)用不同颜色表示,每个颜色代表不同的分型。各分型的 IC50 值分布可以直观地展示不同分型对该药物的敏感性差异。
Kruskal-Wallis 检验的 p 值:每张图的底部显示了 Kruskal-Wallis 检验的 p 值(p < 2.2e-16),表明不同分型之间的 IC50 值在统计上有显著差异。这意味着某些分型对该药物更敏感或更耐受。
小圆点:每个点代表一个样本的IC50值。
箱线图和小提琴图:箱线图展示了每个分型的IC50值的中位数和四分位范围,小提琴图展示了IC50值的分布形状,显示数据的密度。
展示了不同分型在三种药物(顺铂、紫杉醇和索拉非尼)上的敏感性差异。显著的 p 值表明,不同分型之间对药物的反应存在显著差异,这为不同分型的个性化治疗提供了潜在依据。例如,可以考虑对CS1和CS4使用顺铂,而对CS2可能需要选择其他药物。
2.1进行差异分析
runDEA(dea.method = "edger",
expr = count, # raw count data
moic.res = cmoic.brca,
prefix = "TCGA-BRCA") # prefix of figure name
# run DEA with DESeq2
runDEA(dea.method = "deseq2",
expr = count, # deseq2也需要count
moic.res = cmoic.brca,
prefix = "TCGA-BRCA")
# run DEA with limma
runDEA(dea.method = "limma",
expr = fpkm, # normalized expression data
moic.res = cmoic.brca,
prefix = "TCGA-BRCA")
分别使用 EdgeR、DESeq2 和 Limma 进行差异表达分析。
EdgeR 和 DESeq2 使用原始计数数据来识别不同分型(CS1 到 CS5)之间显著差异的基因,而 Limma 使用标准化的表达数据。 输出文件的前缀设置为 "TCGA-BRCA",所有生成的结果文件将以此命名。这种多方法的分析可以增加结果的稳健性,因为不同的 DEA 方法可能会给出相互支持的结果。
通过不同的差异分析方法,可以得到不一样的内容。例如我们首先选择deseq2方法:
marker.up <- runMarker(moic.res = cmoic.brca,
dea.method = "deseq2", # 差异表达分析方法
prefix = "TCGA-BRCA", # 与runDEA()的prefix参数保持一致
dat.path = getwd(), # DEA文件的路径
res.path = getwd(), # 保存标记物文件的路径
p.cutoff = 0.05, # 显著性P值阈值
p.adj.cutoff = 0.05, # 校正后的P值阈值
dirct = "up", # 筛选上调基因
n.marker = 100, # 每个亚型的标记基因数量
doplot = TRUE, # 生成对角线热图
norm.expr = fpkm, # 使用标准化表达数据
annCol = annCol, # 样本注释
annColors = annColors, # 样本注释颜色
show_rownames = FALSE, # 不显示基因名称
fig.name = "UPREGULATED BIOMARKER HEATMAP")
moic.res = cmoic.brca: 使用共识聚类的分型结果,这里是 cmoic.brca。 dea.method = "deseq2": 使用 DESeq2 进行差异表达分析。 prefix = "TCGA-BRCA": 文件名前缀,确保与之前 runDEA() 的 prefix 参数一致,以便从同一分析中提取数据。 dat.path 和 res.path: 指定数据和结果的保存路径。 p.cutoff = 0.05 和 p.adj.cutoff = 0.05: 筛选显著差异基因的 p 值和校正 p 值阈值。 dirct = "up": 只选择显著上调的基因。 n.marker = 100: 每个分型选择100个上调基因作为生物标记物。 doplot = TRUE: 生成热图。 norm.expr = fpkm: 使用标准化表达数据(如 FPKM)绘制热图。 annCol = annCol 和 annColors = annColors: 设置样本的临床注释信息和颜色。 show_rownames = FALSE: 不显示行名(即基因名称)。 fig.name = "UPREGULATED BIOMARKER HEATMAP": 输出文件名为 "UPREGULATED BIOMARKER HEATMAP"。
展示了不同分型(CS1 到 CS5)中上调的生物标记基因表达模式,并结合了每个样本的临床信息。图中的不同颜色块展示了不同分型中上调基因的差异性表达,这些基因可能是驱动分型特征的关键基因。
###我尝试用三种差异分析方法,得到了三张不一样的图,但是结果都是差不太多的了。本质上可能没啥不同的结果。都是选择前面的基因进行绘制热图。
2.2 非参数标签预测(NTP)方法,对一个外部数据集(Yau cohort)进行分型预测,基于的是在 TCGA-BRCA 中已鉴定的上调标记基因。
yau.ntp.pred <- runNTP(expr = brca.yau$mRNA.expr,
templates = marker.up$templates, # the template has been already prepared in runMarker()
scaleFlag = TRUE, # scale input data (by default)
centerFlag = TRUE, # center input data (by default)
doPlot = TRUE, # to generate heatmap
fig.name = "NTP HEATMAP FOR YAU")
expr = brca.yau$mRNA.expr: 输入 Yau cohort 的 mRNA 表达数据。这个数据集可能来自 GEO,包含其他肿瘤或不同样本的表达数据。 templates = marker.up$templates: 使用已经在 runMarker() 中准备好的上调基因分型模板。这些模板包含了 TCGA-BRCA 分型中每个分型(CS1 到 CS5)的标记基因表达特征。 scaleFlag = TRUE 和 centerFlag = TRUE: 对输入数据进行标准化和中心化处理,确保不同数据集之间的表达量范围可比。 doPlot = TRUE: 生成热图,用于可视化不同样本的分型预测。 fig.name = "NTP HEATMAP FOR YAU": 输出热图的文件名。
1.热图矩阵:图中显示的是外部数据集中每个样本在每个分型模板上的相似性得分。颜色从红色(高相似性)到蓝色(低相似性),表示样本与模板之间的相似程度。
红色表示样本的基因表达特征与特定分型的模板相似度高,可能归属于该分型。 蓝色表示相似性较低,可能与该分型无关。
2.模板特征(Template Features):热图的左侧显示了不同分型的模板特征。这些特征来自 TCGA-BRCA 中鉴定的上调基因集,用于指导外部数据集的分型预测。
不同颜色的区域代表不同的分型模板(CS1 到 CS5),通过这些特征模板,系统能够推断外部样本可能的分型。
3.分型预测(Class Predictions):热图底部显示了每个样本的分型预测结果。每个颜色条块代表一个样本被分配到的分型(CS1 到 CS5),通过 NTP 分析推测样本最可能的分型。
例如,底部的颜色条显示了 Yau cohort 中不同样本的分型预测结果,帮助识别不同分型在外部数据集中的分布情况。
4.显著性(p-value):图左侧的条形图显示了分型预测的显著性结果(p 值),表明预测结果的可靠性。
p 值越小,预测越有统计学显著性,表明样本归属于该分型的可能性更高。
通过 NTP 方法展示了 Yau cohort 中样本的分型预测结果。不同颜色代表的相似性得分帮助我们直观地查看样本在不同分型上的归属倾向,同时也揭示了该外部数据集中不同样本与 TCGA-BRCA 分型之间的关联性。这种方法有助于将其他数据集的样本映射到既定的分型中,从而扩展对其他肿瘤类型或独立数据集中样本的分型理解。
2.3比较一下一致性:使用 compAgree 函数比较了 Yau cohort 中通过 NTP 分型预测得到的分型结果(CS1 到 CS5)与临床的 PAM50 分型之间的一致性。
agree.yau <- compAgree(moic.res = yau.ntp.pred,
subt2comp = brca.yau$clin.info[, "PAM50", drop = FALSE],
doPlot = TRUE,
fig.name = "YAU PREDICTEDMOIC WITH PAM50")
moic.res = yau.ntp.pred: 使用之前通过 NTP 方法获得的 Yau cohort 的分型预测结果。 subt2comp = brca.yau$clin.info[, "PAM50", drop = FALSE]: 需要比较的临床分型信息,这里使用的是 Yau cohort 中的 PAM50 分型信息。 doPlot = TRUE: 表示要生成图形。 fig.name = "YAU PREDICTEDMOIC WITH PAM50": 输出文件名为 "YAU PREDICTEDMOIC WITH PAM50"。
1.左侧柱状图:表示不同一致性度量的评分,展示了预测的 MOIC 分型结果与 PAM50 临床分型之间的整体一致性。
RI(Rand Index):衡量两种分型方法(MOIC 和 PAM50)对所有样本的一致性,值越高,表示分型结果越一致。 AMI(Adjusted Mutual Information):调整后的互信息指数,反映两种分型方法的共同信息。较高的 AMI 值表示更高的相似性。 JI(Jaccard Index):衡量相似性的一种指标,值越高表示两种分型的样本分类越相似。 FM(Fowlkes-Mallows Index):评估两个分型结果的聚类质量,较高的 FM 值表示更好的分型匹配。
这些一致性评分帮助我们评估 NTP 分型结果与 PAM50 临床分型的整体一致性,RI 值最高,表明 NTP 分型在 Rand Index 上表现最好。
2.右侧桑基图(Sankey Diagram):展示了每个 MOIC 分型(CS1 到 CS5)与 PAM50 分型(Basal, Her2, LumA, LumB, Normal)之间的样本流动关系。
左侧显示的是预测的 MOIC 分型结果(CS1 到 CS5),右侧显示的是 PAM50 临床分型。 不同颜色的流动线表示从 MOIC 分型流向 PAM50 分型的样本数量,线的粗细表示样本数的多少。例如,从 CS1 流向 Basal 的线较粗,表示 CS1 分型与 Basal 分型之间有较高的一致性或样本重叠。
这张图,可以看出 Yau cohort 的 NTP 分型结果与 PAM50 临床分型之间的关系。左侧柱状图显示了不同一致性度量的评分,帮助评估总体分型结果的相似度。右侧桑基图直观地展示了每个分型的样本分布及其与 PAM50 的对应关系,帮助识别特定分型与临床分型之间的潜在关联。例如,CS1 与 Basal 之间的关联可能较强,而其他分型可能更多地与 LumA、LumB 等 PAM50 分型相关。这为进一步研究特定分型的生物学特征提供了参考。
好了,这个包的具体的内容,就到这里了,我也在使用这个R包并且打算应用到自己的数据中。等我有了进一步的debug操作,再来跟大家分享吧。拜拜~