read.idat manifest error
3
0
Entering edit mode
@gabriel-nathan-kaufman-mr-4461
Last seen 9.4 years ago
Canada

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
limma illuminaio illumina human WG6v2 • 2.8k views
ADD COMMENT
1
Entering edit mode
Mike Smith ★ 6.6k
@mike-smith
Last seen 1 hour ago
EMBL Heidelberg

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)
ADD COMMENT
0
Entering edit mode
Matthew Ritchie ▴ 1000
@matthew-ritchie-650
Last seen 6 months ago
Australia

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 COMMENT
0
Entering edit mode

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"
0
Entering edit mode
Matthew Ritchie ▴ 1000
@matthew-ritchie-650
Last seen 6 months ago
Australia

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. 

ADD COMMENT

Login before adding your answer.

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