NMF v0.21.0


Monthly downloads



Algorithms and Framework for Nonnegative Matrix Factorization (NMF)

Provides a framework to perform Non-negative Matrix Factorization (NMF). The package implements a set of already published algorithms and seeding methods, and provides a framework to test, develop and plug new/custom algorithms. Most of the built-in algorithms have been optimized in C++, and the main interface function provides an easy way of performing parallel computations on multicore machines.



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.

Travis check: Build Status

Functions in NMF

Name Description
nmf_update.lee_R NMF Algorithm/Updates for Frobenius Norm
basiscor Correlations in NMF Models
cophcor Cophenetic Correlation Coefficient
bioc-NMF Specific NMF Layer for Bioconductor
cutdendro Fade Out the Upper Branches from a Dendrogram
heatmap-NMF Heatmaps of NMF Factors
pmax.inplace Updating Objects In Place
nmf Running NMF algorithms
nmf.equal Testing Equality of NMF Models
nmfFormals Showing Arguments of NMF Algorithms
nmfModel Factory Methods NMF Models
parse_formula Simple Parsing of Formula
methods-NMF Registry for NMF Algorithms
plot,NMFfit,missing-method Plots the residual track computed at regular interval during the fit of the NMF model x.
residuals Residuals in NMF Models
seed Interface for NMF Seeding Methods
setNMFMethod Registering NMF Algorithms
silhouette.NMF Silhouette of NMF Clustering
smoothing Smoothing Matrix in Nonsmooth NMF Models
ibterms Fixed Terms in NMF Models
bterms<- Fixed Terms in NMF Models
NMF-defunct Defunct Functions and Classes in the NMF Package
NMF-class Generic Interface for Nonnegative Matrix Factorisation Models
NMFns-class NMF Model - Nonsmooth Nonnegative Matrix Factorization
NMFstd-class NMF Model - Standard model
.atrack Annotation Tracks
checkErrors Error Checks in NMF Runs
basis Accessing NMF Factors
deviance Distances and Objective Functions
cluster_mat Cluster Matrix Rows in Annotated Heatmaps
basisnames Dimension names for NMF objects
NMFSeed-class Base class that defines the interface for NMF seeding methods.
.fcnnls Internal Routine for Fast Combinatorial Nonnegative Least-Squares
NMFStrategy-class Virtual Interface for NMF Algorithms
esGolub Golub ExpressionSet
match_atrack Extending Annotation Vectors
NMFStrategyFunction-class Interface for Single Function NMF Strategies
NMFStrategy Factory Method for NMFStrategy Objects
compare-NMF Comparing Results from Different NMF Runs
aheatmap Annotated Heatmaps
nneg Transforming from Mixed-sign to Nonnegative Data
nmf_update.ns NMF Multiplicative Update for Nonsmooth Nonnegative Matrix Factorization (nsNMF).
algorithm,NMFList-method Returns the method names used to compute the NMF fits in the list. It returns NULL if the list is empty.
NMF-deprecated Deprecated Functions in the Package NMF
NMF-package Algorithms and framework for Nonnegative Matrix Factorization (NMF).
NMFfitX-class Virtual Class to Handle Results from Multiple Runs of NMF Algorithms
options-NMF NMF Package Specific Options
c,NMF-method Concatenating NMF Models
canFit Testing Compatibility of Algorithm and Models
consensus,NMFfitXn-method Computes the consensus matrix of the set of fits stored in object, as the mean connectivity matrix across runs.
consensushc Hierarchical Clustering of a Consensus Matrix
NMFfitX Factory Method for Multiple NMF Run Objects
algorithmic-NMF Generic Interface for Algorithms
gfile Open a File Graphic Device
tryViewport Internal Grid Extension
summary Assessing and Comparing NMF Models
parallel-NMF Utilities for Parallel Computations
ccBreaks Generate Break Intervals from Numeric Variables
nmf_update.lsnmf Multiplicative Updates for LS-NMF
ccPalette Builds a Color Palette from Compact Color Specification
nbasis Dimension of NMF Objects
lverbose Internal verbosity option
NMFList-class Class for Storing Heterogeneous NMF fits
randomize Randomizing Data
purity Purity and Entropy of a Clustering
NMFOffset-class NMF Model - Nonnegative Matrix Factorization with Offset
NMFStrategyIterative-class Interface for Algorithms: Implementation for Iterative NMF Algorithms
scale.NMF Rescaling NMF Models
nmfSeed Seeding Strategies for NMF Algorithms
NMFfit-class Base Class for to store Nonnegative Matrix Factorisation results
nmfWrapper Wrapping NMF Algorithms
objective,NMFfit-method Returns the objective function associated with the algorithm that computed the fitted NMF model object, or the objective value with respect to a given target matrix y if it is supplied.
offset,NMFOffset-method Offsets in NMF Models with Offset
getRNG1 Extracting RNG Data from NMF Objects
revPalette Flags a Color Palette Specification for Reversion
nmfAlgorithm.SNMF_R NMF Algorithm - Sparse NMF via Alternating NNLS
dispersion Dispersion of a Matrix
rmatrix Generating Random Matrices
ccRamp Builds a Color Ramp from Compact Color Specification
fitted Fitted Matrix in NMF Models
registerDoBackend Utilities and Extensions for Foreach Loops
nmfAlgorithm Listing and Retrieving NMF Algorithms
show,NMFOffset-method Show method for objects of class NMFOffset
featureScore Feature Selection in NMF Models
show,NMFSeed-method Show method for objects of class NMFSeed
nmfApply Apply Function for NMF Objects
ccSpec Extract Colour Palette Specification
show,NMFfitX-method Show method for objects of class NMFfitX
consensus,NMFfitX1-method Returns the consensus matrix computed while performing all NMF runs, amongst which object was selected as the best fit.
is.nmf Testing NMF Objects
connectivity Clustering Connectivity and Consensus Matrices
show,NMFfitX1-method Show method for objects of class NMFfitX1
txtProgressBar Simple Progress Bar
show,NMFfitXn-method Show method for objects of class NMFfitXn
show,NMFns-method Show method for objects of class NMFns
fcnnls Fast Combinatorial Nonnegative Least-Square
syntheticNMF Simulating Datasets
t.NMF Transformation NMF Model Objects
fit Extracting Fitted Models
nmfCheck Checking NMF Algorithm
nmfEstimateRank Estimate Rank for NMF Models
nmf_update.KL.h NMF Multiplicative Updates for Kullback-Leibler Divergence
nmfObject Updating NMF Objects
nmf_update.euclidean.h NMF Multiplicative Updates for Euclidean Distance
nmfReport Run NMF Methods and Generate a Report
offset,NMFfit-method Returns the offset from the fitted model.
nmf_update.euclidean_offset.h NMF Multiplicative Update for NMF with Offset Models
profplot Plotting Expression Profiles
predict Clustering and Prediction
runtime,NMFList-method Returns the CPU time required to compute all NMF fits in the list. It returns NULL if the list is empty. If no timing data are available, the sequential time is returned.
rnmf Generating Random NMF Models
runtime.all,NMFfitXn-method Returns the CPU time used to perform all the NMF fits stored in object.
rss Residual Sum of Squares and Explained Variance
show,NMFList-method Show method for objects of class NMFList
show,NMF-method Show method for objects of class NMF
show,NMFStrategyIterative-method Show method for objects of class NMFStrategyIterative
show,NMFfit-method Show method for objects of class NMFfit
utils-NMF Utility Function in the NMF Package
NMFSeed NMFSeed is a constructor method that instantiate NMFSeed objects.
setupBackend Computational Setup Functions
staticVar Get/Set a Static Variable in NMF Algorithms
sparseness Sparseness
NMFStop Stopping Criteria for NMF Iterative Strategies
[,NMF-method Sub-setting NMF Objects
nmf_update.brunet_R NMF Algorithm/Updates for Kullback-Leibler Divergence
NMFfitXn-class Structure for Storing All Fits from Multiple NMF Runs
NMFfitX1-class Structure for Storing the Best Fit Amongst Multiple NMF Runs
Strategy-class Generic Strategy Class
advanced-NMF Advanced Usage of the Package NMF
No Results!

Vignettes of NMF

No Results!

Last month downloads


Type Package
Date 2018-02-18
License GPL (>= 2)
URL http://renozao.github.io/NMF
LazyLoad yes
VignetteBuilder knitr
Collate 'colorcode.R' 'options.R' 'grid.R' 'atracks.R' 'aheatmap.R' 'algorithmic.R' 'nmf-package.R' 'rmatrix.R' 'utils.R' 'versions.R' 'NMF-class.R' 'transforms.R' 'Bioc-layer.R' 'NMFstd-class.R' 'NMFOffset-class.R' 'heatmaps.R' 'NMFns-class.R' 'nmfModel.R' 'fixed-terms.R' 'NMFfit-class.R' 'NMFSet-class.R' 'NMFStrategy-class.R' 'registry.R' 'NMFSeed-class.R' 'NMFStrategyFunction-class.R' 'NMFStrategyIterative-class.R' 'NMFplots.R' 'registry-algorithms.R' 'algorithms-base.R' 'algorithms-lnmf.R' 'algorithms-lsnmf.R' 'algorithms-pe-nmf.R' 'algorithms-siNMF.R' 'algorithms-snmf.R' 'data.R' 'extractFeatures.R' 'parallel.R' 'registry-seed.R' 'nmf.R' 'rnmf.R' 'run.R' 'seed-base.R' 'seed-ica.R' 'seed-nndsvd.R' 'setNMFClass.R' 'simulation.R' 'tests.R'
Packaged 2018-03-06 09:53:11 UTC; nsauwen
NeedsCompilation yes
Repository CRAN
Date/Publication 2018-03-06 16:35:36 UTC
RoxygenNote 6.0.1

Include our badge in your README