[BioC] Modified qc.affy code for chip type: soybeancdf

Alvord, Greg (DMS) [Contr] gwa at css.ncifcrf.gov
Wed Jan 3 16:37:41 CET 2007


Hello All - 

 

Previously we experienced difficulty in obtaining quality control
statistics from the library 'simpleaffy' for the soybean genome with
chip type: soybeancdf.  See our query of 9/14/06 to the list.  After
reading Crispin Miller's post to the list on 8/2/06 and following some
useful suggestions by Jenny Drnevich (9/14/06), in response to our
query, we have successfully modified the code to qc.affy to obtain scale
factors, percent.present, average.background, minimum.background and
maximum.background quality control statistics.  Many thanks to Jenny for
her inputs.   

 

We have chosen to name this function: soybean.mod.qc.affy.  It may be
useful for other chip types that the function qc( ) does not recognize,
as well.  Explanatory comments we have made are delimited by three pound
signs (###).  Specific parts of the qc.affy( ) function (what qc( )
actually uses), are indicated by single pound signs (#).  You may
download this from our web address:

 

            
http://css.ncifcrf.gov/services/download/soybean.mod.qc.affy.zip

 

or from the attached text file:   soybean.mod.qc.affy.txt

 

Note:  We suggest you load libraries 'affy' and 'simpleaffy' before
executing the function. 

 

The code follows:

 

soybean.mod.qc.affy <- 

function (unnormalised, normalised = NULL, tau = 0.015, logged = TRUE, 

    cdfn = cleancdfname(cdfName(unnormalised))) 

{

    if (is.null(normalised)) {

        getAllSpikeProbes("hgu133acdf")

        normalised <- call.exprs(unnormalised, "mas5")

    }

###

### All lines that have been removed from Crispin Miller's 

### original qc.affy() function are delimited with a pound sign

###  

    #if (!haveQCParams(cleancdfname(cdfName(unnormalised)))) {

    #    stop(paste("I'm sorry, I do not know about chip type:", 

    #        cleancdfname(cdfName(unnormalised))))

    # }

###

###

    x <- exprs(normalised)

###

###

### Crispin Miller's orginal qc.affy() function contains the following
statement:

### det <- detection.p.val(unnormalised, tau = tau, alpha1 =
getAlpha1(cdfn), 

###        alpha2 = getAlpha2(cdfn))  

### 

### At this point, hardcode values of your choice for alpha1 and alpha2.

### Note: mas5calls() uses a generic values of 0.04 and 0.06,
respectively,

### for alpha1 and alpha2.

### 

    det <- detection.p.val(unnormalised, tau = tau, alpha1 = .04, 

        alpha2 = .06)

    dpv <- apply(det$call, 2, function(x) {

        x[x != "P"] <- 0

        x[x == "P"] <- 1

        x <- as.numeric(x)

        return(100 * sum(x)/length(x))

    })

    sfs <- normalised at description@preprocessing$sfs

    target <- normalised at description@preprocessing$tgt

    if (!logged) {

        x <- log2(x)

    }

    bgsts <- .bg.stats(unnormalised)$zonebg

    meanbg <- apply(bgsts, 1, mean)

    minbg <- apply(bgsts, 1, min)

    maxbg <- apply(bgsts, 1, max)

    stdvbg <- sqrt(apply(bgsts, 1, var))

###

### More code to be commented out...

###

    # qc.probenames <- getAllQCProbes(cdfn)

    # qc.probe.vals <- rbind(c(), (sapply(qc.probenames, function(y) {

    #    x[y, ]

    # })))

    # rownames(qc.probe.vals) <- colnames(x)

    # spike.probenames <- getAllSpikeProbes(cdfn)

    # spike.vals <- rbind(c(), (sapply(spike.probenames, function(y) {

    #    x[y, ]

    # })))

    # rownames(spike.vals) <- colnames(x)

    # bb <- getBioB(cdfn)

    # if (!is.na(bb)) {

    #    biobcalls <- det$call[bb, ]

    # }

    # else {

    #    biobcalls <- NULL

    # }

###

### The original return function from Crispin Miller's qc.affy()
function is: 

### return(new("QCStats", scale.factors = sfs, target = target, 

###     percent.present = dpv, average.background = meanbg,
minimum.background = minbg, 

###     maximum.background = maxbg, spikes = spike.vals, qc.probes =
qc.probe.vals, 

###     bioBCalls = biobcalls))

###

### The return function has been modified as follows: 

### 

    return(new("QCStats", scale.factors = sfs, target = target, 

        percent.present = dpv, average.background = meanbg,
minimum.background = minbg, 

        maximum.background = maxbg))

}

 

We hope this may be useful to some other users who may have encountered
problems with the function qc( ) with their chips.   

 

            Greg 

 

W. Gregory Alvord, Ph.D.

Director, Statistical Consulting Services

Computer and Statistical Services

National Cancer Institute at Frederick

Post Office Box B 

Frederick, MD 21702-1201

Phone: 301.846.5101

Facsimile: 301.846.6196

E-Mail gwa at css.ncifcrf.gov <mailto:gwa at css.ncifcrf.gov> 

 

 

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: soybean.mod.qc.affy.txt
Url: https://stat.ethz.ch/pipermail/bioconductor/attachments/20070103/5d8c584f/attachment.txt 


More information about the Bioconductor mailing list