## ----style, echo = FALSE, results = 'asis'------------------------------- BiocStyle::markdown() library(ggplot2) ## ----echo=TRUE, eval=TRUE, message=FALSE--------------------------------- library(ClusterSignificance) ## ---- demoDataMlp-------------------------------------------------------- data(mlpMatrix) ## ----headMat, echo=FALSE, eval=TRUE-------------------------------------- ##Mlp printMat <- mlpMatrix classes <- rownames(mlpMatrix) dimnames(printMat) <- list(classes, paste("dim", 1:2, sep = "")) knitr::kable( printMat[1:3,], digits = 2, caption = "Head; Mlp matrix.", align = c(rep('l', 2)) ) gTable <- as.data.frame(table(classes)) knitr::kable( gTable, digits = 2, align = c(rep('l', 2)), caption = "Rownames table; Mlp matrix." ) ## ---- demoDataPcp-------------------------------------------------------- data(pcpMatrix) ## ----headPcp, echo=FALSE------------------------------------------------- ##Pcp printMat <- pcpMatrix classes <- rownames(pcpMatrix) dimnames(printMat) <- list(classes, paste("dim", 1:3, sep="")) knitr::kable( printMat[1:3,], digits = 2, caption = "Head; Pcp matrix.", align = c(rep('l', 2)) ) gTable <- as.data.frame(table(classes)) knitr::kable( gTable, digits = 2, align = c(rep('l', 2)), caption = "Rownames table; Pcp matrix." ) ## ----PcpProjection, fig.align='center', fig.width=10, fig.height=10------ ## Create the group variable. classes <- rownames(pcpMatrix) ## Run Pcp and plot. prj <- pcp(pcpMatrix, classes) plot(prj) ## ----classifyPcp, message=FALSE, fig.width=10, fig.height=7-------------- cl <- classify(prj) plot(cl) ## ------------------------------------------------------------------------ getData(cl, "AUC") ## ----permutePcp, message=FALSE, fig.width=10, fig.height=7--------------- #permute matrix iterations <- 100 ## Set the number of iterations. ## Permute and plot. pe <- permute( mat = pcpMatrix, iter = iterations, classes = classes, projmethod = "pcp" ) plot(pe) ## ----pValuePcp, echo=TRUE, eval=TRUE, message=FALSE---------------------- pvalue(pe) ## ---- confIntPcp, echo=TRUE, eval=TRUE, message=FALSE-------------------- conf.int(pe, conf.level = .99) ## ---- fig.align='center', fig.width=10, fig.height=8--------------------- ## Create the group variable. classes <- rownames(mlpMatrix) ## Run Mlp and plot. prj <- mlp(mlpMatrix, classes) plot(prj) ## ----classifyMlp, message=FALSE, fig.align='center', fig.width=8, fig.height=6---- ## Classify and plot. cl <- classify(prj) plot(cl) ## ----permuteMlp, message=FALSE, fig.align='center', message = FALSE------ ## Set the seed and number of iterations. iterations <- 500 ## Permute and plot. pe <- permute( mat = mlpMatrix, iter = iterations, classes = classes, projmethod = "mlp" ) plot(pe) ## ----pValueMlp, echo=FALSE, eval=TRUE, message=FALSE--------------------- ## p-value pvalue(pe) conf.int(pe) ## ----echo=TRUE, eval=TRUE, message=FALSE--------------------------------- ## The leukemia dataset is provided as a list with 3 elements. ## An explaination of these can be found using the command: ## help(leukemia) library(plsgenomics, quietly = TRUE) data(leukemia) ## Extract the expression matrix. expression <- leukemia$X ## Run PCA and extract the principal components. pca <- prcomp(expression, scale = TRUE) mat <- pca$x ## Extract the grouping variable (coded as 1 (ALL) and 2 (AML)). classes <- ifelse(leukemia$Y == 1, "ALL", "AML") ## ---- echo = FALSE------------------------------------------------------- gTable <- as.data.frame(table(classes)) knitr::kable(gTable, digits = 2, align = c(rep('l', 2)), caption = "Classes argument table." ) ## ----ALLprojection, fig.align='center', fig.width=10, fig.height=10------ ob <- pcp(mat, classes, normalize = TRUE) plot(ob) ## ----ALLclassification, fig.align='center', fig.width=8, fig.height=6---- cl <- classify(ob) plot(cl) ## ----ALLpermutation, fig.align='center', message = FALSE----------------- iterations <- 100 pe <- permute(mat = mat, iter = iterations, classes = classes, projmethod = "pcp") pvalue(pe) conf.int(pe) ## ----concatPermuts, message=FALSE, eval=TRUE----------------------------- mat <- mlpMatrix classes <- rownames(mlpMatrix) iterations <- 10 pe1 <- permute(mat=mat, iter=iterations, classes=classes, projmethod="pcp") pe2 <- permute(mat=mat, iter=iterations, classes=classes, projmethod="pcp") pe3 <- permute(mat=mat, iter=iterations, classes=classes, projmethod="pcp") pvalue(pe1) pe <- c(pe1, pe2, pe3) pvalue(pe) ## ----userDefinedPermats, eval=TRUE--------------------------------------- ##define permMatrix function .pca <- function(y, classes, uniq.groups, mat) { pca <- prcomp( sapply(1:ncol(mat[classes %in% uniq.groups[, y], ]), function(i) mat[classes %in% uniq.groups[, y], i] <- sample( mat[classes %in% uniq.groups[, y], i], replace=FALSE ) ), scale=TRUE ) return(pca$x) } permMatrix <- function(iterations, classes, mat) { uniq.groups <- combn(unique(classes), 2) permats <- lapply(1:ncol(uniq.groups), function(y) lapply(1:iterations, function(x) .pca(y, classes, uniq.groups, mat) ) ) return(permats) } set.seed(3) mat <- pcpMatrix classes <- rownames(pcpMatrix) iterations = 100 permats <- permMatrix(iterations, classes, mat) ## ----runUserDefinedMatrix, eval=FALSE------------------------------------ # pe <- permute( # mat = mat, # iter=100, # classes=classes, # projmethod="pcp", # userPermats=permats # ) ## ----echo=TRUE, eval=TRUE------------------------------------------------ sessionInfo()