getZfactor {cellHTS2} | R Documentation

## Per-experiment Z'-factor of a cellHTS object

### Description

Calculates per-experiment Z'-factor of data stored in a `cellHTS` object. The Z'-factor is a measure that quantifies the separation between the distribution of positive and negative controls.

### Usage

    getZfactor(x,
    robust=TRUE,
    verbose=interactive(),
    posControls,
    negControls)

### Arguments

`x` | a configured `cellHTS` object. See details.
`robust` | a logical, if `TRUE` the Z'-factor is calculated using the median and MAD instead of mean and standard deviation, respectively.
`verbose` | a logical, if `TRUE` the function reports some of its intermediate progress. The default is the state of `interactive()`.
`posControls` | (optional) a list or vector of regular expressions specifying the name of the positive controls. See details.
`negControls` | (optional) a vector of regular expressions specifying the name of the negative controls. See details.

### Details

`x` should be an already configured `cellHTS` object (`state(x)["configured"]=TRUE`), so that the information about the well annotation of the plates is available.

The per-experiment Z'-factor values are calculated for the data stored in slot `assayData` of `x`.

If `robust=TRUE` (default), the Z'-factor is calculated using robust estimates of location (median) and spread (mad).

`posControls` and `negControls` should be given as a vector of regular expression patterns specifying the name of the positive(s) and negative(s) controls, respectivey, as provided in the plate configuration file (and accessed via `wellAnno(x)`). The length of these vectors should be equal to the current number of channels in `x` (`dim(Data(x))[3]`). By default, if `posControls` is not given, `pos` will be taken as the name for the wells containing positive controls. Similarly, if `negControls` is missing, by default `neg` will be considered as the name used to annotated the negative controls. The content of `posControls` and `negControls` will be passed to `regexpr` for pattern matching within the well annotation given in `wellAnno(x)` (see examples). If no controls are available for a given channel, use `""` or `NA` for that channel. For example, `posControls = c("", "(?i)^diap$")` means that channel 1 has no positive controls, while `diap` is the positive control for channel 2.

The arguments `posControls` and `negControls` are particularly useful in multi-channel data since the controls might be reporter-specific, or after normalizing multi-channel data.

If there are different positive controls, the Z'-factor is calculated between each of the positive controls and the negative controls.

In the case of a two-way assay, where two types of "positive" controls are used in the screen ("activators" and "inhibitors"), `posControls` should be defined as a list with two components (called `act` and `inh`), each of which should be vectors of regular expressions of the same length as the current number of reporters (as explained above). The Z'-factor values are calculated between each type of positive control (`activators` or `inhibitors`) and the negative controls.

### Value

The function generates a list with the per-experiment Z'-factor values in each channel and each replicate. Each element of this list is a matrix with dimensions `nrReplicates x nrChannels`, and is named by the positive controls. In the case of a two-way assay, these elements are called `activators` and `inhibitors`, while for a one-way assay, the elements have the same name of the positive controls. See examples section.

### Author(s)

Ligia P. Bras ligia@ebi.ac.uk

### References

Zhang, J.H., Chung, T.D. and Oldenburg, K.R. (1999) A simple statistical parameter for use in evaluation and validation of high throughput screening assays, J. Biomol. Screen. 4(2), 67–73.

### See Also

`configure`, `writeReport`

### Examples

        data(KcViabSmall)
        ## pCtrls <- c("pos")
        ## nCtrls <- c("neg")
        ## or for safety reasons (not a problem for the current well annotation, however)
        pCtrls <- c("^pos$")
        nCtrls <- c("^neg$")
        zf <- getZfactor(KcViabSmall, robust=TRUE, posControls=pCtrls, negControls=nCtrls)

        x <- normalizePlates(KcViabSmall, scale="multiplicative", log=FALSE, method="median", varianceAdjust="none")
        zfn <- getZfactor(x)

[Package cellHTS2 version 2.44.0 Index]