Skip to contents

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 as TBsignatures, included in the TBSignatureProfiler package. If signature.list = NULL, the default set of signatures TBsignatures 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. If signature.name.vec = NULL, the default set of signatures TBsignatures 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 is TRUE.

name

a character string giving a name for the outputted boxplot of bootstrapped AUCs. The default is "Quantitative Evaluation of Signatures via Bootstrapped AUCs".

Value

the AUC, sensitivity and specificity

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
#>