## ----setup, echo=FALSE--------------------------------------------------------
knitr::opts_chunk$set(
	message = FALSE,
	warning = FALSE,
	collapse = TRUE,
	comment = "#>",
	fig.align = "center",
	fig.width = 6,
	fig.height = 4.5
)

## ----install_CRAN, message=FALSE, eval=FALSE----------------------------------
# install.packages("diceR")

## ----install_github, message=FALSE, eval=FALSE--------------------------------
# # install.packages("devtools")
# devtools::install_github("AlineTalhouk/diceR")

## ----load---------------------------------------------------------------------
library(diceR)
library(dplyr)
library(ggplot2)
library(pander)
data(hgsc)
hgsc <- hgsc[1:100, 1:50]

## ----consensus_cluster, results='hide'----------------------------------------
CC <- consensus_cluster(
  hgsc,
  nk = 3:4,
  p.item = 0.8,
  reps = 5,
  algorithms = c("hc", "pam", "diana"),
  progress = FALSE
)

## ----consensus_cluster_str----------------------------------------------------
co <- capture.output(str(CC))
strwrap(co, width = 80)

## ----consensus_cluster_table, echo=FALSE, results='asis'----------------------
pandoc.table(head(CC[, , "DIANA_Euclidean", "3"]),
             caption = "Cluster Assignments for DIANA, k = 3")

## ----impute_knn---------------------------------------------------------------
CC <- apply(CC, 2:4, impute_knn, data = hgsc, seed = 1)
CC_imputed <- impute_missing(CC, hgsc, nk = 4)
sum(is.na(CC))
sum(is.na(CC_imputed))

## ----consensus_matrix---------------------------------------------------------
pam.4 <- CC[, , "PAM_Euclidean", "4", drop = FALSE]
cm <- consensus_matrix(pam.4)
dim(cm)

## ----graph_heatmap, fig.cap='Consensus Matrix Heatmap'------------------------
hm <- graph_heatmap(pam.4)

## ----consensus_combine, results='hide'----------------------------------------
ccomb_matrix <- consensus_combine(CC, element = "matrix")
ccomb_class <- consensus_combine(CC, element = "class")

## ----consensus_combine_str----------------------------------------------------
str(ccomb_matrix, max.level = 2)

## ----consensus_combine_table, echo=FALSE, results='asis'----------------------
pandoc.table(head(ccomb_class$`4`), caption = "Consensus Classes")

## ----consensus_matrix_ccomb_class---------------------------------------------
# consensus matrix across subsamples and algorithms within k = 3
cm_k3 <- consensus_matrix(ccomb_class$`3`)

# consensus matrix across subsamples and algorithms within k = 4
cm_k4 <- consensus_matrix(ccomb_class$`4`)

# consensus matrix across subsamples and algorithms and k
cm_all <- consensus_matrix(ccomb_class)

## ----consensus_combine_2_str, results='hide'----------------------------------
CC2 <- consensus_cluster(
  hgsc,
  nk = 3:4,
  p.item = 0.8,
  reps = 5,
  algorithms = "km",
  progress = FALSE
)
ccomb_class2 <- consensus_combine(CC, CC2, element = "class")

## ----consensus_combine_2_table, echo=FALSE, results='asis'--------------------
pandoc.table(head(ccomb_class2$`4`), caption = "Consensus Classes with KM added")

## ----consensus_evaluate, results='hide'---------------------------------------
ccomp <- consensus_evaluate(hgsc, CC, CC2, plot = FALSE)

## ----consensus_evaluate_table, echo=FALSE, results='asis'---------------------
pandoc.table(ccomp$ii$`4`, split.tables = 100,
             caption = "Internal Indices for k = 4")

## ----consensus_evaluate_trim, results='hide'----------------------------------
ctrim <- consensus_evaluate(hgsc, CC, CC2, trim = TRUE, reweigh = FALSE, n = 2)

## ----consensus_evaluate_trim_str----------------------------------------------
str(ctrim, max.level = 2)

## ----sigclust-----------------------------------------------------------------
set.seed(1)
pam_4 <- ccomb_class2$`4`[, "PAM_Euclidean"]
sig_obj <- sigclust(hgsc, k = 4, nsim = 100, labflag = 0, label = pam_4)
co <- capture.output(str(sig_obj))
strwrap(co, width = 80)

