Nonnegative Matrix Factorization (NMF) is an unsupervised learning technique that has been applied successfully in several fields, including signal processing, face recognition and text mining. Recent applications of NMF in bioinformatics have demonstrated its ability to extract meaningful information from high-dimensional data such as gene expression microarrays. Developments in NMF theory and applications have resulted in a variety of algorithms and methods. However, most NMF implementations have been on commercial platforms, while those that are freely available typically require programming skills. This limits their use by the wider research community.
Our objective is to provide the bioinformatics community with an open-source, easy-to-use and unified interface to standard NMF algorithms, as well as with a simple framework to help implement and test new NMF methods. For that purpose, we have developed a package for the R/BioConductor platform. The package ports public code to R, and is structured to enable users to easily modify and/or add algorithms. It includes a number of published NMF algorithms and initialization methods and facilitates the combination of these to produce new NMF strategies. Commonly used benchmark data and visualization methods are provided to help in the comparison and interpretation of the results.
The NMF package helps realize the potential of Nonnegative Matrix Factorization, especially in bioinformatics, providing easy access to methods that have already yielded new insights in many applications.
Documentation, source code and sample data are available from:
Latest stable release from CRAN: http://cran.r-project.org/package=NMF
Development versions:
advanced-NMF
(which.best)aheatmap
algorithmic-NMF
(algorithm, algorithm<-, algorithm<--methods, algorithm-methods, algorithm<-,NMFfit,ANY-method, algorithm,NMFfit-method, algorithm,NMFfitXn-method, algorithm<-,NMFSeed,function-method, algorithm,NMFSeed-method, algorithm<-,NMFStrategyFunction,function-method, algorithm,NMFStrategyFunction-method, algorithm<-,NMFStrategyOctave,character-method, compare, compare-methods, compare,NMFfitXn-method, logs, logs,ANY-method, logs-methods, modelname, modelname,ANY-method, modelname-methods, modelname,NMFfit-method, modelname,NMFfitXn-method, modelname,NMFStrategy-method, niter, niter<-, niter<--methods, niter-methods, niter,NMFfit-method, niter<-,NMFfit,numeric-method, nrun, nrun,ANY-method, nrun-methods, nrun,NMFfit-method, nrun,NMFfitX1-method, nrun,NMFfitX-method, nrun,NMFfitXn-method, objective, objective<-, objective<--methods, objective-methods, objective<-,NMFfit,ANY-method, run, run-methods, runtime, runtime.all, runtime.all-methods, runtime.all,NMFfit-method, runtime.all,NMFfitX-method, runtime-methods, runtime,NMFfit-method, seeding, seeding<-, seeding<--methods, seeding-methods, seeding<-,NMFfit-method, seeding,NMFfit-method, seeding,NMFfitXn-method, seqtime, seqtime-methods, seqtime,NMFfitXn-method, seqtime,NMFList-method)algorithm,NMFList-method
algorithm,NMFStrategyOctave-method
basis
(.basis, .basis<-, basis<-, basis<-,ANY-method, basis,ANY-method, .basis<--methods, .basis-methods, basis<--methods, basis-methods, .basis<-,NMFfit,matrix-method, .basis,NMFfit-method, basis,NMFfitXn-method, .basis<-,NMF,matrix-method, .basis,NMF-method, basis,NMF-method, .basis<-,NMFstd,matrix-method, .basis,NMFstd-method, coef, .coef, .coef<-, coef<-, coef<-,ANY-method, coefficients, coefficients-methods, coefficients,NMF-method, .coef<--methods, .coef-methods, coef<--methods, coef-methods, .coef<-,NMFfit,matrix-method, .coef,NMFfit-method, coef,NMFfitXn-method, .coef<-,NMF,matrix-method, .coef,NMF-method, coef,NMF-method, .coef<-,NMFstd,matrix-method, .coef,NMFstd-method, loadings,NMF-method, scoef, scoef,matrix-method, scoef-methods, scoef,NMF-method)basiscor
(basiscor,matrix,NMF-method, basiscor-methods, basiscor,NMF,matrix-method, basiscor,NMF,missing-method, basiscor,NMF,NMF-method, profcor, profcor,matrix,NMF-method, profcor-methods, profcor,NMF,matrix-method, profcor,NMF,missing-method, profcor,NMF,NMF-method)basisnames
(basisnames<-, basisnames<-,ANY-method, basisnames,ANY-method, basisnames<--methods, basisnames-methods, dimnames-NMF, dimnames<-,NMF-method, dimnames,NMF-method)bioc-NMF
(.atrack,ExpressionSet-method, featureNames,NMFfitX-method, featureNames<-,NMF-method, featureNames,NMF-method, metagenes, metagenes<-, metaprofiles, metaprofiles<-, nmeta, nmf,ExpressionSet,ANY,ANY-method, nmf,matrix,ExpressionSet,ANY-method, nmfModel,ANY,ExpressionSet-method, nmfModel,ExpressionSet,ANY-method, nneg,ExpressionSet-method, rnmf,ANY,ExpressionSet-method, rposneg,ExpressionSet-method, run,NMFStrategy,ExpressionSet,ANY-method, sampleNames<-,NMF,ANY-method, sampleNames,NMFfitX-method, sampleNames,NMF-method, seed,ExpressionSet,ANY,ANY-method)canFit
(canFit,character,ANY-method, canFit-methods, canFit,NMFStrategy,character-method, canFit,NMFStrategy,NMF-method)compare-NMF
(compare,list-method, compare,NMFfit-method, consensusmap,list-method, consensusmap,NMF.rank-method, plot,NMFList,missing-method, summary,NMFList-method)connectivity
(connectivity,ANY-method, connectivity,factor-method, connectivity-methods, connectivity,NMF-method, connectivity,numeric-method, consensus, consensus-methods, consensus,NMFfitX-method, consensus,NMF-method)consensushc
(consensushc,matrix-method, consensushc-methods, consensushc,NMFfitX-method, consensushc,NMF-method)consensus,NMFfitX1-method
consensus,NMFfitXn-method
(plot.NMF.consensus)cophcor
(cophcor,matrix-method, cophcor-methods, cophcor,NMFfitX-method)deviance
(deviance-methods, deviance,NMFfit-method, deviance,NMFfitX-method, deviance,NMF-method, deviance,NMFStrategy-method, nmfDistance)dispersion
(dispersion,matrix-method, dispersion-methods, dispersion,NMFfitX-method)esGolub
fcnnls
(fcnnls,ANY,numeric-method, fcnnls,matrix,matrix-method, fcnnls-methods, fcnnls,numeric,matrix-method).fcnnls
featureScore
(extractFeatures, extractFeatures,matrix-method, extractFeatures-methods, extractFeatures,NMF-method, featureScore,matrix-method, featureScore-methods, featureScore,NMF-method)fit
(fit<-, fit<--methods, fit-methods, fit,NMFfit-method, fit<-,NMFfit,NMF-method, fit,NMFfitX1-method, fit,NMFfitX-method, fit,NMFfitXn-method, minfit, minfit-methods, minfit,NMFfit-method, minfit,NMFfitX1-method, minfit,NMFfitX-method, minfit,NMFfitXn-method)fitted
(fitted-methods, fitted,NMFfit-method, fitted,NMF-method, fitted,NMFns-method, fitted,NMFOffset-method, fitted,NMFstd-method)getRNG1
(.getRNG, getRNG1-methods, getRNG1,NMFfitX1-method, getRNG1,NMFfitX-method, getRNG1,NMFfitXn-method, .getRNG-methods, .getRNG,NMFfitXn-method)heatmap-NMF
(basismap, basismap-methods, basismap,NMFfitX-method, basismap,NMF-method, coefmap, coefmap-methods, coefmap,NMFfitX-method, coefmap,NMF-method, consensusmap, consensusmap,matrix-method, consensusmap-methods, consensusmap,NMFfitX-method, consensusmap,NMF-method)ibterms
(bterms, cterms, ibasis, ibterms-methods, ibterms,NMFfit-method, ibterms,NMFfitX-method, ibterms,NMF-method, ibterms,NMFstd-method, icoef, icterms, icterms-methods, icterms,NMFfit-method, icterms,NMF-method, icterms,NMFstd-method, iterms, nbterms, ncterms, nterms)is.nmf
(hasBasis, hasCoef, is.empty.nmf, isNMFfit, is.partial.nmf)match_atrack
methods-NMF
(existsNMFMethod, getNMFMethod, removeNMFMethod, selectNMFMethod)nbasis
(dim-NMF, dim,NMFfitXn-method, dim,NMF-method, nbasis,ANY-method, nbasis-methods, nbasis,NMFfitXn-method)nmf
(nmf,data.frame,ANY,ANY-method, nmf,formula,ANY,ANY-method, nmf,matrix,data.frame,ANY-method, nmf,matrix,matrix,ANY-method, nmf,matrix,missing,ANY-method, nmf,matrix,NMF,ANY-method, nmf,matrix,NULL,ANY-method, nmf,matrix,numeric,character-method, nmf,matrix,numeric,function-method, nmf,matrix,numeric,list-method, nmf,matrix,numeric,missing-method, nmf,matrix,numeric,NMFStrategy-method, nmf,matrix,numeric,NULL-method, nmf-methods)nmfAlgorithm
nmfAlgorithm.SNMF_R
(nmfAlgorithm.SNMF_L, SNMF/L-nmf, SNMF/R-nmf)nmfApply
nmfCheck
NMF-class
(.DollarNames,NMF-method, misc, $<-,NMF-method, $,NMF-method)NMF-defunct
(metaHeatmap, metaHeatmap,matrix-method, metaHeatmap-methods, metaHeatmap,NMFfitX-method, metaHeatmap,NMF-method)NMF-deprecated
nmf.equal
(nmf.equal,list,list-method, nmf.equal,list,missing-method, nmf.equal-methods, nmf.equal,NMFfit,NMFfit-method, nmf.equal,NMFfit,NMF-method, nmf.equal,NMFfitX1,NMFfitX1-method, nmf.equal,NMFfitX,NMF-method, nmf.equal,NMF,NMFfit-method, nmf.equal,NMF,NMFfitX-method, nmf.equal,NMF,NMF-method)nmfEstimateRank
(plot.NMF.rank)NMFfit-class
(NMFfit)NMFfitX1-class
NMFfitX-class
NMFfitXn-class
nmfFormals
(nmfArgs)NMFList-class
[,NMF-method
nmfModel
(nmfModel,data.frame,data.frame-method, nmfModel,formula,ANY-method, nmfModel,matrix,ANY-method, nmfModel,matrix,matrix-method, nmfModel-methods, nmfModel,missing,ANY-method, nmfModel,missing,missing-method, nmfModel,NULL,ANY-method, nmfModel,numeric,matrix-method, nmfModel,numeric,missing-method, nmfModel,numeric,numeric-method, nmfModels)NMFns-class
nmfObject
NMFOffset-class
(initialize,NMFOffset-method)NMF-package
(NMF)nmfSeed
(existsNMFSeed, getNMFSeed)NMFSeed
(NMFSeed,character-method, NMFSeed-methods, NMFSeed,NMFSeed-method, removeNMFSeed, setNMFSeed)NMFSeed-class
NMFstd-class
NMFStop
(nmf.stop.connectivity, nmf.stop.iteration, nmf.stop.stationary, nmf.stop.threshold, stop-NMF)NMFStrategy
(NMFStrategy,character,character-method, NMFStrategy,character,function-method, NMFStrategy,character,missing-method, NMFStrategy,character,NMFStrategy-method, NMFStrategy-methods, NMFStrategy,missing,character-method, NMFStrategy,NMFStrategy,missing-method, NMFStrategy,NULL,character-method, NMFStrategy,NULL,NMFStrategy-method, run,NMFStrategyFunction,matrix,NMFfit-method, run,NMFStrategyIterative,matrix,NMFfit-method, run,NMFStrategyIterativeX,matrix,NMFfit-method, run,NMFStrategy,matrix,NMFfit-method, run,NMFStrategy,matrix,NMF-method, run,NMFStrategyOctave,matrix,NMFfit-method)NMFStrategyFunction-class
NMFStrategyIterative-class
NMFStrategyOctave-class
(show,NMFStrategyOctave-method)nmf_update.brunet_R
(brunet_M-nmf, brunet-nmf, brunet_R-nmf, KL-nmf, nmfAlgorithm.brunet, nmfAlgorithm.brunet_M, nmfAlgorithm.brunet_R, nmfAlgorithm.KL, nmf_update.brunet)nmf_update.euclidean.h
(nmf_update.euclidean, nmf_update.euclidean.h_R, nmf_update.euclidean.w, nmf_update.euclidean.w_R)nmf_update.euclidean_offset.h
(nmfAlgorithm.offset, nmfAlgorithm.offset_R, nmf_update.euclidean_offset.w, nmf_update.offset, nmf_update.offset_R, offset_R-nmf)nmf_update.KL.h
(nmf_update.KL, nmf_update.KL.h_R, nmf_update.KL.w, nmf_update.KL.w_R)nmf_update.lee_R
(Frobenius-nmf, lee-nmf, lee_R-nmf, nmfAlgorithm.Frobenius, nmfAlgorithm.lee, nmfAlgorithm.lee_R, nmf_update.lee)nmf_update.lsnmf
(lsNMF-nmf, nmfAlgorithm.lsNMF, wrss)nmf_update.ns
(nmfAlgorithm.nsNMF, nmfAlgorithm.nsNMF_R, nmf_update.ns_R, nsNMF_R-nmf)nneg
(nneg,matrix-method, nneg-methods, nneg,NMF-method, posneg, rposneg, rposneg,matrix-method, rposneg-methods, rposneg,NMF-method)objective,NMFfit-method
offset,NMFfit-method
offset,NMFOffset-method
options-NMF
(nmf.getOption, nmf.options, nmf.printOptions, nmf.resetOptions)parallel-NMF
(gVariable, hostfile, ts_eval, ts_tempfile)plot,NMFfit,missing-method
predict
(predict-methods, predict,NMFfitX-method, predict,NMF-method)profplot
(profplot.default)purity
(entropy, entropy,ANY,ANY-method, entropy,factor,ANY-method, entropy-methods, entropy,NMFfitXn,ANY-method, entropy,table,missing-method, purity,ANY,ANY-method, purity,factor,ANY-method, purity-methods, purity,NMFfitXn,ANY-method, purity,table,missing-method)randomize
residuals
(hasTrack, residuals<-, residuals<--methods, residuals-methods, residuals<-,NMFfit-method, residuals,NMFfit-method, residuals,NMFfitX-method, trackError)rmatrix
(rmatrix,ANY-method, rmatrix-methods, rmatrix,NMF-method, rmatrix,numeric-method)rnmf
(rnmf,ANY,data.frame-method, rnmf,ANY,matrix-method, rnmf,formula,ANY-method, rnmf-methods, rnmf,missing,missing-method, rnmf,NMF,missing-method, rnmf,NMF,numeric-method, rnmf,NMFOffset,numeric-method, rnmf,numeric,missing-method, rnmf,numeric,numeric-method)rss
(evar, evar,ANY-method, evar-methods, rss,ANY-method, rss,matrix-method, rss-methods)runtime.all,NMFfitXn-method
runtime,NMFList-method
scale.NMF
seed
(seed,ANY,ANY,character-method, seed,ANY,ANY,function-method, seed,ANY,ANY,missing-method, seed,ANY,ANY,NULL-method, seed,ANY,ANY,numeric-method, seed,ANY,list,NMFSeed-method, seed,ANY,numeric,NMFSeed-method, seed,matrix,NMF,NMFSeed-method, seed-methods)setNMFMethod
(nmfRegisterAlgorithm)setupBackend
(setupLibPaths, setupRNG, setupSharedMemory, setupTempDirectory)show,NMFfit-method
show,NMFfitX1-method
show,NMFfitX-method
show,NMFfitXn-method
show,NMFList-method
show,NMF-method
show,NMFns-method
show,NMFOffset-method
show,NMFSeed-method
show,NMFStrategyIterative-method
silhouette.NMF
smoothing
sparseness
(sparseness,matrix-method, sparseness-methods, sparseness,NMF-method, sparseness,numeric-method)staticVar
summary
(summary-methods, summary-NMF, summary,NMFfit-method, summary,NMFfitX-method, summary,NMF-method)syntheticNMF
t.NMF
utils-NMF
(str_args)