在450k/850K 芯片中,混合使用了I 型探针和II 型探针。每个 I 型探针对应两个bead type ,II型探针对应1个bead type
。 这里的bead 实际上就是探针,就是用于和DNA序列杂交的一段特殊序列,之所以叫做bead, 是为了和I型,II 型探针的概念区分开。
为了检测一个CpG位点的状态,I型探针需要两种序列,1种序列用于和非甲基化的序列杂交,另外一种用于和甲基化的序列杂交。这里的探针概念是以检测的CpG位点为单位的,1个待检测的CpG位点对应1个探针。而bead 是实际的存在的序列。
在GenomeStudio
中,将I 型探针,II 型探针中的探针称为 target ID, 把bead 直接称为Probe ID, 所以bead 只是叫法的不同,其实就是探针序列。
在芯片中,使用探针的信号强度 intensity 作为表达量。对于DNA甲基化芯片而言,每个探针同时可以检测甲基化和非甲基化,也就是说每个探针的信号强度由两部分组成:
同时芯片的信号强度是由通道决定的,对于450K/850K而言,都是红绿双通道,所以每个探针的信号强度也可以看做是由两个通道的信号强度组成:
通过minfi
中的函数来探究一下上述几个概念之间的关系。
以官网的450K Demo 数据为例, 首先导入数据
targets <- read.metharray.sheet("./", pattern="HumanMethylation450_Demo_Sample_Sheet.csv")
rgSet <- read.metharray.exp(targets=targets, extended = T)
mSet <- preprocessRaw(rgSet)
首先看一下 Red Channel intensity 和 Green Channel intensity
# getGreen 函数得到 Green Channel intensity
> head(getGreen(rgSet)[,1:3])
5640269011_R01C01 5640269011_R01C02 5640269011_R02C01
10600313 256 177 202
10600322 8495 5338 8980
10600328 4149 3799 3751
10600336 3085 8747 1525
10600345 493 4594 426
10600353 3636 3598 4652# getRed 函数得到 Red Channel intensity
> head(getRed(rgSet)[,1:3])
5640269011_R01C01 5640269011_R01C02 5640269011_R02C01
10600313 505 539 520
10600322 2392 4274 2571
10600328 4678 4379 3625
10600336 17649 11408 17121
10600345 6215 538 5994
10600353 1218 1229 1264
从上面的结果可以看出,横坐标并不是探针ID, 而是Address_ID,每个Address_ID就代表1个bead。探针和bead 之间是存在对应关系的,探针的信号强度实际上是由对应的bead的信号强度组成的。
在minfi
中,可以通过getMeth
和 getUnmeth
函数得到每个探针甲基化和非甲基化的信号强度。
> head(getMeth(mSet)[, 1:3])
5640269011_R01C01 5640269011_R01C02 5640269011_R02C01
cg00050873 5284 137 214
cg00212031 265 166 133
cg00213748 281 186 367
cg00214611 61 145 152
cg00455876 3736 161 208
cg01707559 573 1127 310
> head(getUnmeth(mSet)[, 1:3])
5640269011_R01C01 5640269011_R01C02 5640269011_R02C01
cg00050873 6645 148 246
cg00212031 6860 169 160
cg00213748 4250 203 241
cg00214611 6183 139 242
cg00455876 3460 255 289
cg01707559 10130 1151 1298
具体看下I 型探针和II 型探针信号强度的组成
cg00050873
是450k 芯片上的一个I 型探针,对应的两个bead的ID 分别为 32735311
和31717405
> red_intensity <- getRed(rgSet)
> green_intensity <- getGreen(rgSet)
> meth_intensity <- getMeth(mSet)
> unmeth_intensity <- getUnmeth(mSet)> unmeth_intensity[rownames(unmeth_intensity) == "cg00050873", ][1]
5640269011_R01C01
6645
> meth_intensity[rownames(meth_intensity) == "cg00050873", ][1]
5640269011_R01C01
5284
> red_intensity[rownames(red_intensity) == "32735311", ][1]
5640269011_R01C01
6645
> red_intensity[rownames(red_intensity) == "31717405", ][1]
5640269011_R01C01
5284
我们可以发现,探针cg00050873
的甲基化信号强度等于bead 32735311
的Red Channel intensity;非甲基化信号强度等于bead 31717405
的Red Channel intensity。
cg00035864
是450k 芯片上的一个II型探针,对应的bead 为31729416
> unmeth_intensity[rownames(unmeth_intensity) == "cg00035864", ][1]
5640269011_R01C01
6057
> meth_intensity[rownames(meth_intensity) == "cg00035864", ][1]
5640269011_R01C01
292
> red_intensity[rownames(red_intensity) == "31729416", ][1]
5640269011_R01C01
6057
> green_intensity[rownames(green_intensity) == "31729416", ][1]
5640269011_R01C01
292
探针cg00035864
的甲基化信号强度等于bead 31729416
的Red Channel intensity;非甲基化信号强度等于bead 31729416
的Green Channel intensity。
关于I 型探针,II 型探针与Red, Green Channel 之间的对应的关系,下面的示意图能够很好的说明
I 型探针实际上是单色荧光标记,两个bead 发出相同颜色的荧光,1个bead 检测甲基化状态, 另外1个bead 检测非甲基化状态;
II 型探针是双色荧光标记,通过不同的荧光信号来检测甲基化状态,绿色荧光表示非甲基化,红色荧光表示甲基化。