Creating RDML objects

RDML7 authors

Create an object from tables

buildRDMLFromFData() is the shortest way to construct RDML data from user fluorescence.

fdata <- data.frame(
  cyc = 1:5,
  sample1_ACTB = c(10, 11, 15, 30, 80),
  sample1_GAPDH = c(9, 10, 14, 28, 75)
)

description <- data.frame(
  fdataName = c("sample1_ACTB", "sample1_GAPDH"),
  expId = c("exp1", "exp1"),
  runId = c("run1", "run1"),
  reactId = c("A1", "A1"),
  sample = c("sample1", "sample1"),
  sampleType = c("unkn", "unkn"),
  target = c("ACTB", "GAPDH"),
  targetDyeId = c("FAM", "HEX"),
  cq = c(21.3, 22.1)
)

x <- buildRDMLFromFData(
  fdata,
  description,
  fdataType = "adp",
  publisher = "Example laboratory"
)

The builder creates the minimum experiment, run, reaction, sample, target, and dye hierarchy.

summary(x)
asTable(x)

Add melting data

melt <- data.frame(
  tmp = c(70, 71, 72, 73),
  sample1_ACTB = c(100, 130, 90, 60)
)

x <- setFData(
  x,
  melt,
  description[1, ],
  fdataType = "mdp"
)

Result columns

Description tables may carry calculated result fields such as cq, meltTemp, or the package extension meltTemp.

meltTemp preserves multiple measured RDES Tm values. Standard RDML XML can represent only the primary single meltTemp, so conversion to RDML may be lossy.

Direct S7 constructors

Advanced code can construct schema objects directly.

sample <- sampleType(
  id = idType("sample1"),
  description = "Example sample"
)

dye <- dyeType(
  id = idType("FAM"),
  description = "FAM"
)

target <- targetType(
  id = idType("ACTB"),
  type = targetTypeType("toi"),
  dyeId = idReferenceType("FAM")
)

The exported schema help topics list the main type families:

?rdml-metadata-types
?rdml-sample-target-types
?rdml-thermal-types
?rdml-experimental-types

Value semantics

Always assign the returned object:

x <- setFData(
  x,
  fdata,
  description,
  conflict = "replace"
)

Validate and write

validateRDML(x, action = "error")
writeRDML(x, "created.rdml")