样本间的相关性,可以反映公司加样时是否存在重复加样的错误。
下面简要介绍一下如果利用甲基化数据计算样本间的相关性
1、提取甲基化探针的snp位点、CpG的beta值
下面用的示例文件是minfi
包自带的。
如果是自己的数据,那么提取甲基化snp位点用的是没有经过过滤的原始数据。
首先,安装:
BiocManager::install(c("minfi","minfiData","sva"))
library(minfi)
library(minfiData)
library(sva)
baseDir <- system.file("extdata", package="minfiData")
targets <- read.metharray.sheet(baseDir)
RGSet <- read.metharray.exp(targets = targets)
manifest <- getManifest(RGSet)
这里可以看到不同探针的情况:
image一条龙服务,提取甲基化探针的snp位点、CpG的beta值:
MSet <- preprocessRaw(RGSet)
RSet <- ratioConvert(MSet, what = "both", keepCN = TRUE)
GRset <- mapToGenome(RSet)
beta <- getBeta(GRset) #提取CpG的beta值
snps <- getSnpBeta(RGSet) #提取SNP位点
2、CpG和SNP的beta值位点示例结果
提取完CpG和SNP后,看一下各自的示例结果:
CpG的beta值示例结果:
image甲基化SNP位点的示例结果:
image3、计算相关性
计算样本间的相关性,我们用R自带的cor函数即可。选用的数值为SNP的甲基化数值
计算相关性代码:cor(snps)
结果如下:
image这里解释一下,为什么不选用CpG的beta值计算相关性。
如下图所示,我分别用了前100、1000、10000个CpG的beta值计算样本1(5723646052_R02C02)和样本2(5723646052_R04C01)的相关性,相关性均在0.97以上(蓝色框框),用snps位点计算相关性时,样本1和样本2的相关性则为0.1426071(红色框框)。
image可见,CpG的beta值计算出来的相关性都特别高,根本不能区别样本间真实的相关性。
因此,计算样本间相关性,推荐甲基化探针的SNP位点。
image
网友评论