[BioC] maQualityPlots (arrayQuality package)

Paquet, Agnes apaquet at medsfgh.ucsf.edu
Tue Mar 27 19:08:26 CEST 2007


Hi Joao,
 
The fuction doesn't offer the capacity to easily change the number of replicates for your controls, but one way to fix this problem would be to overwrite the default function qpDotsPlot by the same function with a different value for the number of replicates. To do this, just load the package arrayQuality, and paste the following code into your R, then proceed with the same code to read your arrays and run the quality plot function.:
I already replaced the default value nrep=3 by nrep=2 for you.
 
library(arrayQuality)
qpDotPlots <- function(mdata,  xvar="maA", id="ID", colcode=1, nrep=2, pch=18, ...)
  {
    newdata <- eval(call(xvar, mdata))
    xlim <- range(newdata, na.rm=TRUE)
    Cindex <- maControls(mdata) != "probes"
    #Ctl <- cbind(maInfo(maGnames(mdata)), maControls(mdata))
    ## combined control status and name
    Ctl <- cbind(maInfo(maGnames(mdata)), maControls(mdata), row.names=NULL)
    IDindex <- grep(id, colnames(Ctl))  ## Set ID columns
    y <- split(Ctl, Ctl[,ncol(Ctl)])  ## The last column of Ctl is the control status
    if(length(y[names(y) != "probes"]) != 0)  ## check that there exist control spots
      {
        ## There are control spots
        exty <- lapply(y[names(y) != "probes"], function(x){
          ext <- split(x, x[, IDindex])
          extid <- lapply(ext, function(xx){as.integer(row.names(xx))})
          extid[lapply(extid, length) > nrep]
        })
        exty <- exty[lapply(exty, length) != 0]
        ylim <- c(1, sum(unlist(lapply(exty, length))))
        par(mar=c(4,7,3,2), cex=1)  ## A wide left side to allow for gene names
        plot(1,1, type="n", xlim=xlim, ylim=ylim, axes=FALSE, xlab=xvar, ylab="",...)
        ii <- 1
        for(i in 1:length(exty))
          for(j in 1:length(exty[[i]]))
            {
              ind <- exty[[i]][[j]]
              points(newdata[ind], rep(ii, length(newdata[ind])), pch=pch, col=colcode[names(exty)[i]])
              points(median(newdata[ind], na.rm=TRUE), ii, pch=18, col="black")
              ii <- ii + 1
            }
        axis(1)
        lab <- paste(unlist(lapply(exty, names)), " (n=",unlist(lapply(exty, lapply, length)), ") ", sep="")
        axis(2, at=1:ylim[2], labels=lab, las=2, cex.axis=0.6)
        box()

      } else
    {
         ## There are NO control spots
      plot(1, 1, axes=FALSE, xlab="", ylab="", type="n")
      text(1, 1, "No Control Genes")
      box()
    }
    return()
  }

Please let me know if this worked for you.
 
Best,
 
Agnes

________________________________

From: João Fadista [mailto:Joao.Fadista at agrsci.dk]
Sent: Tue 3/27/2007 12:44 AM
To: Paquet, Agnes; bioconductor at stat.math.ethz.ch
Subject: RE: [BioC] maQualityPlots (arrayQuality package)



Dear Agnes,

I only have control spots replicated twice on my arrays so I guess I cannot use this function. Why can´t we work with only controls replicated 2 times? Is the function much less robust or even meaningless if this is the case?


Best regards

João Fadista
Ph.d. student


UNIVERSITY OF AARHUS
Faculty of Agricultural Sciences
Research Centre Foulum
Dept. of Genetics and Biotechnology
Blichers Allé 20, P.O. BOX 50
DK-8830 Tjele

Phone:   +45 8999 1900
Direct:  +45 8999 1900

E-mail:  Joao.Fadista at agrsci.dk
Web:       http://www.agrsci.org <http://www.agrsci.org/>                                

This email may contain information that is confidential.
Any use or publication of this email without written permission from Faculty of Agricultural Sciences is not allowed.
If you are not the intended recipient, please notify Faculty of Agricultural Sciences immediately and delete this email.

 

-----Original Message-----
From: Paquet, Agnes [mailto:apaquet at medsfgh.ucsf.edu]
Sent: Monday, March 26, 2007 7:57 PM
To: João Fadista; bioconductor at stat.math.ethz.ch
Subject: RE: [BioC] maQualityPlots (arrayQuality package)

Dear Joao,

This problem is most likely due to the format of your control spots.  arrayQuality is looking for controls which are replicated more that 3 times on your array (more that 3 times the same oligo id). If you don't have such controls or if you didn't set up your controls properly in your RG object, maQualityPlots will fail. One way  to check if your array have such controls could be to use the example R code below:

test=table(RG$gene$Status)
controlId="ID" ## Use the column name from your gpr file containing oligo Ids if it's not ID ## For each type of control, check how many oligos are replicated, ## Return the number of ids replicated more than 3 times (and how many times they are replicated for(i in c(1:length(test))[names(test)!="probes"])
  {
    print(i)
    print(table(RG$gene[RG$genes$Status == names(test)[i],controlId])[table(RG$gene[RG$genes$Status == names(test)[i],controlId])>3])
  }

If this code returns 'named integer(0)' only, then you don't have enough control replication. If it returns something else, or if you have any problem running this code, could you please send me the R output so that I can work more on this problem?

Best,

Agnes
 

________________________________

From: bioconductor-bounces at stat.math.ethz.ch on behalf of João Fadista
Sent: Mon 3/26/2007 5:09 AM
To: Sean Davis; bioconductor at stat.math.ethz.ch
Subject: Re: [BioC] maQualityPlots (arrayQuality package)



Dear Sean,

You are right. Here it is some back information:

> sessionInfo()
R version 2.4.0 (2006-10-03)
i386-pc-mingw32

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] "methods"   "stats"     "graphics"  "grDevices" "utils"     "datasets"
[7] "base"   

other attached packages:
     sma    limma
"0.5.15" "2.9.13"


> RG <- read.maimages(fnames, source="genepix.custom", path=datadir,
> ext="gpr", columns=columns, wt.fun=wtflags(weight=0,cutoff=0))

> RG$printer <- getLayout(RG$genes,guessdups=TRUE)   # extract the layout from the RG$printer

> types <- readSpotTypes("SpotTypes.txt",path=genedir)

> RG$genes$Status <- controlStatus(types, RG)

> library(arrayQuality)

> maQualityPlots(RG)
> [1] TRUE
> [1] TRUE
> [1] TRUE
> Error in exty[[i]] : subscript out of bounds

Note: My RG has 6 samples in it (3 replicates with dye swap each).


Best regards

João Fadista
Ph.d. student


UNIVERSITY OF AARHUS
Faculty of Agricultural Sciences
Research Centre Foulum
Dept. of Genetics and Biotechnology
Blichers Allé 20, P.O. BOX 50
DK-8830 Tjele

Phone:   +45 8999 1900
Direct:  +45 8999 1900

E-mail:  Joao.Fadista at agrsci.dk
Web:       http://www.agrsci.org <http://www.agrsci.org/>  <http://www.agrsci.org/>                               

This email may contain information that is confidential.
Any use or publication of this email without written permission from Faculty of Agricultural Sciences is not allowed.
If you are not the intended recipient, please notify Faculty of Agricultural Sciences immediately and delete this email.







-----Original Message-----
From: Sean Davis [mailto:sdavis2 at mail.nih.gov]
Sent: Monday, March 26, 2007 12:31 PM
To: bioconductor at stat.math.ethz.ch
Cc: João Fadista
Subject: Re: [BioC] maQualityPlots (arrayQuality package)

On Monday 26 March 2007 03:22, João Fadista wrote:
> Dear all,
>
> I found a problem with the function maQualityPlots from the
> arrayQuality
package. It outputs the following message:
> > maQualityPlots(RG)
>
> [1] TRUE
> [1] TRUE
> [1] TRUE
> Error in exty[[i]] : subscript out of bounds
>
> Does anybody knows what seems to be the problem? Thanks in advance.

Joao,

You will probably need to supply some more detail.  The best way to post questions like this is to supply all the commands in a reproducible example.
Short of that, at least the commands to produce "RG" need to be present.
Also, the output from sessionInfo() pretty much has to be in all questions to this list, considering the multiple versions of bioconductor packages and R and multiple operating systems.

Sean

_______________________________________________
Bioconductor mailing list
Bioconductor at stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/bioconductor
Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor



More information about the Bioconductor mailing list