[BioC] spot weight in limma

Gordon K Smyth smyth at wehi.EDU.AU
Sun Oct 24 00:26:59 CEST 2004

> Date: Fri, 22 Oct 2004 12:44:06 -0500
> From: Ren Na <na at uthscsa.edu>
> Subject: [BioC] spot weight in limma
> To: bioconductor at stat.math.ethz.ch
> Message-ID: <417946E6.2030402 at uthscsa.edu>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> Hi,
> Our 16k mouse array has five types of spot, one of them is "empty" type,
> which means it is just buffer, no oligo in this type of  spots. After I
> used the function read.maimages like:
> RG <- read.maimages(targets$FileName, source="spot", wt.fun=wtarea(100))
> I checked the weights assigned to the "empty" type of spots, most are
> 0.2 to 0.35, but some of them are around 0.5 to 0.7, and  I also can
> find 0.8 or 0.9. Then I  went back to check the image(tiff file). For
> the "empty" type of  spots which have been asigned high weight, I can
> see nothing or just very tiny dot comparing with "oligo" type of spots.
> My question is: wtarea downweights spots which are smaller. Those
> "empty" type spots should get weights close to 0. Where I did
> incorrectly ?  I greatly appreciate any advice.

You are incorrectly assuming that these empty spots will be segmented by SPOT as small spots with
small areas.  The fact that not all of your weights are near 0 shows that this is not the case. 
In fact SPOT often segments empty spots as quite large because they are not clearly distinguished
from the surrounding background.  This is not a problem as long as the intensities are correctly
measured as low.

I hope that it is clear that spot quality weights are intended to measure reliability, not
intensity.  Consider a particular empty spot and suppose that both red and green intensities are
correctly measured as being very low.  Then we would ideally assign this spot weight 1, not weight
0, because the measurements are correct.

If you want, you can read in the area column itself so that you can see what the spot areas
actually are:

RG <- read.maimages(files, source="spot", wt.fun=wtarea(100), other="area")

Then RG$other$area will contain the spot areas. You will need the latest version of limma for this.

> My another question is: we have a batch of slides, it is supposed to
> have 16 k spots. But 600 spots were not printed on those slides at all
> because of machine problem. Here my question is: can I assign weight 0
> to these 600 spots after I get RGList?

Yes.  The recommended way to do this is to create a spottypes frame, then use controlStatus() and
modifyWeights() to set the desired weights to zero.  For example, something like:

RG$genes <- readGAL()
spottypes <- readSpotTypes()
RG$genes$Status <- controlStatus(spottypes, RG$genes)
w <- modifyWeights(RG$weights, status=RG$genes$Status, "empty", 0)


> or I treat them as "empty" spots
> and use the function like above?
> Thanks in advance,
> Ren

More information about the Bioconductor mailing list