skip to primary navigationskip to content


An R package for reading encrypted Illumina expression array idat files - Mike Smith


This page is out of date and is retained only for legacy reasons. All functionality from the IDATreader package has been incorporated into illuminaio.  Please use that package in preference to IDATreader.  All new code, bug fixes etc. will only be included there.

Summary data from Illumina microarrays are provided in a number of formats. Most commonly supplied are files with a .idat extension, intended for use with Illumina's GenomeStudio software. For genotyping arrays these files can also be read by the crlmm package, whilst the methylumi package is designed for processing methylation arrays. However, for expression arrays these .idat files are encrypted, making extraction of the data they contain more difficult. The IDATreader package provides the facility to decrypt these files within R.

For support with this package please contact Mike Smith:


The source version of the R package can be downloaded here: IDATreader_0.2.0.tar.gz

A pre-built version of the package for Windows (compiled on Windows 7 32-bit) can be downloaded here:


As of IDATreader version 0.2.0 the dependence on external libraries to perform the decryption has been removed and the relevant code is included in the package itself.  This has greatly simplified in the installation process on all platforms.

On any system, you will also need to install the base64 package.

Linux and Mac OS X

Any C compiler should be adequate to build the package on either Linux or Mac OS X.  It is no longer necessary to ensure any specific libraries are installed on the system.


Installing Rtools and ensuring its location has been added to the search path should be sufficient to build from source.  Alternatively, a pre-built binary is available from the link above.


For historical purposes, details of the previous installation measures can be found here.

Running Code

The package is extremely simple and contains only one function: readIDAT. This in turn has only two arguments.  The primary argument, file, takes the full path the the .idat file you are trying to read. The second, verbose, prints some progress and is primarily for diagnostic purposes.  The output is a data.frame containing summary data for each bead type.

idat <- readIDAT(file = "file.idat")