Use logistic regression and bootstrap LOOCV to evaluate signatures.
Source:R/evaluate.R
SignatureQuantitative.Rd
This function takes as input a data.frame
with genetic expression
count data, and uses a bootstrapped leave-one-out cross validation procedure
with logistic regression to allow for numeric and graphical comparison
across any number of genetic signatures.
Usage
SignatureQuantitative(
df.input,
targetVec.num,
signature.list = NULL,
signature.name.vec = NULL,
num.boot = 100,
pb.show = TRUE
)
Arguments
- df.input
a
data.frame
of gene expression count data. Required.- targetVec.num
a numeric binary vector of the response variable. The vector should be the same number of rows as
df
. Required.- signature.list
a
list
of signatures to run with their associated genes. This list should be in the same format asTBsignatures
, included in the TBSignatureProfiler package. Ifsignature.list = NULL
, the default set of signaturesTBsignatures
list is used. For details, run?TBsignatures
.- signature.name.vec
A vector specifying the names of the signatures to be compared. This should be the same length as
signature.list
. Ifsignature.name.vec = NULL
, the default set of signaturesTBsignatures
list is used.- num.boot
an integer specifying the number of bootstrap iterations.
- pb.show
logical. If
TRUE
then a progress bar for the bootstrapping procedure will be displayed as output. The default isTRUE
.- name
a character string giving a name for the outputted boxplot of bootstrapped AUCs. The default is
"Quantitative Evaluation of Signatures via Bootstrapped AUCs"
.
Examples
inputTest <- matrix(rnorm(1000), 100, 20,
dimnames = list(paste0("gene", seq.int(1, 100)),
paste0("sample", seq.int(1, 20))))
inputTest <- as.data.frame(inputTest)
targetVec <- sample(c(0,1), replace = TRUE, size = 20)
signature.list <- list(sig1 = c("gene1", "gene2", "gene3"),
sig2 = c("gene4", "gene5", "gene6"))
signature.name.vec <- c("sig1", "sig2")
num.boot <- 2
SignatureQuantitative(inputTest, targetVec.num = targetVec,
signature.list = signature.list,
signature.name.vec = signature.name.vec,
num.boot = num.boot)
#>
|
| | 0%
|
|=================================== | 50%
|
|======================================================================| 100%
#> $df.auc.ci
#> Estimate CI lower.5% CI upper.95% Std. Error
#> sig1 0.4835 0.38054 0.68546 -5.551115e-17
#> sig2 0.4176 0.59555 0.63425 0.000000e+00
#>
#> $df.sensitivity.ci
#> Estimate.Sensitivity CI lower.5% CI upper.95% Std. Error
#> sig1 0.1428571 0.35303030 0.7075758 5.551115e-17
#> sig2 0.2857143 0.03333333 0.6333333 0.000000e+00
#>
#> $df.specificity.ci
#> Estimate.Specificity CI lower.5% CI upper.95% Std. Error
#> sig1 0.7692308 0.1519841 0.8876984 -5.551115e-17
#> sig2 0.7692308 0.7031469 0.8982517 1.110223e-16
#>