This class is a container for RDML format data (Lefever et al. 2009). The data may be further transformed to the appropriate format of the qpcR (Ritz et al. 2008, Spiess et al. 2008) and chipPCR (Roediger et al. 2015) packages (see RDML.new for import details). Real-time PCR Data Markup Language (RDML) is the recommended file format element in the Minimum Information for Publication of Quantitative Real-Time PCR Experiments (MIQE) guidelines (Bustin et al. 2009). The inner structure of imported data faithfully reflects the structure of RDML file v1.2. All data with the exception for fluorescence values can be represented as data.frame by method AsTable. Such possibility of data representation streamlines sample filtering (by targets, types, etc.) and serves as request for GetFData method, which extracts fluorescence data for specified samples.

Format

An R6Class generator object.

Fields

Type, structure of data and description of fields can be viewed at RDML v1.2 file description. Names of fields are first level of XML tree.

Methods

new

creates a new instance of RDML class object (see RDML.new)

AsTable

represent RDML data as data.frame (see RDML.AsTable)

GetFData

gets fluorescence data (see RDML.GetFData)

SetFData

sets fluorescence data (see RDML.SetFData)

Merge

merges two RDML to one (see MergeRDMLs)

AsDendrogram

represents structure of RDML object as dendrogram(see RDML.AsDendrogram)

References

RDML format http://www.rdml.org/ R6 package http://cran.r-project.org/web/packages/R6/index.html

qpcR package http://cran.r-project.org/web/packages/qpcR/index.html

chipPCR package: http://cran.r-project.org/web/packages/chipPCR/index.html

Roediger S, Burdukiewicz M and Schierack P (2015). chipPCR: an R Package to Pre-Process Raw Data of Amplification Curves. Bioinformatics first published online April 24, 2015 doi:10.1093/bioinformatics/btv205

Ritz, C., Spiess, A.-N., 2008. qpcR: an R package for sigmoidal model selection in quantitative real-time polymerase chain reaction analysis. Bioinformatics 24, 1549--1551. doi:10.1093/bioinformatics/btn227

Spiess, A.-N., Feig, C., Ritz, C., 2008. Highly accurate sigmoidal fitting of real-time PCR data by introducing a parameter for asymmetry. BMC Bioinformatics 9, 221. doi:10.1186/1471-2105-9-221

Bustin, S.A., Benes, V., Garson, J.A., Hellemans, J., Huggett, J., Kubista, M., Mueller, R., Nolan, T., Pfaffl, M.W., Shipley, G.L., Vandesompele, J., Wittwer, C.T., 2009. The MIQE guidelines: minimum information for publication of quantitative real-time PCR experiments. Clin. Chem. 55, 611--622. doi:10.1373/clinchem.2008.112797

Lefever, S., Hellemans, J., Pattyn, F., Przybylski, D.R., Taylor, C., Geurts, R., Untergasser, A., Vandesompele, J., RDML consortium, 2009. RDML: structured language and reporting guidelines for real-time quantitative PCR data. Nucleic Acids Res. 37, 2065--2069. doi:10.1093/nar/gkp056

Author

Konstantin A. Blagodatskikh <k.blag@yandex.ru>, Stefan Roediger <stefan.roediger@b-tu.de>, Michal Burdukiewicz <michalburdukiewicz@gmail.com>

Super class

RDML::rdmlBaseType -> RDML

Methods

Public methods

Inherited methods

Method AsDendrogram()

Usage

RDML$AsDendrogram(plot.dendrogram = TRUE)


Method AsTable()

Usage

RDML$AsTable(
  .default = list(exp.id = experiment$id$id, run.id = run$id$id, react.id =
    react$id$id, position = react$position, sample = react$sample$id, target =
    data$tar$id, target.dyeId = target[[data$tar$id]]$dyeId$id, sample.type =
    sample[[react$sample$id]]$type$value, adp = !is.null(data$adp), mdp =
    !is.null(data$mdp)),
  name.pattern = paste(react$position, react$sample$id,
    private$.sample[[react$sample$id]]$type$value, data$tar$id, sep = "_"),
  add.columns = list(),
  treat.null.as.na = FALSE,
  ...
)


Method GetFData()

Usage

RDML$GetFData(request, dp.type = "adp", long.table = FALSE)


Method AsXML()

Usage

RDML$AsXML(file.name)


Method SetFData()

Usage

RDML$SetFData(fdata, description, fdata.type = "adp")


Method new()

Usage

RDML$new(
  filename,
  show.progress = TRUE,
  conditions.sep = NULL,
  cluster = NULL,
  format = "auto"
)


Method clone()

The objects of this class are cloneable with this method.

Usage

RDML$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

## EXAMPLE 1: ## internal dataset lc96_bACTXY.rdml (in 'data' directory) ## generated by Roche LightCycler 96. Contains qPCR data ## with four targets and two types. ## Import with default settings. PATH <- path.package("RDML") filename <- paste(PATH, "/extdata/", "lc96_bACTXY.rdml", sep ="") lc96 <- RDML$new(filename)
#> #> Loading experiment: ca1eb225-ecea-4793-9804-87bfbb45f81d #> run: 65aeb1ec-b377-4ef6-b03f-92898d47488b
tab <- lc96$AsTable(name.pattern = paste(sample[[react$sample$id]]$description, react$id$id), quantity = sample[[react$sample$id]]$quantity$value)
#> Warning: fdata.name column has duplicates! Try another 'name.pattern'.
## Show dyes names unique(tab$target.dyeId)
#> [1] "FAM" "Hex" "Texas Red" "Cy5"
## Show types of the samples for dye 'FAM' library(dplyr)
#> #> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’: #> #> filter, lag
#> The following objects are masked from ‘package:base’: #> #> intersect, setdiff, setequal, union
unique(filter(tab, target.dyeId == "FAM")$sample.type)
#> [1] "std" "unkn"
## Show template quantities for dye 'FAM' type 'std'#' if (FALSE) { COPIES <- filter(tab, target.dyeId == "FAM", sample.type == "std")$quantity ## Define calibration curves (type of the samples - 'std'). ## No replicates. library(qpcR) CAL <- modlist(lc96$GetFData(filter(tab, target.dyeId == "FAM", sample.type == "std")), baseline="lin", basecyc=8:15) ## Define samples to predict (first two samples with the type - 'unkn'). PRED <- modlist(lc96$GetFData(filter(tab, target.dyeId == "FAM", sample.type == "unkn")), baseline="lin", basecyc=8:15) ## Conduct quantification. calib(refcurve = CAL, predcurve = PRED, thresh = "cpD2", dil = COPIES) } if (FALSE) { ## EXAMPLE 2: ## internal dataset lc96_bACTXY.rdml (in 'data' directory) ## generated by Roche LightCycler 96. Contains qPCR data ## with four targets and two types. ## Import with default settings. library(chipPCR) PATH <- path.package("RDML") filename <- paste(PATH, "/extdata/", "lc96_bACTXY.rdml", sep ="") lc96 <- RDML$new(filename) tab <- lc96$AsTable(name.pattern = paste(sample[[react$sample$id]]$description, react$id$id), quantity = sample[[react$sample$id]]$quantity$value) ## Show targets names unique(tab$target) ## Fetch cycle dependent fluorescence for HEX chanel tmp <- lc96$GetFData(filter(tab, target == "bACT", sample.type == "std")) ## Fetch vector of dillutions dilution <- filter(tab, target.dyeId == "FAM", sample.type == "std")$quantity ## Use plotCurves function from the chipPCR package to ## get an overview of the amplification curves tmp <- as.data.frame(tmp) plotCurves(tmp[,1], tmp[,-1]) par(mfrow = c(1,1)) ## Use inder function from the chipPCR package to ## calculate the Cq (second derivative maximum, SDM) SDMout <- sapply(2L:ncol(tmp), function(i) { SDM <- summary(inder(tmp[, 1], tmp[, i]), print = FALSE)[2] }) ## Use the effcalc function from the chipPCR package and ## plot the results for the calculation of the amplification ## efficiency analysis. plot(effcalc(dilution, SDMout), CI = TRUE) } if (FALSE) { ## EXAMPLE 3: ## internal dataset BioRad_qPCR_melt.rdml (in 'data' directory) ## generated by Bio-Rad CFX96. Contains qPCR and melting data. ## Import with custom name pattern. PATH <- path.package("RDML") filename <- paste(PATH, "/extdata/", "BioRad_qPCR_melt.rdml", sep ="") cfx96 <- RDML$new(filename) ## Use plotCurves function from the chipPCR package to ## get an overview of the amplification curves library(chipPCR) ## Extract all qPCR data tab <- cfx96$AsTable() cfx96.qPCR <- as.data.frame(cfx96$GetFData(tab)) plotCurves(cfx96.qPCR[,1], cfx96.qPCR[,-1], type = "l") ## Extract all melting data cfx96.melt <- cfx96$GetFData(tab, dp.type = "mdp") ## Show some generated names for samples. colnames(cfx96.melt)[2L:5] ## Select columns that contain ## samples with dye 'EvaGreen' and have type 'pos' ## using filtering by names. cols <- cfx96$GetFData(filter(tab, grepl("pos_EvaGreen$", fdata.name)), dp.type = "mdp") ## Conduct melting curve analysis. library(qpcR) invisible(meltcurve(cols, fluos = 2:ncol(cols), temps = rep(1, ncol(cols) - 1))) }