前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DNA甲基化芯片探针的P值如何计算

DNA甲基化芯片探针的P值如何计算

作者头像
生信修炼手册
发布2020-05-11 10:51:44
1K0
发布2020-05-11 10:51:44
举报
文章被收录于专栏:生信修炼手册

illumina 的DNA甲基化芯片,内置了control 探针,用于检测降噪,归一化等各种用途。

以450K 为例, control 探针共有以下15种类型,每种类型的探针都有不同的用途

代码语言:javascript
复制
> unique(IlluminaHumanMethylation450kmanifest@data$TypeControl[[2]])
[1] "STAINING"                "EXTENSION"              [3] "HYBRIDIZATION"           "TARGET REMOVAL"         [5] "BISULFITE CONVERSION I"  "BISULFITE CONVERSION II"[7] "SPECIFICITY I"           "SPECIFICITY II"         [9] "NON-POLYMORPHIC"         "NEGATIVE"               [11] "RESTORATION"             "NORM_A"                 [13] "NORM_G"                  "NORM_C"                 [15] "NORM_T"

在这些control探针中, NEGATIVE探针用于计算探针的P值。

minfi 中计算探针P值的过程如下:

探针的P值 = 1 - P(intensity)

假设探针的信号强度服从正态分布,首先要计算出该正态分布的期望和方差。 由于I 型探针和II 型探针的技术原理不同,所以两种探针是分开计算的。

首先根据negative 探针的信号强度,分别计算红绿两种通道的均值和方差

代码语言:javascript
复制
# 获取negative 探针的IDcontrolIdx <- getControlAddress(rgSet, controlType = "NEGATIVE")  # 计算红色荧光通道的均值和标准差r <- getRed(rgSet)
rBg <- r[controlIdx,,drop=FALSE]
rMu <- matrixStats::colMedians(rBg)
rSd <- matrixStats::colMads(rBg)# 计算绿色荧光通道的均值和标准差g <- getGreen(rgSet)
gBg <- g[controlIdx,,drop=FALSE]
gMu <- matrixStats::colMedians(gBg)
gSd <- matrixStats::colMads(gBg)# 这里用了中位数代替了算数平均值

I 型探针

I 型探针发出的是单色荧光,可能是红色也可能是绿色,所以红色和绿色也是单独计算的。

对于红色荧光的I 型探针而言,其正态分布的均值等于negative 探针红色荧光通道的均值,标准差对应negative 红色荧光通道的方差

代码语言:javascript
复制
TypeI.Red <- getProbeInfo(rgSet, type = "I-Red")
intensity <- r[TypeI.Red$AddressA, i] + r[TypeI.Red$AddressB, i]
detP[TypeI.Red$Name, i] <- 1-pnorm(intensity, mean=rMu[i]*2, sd=rSd[i]*2)

对于绿色荧光的I 型探针而言,其正态分布的均值对应negative 绿荧光通道的均值,标准差对应negative 绿色荧光通道的方差

代码语言:javascript
复制
TypeI.Green <- getProbeInfo(rgSet, type = "I-Green")
intensity <- g[TypeI.Green$AddressA, i] + g[TypeI.Green$AddressB, i]
detP[TypeI.Green$Name, i] <- 1-pnorm(intensity, mean=gMu[i]*2, sd=gSd[i]*2)

I 型探针

II 型探针是双色荧光,其正态分布的均值对应negative探针红色荧光和绿色荧光的中位数之和,标准差对应红色荧光和绿色荧光的标准差之和

代码语言:javascript
复制
TypeII <- getProbeInfo(rgSet, type = "II")
intensity <- r[TypeII$AddressA, i] + g[TypeII$AddressA, i]
detP[TypeII$Name, i] <- 1-pnorm(intensity, mean=rMu[i]+gMu[i], sd=rSd[i]+gSd[i])

NEGATIVE探针是一系列质量差的探针信号,假设其分布是一个正态分布。 在某个样本中,某个探针检测到的信号强度为 intensity,这个intensity 可能是一个质量差的信号,也可能是一个质量高的信号。

该探针检测到的信号质量可靠记为事件A, 质量不可靠记为事件B, 很显然 P(A)+ P(B) = 1。

探针的P值代表这个探针的信号质量可靠的概率,所以在计算时,只需要用1减去不可靠的概率就行了。

在计算不可靠的概率时,由于I型探针和II 型探针的技术原理,共分成3个正态分布来计算概率。以上就是minfi计算探针P值的详细过程。

计算出探针的P值之后,就可以根据p值进行过滤了。从计算过程也可以看出,P值越小,探针质量越高。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • I 型探针
  • I 型探针
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档