Nothing
## ----options, echo = FALSE----------------------------------------------------
library(knitr)
opts_chunk$set(
error = FALSE,
fig.width = 14, fig.height = 7,
dev = "png",
out.width = "100%",
fig.path = "./figures_vignette/",
fig.align = 'center'
)
# include warnings where they occur
options(warn = 1)
heightLineIn <- 0.2
## ----loadPackages, message = FALSE--------------------------------------------
library(patientProfilesVis)
library(pander)
## ----loadData-SDTM------------------------------------------------------------
library(clinUtils)
# import example data:
data(dataSDTMCDISCP01)
# formatted as a list of data.frame (one per domain)
dataSDTM <- dataSDTMCDISCP01
names(dataSDTM)
# and corresponding labels
labelVarsSDTM <- attr(dataSDTM, "labelVars")
head(labelVarsSDTM)
## ----loadData-ADaM------------------------------------------------------------
# import example data:
data(dataADaMCDISCP01)
# formatted as a list of data.frame (one per domain)
dataADaM <- dataADaMCDISCP01
names(dataADaM)
# and corresponding labels
labelVarsADaM <- attr(dataADaM, "labelVars")
head(labelVarsADaM)
# example subjects for the vignette:
subjectAE <- "01-718-1427"
subjectMH <- "01-718-1371"
subjectCM <- "01-701-1148"
subjectLB <- "01-704-1445"
## ----text-wideFormat----------------------------------------------------------
# annotate subject demographics meta-data
# by specifying a set of variables to include
dmPlots <- subjectProfileTextPlot(
data = dataSDTM$DM,
paramValueVar = c("SEX|AGE", "RACE|COUNTRY", "ARM"),
labelVars = labelVarsSDTM
)
## ----text-wideFormat-include, echo = FALSE, fig.height = attributes(dmPlots[[1]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Demographic information with the 'subjectProfileTextPlot' function for patient:", names(dmPlots)[1])----
print(dmPlots[[1]][[1]])
## ----text-longFormat-noGrouping-----------------------------------------------
# annotate subject medical history
# by specifying a combination of parameter value/name
mhPlots <- subjectProfileTextPlot(
data = dataSDTM$MH,
paramNameVar = c("MHDECOD"),
paramValueVar = c("MHSTDTC", "MHSEV"),
paramGroupVar = "MHCAT",
title = "Medical History: status",
labelVars = labelVarsSDTM
)
## ----text-longFormat-noGrouping-include, echo = FALSE, fig.height = attributes(mhPlots[[subjectMH]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Medical history with the 'subjectProfileTextPlot' function for patient:", subjectMH)----
print(mhPlots[[subjectMH]][[1]])
## ----text-tableFormat---------------------------------------------------------
aeListingPlots <- subjectProfileTextPlot(
data = dataSDTM$AE,
paramValueVar = c(
"AEBODSYS", "AESOC", "AEHLT",
"AELLT", "AEDECOD", "AESTDTC",
"AEENDTC", "AESER", "AEACN"
),
paramGroupVar = "AESTDTC",
labelVars = labelVarsSDTM,
table = TRUE
)
## ----text-tableFormat-include, echo = FALSE, fig.height = attributes(aeListingPlots[[subjectAE]][[1]])$metaData$nLines*heightLineIn, fig.width = 14, fig.cap = paste("Adverse event listing with the 'subjectProfileTextPlot' function for patient:", subjectAE)----
print(aeListingPlots[[subjectAE]][[1]])
## ----text-tableFormat-customWidth---------------------------------------------
aeListingPlots <- subjectProfileTextPlot(
data = dataSDTM$AE,
paramValueVar = c(
"AEBODSYS", "AESOC", "AEHLT",
"AELLT", "AEDECOD", "AESTDTC",
"AEENDTC", "AESER", "AEACN"
),
paramGroupVar = "AESTDTC",
labelVars = labelVarsSDTM,
table = TRUE,
colWidth = c(
0.2, 0.2, 0.05,
0.1, 0.1, 0.05,
0.05, 0.05, 0.05
)
)
## ----text-tableFormat-customWidth-include, echo = FALSE, fig.width = 14, fig.height = attributes(aeListingPlots[[1]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Adverse event listing with the 'subjectProfileTextPlot' function for patient:", names(aeListingPlots)[1])----
print(aeListingPlots[[subjectAE]][[1]])
## ----text-longFormat-multipleVariables----------------------------------------
# annotate subject medical history
# by specifying a combination of parameter value/name
paramValueVarFct <- function(data)
with(data, paste0(
ifelse(MHSEV != "", paste("severity:", MHSEV, ""), ""),
"(start = ", ifelse(MHSTDTC != "", MHSTDTC, "undefined"), ")"
))
mhPlotsMultipleVars <- subjectProfileTextPlot(
data = dataSDTM$MH,
paramNameVar = "MHDECOD",
paramValueVar = paramValueVarFct,
title = "Medical History: status with dates",
labelVars = labelVarsSDTM
)
## ----text-longFormat-multipleVariables-include, echo = FALSE, fig.height = attributes(mhPlotsMultipleVars[[subjectMH]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Medical history with the 'subjectProfileTextPlot' function for patient:", subjectMH)----
print(mhPlotsMultipleVars[[subjectMH]][[1]])
## ----text-longFormat-grouping-------------------------------------------------
# annotate subject medical history
# by specifying a combination of parameter value/name
mhPlotsGroup <- subjectProfileTextPlot(
data = dataSDTM$MH,
paramNameVar = "MHDECOD",
paramValueVar = c("MHDECOD", "MHSTDTC"),
paramGroupVar = "MHCAT",
title = "Medical History: grouped by category",
labelVars = labelVarsSDTM
)
## ----text-longFormat-grouping-include, echo = FALSE, fig.height = attributes(mhPlotsGroup[[subjectMH]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Medical history with the 'subjectProfileTextPlot' function for patient:", subjectMH)----
print(mhPlotsGroup[[subjectMH]][[1]])
## ----interval-ae--------------------------------------------------------------
dataAE <- dataSDTM$AE
# sort severities
dataAE[, "AESEV"] <- factor(dataAE[, "AESEV"], levels = c("MILD", "MODERATE", "SEVERE"))
aePlots <- subjectProfileIntervalPlot(
data = dataAE,
paramVar = "AETERM",
timeStartVar = "AESTDY",
timeEndVar = "AEENDY",
colorVar = "AESEV",
labelVars = labelVarsSDTM,
title = "Adverse events"
)
## ----interval-ae-include, echo = FALSE, fig.height = attributes(aePlots[[subjectAE]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Adverse events with the 'subjectProfileIntervalPlot' function for patient:", subjectAE)----
print(aePlots[[subjectAE]][[1]])
## ----interval-ex--------------------------------------------------------------
exPlots <- subjectProfileIntervalPlot(
data = dataSDTM$EX,
paramVar = c("EXTRT", "EXDOSE", "EXDOSU"),
timeStartVar = "EXSTDY",
timeEndVar = "EXENDY",
colorVar = "EXDOSFRM",
labelVars = labelVarsSDTM,
title = "Treatment exposure"
)
## ----interval-ex-include, echo = FALSE, fig.height = attributes(exPlots[[1]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Exposure interval with the 'subjectProfileIntervalPlot' function for patient:", names(exPlots)[1])----
print(exPlots[[1]][[1]])
## ----interval-cm--------------------------------------------------------------
cmPlots <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
labelVars = labelVarsSDTM,
title = "Concomitant medications"
)
## ----interval-cm-include, echo = FALSE, fig.height = attributes(cmPlots[[subjectCM]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Concomitant medications with the 'subjectProfileIntervalPlot' function for patient:", subjectCM)----
print(cmPlots[[subjectCM]][[1]])
## ----interval-ae-default, message = TRUE--------------------------------------
aePlots <- subjectProfileIntervalPlot(
data = dataAE,
paramVar = "AETERM",
timeStartVar = "AESTDY",
timeEndVar = "AEENDY",
colorVar = "AESEV",
labelVars = labelVarsSDTM,
title = "Adverse events"
)
## ----interval-ae-default-include, echo = FALSE, fig.height = attributes(aePlots[[subjectAE]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Adverse events with the 'subjectProfileIntervalPlot' function for patient:", subjectAE)----
print(aePlots[[subjectAE]][[1]])
## ----formatSVData-------------------------------------------------------------
dataSV <- dataSDTM$SV
dataSV$RFSTDTC <- dataSDTM$DM[match(dataSV$USUBJID, dataSDTM$DM$USUBJID), "RFSTDTC"]
dataSV$SVSTDY <- with(dataSV, as.numeric(as.Date(SVSTDTC)-as.Date(RFSTDTC)+1))
dataSV$SVENDY <- with(dataSV, as.numeric(as.Date(SVENDTC)-as.Date(RFSTDTC)+1))
## ----interval-ae-timeLimData, message = TRUE----------------------------------
aePlotsTimLimFromSV <- subjectProfileIntervalPlot(
data = dataAE,
paramVar = "AETERM",
timeStartVar = "AESTDY",
timeEndVar = "AEENDY",
colorVar = "AESEV",
labelVars = labelVarsSDTM,
title = "Adverse events",
timeLimData = dataSV,
timeLimStartVar = "SVSTDY", timeLimStartLab = "First subject visit",
timeLimEndVar = "SVENDY", timeLimEndLab = "Last subject visit",
)
## ----interval-ae-timeLimData-include, echo = FALSE, fig.height = attributes(aePlotsTimLimFromSV[[subjectAE]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste0("Adverse events with the 'subjectProfileIntervalPlot' function for patient:", subjectAE, ". Missing start/end date are extracted from the subject-level dataset.")----
print(aePlotsTimLimFromSV[[subjectAE]][[1]])
## ----interval-ae-timeLimData-svData-------------------------------------------
svSubjectAE <- subset(dataSV, USUBJID == subjectAE)[, c("VISIT", "SVSTDY", "SVENDY")]
pander(svSubjectAE)
## ----interval-cm-restrictedTimeLimits-----------------------------------------
cmPlotsTimeSV <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
labelVars = labelVarsSDTM,
title = "Concomitant medications",
timeLimData = dataSV,
timeLimStartVar = "SVSTDY",
timeLimEndVar = "SVENDY",
timeAlign = FALSE
)
## ----interval-cm-restrictedTimeLimits-include, echo = FALSE, fig.height = attributes(cmPlotsTimeSV[[subjectCM]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Concomitant medications with the 'subjectProfileIntervalPlot' function for patient:", subjectCM, "with time limits restricted to subject visits")----
print(cmPlotsTimeSV[[subjectCM]][[1]])
## ----interval-ae-customMissingPartialDates------------------------------------
# add status for dates:
dataAE$AESTDYST <- with(dataAE,
ifelse(is.na(AESTDY) & !is.na(AESTDY), "Missing start", "")
)
shapePalette <- c(
`Missing start`= "\u25C4", # left-pointing arrow
'NOT RECOVERED/NOT RESOLVED' = "\u25BA", # right-pointing arrow
'RECOVERED/RESOLVED' = "\u25A0", # small square
'FATAL' = "\u2666", # diamond
UNKNOWN = "+"
)
aePlotsShape <- subjectProfileIntervalPlot(
data = dataAE,
paramVar = "AETERM",
timeStartVar = "AESTDY", timeEndVar = "AEENDY",
timeStartShapeVar = "AESTDYST", timeEndShapeVar = "AEOUT",
shapePalette = shapePalette,
shapeLab = "Study date status",
colorVar = "AESEV",
labelVars = labelVarsSDTM,
title = "Adverse events"
)
## ----interval-ae-customMissingPartialDates-include, echo = FALSE, fig.height = attributes(aePlotsShape[[subjectAE]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Adverse events with the 'subjectProfileIntervalPlot' function for patient:", subjectAE, "with custom shape specification")----
print(aePlotsShape[[subjectAE]][[1]])
## ----interval-cm-restrictedTimeLimits2----------------------------------------
timeLim <- c(0, 182)
cmPlotsTimeSpec <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
labelVars = labelVarsSDTM,
title = "Concomitant medications",
timeLim = timeLim
)
## ----interval-cm-restrictedTimeLimits2-include, echo = FALSE, fig.height = attributes(cmPlotsTimeSpec[[subjectCM]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Concomitant medications with the 'subjectProfileIntervalPlot' function for patient:", subjectCM, "with time limits restricted to: (", toString(timeLim), ")")----
print(cmPlotsTimeSpec[[subjectCM]][[1]])
## ----interval-cm-timeAlign-FALSE----------------------------------------------
cmPlotsNotAligned <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
labelVars = labelVarsSDTM,
title = "Concomitant medications",
timeAlign = FALSE
)
## ----interval-cm-timeAlign-FALSE-include-1, echo = FALSE, fig.height = attributes(cmPlotsNotAligned[[subjectCM]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Adverse events with the 'subjectProfileIntervalPlot' function for patient:", subjectCM, "with custom shape specification")----
print(cmPlotsNotAligned[[subjectCM]][[1]])
## ----formatLBData-------------------------------------------------------------
# consider a subset of the laboratory data for example:
lbTests <- c("CHOL", "PHOS", "ANISO", "MCHC", "PLAT", "KETONES")
dataLB <- subset(dataSDTM$LB, LBTESTCD %in% lbTests)
# sort the categories (empty values '', if any, becomes NA)
dataLB$LBNRIND <- factor(dataLB$LBNRIND, levels = c("LOW", "NORMAL", "HIGH", "ABNORMAL"))
## ----event--------------------------------------------------------------------
# create plot
lbPlots <- subjectProfileEventPlot(
data = dataLB,
paramVar = c("LBCAT", "LBTEST"),
paramGroupVar = "LBCAT",
timeVar = "LBDY",
labelVars = labelVarsSDTM,
title = "Laboratory test measurements"
)
## ----event-include, echo = FALSE, fig.height = attributes(lbPlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileEventPlot' function for patient:", subjectLB)----
print(lbPlots[[subjectLB]][[1]])
## ----event-color--------------------------------------------------------------
# create plot
lbPlotsColorShape <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBCAT",
labelVars = labelVarsSDTM,
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
title = "Laboratory test measurements: reference range indicator"
)
## ----event-color-include, echo = FALSE, fig.height = attributes(lbPlotsColorShape[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with reference range with the 'subjectProfileEventPlot' function for patient:", subjectLB)----
print(lbPlotsColorShape[[subjectLB]][[1]])
## ----line---------------------------------------------------------------------
# create plot
lbLinePlots <- subjectProfileLinePlot(
data = dataLB,
paramNameVar = "LBTEST",
paramValueVar = "LBSTRESN",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----line-include, echo = FALSE, fig.height = attributes(lbLinePlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileLinePlot' function for patient:", subjectLB)----
print(lbLinePlots[[subjectLB]][[1]])
## ----line-colorShape----------------------------------------------------------
# create plot
lbLinePlotsColorShape <- subjectProfileLinePlot(
data = dataLB,
paramNameVar = "LBTEST",
paramValueVar = "LBSTRESN",
colorVar = "LBCAT",
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
paramGroupVar = "LBCAT",
timeVar = "LBDY",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----line-colorShape-include, echo = FALSE, fig.height = attributes(lbLinePlotsColorShape[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with reference range with the 'subjectProfileLinePlot' function for patient:", subjectLB)----
print(lbLinePlotsColorShape[[subjectLB]][[1]])
## ----line-paramValueRangeVar--------------------------------------------------
# create plot
lbLineRefRangePlots <- subjectProfileLinePlot(
data = dataLB,
paramNameVar = "LBTEST",
paramValueVar = "LBSTRESN",
paramGroupVar = "LBCAT",
paramValueRangeVar = c("LBSTNRLO", "LBSTNRHI"),
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
timeVar = "LBDY",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----line-paramValueRangeVar-value-include, echo = FALSE, fig.height = attributes(lbLineRefRangePlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileLinePlot' function with a reference range for patient:", subjectLB)----
print(lbLineRefRangePlots[[subjectLB]][[1]])
## ----line-yLimFrom-value------------------------------------------------------
# create plot
lbLineYLimFromValuePlots <- subjectProfileLinePlot(
data = dataLB,
paramNameVar = "LBTEST",
paramValueVar = "LBSTRESN",
paramGroupVar = "LBCAT",
paramValueRangeVar = c("LBSTNRLO", "LBSTNRHI"),
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
yLimFrom = "value",
timeVar = "LBDY",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----line-yLimFrom-value-include, echo = FALSE, fig.height = attributes(lbLineYLimFromValuePlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileLinePlot' function for patient:", subjectLB)----
print(lbLineYLimFromValuePlots[[subjectLB]][[1]])
## ----event-subset-------------------------------------------------------------
# create plot
lbPlotsSubset <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
# select subjects of interest:
subsetData = dataSDTM$AE,
subsetVar = "AESEV", subsetValue = "SEVERE",
timeVar = "LBDY",
colorVar = "LBNRIND",
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
title = "Hematology test measurements",
labelVars = labelVarsSDTM
)
cat("Only the", length(lbPlotsSubset), "patients with severe adverse events:", toString(names(lbPlotsSubset)), "are considered.\n")
## ----event-subset-2-----------------------------------------------------------
# create plot
lbPlotsSubjectSubset <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
subsetVar = "LBCAT", subsetValue = "HEMATOLOGY",
subjectSubset = subjectLB,
timeVar = "LBDY",
colorVar = "LBNRIND",
shapeVar = "LBNRIND",
shapePalette = c(
'LOW' = 25, 'NORMAL' = 19, 'HIGH' = 24,
'ABNORMAL' = 11
),
title = "Laboratory test measurements for subject of interest",
labelVars = labelVarsSDTM
)
cat("Only the patient:", toString(names(lbPlotsSubjectSubset)), "is considered.\n")
## ----lab-SDTM-categories-default----------------------------------------------
dataLB <- subset(dataSDTM$LB, LBTESTCD %in% lbTests)
# LBRIND is a character: elements sorted in alphabetical order
lbPlotsColor <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----lab-SDTM-categories-default-include, echo = FALSE, fig.height = attributes(lbPlotsColor[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileEventPlot' function with color/shape ordered alphabetically for patient:", subjectLB)----
print(lbPlotsColor[[subjectLB]][[1]])
## ----lab-SDTM-categories-sorted-----------------------------------------------
dataLB <- subset(dataSDTM$LB, LBTESTCD %in% lbTests)
# sort LBRIND
dataLB$LBNRIND <- with(dataLB,
factor(LBNRIND, levels = c("LOW", "NORMAL", "HIGH", "ABNORMAL"))
)
# create plot
lbPlotsColor <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----lab-SDTM-categories-sorted-include, echo = FALSE, fig.height = attributes(lbPlotsColor[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileEventPlot' function with color/shape ordered as specified for patient:", subjectLB)----
print(lbPlotsColor[[subjectLB]][[1]])
## ----lab-ADaM-categories-sorted-numeric---------------------------------------
dataLB <- subset(dataSDTM$LB, LBTESTCD %in% lbTests)
# for the demo, creates numeric variable associated to reference range
# (often already available)
dataLB$LBNRINDN <- c(LOW = 1, NORMAL = 2, HIGH = 3, ABNORMAL = 10)[dataLB$LBNRIND]
dataLB$LBNRIND <- with(dataLB, reorder(LBNRIND, LBNRINDN))
lbPlotsColor <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND", shapeVar = "LBNRIND",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----lab-SDTM-categories-sorted-numeric, echo = FALSE, fig.height = attributes(lbPlotsColor[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileEventPlot' function with color/shape ordered based on the corresponding numeric variable for patient:", subjectLB)----
print(lbPlotsColor[[subjectLB]][[1]])
## ----palettes-default-get-----------------------------------------------------
# display default palettes
colorsDefault <- getOption("patientProfilesVis.colors")
str(colorsDefault)
shapesDefault <- getOption("patientProfilesVis.shapes")
shapesDefault
## ----palettes-default-example-------------------------------------------------
# create plot
lbPlots <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND",
shapeVar = "LBNRIND",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----palettes-default-example-include, echo = FALSE, fig.height = attributes(lbPlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with reference range with the 'subjectProfileLinePlot' function with default colors/shapes for patient:", subjectLB)----
print(lbPlots[[subjectLB]][[1]])
## ----palettes-customGeneral-set-----------------------------------------------
# change palettes for the entire R session
options(patientProfilesVis.colors = c("gold", "pink", "cyan"))
options(patientProfilesVis.shapes = c("cross", "diamond", "circle", "square"))
## ----palettes-customGeneral-example-------------------------------------------
# create plot
lbPlots <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND",
shapeVar = "LBNRIND",
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----palettes-customGeneral-example-include, echo = FALSE, fig.height = attributes(lbPlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with reference range with the 'subjectProfileLinePlot' function with default colors/shapes for patient:", subjectLB)----
print(lbPlots[[subjectLB]][[1]])
## ----palettes-default-reset---------------------------------------------------
# change palettes for the entire R session
options(patientProfilesVis.colors = colorsDefault)
options(patientProfilesVis.shapes = shapesDefault)
## ----palettes-----------------------------------------------------------------
# sort LBNRIND
dataLB$LBNRIND <- with(dataLB,
factor(LBNRIND, levels = c("LOW", "NORMAL", "HIGH", "ABNORMAL"))
)
colorPaletteLBNRIND <- getPaletteCDISC(dataLB$LBNRIND, var = "NRIND", type = "color")
print(colorPaletteLBNRIND)
shapePaletteLBNRIND <- getPaletteCDISC(dataLB$LBNRIND, var = "NRIND", type = "shape")
print(shapePaletteLBNRIND)
# create plot
lbPlots <- subjectProfileEventPlot(
data = dataLB,
paramVar = "LBTEST",
paramGroupVar = "LBCAT",
timeVar = "LBDY",
colorVar = "LBNRIND", colorPalette = colorPaletteLBNRIND,
shapeVar = "LBNRIND", shapePalette = shapePaletteLBNRIND,
title = "Laboratory test measurements: actual value",
labelVars = labelVarsSDTM
)
## ----palettes-include, echo = FALSE, fig.height = attributes(lbPlots[[subjectLB]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Laboratory data with the 'subjectProfileEventPlot' function with generic color/shape palettes for patient:", subjectLB)----
print(lbPlots[[subjectLB]][[1]])
## ----interval-cm-example------------------------------------------------------
cmPlots <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
title = "Concomitant medications",
labelVars = labelVarsSDTM
)
subjectCMTimeTrans <- "01-701-1192"
## ----interval-cm-example-include, echo = FALSE, fig.height = attributes(cmPlots[[subjectCMTimeTrans]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Concomitant medications with the 'subjectProfileIntervalPlot' function for patient:", subjectCMTimeTrans)----
print(cmPlots[[subjectCMTimeTrans]][[1]])
## ----interval-cm-timeTransformation-------------------------------------------
timeTrans <- getTimeTrans("asinh-neg")
cmPlotsTimeTrans <- subjectProfileIntervalPlot(
data = dataSDTM$CM,
paramVar = c(
"CMTRT",
"CMDOSE", "CMDOSU", "CMROUTE",
"CMDOSFRQ"
),
timeStartVar = "CMSTDY",
timeEndVar = "CMENDY",
paramGroupVar = "CMCLAS",
colorVar = "CMCLAS",
timeTrans = timeTrans,
title = "Concomitant medications",
labelVars = labelVarsSDTM
)
## ----interval-cm-timeTransformation-include, echo = FALSE, fig.height = attributes(cmPlotsTimeTrans[[subjectCMTimeTrans]][[1]])$metaData$nLines*heightLineIn, fig.cap = paste("Concomitant medications with the 'subjectProfileIntervalPlot' function with asinh negative transformation of the time axis for patient:", subjectCMTimeTrans)----
print(cmPlotsTimeTrans[[subjectCMTimeTrans]][[1]])
## ----createReport-SDTM, eval = FALSE------------------------------------------
#
# # demography
# dmPlots <- subjectProfileTextPlot(
# data = dataSDTM$DM,
# paramValueVar = c("SEX|AGE", "RACE|COUNTRY", "ARM"),
# labelVars = labelVarsSDTM
# )
#
# # medical history
# mhPlots <- subjectProfileTextPlot(
# data = dataSDTM$MH,
# paramNameVar = c("MHDECOD"),
# paramValueVar = c("MHCAT", "MHTERM", "MHSTDTC"),
# title = "Medical History: status",
# labelVars = labelVarsSDTM
# )
#
# # concomitant medications
# cmPlots <- subjectProfileIntervalPlot(
# data = dataSDTM$CM,
# paramVar = c(
# "CMTRT",
# "CMDOSE", "CMDOSU", "CMROUTE",
# "CMDOSFRQ"
# ),
# timeStartVar = "CMSTDY",
# timeEndVar = "CMENDY",
# paramGroupVar = "CMCLAS",
# colorVar = "CMCLAS",
# timeTrans = timeTrans,
# title = "Concomitant medications",
# labelVars = labelVarsSDTM
# )
#
# # treatment exposure
# exPlots <- subjectProfileIntervalPlot(
# data = dataSDTM$EX,
# paramVar = c("EXTRT", "EXDOSE", "EXDOSU"),
# timeStartVar = "EXSTDY",
# timeEndVar = "EXENDY",
# colorVar = "EXDOSFRM",
# labelVars = labelVarsSDTM,
# title = "Treatment exposure"
# )
#
# # adverse events:
# dataAE <- dataSDTM$AE
# # sort severities
# dataAE[, "AESEV"] <- factor(dataAE[, "AESEV"], levels = c("MILD", "MODERATE", "SEVERE"))
# aePlots <- subjectProfileIntervalPlot(
# data = dataAE,
# paramVar = "AETERM",
# timeStartVar = "AESTDY",
# timeEndVar = "AEENDY",
# colorVar = "AESEV",
# labelVars = labelVarsSDTM,
# title = "Adverse events"
# )
#
# # laboratory parameter
# lbLinePlots <- subjectProfileLinePlot(
# data = dataSDTM$LB,
# paramNameVar = "LBTEST",
# paramValueVar = "LBSTRESN",
# paramValueRangeVar = c("LBSTNRLO", "LBSTNRHI"),
# paramGroupVar = "LBCAT",
# timeVar = "LBDY",
# title = "Laboratory test measurements: actual value",
# labelVars = labelVarsSDTM
# )
#
# # create report
# pathReport <- "subjectProfile_SDTM.pdf"
# createSubjectProfileReport(
# listPlots = list(
# dmPlots,
# mhPlots,
# cmPlots,
# exPlots,
# aePlots,
# lbLinePlots
# ),
# outputFile = pathReport
# )
#
## ----createReport-ADaM, eval = FALSE------------------------------------------
#
# # demography
# adslPlots <- subjectProfileTextPlot(
# data = dataADaM$ADSL,
# paramValueVar = c("SEX|AGE", "RACE", "TRT01P"),
# labelVars = labelVarsADaM
# )
#
# # adverse events:
# dataADAE <- dataADaM$ADAE
# # sort severities
# dataADAE[, "AESEV"] <- factor(dataAE[, "AESEV"], levels = c("MILD", "MODERATE", "SEVERE"))
# adaePlots <- subjectProfileIntervalPlot(
# data = dataADAE,
# paramVar = "AEDECOD",
# timeStartVar = "ASTDY",
# timeEndVar = "AENDY",
# colorVar = "AESEV",
# labelVars = labelVarsADaM,
# timeTrans = getTimeTrans("asinh-neg"),
# title = "Adverse events"
# )
#
# # laboratory parameter
# adlbcPlots <- subjectProfileLinePlot(
# data = dataADaM$ADLBC,
# paramNameVar = "PARAM",
# paramValueVar = "AVAL",
# paramValueRangeVar = c("A1LO", "A1HI"),
# paramGroupVar = "PARCAT1",
# timeVar = "ADY",
# title = "Laboratory test measurements: actual value",
# labelVars = labelVarsADaM
# )
#
# # create report
# pathReport <- "subjectProfile_ADaM.pdf"
# createSubjectProfileReport(
# listPlots = list(
# adslPlots,
# adaePlots,
# adlbcPlots
# ),
# outputFile = pathReport
# )
#
## ----createReport-referenceLines-list, eval = FALSE---------------------------
#
# # reference lines input parameter
# refLinesParam <- list(
# list(
# time = -7,
# label = "Screening 1",
# color = "purple"
# ),
# list(
# time = -7,
# label = "Screening 2",
# color = "purple"
# ),
# list(
# time = 1,
# label = "Baseline",
# color = "darkblue"
# )
# )
#
# # create report
# pathReport <- "subjectProfile_SDTM_referenceLines_custom.pdf"
# createSubjectProfileReport(
# listPlots = list(
# dmPlots,
# mhPlots,
# cmPlots,
# exPlots,
# aePlots,
# lbLinePlots
# ),
# refLines = refLinesParam,
# outputFile = pathReport
# )
#
## ----createReport-referenceLines-data, eval = FALSE---------------------------
#
# # create report
# pathReport <- "subjectProfile_SDTM_referenceLines_subjectVisit.pdf"
#
# # only retain screening, baseline and planned visits
# dataSV <- subset(dataSDTM$SV, grepl("SCREENING|WEEK|BASELINE", VISIT))
#
# createSubjectProfileReport(
# listPlots = list(
# dmPlots,
# mhPlots,
# cmPlots,
# exPlots,
# aePlots,
# lbLinePlots
# ),
# # reference line(s)
# refLinesData = dataSV,
# refLinesTimeVar = "VISITDY",
# refLinesLabelVar = "VISIT",
# outputFile = pathReport
# )
#
## ----createReport-bookmarks, eval = FALSE-------------------------------------
#
# # create report
# pathReport <- "subjectProfile_SDTM_bookmarks.pdf"
#
# dataDM <- dataSDTM$DM
# # sort arm categories
# dataDM$ARM <- factor(dataDM$ARM,
# levels = c("Placebo", "Xanomeline Low Dose", "Xanomeline High Dose"))
#
# createSubjectProfileReport(
# listPlots = list(
# dmPlots,
# mhPlots,
# cmPlots,
# exPlots,
# aePlots,
# lbLinePlots
# ),
# subset = c("01-718-1427", "01-704-1445", "01-701-1211"),
# # bookmark(s)
# bookmarkData = dataDM,
# bookmarkVar = c("SEX", "ARM"),
# # sort subjects in the report based on:
# subjectSortData = dataDM,
# subjectSortVar = "ARM",
# outputFile = pathReport
# )
#
## ----createReport-example-----------------------------------------------------
# create the list of visualizations
# The list is named in order that the names are used
# to reference the module for the alignment parameters
listPlots <- list(AE = aePlots, LB = lbLinePlots)
subsetPatients <- c(subjectAE, subjectLB)
## ----createReport-timeAlign, out.width = "100%", out.height = "700px", eval = FALSE----
#
# pathReport <- "subjectProfile_timeAlign-all_timeAlignPerSubject-none.pdf"
# createSubjectProfileReport(
# listPlots = listPlots,
# outputFile = pathReport,
# subset = subsetPatients
# )
#
## ----createReport-timeAlign-domain, out.width = "100%", out.height = "700px", eval = FALSE----
#
# pathReport <- "subjectProfile_timeAlign-AE_timeAlignPerSubject-none.pdf"
# createSubjectProfileReport(
# listPlots = listPlots,
# outputFile = pathReport,
# subset = subsetPatients,
# timeAlign = "AE"
# )
#
## ----createReport-timeAlign-none, out.width = "100%", out.height = "700px", eval = FALSE----
#
# pathReport <- "subjectProfile_timeAlign-none_timeAlignPerSubject-none.pdf"
# createSubjectProfileReport(
# listPlots = listPlots,
# outputFile = pathReport,
# subset = subsetPatients,
# timeAlign = "none"
# )
#
## ----createReport-timeAlign-perSubject, out.width = "100%", out.height = "700px", eval = FALSE----
#
# pathReport <- "subjectProfile_timeAlign-all_timeAlignPerSubject-all.pdf"
# createSubjectProfileReport(
# listPlots = listPlots,
# outputFile = pathReport,
# subset = subsetPatients,
# timeAlignPerSubject = "all"
# )
#
## ----includeSessionInfo, echo = FALSE-----------------------------------------
pander(sessionInfo())
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.