How to analyze Infinium Mouse Methylation BeadChip array data?
1
1
Entering edit mode
6 weeks ago
julia_geh ▴ 10

Hi everyone,

I am new to methylation data analysis and was now asked to analyze data (IDAT files) that was generated with the Infinium Mouse Methylation BeadChip Array. Because this array is quite new I cannot find best practices and a lot of packages for methylation data do not support mouse data in their standard workflow yet. I already tried minfi (R) and ENmix (R) but had problems loading the mouse manifest file. I also tried methylsuite (python) where I can load the data and the manifest but I get an error in the methylprep preprocess step. So, I cannot perform background correction here.

Is there anyone who has experience in analyzing Infinium Mouse Methylation BeadChip Array and who could provide some advice? This would help a lot!

Thanks in advance!

Methylation Experience Illumina Mouse • 367 views
ADD COMMENT
0
Entering edit mode
13 days ago
MagH ▴ 10

Hi!

I played around with the Illumina mouse demo data and ENmix. The following code worked for me and you should end up with normalized beta values for subsequent limma analysis (or DMR analysis folowing the ENmix vignette).

#setwd()

#download the Infinium_Mouse_Methylation_v1.0_A1_GS_Manifest_File.csv file from Illumina HP to working directory (= directory with idats and .csv)

library(ENmix)

library(geneplotter)

library(limma)

mf="Infinium_Mouse_Methylation_v1.0_A1_GS_Manifest_File.csv"

rgSet <- readidat(path = getwd(),manifestfile=mf,recursive = TRUE)

######Raw data QC and inspection

plotCtrl(rgSet)

mraw <- getmeth(rgSet)

multifreqpoly(assays(mraw)$Meth+assays(mraw)$Unmeth,xlab="Total intensity")

beta_raw<-getB(mraw)

anno=rowData(mraw)

beta1=beta_raw[anno$Infinium_Design_Type=="I",]

beta2=beta_raw[anno$Infinium_Design_Type=="II",]

multidensity(beta_raw,main="Multidensity")

multifreqpoly(beta_raw,main="Multifreqpoly",xlab="Beta value")

multidensity(beta1,main="Multidensity: Infinium I")

multifreqpoly(beta1,main="Multifreqpoly: Infinium I",xlab="Beta value")

multidensity(beta2,main="Multidensity: Infinium II")

multifreqpoly(beta2,main="Multifreqpoly: Infinium II",xlab="Beta value")

head(beta_raw,15)

######Process data

beta=mpreprocess(rgSet, nCores=6)

beta11=beta[anno$Infinium_Design_Type=="I",]

beta22=beta[anno$Infinium_Design_Type=="II",]

multidensity(beta,main="Multidensity")

multifreqpoly(beta,main="Multifreqpoly",xlab="Beta value")

multidensity(beta11,main="Multidensity: Infinium I")

multifreqpoly(beta11,main="Multifreqpoly: Infinium I",xlab="Beta value")

multidensity(beta22,main="Multidensity: Infinium II")

multifreqpoly(beta22,main="Multifreqpoly: Infinium II",xlab="Beta value")

head(beta,15)

######Continue with limma or DMR analysis

Hope that helps :)

ADD COMMENT
0
Entering edit mode

I'm having trouble with this also. I downloaded the manifest from

https://support.illumina.com/content/dam/illumina-support/documents/downloads/productfiles/mouse-methylation/infinium-mouse-methylation-manifest-file-csv.zip

and downloaded the demo data from

https://webdata.illumina.com/downloads/productfiles/mouse-methylation/infinium-mouse-methylation-demo-dataset.zip

I unzipped both into the same directory and ran this:

mf="infinium-mouse-methylation-manifest-file.csv"
rgSet <- readidat(path=getwd(),manifestfile=mf,recursive=TRUE)
[readidat] Found 32 files with suffix _Grn.idat
[readidat] Found 32 files with suffix _Red.idat
Error in `$<-.data.frame`(`*tmp*`, "Infinium_Design_Type", value = "A") : 
  replacement has 1 row, data has 0
In addition: There were 32 warnings (use warnings() to see them)
> warnings()
    Warning messages:
    1: In readChar(con, nchars = n) : truncating string with embedded nuls
    2: In readChar(con, nchars = n) : truncating string with embedded nuls

Do you have a link for the manifest you used? The one I found on the Illumina website has a different name. Seems strange to me that the demo data fails. Thanks!

ADD REPLY
1
Entering edit mode

ok, open the .csv file and replace all "2" by "II" and all "1" by "I" in the Infinium_Design_Type column.

ADD REPLY
0
Entering edit mode

Thanks! I just got Illumina to send me the old version so I could compare, and discovered this change (which isn't in the release notes for the March 2021 version of the manifest). I replaced the values and it loads successfully.

One more change I've run into that causes downstream problems with ENmix, if anyone else is trying to troubleshoot: the BSCII probes were changed, and the new colors aren't handled in the QCinfo() function. This leads to missing summary values for the BSCII probes and then everything goes sideways.

ADD REPLY
0
Entering edit mode

I had the same problem and made a modified version of the QCinfo function.

I changed the lines

cc = ctrls[ctrls$Type %in% c("BISULFITE CONVERSION II") & 
                ctrls$Color %in% c("Crimson", "DarkMagenta", 
                                               "Red", "Orange", "Purple", "Tomato"),

to

cc = ctrls[ctrls$Type %in% c("BISULFITE CONVERSION II"),

Everything after that point seems to work.

ADD REPLY
0
Entering edit mode

Hello, I had another error running the readidat function :

Error in `.rowNamesDF<-`(x, value = value) : 
  duplicate 'row.names' are not allowed

It seems some probes are at several adresses on the array while the other one is at the same place. Exemple : cg40289391_BC11,cg40289391,53746147,CTAAATTCATACTATTTTAATAAAATTTCCATTATTATAATATCAAATCA,10607100,CTAAATTCATACTATTTTAATAAAATTTCCATTATTATAATATCAAATCG cg40289391_BC12,cg40289391,77730828,CTAAATTCATACTATTTTAATAAAATTTCCATTATTATAATATCAAATCA,10607100,CTAAATTCATACTATTTTAATAAAATTTCCATTATTATAATATCAAATCG

Since the adresses are combined when processing the manifest, there are several lines with the same row.names... Is there anybody who had the same error ? I'm using latest manifest version available on Illumina website (MouseMethylation-12v1-0_A2 on https://support.illumina.com/content/dam/illumina-support/documents/downloads/productfiles/mouse-methylation/infinium-mouse-methylation-manifest-file-csv.zip).

There was no such thing on Humain beadchip : it seems so strange to have the same probe at mutltiple adresses !?

ADD REPLY

Login before adding your answer.

Traffic: 2362 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