Learn R Programming

PTXQC (version 1.1.2)

qcMetric-class: Class which can compute plots and generate mzQC output (usually for a single metric).

Description

Internally calls the workerFcn() , which computes the actual plots metric scores and supporting data (e.g. mzQC metrics) of the derived class; the resulting data is checked and stored in the members of this class

Arguments

df

The expected data, usually a data frame. If empty, this function will return immediately without failure.

...

Additional arguments passed to the workerFcn()

Fields

helpText

Description (lengthy) of the metric and plot elements

workerFcn

Function which generates a result (usually plots). Data is provided using setData().

plots

List of plots (after setData() was called)

htmlTable

A table for display in the HTML report (preferred over a plot in Html mode)

qcScores

Data.frame of scores from a qcMetric (computed within workerFcn())

mzQC

An named list of mzQC MzQCqualityMetric's (named by their fc.raw.file for runQuality or concatenated fc.raw.files for setQualities (e.g. "file 1;file4")) (valid after setData() was called)

qcCat

QC category (LC, MS, or prep)

qcName

Name of the qcScore in the heatmap

orderNr

Column index during heatmap generation and for the general order of plots

Details

Reference class which is instanciated with a metric description and a worker function (at initialization time, i.e. in the package) and can produce plots and mzQC values (at runtime, when data is provided) using setData().

All derived classes need to implement a 'workerFcn()' function, which returns a list with elements: c("plots", "mzQC", "htmlTable", "qcScores", "title"), where 'plots' is required; all others are optional.

Examples

Run this code

require(ggplot2)
dd = data.frame(x=1:10, y=11:20)
a = qcMetric$new(helpText="small help text", 
                 ## arbitrary arguments, matched during setData()
                 workerFcn=function(.self, data, gtitle)
                 {
                   ## usually some code here to produce ggplots
                   pl = lapply(1:2, function(xx) {
                       ggplot(data) +
                         geom_point(aes(x=x*xx,y=y)) +
                         ggtitle(gtitle)
                     })
                     ## add mzQC metric for count of identified clusters
                     template_proteinCount = rmzqc::getQualityMetricTemplate("MS:1002406") 
                     mzqc = lapply(1:3, function(id){
                       out = template_proteinCount$copy();
                       out$value = id;
                       return(out) })
                     names(mzqc) = paste0("file", 1:3);
                   return(list(plots = pl, mzQC = mzqc))
                 }, 
                 qcCat="LC", 
                 qcName="MS/MS Peak shape", 
                 orderNr = 30)
## test some output
a$setData(dd, "my title")
a$plots  ## the raw plots
a$getPlots(TRUE) ## same as above
a$getPlots(FALSE) ## plots without title
a$getTitles()  ## get the titles of the all plots
a$helpText
a$qcName
a$mzQC


Run the code above in your browser using DataLab