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")
> read.idat(IDATfiles, bgxfile = "HumanWG-6_V2_0_R2_11223189_A.bgx")
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
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)
library(beadarray)
## load ID lists
data(platformSigs)
## read idat file and get AA_IDs
idat <- readIDAT( IDATfiles[1] )
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)
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:
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.
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 [1] "BeadChip 6x2" $Quants [data omitted for brevity] $RunInfo Name SoftwareApp Version "Decoding" "AutoDecode" "1.8.10" "Scan" "BeadScan" "3.5.31.17122" "Register" "BeadScan" "3.5.31.17122" "Extract" "BeadScan" "3.5.31.17122" "Decoding" "AutoDecode" "1.8.10" "Scan" "BeadScan" "3.5.31.17122" "Register" "BeadScan" "3.5.31.17122" "Extract" "BeadScan" "3.5.31.17122" 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" "sherlockID=S161|Username=gtsill|HostVersion=3.5.31.17122|CPLDVersion=0x10000C1|PMTGainCY3=558|PMTGainCY5=549" "Algorithm=StandardGeneric" "Algorithm=StandardWithBackground" "CallsToUsed=1055594|CallsToUnused=134|CallsToInvalid=3522" "sherlockID=S161|Username=gtsill|HostVersion=3.5.31.17122|CPLDVersion=0x10000C1|PMTGainCY3=558|PMTGainCY5=549" "Algorithm=StandardGeneric" "Algorithm=StandardWithBackground"