How Can One Cpg Locus Have Both Methylated And Unmethylated Signals? (Illumina 450K & Package Minfi)
3
2
Entering edit mode
12.2 years ago
housebie ▴ 50

Hi all,

I have recently started working with the Illumina 450K methylation dataset and have started with getting my hands on the "minfi" package. I was just trying to understand a few things with methylation and minfi, and just got into a question which i thought of asking here.

In minfi, as we first convert the Red and Green channels into Methylated and Unmethylated signals. This is stored in the object "MSet.raw" with the help of the following code.

      MSet.raw <- preprocessRaw(RGset)

And then I just extract the unlogged methylation channels using the functions getMeth() and getUnmeth() as follows (example for one sample and one CpG locus shown below):

> getMeth(MSet.raw)[1:3,1:2]
           7766130113_R06C01 7766130113_R05C02
cg00050873             19568               329
cg00212031              1878               332
cg00213748              2113               380

> getUnmeth(MSet.raw)[1:3,1:2]
           7766130113_R06C01 7766130113_R05C02
cg00050873              3752               372
cg00212031             10593               208
cg00213748               515               123

Let me consider an example of CpG locus "cg00050873" in the sample "7766130113_R06C01" given above. It has a methylation value of "19568" and unmethylated value of "3752".

So my question is, how can this one CpG locus have 2 values (both Methylated as well as Unmethylated) ? Where do they come from ? I understand there are two bead types or two color readouts (depending on type1/type2 probes), but isn't only one bead/color deciding that (whether its methylated or unmethylated) for a particular GpG locus? So a particular GpG locus can either have a Methylated or an Unmethylated signal, then how does it fall under both the signals?

chip-seq • 6.0k views
ADD COMMENT
0
Entering edit mode

Thank you for the helpful answers, Leonor and Sandeep..

ADD REPLY
8
Entering edit mode
12.2 years ago

Your results don't seem so surprising to me, the methylated and unmethylated raw values you get with the getMeth() and getUnmeth() functions are the intensities you get from each channel on your array. As for any microarray experiment, you never get null values, and you should work with relative intensities instead.

If this isn't clear to you, you should probably read the minfi user guide, and namely p.13.

ADD COMMENT
4
Entering edit mode
12.2 years ago
Neilfws 49k

Just to add to Leonor's answer: even if a locus were completely unmethylated, it's unlikely you'd get a value of zero.

The other thing to remember is that you are not measuring a single molecule, but many molecules - in which there may be a mixture of methylated and unmethylated sites for the same locus. This is sometimes called partial methylation; nice explanation here.

ADD COMMENT
0
Entering edit mode

Thank you very much for your reply. Being new to arrays, I was a bit confused with this and so just wanted to understand how it works. Your answer was good for me.

ADD REPLY
2
Entering edit mode
12.2 years ago
Sandeep ▴ 260

"how can this one CpG locus have 2 values (both Methylated as well as Unmethylated) ?" Two values "19568" and "3752" are the intensity values from the green and the red channel. Your array (Illumina 244K is a type 2 design array). A single probe will be used and the methylation signal is measured in the green channel.

"but isn't only one bead/color deciding that (whether its methylated or unmethylated) for a particular GpG locus?" Methylation is measured by initially calculating the B values using M / (M+ U + 100). In the example data pasted above, the two values are from green and red channel which will be used to compute B values to conclude the extent of methylation.

For the intensity values above, B values would be

cg00050873 = 19568 / (19568 + 3753 + 100) = 0.83548

cg00212031 = 1878 / (1878 + 10593 + 100) = 0.14939 so on.

The values between 0 and 1 are interpreted as methylated or unmethylated. Higher the value, more the methylation. You can verify this by getBeta(MSet.raw)

Hope this helps.

ADD COMMENT

Login before adding your answer.

Traffic: 804 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6