0
4.3 years ago by

I am trying to read Illumina Human WG6v2 microarray raw IDAT files using the read.idat command implemented in the limma package. However, I encounter an error which seems to come from the BGX manifest file. When I indicate the correct BGX file, I obtain a read.idat error, as seen below in the code example (highlighted text). Could this be due to an incorrect BGX file? I obtained it directly from Illumina... Why else would the parser give this error?

Inter alia, I am able to read individual IDAT files using the readIDAT command in the illuminaio package. But I cannot seem to combine many IDAT files into an EList-raw class object...

---------------------

> library(limma)
> IDATfiles <- list.files(pattern ="\\.idat")
Reading manifest file HumanWG-6_V2_0_R2_11223189_A.bgx ... Done
4062786004_A_Grn.idat ... Done
Error in read.idat(IDATfiles, bgxfile = "HumanWG-6_V2_0_R2_11223189_A.bgx") :
Can't match ids in manifest with those in idat file4062786004_A_Grn.idat- please check that you have the right files
> sessionInfo()
R version 3.2.0 (2015-04-16)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.3 (Yosemite)

locale:
[1] en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.UTF-8

attached base packages:
[1] stats     graphics
[3] grDevices utils
[5] datasets  methods
[7] base

other attached packages:
[1] limma_3.24.10

loaded via a namespace (and not attached):
[1] base64_1.1
[2] illuminaio_0.10.0
modified 4.3 years ago by Matthew Ritchie780 • written 4.3 years ago by Gabriel Nathan Kaufman, Mr60
1
4.3 years ago by
Mike Smith4.0k
EMBL Heidelberg / de.NBI
Mike Smith4.0k wrote:

I'm not sure I can answer you question directly, but are you sure you're using idats from a WG6v2 array?

The beadarray package includes list of the IDs you'd expect to find on a variety of platforms, so you can try comparing against those.  The code below gives an example of how you might do that:

library(illuminaio)

data(platformSigs)

## read idat file and get AA_IDs
ids <- idat$Quants[,'CodesBinData'] ## compare with reference IDs and rank by percentage identity rks <- sapply(platformSigs, function(x) (sum(ids %in% x)/length(ids)) * 100) sort(rks, decreasing = TRUE) ADD COMMENTlink written 4.3 years ago by Mike Smith4.0k Answer: read.idat manifest error 0 4.3 years ago by Australia Matthew Ritchie780 wrote: If Mike's suggestion doesn't help, perhaps you can provide an idat file or two and the manifest you're using so that I can take a closer look. ADD COMMENTlink written 4.3 years ago by Matthew Ritchie780 I am pretty sure that the IDAT files are indeed from WG6v2 arrays, since the readIDAT command from the illuminaio package returns "BeadChip 6x2" as the ChipType (console output copied below). If Dr Ritchie or anyone else can take a closer look at the files themselves, I would be most grateful. I have uploaded four IDAT files and the BGX manifest file to Dropbox at this link: https://www.dropbox.com/sh/pnstan1bl7c0wol/AAAMksTPUbyeCFvtXzbmMSFta?dl=0 --------------------- library(illuminaio) IDAT1 <- readIDAT("4062786004_A_Grn.idat") > IDAT1$Barcode
[1] "4062786004"

$Section [1] "A"$ChipType

$Quants [data omitted for brevity]$RunInfo
Name       SoftwareApp  Version
"Decoding" "AutoDecode" "1.8.10"
"Decoding" "AutoDecode" "1.8.10"
Date
"10/11/2007 10:26:18 PM"
"10/17/2007 4:13:12 PM"
"10/17/2007 4:13:12 PM"
"10/17/2007 4:13:12 PM"
"10/11/2007 10:26:18 PM"
"10/17/2007 4:19:06 PM"
"10/17/2007 4:19:06 PM"
"10/17/2007 4:19:06 PM"
Parameters
"CallsToUsed=1036040|CallsToUnused=178|CallsToInvalid=4780"
"Algorithm=StandardGeneric"
"Algorithm=StandardWithBackground"
"CallsToUsed=1055594|CallsToUnused=134|CallsToInvalid=3522"
"Algorithm=StandardGeneric"
"Algorithm=StandardWithBackground"
0
4.3 years ago by
Australia
Matthew Ritchie780 wrote:

Thanks for providing the example files.

The problem was caused by a single probe that was listed in the manifest file but wasn't in the idat file. Have added a new 'tolerance' argument to read.idat in the devel version of limma (v 3.25.13, should be available over the next few days) to handle this. In your case 'tolerance=1' should do the trick and this probe will have NAs in the expression matrix. I've set this argument to have a default of 0, i.e. we assume every probe listed in the manifest should generally be available in the idat as before.