Given a metaObject
with $originalData
populated, this function calculates and
plots a "pooled" ROC curve that represents the average of all the individual ROC
curves. This version of the function is for use with MetaIntegrator.
pooledROCPlot(metaObject, filterObject, points = 1000,
weighting = TRUE, title = NULL, size = 14, rounding = 3,
smoothed = FALSE, auc1.thresh = 0.99, bootReps = 1000,
minPoints = 5, numCores = 1, method = "random")
a metaObject which must have metaObject$originalData
populated with a list of datasetObjects
that will be used for discovery
a metaFilter object containing the signature genes that will be used for calculating the score
number of points to simulate for the approximated ROC curves during the linear interpolation (default: 1000)
when calculating the mean AUC, if weighting
=TRUE then the weighted mean AUC is calculated (default: TRUE)
title of the plot
size of the text/legend/etc (default: 14)
how many digits to round the AUC and CI to (default: 3)
if TRUE, then a smoothed ROC curve is estimated using a modified version of the Kester and Buntinx Method
(if smoothed
=TRUE) if the AUC of a dataset is above this threshold, then it is treated as if the AUC were 1 (default: 0.99)
(if smoothed
=TRUE) number of bootstrap iterations (default: 1000)
(if smoothed
=TRUE) minimum number of points required for bootstrap to be used (default: 5)
(if smoothed
=TRUE) number of CPUs to use if parallel computing is desired (default: 1)
(if smoothed
=TRUE) method used to compute summary meta-statistics (default: "random")
Generates a plot with each individual ROC curve as well as the pooled ROC curve
To make sure the input is correctly formatted, the input metaObject
should be checked with
checkDataObject(metaObject, "Meta", "Pre-Analysis")
before starting the meta-analysis.
By default, this average ROC curve is calculated by first using linear interpolation to create approximated versions of each given ROC curve that all have the same set of FPR values. A pooled ROC curve is then calculated by taking the weighted mean of the corresponding TPR values (weighting corresponds to the number of samples in each dataset). This pooled curve is represented as a black curve. In addition, the weighted standard deviation is calculated for each TPR, which is represented by a grey area on the plot. The pooled AUC is calculated by using the trapezoid method on the pooled ROC curve, and the 95% confidence interval of the pooled AUC is calculated using the pooled standard error of the individual ROC curves.
If smoothed
=TRUE, then a smoothed version of the pooled ROC curve will be
plotted instead, with the surrounding gray area representing the weighted
standard deviation of the pooled ROC curve. The statistics for this smoothed
curve are based on the Kester and Buntinx Method, from (Kester and Buntinx,
Med Decis Making, 2000). Methods have been added by Tim Sweeney (2015) for better
estimates in cases with low numbers of tpr/fpr values. Methods have also been
added by Aditya Rao (2018) to predict the curve's alpha parameter for a given
beta parameter and AUC, as well as to calculate the weighted standard deviation
of the given ROC curves.
Kester and Buntinx, Med Decis Making, 2000
# NOT RUN {
pooledROCPlot(tinyMetaObject, filterObject =
tinyMetaObject$filterResults$pValueFDR0.05_es0_nStudies1_looaTRUE_hetero0)
# }
Run the code above in your browser using DataLab