## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup, eval=FALSE--------------------------------------------------------
# if (!require("BiocManager", quietly=TRUE))
#     install.packages("BiocManager")
# 
# BiocManager::install("GSABenchmark")

## ----message=FALSE, warning=FALSE, results=FALSE------------------------------
library(GSABenchmark)
library(scater)
library(scRNAseq)

scObj <- BaronPancreasData('human')


## -----------------------------------------------------------------------------
scObj <- logNormCounts(scObj)
scObj <- runPCA(scObj)

## -----------------------------------------------------------------------------
table(colData(scObj)$label)

## -----------------------------------------------------------------------------
alphaMarkers <- c('GCG', 'TTR', 'PCSK2', 'FXYD5', 'LDB2', 'MAFB',
                  'CHGA', 'SCGB2A1', 'GLS', 'FAP', 'DPP4', 'GPR119',
                  'PAX6', 'NEUROD1', 'LOXL4', 'PLCE1', 'GC', 'KLHL41',
                  'FEV', 'PTGER3', 'RFX6', 'SMARCA1', 'PGR', 'IRX1',
                  'UCP2', 'RGS4', 'KCNK16', 'GLP1R', 'ARX', 'POU3F4',
                  'RESP18', 'PYY', 'SLC38A5', 'TM4SF4', 'CRYBA2', 'SH3GL2',
                  'PCSK1', 'PRRG2', 'IRX2', 'ALDH1A1','PEMT', 'SMIM24',
                  'F10', 'SCGN', 'SLC30A8')


geneSets <- setNames(list(alphaMarkers), 'alpha')

## -----------------------------------------------------------------------------
setdiff(names(geneSets), colData(scObj)[['label']])

## -----------------------------------------------------------------------------
supportedMethods()

## -----------------------------------------------------------------------------
gsaMethods <- c('CSOA', 'PLAGE', 'Zscore')

## -----------------------------------------------------------------------------
scObj <- runGSAMethods(scObj, 'label', geneSets, gsaMethods)

## -----------------------------------------------------------------------------
smr <- runBenchmark(scObj, 'label', geneSets, gsaMethods, runEFBenchmark=FALSE)

## -----------------------------------------------------------------------------
names(smr)
names(smr$boundary)
names(smr$MCC)
names(smr$global)
names(smr$predictions)

## -----------------------------------------------------------------------------
smr$boundary$metricSummary
smr$MCC
smr$global$metricSummary

## -----------------------------------------------------------------------------
plots <- allBenchmarkPlots(smr)
length(plots)

## ----out.height='80%', out.width='80%', fig.height=5, fig.width=5-------------
plots[[3]]

## ----out.height='80%', out.width='80%', fig.height=5, fig.width=5-------------
aggregateRankPlot(smr)

## ----out.height='100%', out.width='100%', fig.height=5, fig.width=5-----------
ratioPlot(smr, labelSize=2.5)

## ----out.height='100%', out.width='100%', fig.height=5, fig.width=5-----------
plots <- mdsPlots(scObj, smr)
plots[[length(geneSets) + 1]]

## ----out.height='80%', out.width='80%', fig.height=5, fig.width=5-------------
plots <- corrPlots(scObj, smr)
plots[[length(geneSets) + 1]]

## ----out.height='80%', out.width='80%', fig.height=5, fig.width=5-------------
plots <- predJaccardPlots(smr$predictions)
plots[[length(geneSets) + 1]]

## -----------------------------------------------------------------------------
scObj <- runMethodShuffle(scObj, 'label', geneSets, 'CSOA',
                          loss=1/3,
                          noise=0.5,
                          seeds=20,
                          averageReplicates=FALSE)


## -----------------------------------------------------------------------------
smr <- runBenchmarkShuffle(scObj, 'label', geneSets, 'CSOA',
                           runEFBenchmark=FALSE)

## -----------------------------------------------------------------------------
smr$boundary$metricSummary

## -----------------------------------------------------------------------------
sessionInfo()

