curvesplot | R Documentation |
Provides a plot of all the fitted curves from a dataframe of the main workflow results, possibly extended with additional information (e.g. groups from functional annotation) used to color and/or split the curves.
curvesplot(extendedres, xmin = 0, xmax, y0shift = TRUE, scaling = FALSE, facetby, facetby2, free.y.scales = FALSE, ncol4faceting, colorby, removelegend = FALSE, npoints = 500, line.size = 0.2, line.alpha = 1, dose_log_transfo = FALSE)
extendedres |
the dataframe of results provided by bmdcalc (res) or drcfit (fitres)
or a subset of this data frame (selected lines). This dataframe can be extended
with additional columns coming for example from the annotation of items, and some lines
can be replicated if their corresponding item has more than one annotation.
This extended dataframe
must at least contain the column giving the identification of each curve ( |
xmin |
Minimal dose/concentration for definition of the x range (by default 0). |
xmax |
Maximal dose/concentration for definition of the x range (can be defined
as |
y0shift |
If |
scaling |
If |
facetby |
optional argument naming the column of |
facetby2 |
optional argument naming the column of |
free.y.scales |
if TRUE the y scales are free in the different facets. |
ncol4faceting |
Number of columns for facetting (not used if |
colorby |
optional argument naming the column of |
removelegend |
If |
npoints |
Number of points computed on each curve to plot it. |
line.size |
Size of the lines for plotting curves. |
line.alpha |
Transparency of the lines for plotting curves. |
dose_log_transfo |
If TRUE a log transformation of the dose is used in the plot. This option needs a definition of a strictly positive value of xmin in input. |
For each item of the extended dataframe, the name of the model
(column model
) and the values of
the parameters (columns b
, c
, d
, e
, f
)
are used to compute theoretical dose-response curves in the range
[xmin ; xmax].
a ggplot object.
Marie-Laure Delignette-Muller
See plot.bmdboot
.
# (1) A toy example on a very small subsample of a microarray data set) # datafilename <- system.file("extdata", "transcripto_very_small_sample.txt", package="DRomics") o <- microarraydata(datafilename, check = TRUE, norm.method = "cyclicloess") s_quad <- itemselect(o, select.method = "quadratic", FDR = 0.01) f <- drcfit(s_quad, progressbar = TRUE) # (1.a) # Default plot of all the curves # curvesplot(f$fitres, xmax = max(f$omicdata$dose)) # the same plot with dose in log scale (need xmin != 0 in input) curvesplot(f$fitres, xmin = 0.1, xmax = max(f$omicdata$dose), dose_log_transfo = TRUE) # the equivalent using the output of bmdcalc (r <- bmdcalc(f)) curvesplot(r$res, xmax = max(f$omicdata$dose)) # plot of curves colored by models curvesplot(r$res, xmax = max(f$omicdata$dose), colorby = "model") # plot of curves facetted by item curvesplot(r$res, xmax = max(f$omicdata$dose), facetby = "id") # plot of curves facetted by trends curvesplot(r$res, xmax = max(f$omicdata$dose), facetby = "trend") # the same plot with free y scales curvesplot(r$res, xmax = max(f$omicdata$dose), facetby = "trend", free.y.scales = TRUE) # (1.b) # Plot of all the curves playing with y0shift and scaling # # without shifting y0 values to 0 curvesplot(f$fitres, xmax = max(f$omicdata$dose), y0shift = FALSE) # with shifting y0 values to 0 and scaling curvesplot(f$fitres, xmax = max(f$omicdata$dose), y0shift = TRUE, scaling = TRUE) # (1.c) # Plot of all the curves colored by model, with one facet per trend # curvesplot(f$fitres, xmax = max(f$omicdata$dose), facetby = "trend", colorby = "model") # changing the number of columns curvesplot(f$fitres, xmax = max(f$omicdata$dose), facetby = "trend", colorby = "model", ncol4faceting = 4) # playing with size and transparency of lines curvesplot(f$fitres, xmax = max(f$omicdata$dose), facetby = "trend", colorby = "model", line.size = 1, line.alpha = 0.5) # (2) an example on a microarray data set (a subsample of a greater data set) # datafilename <- system.file("extdata", "transcripto_sample.txt", package="DRomics") (o <- microarraydata(datafilename, check = TRUE, norm.method = "cyclicloess")) (s_quad <- itemselect(o, select.method = "quadratic", FDR = 0.001)) (f <- drcfit(s_quad, progressbar = TRUE)) (r <- bmdcalc(f)) # plot split by trend and model curvesplot(f$fitres, xmax = max(f$omicdata$dose), facetby = "trend", facetby2 = "model") # plot split by trend and model with scaling curvesplot(f$fitres, xmax = max(f$omicdata$dose), scaling = TRUE, facetby = "trend", facetby2 = "model") # (3) An example from data published by Larras et al. 2020 # in Journal of Hazardous Materials # https://doi.org/10.1016/j.jhazmat.2020.122727 # a dataframe with metabolomic results (output $res of bmdcalc() or bmdboot() functions) resfilename <- system.file("extdata", "triclosanSVmetabres.txt", package="DRomics") res <- read.table(resfilename, header = TRUE, stringsAsFactors = TRUE) str(res) # a dataframe with annotation of each item identified in the previous file # each item may have more than one annotation (-> more than one line) annotfilename <- system.file("extdata", "triclosanSVmetabannot.txt", package="DRomics") annot <- read.table(annotfilename, header = TRUE, stringsAsFactors = TRUE) str(annot) # Merging of both previous dataframes # in order to obtain an extenderes dataframe # bootstrap results and annotation extendedres <- merge(x = res, y = annot, by.x = "id", by.y = "metab.code") head(extendedres) # Plot of the dose-response curves by pathway colored by trend curvesplot(extendedres, facetby = "path_class", npoints = 100, line.size = 1, colorby = "trend", xmin = 0, xmax = 8) # Plot of the scaled dose-response curves by pathway colored by trend curvesplot(extendedres, facetby = "path_class", npoints = 100, line.size = 1, colorby = "trend", scaling = TRUE, xmin = 0, xmax = 8) # Plot of the dose-response curves split by pathway and by trend # for a selection pathway chosen_path_class <- c("Membrane transport", "Lipid metabolism") ischosen <- is.element(extendedres$path_class, chosen_path_class) curvesplot(extendedres[ischosen, ], facetby = "trend", facetby2 = "path_class", npoints = 100, line.size = 1, xmin = 0, xmax = 8) # Plot of the dose-response curves for a specific pathway # in this example the "lipid metabolism" pathclass LMres <- extendedres[extendedres$path_class == "Lipid metabolism", ] curvesplot(LMres, facetby = "id", npoints = 100, line.size = 1, colorby = "trend", xmin = 0, xmax = 8)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.