肿瘤样本中癌细胞所占比例称为肿瘤纯度(tumor purity),是肿瘤样本的内在因素,在差异甲基化、亚克隆反卷积和亚型聚类等多种分析中具有潜在的重要影响。
InfiniumPurify是一个完整的用于评估和计算肿瘤纯度的R包,基于DNA甲基化数据(DNA methylation Infinium 450 k array)。(Infinium 450K是由Illumina公司推出的检测DNA甲基化的芯片平台。)
InfiniumPurify有三个主要的功能:getPurity,InfiniumDMC和 InfiniumClust,可以推断肿瘤纯度、差异甲基化分析和肿瘤样本聚类。
一、InfiniumPurify介绍
1. getPurity: 用DNA甲基化Infinium 450 k数据评估肿瘤纯度
利用getPurity函数来估计肿瘤样本的纯度。它输入肿瘤样本(或正常样本)和肿瘤类型的甲基化beta value矩阵,输出所有肿瘤样本的肿瘤纯度向量。如果有正常样本的数据,并且肿瘤和正常样本的数量都足够大(≥20),该函数首先通过比较肿瘤样本和正常样本之间的甲基化差异以及肿瘤样品中的变异,来识别大量的有效的差异甲基化CpG位点(iDMCs)。然后用所选定的iDMCs甲基化来对每个样本评估肿瘤纯度,通过用高斯核函数评估密度的方法。当正常样本不可用或肿瘤/正常样本太少而无法获得可靠的iDMCs时,getPurity将加载从公共TCGA数据中识别的预先选择的iDMCs来推断肿瘤纯度。在这种情况下,需要用户指定肿瘤类型。
该工作计算了TCGA中所有甲基化450 k数据的肿瘤样本的纯度,这些数据可以从https://doi.org/10.5281/zenodo.253193. 获得。
2. InfiniumDMC: 基于肿瘤纯度的差异甲基化分析
如果不能正确的解释肿瘤纯度,肿瘤纯度可能会严重偏差或削弱差异甲基化分析。考虑了肿瘤纯度的差异表达分析的相关讨论较少,多是简单地将肿瘤纯度作为协变量加入回归模型。然而,通过严格的数据建模显示,肿瘤纯度对差异甲基化(以及差异表达)有多重效应,而不是简单的叠加作用。
InfiniumDMC输入肿瘤(或正常)的beta值(通常甲基化衡量方法被称为“Beta”值,也就是甲基化百分比)矩阵和所有肿瘤样本的纯度。这里的纯度可以是getPurity或其他工具的计算结果。当正常样本量大于20时,InfiniumDMC基于广义最小二乘法比较肿瘤和正常数据获得差异甲基化数据。当正常样本太少或无法获得时,InfiniumDMC仅使用肿瘤样本的数据,测试肿瘤beta值与肿瘤纯度之间的关系。
3. InfiniumPurify: 纯化肿瘤甲基化组
InfiniumPurify是通过线性回归模型从肿瘤样品、正常样品和肿瘤纯度中反卷积纯肿瘤细胞甲基化组。如果一个CpG位点与肿瘤纯度高度相关,那么它很可能差异甲基化。图1展示了一个CpG位点,在肿瘤和正常样本中没有显著的甲基化差异,但其肿瘤甲基化和纯度的高度相关性表明,肿瘤甲基化受肿瘤纯度的影响较为严重。在用InfiniumPurify校正了纯度后,校正后的肿瘤与正常的甲基化之间的差异非常显著。
4. InfiniumClust:对纯化后的肿瘤样本进行聚类分析
DNA甲基化在肿瘤发生中起重要作用,因此将肿瘤样品聚集成不同的表观亚型有助于在临床中鉴定诊断性生物标志物和治疗靶标。InfiniumClust在纠正肿瘤纯度影响后将肿瘤样品分型。假定在反正弦(arcsine)变换后,纯的正常样本甲基化组和肿瘤甲基化组在不同亚型中遵循正态分布。肿瘤样本的聚类隶属度为潜在变量,该潜在变量通过Expectation Maximization (EM) 算法从肿瘤和正常样本的混合物中进行优化。
InfiniumClus输入beta值和肿瘤样本纯度,报告聚类成员的比例。给定用户指定的簇数K,该函数返回一个矩阵,其中行对应于肿瘤样本,列对应于聚类K个簇。
二、R包示例
install.packages("InfiniumPurify") #安装包
library(InfiniumPurify)
1. 评估肿瘤纯度:getPurity
data(beta.emp)
#beta.emp是一个62例肿瘤和正常样本的甲基化beta值的数据框
(1)评估一个肿瘤样本的纯度(无正常样本)
purity <- getPurity(tumor.data = tumor.data[,1],normal.data = NULL,tumor.type= "LUAD")
(2)评估10个肿瘤样本(小于20个样本)的纯度(无正常样本)
purity <- getPurity(tumor.data = tumor.data[,1:10],normal.data = NULL,tumor.type= "LUAD")
(3)评估40个肿瘤样本(大于20个样本)的纯度,正常样本数为20个
purity <- getPurity(tumor.data = tumor.data[,1:40],normal.data = normal.data)
2. 样本聚类分析:InfiniumClust
data(beta.emp)
normal.data <- beta.emp[,1:21]
tumor.data <- beta.emp[,22:31]
#评估LUAD样本纯度
purity <- getPurity(tumor.data = tumor.data,tumor.type= "LUAD")
## 根据样本纯度对肿瘤样本聚类
out <- InfiniumClust(tumor.data,purity,K=3, maxiter=5, tol=0.001)
#tumor.data肿瘤样本beta值
#purity纯度评估值
#k是聚类数目
#允许的最大迭代次数,默认值是100
#EM迭代收敛性的容忍度,默认值是100
输出值:
tol.ll:收敛EM算法的总log似然
Z:结果矩阵,行对应肿瘤样本,列对应K个类
3. 根据肿瘤纯度计算差异甲基化:InfiniumDMC
InfiniumDMC是在考虑肿瘤纯度的情况下,推断差异的甲基化CpG位点。
如果可提供正常样本,在考虑肿瘤纯度的情况下,通过广义线性回归对每个CpG位点进行肿瘤与正常样本间差异甲基化的检测。如果不能提供正常样本,该函数通过计算后验概率来排列CpG位点。
data(beta.emp)
normal.data <- beta.emp[,1:21]
tumor.data <- beta.emp[,22:61]
purity <- getPurity(tumor.data = tumor.data,normal.data = normal.data)
(1)有正常样本
DMC = InfiniumDMC(tumor.data = tumor.data,normal.data = normal.data,purity = purity)
输出数据为所有 CpG位点的p-values和q-values
(2) 没有正常样本
DMC_ctlFree = InfiniumDMC(tumor.data = tumor.data,purity = purity)
4. 通过肿瘤纯度校正肿瘤甲基化数据:InfiniumPurify
data(beta.emp)
normal.data <- beta.emp[,1:21]
tumor.data <- beta.emp[,22:61]
purity <- getPurity(tumor.data = tumor.data,normal.data = NULL,tumor.type= "LUAD")
## 通过肿瘤纯度校正肿瘤甲基化
tumor.purified = InfiniumPurify(tumor.data = tumor.data[1:100,],
normal.data = normal.data[1:100,],
purity = purity)
输出:所有CpG位点(行)和肿瘤样本(列)的纯化后肿瘤的beta值矩阵
小编总结:
很多评估肿瘤纯度的方法都是基于基因表达或者拷贝数变异,而今天分享的InfiniumPurify方法是基于DNA甲基化数据对肿瘤纯度进行评估,并且进一步的,该方法还提供基于纯度评估后的肿瘤的聚类分析和差异甲基化分析。有做相关研究的朋友们可以参考一下哦~