樣本間的相關性,可以反映公司加樣時是否存在重復加樣的錯誤。
下面簡要介紹一下如果利用甲基化數據計算樣本間的相關性
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)
這里可以看到不同探針的情況:
一條龍服務,提取甲基化探針的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值示例結果:
甲基化SNP位點的示例結果:
3、計算相關性
計算樣本間的相關性,我們用R自帶的cor函數即可。選用的數值為SNP的甲基化數值
計算相關性代碼:cor(snps)
結果如下:
這里解釋一下,為什么不選用CpG的beta值計算相關性。
如下圖所示,我分別用了前100、1000、10000個CpG的beta值計算樣本1(5723646052_R02C02)和樣本2(5723646052_R04C01)的相關性,相關性均在0.97以上(藍色框框),用snps位點計算相關性時,樣本1和樣本2的相關性則為0.1426071(紅色框框)。
可見,CpG的beta值計算出來的相關性都特別高,根本不能區別樣本間真實的相關性。
因此,計算樣本間相關性,推薦甲基化探針的SNP位點。