[BioC] limma reading Agilent One-Color Data

Gordon K Smyth smyth at wehi.EDU.AU
Tue May 15 02:49:41 CEST 2007


Dear Peter,

I have thought from time to time about adding single-channel capability to limma and
read.maimages().  I haven't done it so far because I don't see this sort of data in my own work,
so I have been unsure of the special needs here, and also undecided about the data class to read
into.  I guess it will happen when it is clear in my mind what needs to be done.

As a work around, I think you have already figured that out.  You could for example use
read.maimages() with dummy values for R & Rb and then just ignore them.  With this approach you
would

1. Use read.maimages() with dummy arguments for R & Rb
2. Background correct as usual using backgroundCorrect()
3. Normalize the RG$G matrix using normalizeBetweenArrays()
4. Use log2(RG$G) as input to lmFit() etc.

You would be in much the same position as someone reading in a matrix of expression values.  See
my recent reply to Lance Palmer.

Best wishes
Gordon

On Mon, May 14, 2007 10:36 pm, Peter White wrote:
> Dear Gordon,
>
> No problem cc'ing the list. I did come up with a function to read the flag
> data from Agilent and weight the elements accordingly. Also, I worked out
> that the gProcessedSignal in their FE data is, in the case of single color,
> just the gMeanSignal - gBGUsed. They use a spatial detrending model to
> calculate the element background (it is based on the negative control spots,
> as with their arrays the local background is not adding anything to the
> signal).
>
> Thanks,
>
> Peter
>
> myFlagFun <- function(x) {
>   #Weight only strongly positive spots 1, everything else 0
>   present <- x$gIsPosAndSignif == 1
>   probe <- x$ControlType == 0
>   manual <- x$IsManualFlag == 0
>   strong <- x$gIsWellAboveBG == 1
>   y <- as.numeric(present & probe & manual & strong)
>
>   #Weight weak spots 0.5
>
>   weak <- strong == FALSE
>   weak <- (present & probe & manual & weak)
>   weak <- grep(TRUE,weak)
>   y[weak] <- 0.5
>
>   #Weight flagged spots 0.5
>
>   sat <- x$gIsSaturated == 0
>   xdr <- x$gIsLowPMTScaledUp == 0
>   featureOL1 <- x$gIsFeatNonUnifOL == 0
>   featureOL2 <- x$gIsFeatPopnOL == 0
>   flagged <- (sat & xdr & featureOL1 & featureOL2)
>   flagged <- grep(FALSE, flagged)
>   good <- grep(TRUE, y==1)
>   flagged <- intersect(flagged, good)
>   y[flagged] <- 0.5
>   y
>   }
>
> G <- read.maimages(targets,
>             columns = list(G = "gMeanSignal", Gb = "gBGUsed", R =
> "gProcessedSignal",
>              Rb = "gBGMedianSignal"),
>             annotation= c("Row", "Col", "FeatureNum", "ProbeUID",
> "ControlType",
>              "ProbeName", "GeneName", "SystematicName"),
>             wt.fun=myFlagFun)
>
> -----Original Message-----
> From: Gordon Smyth [mailto:smyth at wehi.EDU.AU]
> Sent: Saturday, May 12, 2007 5:35 AM
> To: pwhite at mail.med.upenn.edu
> Subject: Re: Agilent One-Color Data
>
> Dear Peter,
>
> Do you mind if I cc my reply to the Bioconductor mailing list?
>
> Best wishes
> Gordon
>
> At 01:27 AM 10/05/2007, Peter White wrote:
>>Dear Dr. Smyth,
>>
>>I've been using Limma for the past few years for
>>processing our two-color array data, and have
>>developed a number of scripts to automate our
>>routine analysis using the Limma software. We
>>have recently started to use more and more
>>Agilent arrays, which initially were causing us
>>some troubles (they include dark corners on
>>their arrays which seems to mess up the grid
>>dimensions). Although I am very dubious about
>>using a two-color platform to generate one-color
>>data, we have just done a single color
>>experiment with 16 arrays. I have been trying to
>>load the data into R but have realized that
>>Limma does not appear to yet be setup for
>>one-color Agilent arrays. Do you have any plans
>>to add this functionality and any tips on how I should proceed?
>>
>>Thanks again for all your work on developing and
>>maintaining - it is a critical component for our research.
>>
>>Best wishes,
>>
>>Peter
>>
>>P.S. Here was my work around for loading the data:
>>
>>G <- read.maimages(targets, columns = list(G = "gMeanSignal",
>>             Gb = "gBGUsed", R = "gProcessedSignal", Rb =
> "gIsPosAndSignif"),
>>             annotation= c("Row", "Col",
>> "FeatureNum", "ProbeUID", "ControlType",
>>             "ProbeName", "GeneName", "SystematicName"))
>>
>>Peter White, Ph.D.
>>Technical Director
>>Functional Genomics Core
>>Department of Genetics
>>University of Pennsylvania
>>570 Clinical Research Building
>>415 Curie Boulevard
>>Philadelphia, PA 19104-6145



More information about the Bioconductor mailing list