[BioC] Illumina BeadChips and beadarray

Matt Ritchie Matt.Ritchie at cancer.org.uk
Tue Aug 19 05:35:29 CEST 2008


Dear Ina,

I'm not sure what the cause of this inconsistency could be.

When I try the different background correction options available in
readIllumina() on other data (I used the example data set at
http://www.compbio.group.cam.ac.uk/Resources/illumina/SAMExample.zip - see
below for the R code I ran), the background values are nonzero.  The local
background is calculated as the average of the lowest 5 pixels in 17 x 17
window around each bead center by default, so all zero values would indicate
that the images have lots of zero pixels, which is unusual.  Are the
foreground values nonzero?

As for the difference in coordinates - the GrnX and GrnY values stored in
the BLData object have been shifted by an offset in the X and Y directions
so that the minimum X and Y coordinates are (0,0).  This makes life easier
when generating spatial plots of the data in R.

You might also find the getArrayData() function easier to use than the
complicated @beadData command in your email.  See ?getArrayData for details.

Best wishes,

Matt

******************
library(beadarray)

BLData.sharpen.none = readIllumina(textType=".csv",
    singleChannel=TRUE, useImages=TRUE,
    beadInfo=NULL, targets=NULL, storeXY=TRUE,
    imageManipulation="sharpen", metrics=TRUE,
    backgroundMethod="none", normalizeMethod="none")

BLData.sharpen.subtract = readIllumina(textType=".csv",
    singleChannel=TRUE, useImages=TRUE,
    beadInfo=NULL, targets=NULL, storeXY=TRUE,
    imageManipulation="sharpen", metrics=TRUE,
    backgroundMethod="subtract", normalizeMethod="none")

BLData.sharpen.normexp = readIllumina(textType=".csv",
    singleChannel=TRUE, useImages=TRUE,
    beadInfo=NULL, targets=NULL, storeXY=TRUE,
    imageManipulation="sharpen", metrics=TRUE,
    backgroundMethod="normexp", normalizeMethod="none")

summary(getArrayData(BLData.sharpen.none, what="G", array=1, log=FALSE))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
 -661.6   993.6  1074.0  2628.0  1271.0 80740.0

summary(getArrayData(BLData.sharpen.none, what="Gb", array=1, log=FALSE))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
  279.0   705.0   708.0   706.5   713.0   772.0

# the above is equivalent to
an = arrayNames(BLData.sharpen.none)
summary(BLData.sharpen.none at beadData[[an[1]]]$Gb)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
  279.0   705.0   708.0   706.5   713.0   772.0

summary(getArrayData(BLData.sharpen.subtract, what="G", array=1, log=FALSE))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
-1306.0   285.2   366.6  1922.0   567.1 80320.0

summary(getArrayData(BLData.sharpen.subtract, what="Gb", array=1,
log=FALSE))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
  279.0   705.0   708.0   706.5   713.0   772.0
 
summary(getArrayData(BLData.sharpen.normexp, what="G", array=1, log=FALSE))
     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
    1.958   156.900   238.000  1795.000   438.600 80190.000

summary(getArrayData(BLData.sharpen.normexp, what="Gb", array=1, log=FALSE))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.
  279.0   705.0   708.0   706.5   713.0   772.0

sessionInfo()
R version 2.7.0 (2008-04-22)
i386-apple-darwin8.10.1

locale:
en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] tools     stats     graphics  grDevices utils     datasets  methods
[8] base     

other attached packages:
 [1] beadarray_1.8.0      affy_1.18.0          preprocessCore_1.2.0
 [4] affyio_1.8.0         geneplotter_1.18.0   annotate_1.18.0
 [7] xtable_1.5-2         AnnotationDbi_1.2.0  RSQLite_0.6-8
[10] DBI_0.2-4            lattice_0.17-6       Biobase_2.0.0
[13] limma_2.14.0  

loaded via a namespace (and not attached):
[1] KernSmooth_2.22-22 RColorBrewer_1.0-2 grid_2.7.0

> Hi,
>   I am working on low-level analysis of bead-level expression data from
> Illumina BeadChips using the beadarray package of Bioconductor. Each chip has
> 6 arrays with 2 strips. For each of the 12 strips per chip, there is a _.csv,
> _.txt, _Grn.tif and _Grn.locs file (and _Grn.xml). There is also a _Grn.idat
> file for each of the 6 arrays per chip. My .csv files do not contain
> bead-level information but rather just probe-id, number of beads, mean Grn and
> dev Grn (I assume Grn is foreground intensity). My .txt files contain
> bead-level information with probe-id,  foreground intensity Grn and bead
> location GrnX, GrnY (bead center coordinates). Therefore, for beadarray
> analysis I use the .txt (not .csv) and .tif files.
> I read the bead-level data for one chip as follows:
> 
> for background correction method subtract or normexp:
> 
> BLData.sharpen.subtract.txt.tif.013 = readIllumina(textType=".txt",
> arrayNames = c("1814647013_A_1","1814647013_A_2","1814647013_B_1",
> "1814647013_B_2","1814647013_C_1","1814647013_C_2","1814647013_D_1",
> "1814647013_D_2","1814647013_E_1","1814647013_E_2","1814647013_F_1",
> "1814647013_F_2"), singleChannel=TRUE, useImages=TRUE,
> beadInfo=NULL, targets=NULL, storeXY=TRUE,
> imageManipulation="sharpen", metrics=TRUE, metricsFile="Metrics.txt",
> backgroundMethod="subtract/normexp", normalizeMethod="none")
> 
> Then my first problem is that the background intensities, which I look at
> using 
> an <- arrayNames(BLData.sharpen.txt.tif.013)
> BLData.sharpen.subtract/normexp.txt.tif.013 at beadData[[an[1]]]$Gb
> are ALL zero. If I specify a small value for backgroundSize (e.g. 4), then a
> few of the Gb values are small but nonzero. I did not expect to find all Gb
> values to be zero for the default backgroundSize = 17, so what is going on
> here???
> 
> When I read the data without background correction as follows (only changing
> the backgroundMethods option)
> 
> BLData.sharpen.txt.tif.013 = readIllumina(textType=".txt",
> arrayNames = c("1814647013_A_1","1814647013_A_2","1814647013_B_1",
> "1814647013_B_2","1814647013_C_1","1814647013_C_2","1814647013_D_1",
> "1814647013_D_2","1814647013_E_1","1814647013_E_2","1814647013_F_1",
> "1814647013_F_2"), singleChannel=TRUE, useImages=TRUE,
> beadInfo=NULL, targets=NULL, storeXY=TRUE,
> imageManipulation="sharpen", metrics=TRUE, metricsFile="Metrics.txt",
> backgroundMethod="none", normalizeMethod="none")
> 
> then I get the same $G values as for backgroundMethod="subtract" which also
> does not make sense to me (the values for backgroundMethod="normexp" are
> different) ???
> 
> Of course I can retrieve the not-background adjusted bead intensities from the
> .txt files by setting
> useImages=FALSE), but the above with useImages=TRUE and
> backgroundMethod="none" should produce the same G values, right?, but it does
> not. Instead, backgroundMethod="subtract" and backgroundMethod="none" produce
> the same values!
> 
> My last problem is that the bead center coordinates GrnX and GrnY that I find
> in the .txt files and those from beadarray,
> BLData.sharpen.subtract/normexp.txt.tif.013 at beadData[[an[1]]]$GrnX/Y, are NOT
> the same, which worries me!
> 
> Any comments are very much appreciated.
> Thanks, Ina Hoeschele



More information about the Bioconductor mailing list