## ----pkgmaker_preamble, echo=FALSE, results='asis'---------------------------- library(NMF) latex_preamble() if(!requireNamespace("Biobase")) BiocManager::install("Biobase") ## ----bibliofile, echo=FALSE, results='asis'----------------------------------- latex_bibliography('NMF') ## ----options, include=FALSE, verbose=TRUE------------------------------------- #options(prompt=' ') #options(continue=' ') set.seed(123456) ## ----data--------------------------------------------------------------------- # random data that follow an 3-rank NMF model (with quite some noise: sd=2) X <- syntheticNMF(100, 3, 20, noise=2, factors = TRUE) Xmat <- X[[1]] # row annotations and covariates n <- nrow(Xmat) d <- rnorm(n) e <- unlist(mapply(rep, c('X', 'Y', 'Z'), 10)) e <- c(e, rep(NA, n-length(e))) rdata <- data.frame(Var=d, Type=e) # column annotations and covariates p <- ncol(Xmat) a <- sample(c('alpha', 'beta', 'gamma'), p, replace=TRUE) # define covariates: true groups and some numeric variable c <- rnorm(p) # gather them in a data.frame covariates <- data.frame(a, X$pData, c) ## ----figoptions, include=FALSE------------------------------------------------ library(knitr) opts_chunk$set(fig.width=14, fig.height=7) ## ----heatmap_data------------------------------------------------------------- par(mfrow=c(1,2)) aheatmap(Xmat, annCol=covariates, annRow=X$fData) aheatmap(Xmat) ## ----model, cache=TRUE-------------------------------------------------------- res <- nmf(Xmat, 3, nrun=10) res ## ----coefmap_res, fig.keep='last'--------------------------------------------- opar <- par(mfrow=c(1,2)) # coefmap from multiple run fit: includes a consensus track coefmap(res) # coefmap of a single run fit: no consensus track coefmap(minfit(res)) par(opar) ## ----coefmap_default, eval=FALSE---------------------------------------------- # Rowv = NA # Colv = TRUE # scale = 'c1' # color = 'YlOrRd:50' # annCol = predict(object) + predict(object, 'consensus') ## ----coefmap_custom, fig.keep='last', tidy=FALSE------------------------------ opar <- par(mfrow=c(1,2)) # removing all automatic annotation tracks coefmap(res, tracks=NA) # customized plot coefmap(res, Colv = 'euclidean' , main = "Metagene contributions in each sample", labCol = NULL , annRow = list(Metagene=':basis'), annCol = list(':basis', Class=a, Index=c) , annColors = list(Metagene='Set2') , info = TRUE) par(opar) ## ----basismap_res, fig.keep='last'-------------------------------------------- opar <- par(mfrow=c(1,2)) # default plot basismap(res) # customized plot: only use row special annotation track. basismap(res, main="Metagenes", annRow=list(d, e), tracks=c(Metagene=':basis')) par(opar) ## ----basismap_default, eval=FALSE--------------------------------------------- # Colv = NA # scale = 'r1' # color = 'YlOrRd:50' # annRow = predict(object, 'features') ## ----consensusmap_res, fig.keep='last'---------------------------------------- opar <- par(mfrow=c(1,2)) # default plot consensusmap(res) # customized plot consensusmap(res, annCol=covariates, annColors=list(c='blue') , labCol='sample ', main='Cluster stability' , sub='Consensus matrix and all covariates') par(opar) ## ----cmap_default, eval=FALSE------------------------------------------------- # distfun = function(x) as.dist(1-x) # x being the consensus matrix # hclustfun = 'average' # Rowv = TRUE # Colv = "Rowv" # color = '-RdYlBu' ## ----estimate, cache=TRUE----------------------------------------------------- res2_7 <- nmf(Xmat, 2:7, nrun=10, .options='v') class(res2_7) ## ----consensusmap_estimate, fig.keep='last'----------------------------------- consensusmap(res2_7) ## ----fit_methods, cache=TRUE-------------------------------------------------- res_methods <- nmf(Xmat, 3, list('lee', 'brunet', 'nsNMF'), nrun=10) class(res_methods) ## ----consensusmap_methods, fig.width=10, fig.height=7, fig.keep='last'-------- consensusmap(res_methods) ## ----demo_hm, eval=FALSE------------------------------------------------------ # demo('aheatmap') # # or # demo('heatmaps') ## ----sessionInfo, echo=FALSE, results='asis'---------------------------------- toLatex(sessionInfo())