Last data update: 2014.03.03

R: Low-level function to read IDAT files
readIDATR Documentation

Low-level function to read IDAT files

Description

Reads intensity information for each bead type from a single IDAT file for Infinium II, Infinium HD and expression platforms.

Usage

readIDAT(file)

Arguments

file

character string specifying idat file to be read in.

Details

This function returns a list containing summarised intensities and other information extracted from a single .idat file.

Thanks to Keith Baggerly for providing the first version of this code.

There are two commonly encounted versions of IDAT. One version uses encryption to store data and is the format usually produced by Illumina expression arrays. The other version is unencrypted files and is found in data from SNP arrays and DNA methylation arrays.

This function is able to handle data in either format, scanning the file header and calling the appropriate reading routine internally.

The function supports reading gzipped, unencrypted IDATs.

Value

The exact data returned will vary depending upon whether the input file was encrypted or not. In either case, everything that can be extract from the file will be returned in the form of a list.

For both file types the most important entry in the returned list is the item Quants. When reading unencrypted files this contains average intensity (Mean), number of beads (NBeads) and a measure of variability (SD) for each bead type on the array. For expression arrays in addition to these some additional information is available, including median and trimmed-mean estimates of average intensity, averaged local background intensities and the number of beads present before outliers where excluded.

For both file types details of scanning and decoding dates are included in the RunInfo slot.

A further list entry, Extra, may also be present. Occassionally an field in the IDAT file will have a number of data points inconsistent with the remainder of the file and as such is not returned in the Quants entry. Such fields will be placed here. So far only the HumanHap550 v1 BeadChip has exhibited this property.

Author(s)

Unencrypted: Keith Baggerly, with modifications by Matt Ritchie, Henrik Bengtsson and Kasper Daniel Hansen. Encrypted: Mike Smith

References

Ritchie ME, Carvalho BS, Hetrick KN, Tavar'e S, Irizarry RA. R/Bioconductor software for Illumina's Infinium whole-genome genotyping BeadChips. Bioinformatics. 2009 Oct 1;25(19):2621-3.

Examples

if(require(IlluminaDataTestFiles)) {
  idatFile <- system.file("extdata", "idat", "4019585376_B_Red.idat",
                          package = "IlluminaDataTestFiles")
  idat <- readIDAT(idatFile)
  names(idat)
  idat$Quants[1:5,]
}

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(illuminaio)
> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/illuminaio/readIDAT.Rd_%03d_medium.png", width=480, height=480)
> ### Name: readIDAT
> ### Title: Low-level function to read IDAT files
> ### Aliases: readIDAT
> ### Keywords: IO
> 
> ### ** Examples
> 
> if(require(IlluminaDataTestFiles)) {
+   idatFile <- system.file("extdata", "idat", "4019585376_B_Red.idat",
+                           package = "IlluminaDataTestFiles")
+   idat <- readIDAT(idatFile)
+   names(idat)
+   idat$Quants[1:5,]
+ }
Loading required package: IlluminaDataTestFiles
      Mean   SD NBeads
10008  241  143     17
10010   98   99     24
10025 2533  648     15
10026 5674  889     22
10039 7174 1172     14
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>