Comparing Results from Different NMF Runs


The functions documented here allow to compare the fits computed in different NMF runs. The fits do not need to be from the same algorithm, nor have the same dimension.


S4 (NMFfit)
`compare`(object, ...)

S4 (list)
`compare`(object, ...)

S4 (NMFList)
`summary`(object, = NULL, select = NULL, ...)

S4 (NMFList,missing)
`plot`(x, y, skip = -1, ...)

S4 (NMF.rank)
`consensusmap`(object, ...)

S4 (list)
`consensusmap`(object, layout, Rowv = FALSE, main = names(object), ...)


extra arguments passed by compare to summary,NMFList or to the summary method of each fit.
the columns to be output in the result data.frame. The column are given by their names (partially matched). The column names are the names of the summary measures returned by the summary methods of the corresponding NMF results.
the sorting criteria, i.e. a partial match of a column name, by which the result data.frame is sorted. The sorting direction (increasing or decreasing) is computed internally depending on the chosen criteria (e.g. decreasing for the cophenetic coefficient, increasing for the residuals).
an NMFList object that contains fits from separate NMF runs.
specification of the layout. It may be a single numeric or a numeric couple, to indicate a square or rectangular layout respectively, that is filled row by row. It may also be a matrix that is directly passed to the function layout from the package graphics.
an object computed using some algorithm, or that describes an algorithm itself.
an integer that indicates the number of points to skip/remove from the beginning of the curve. If skip=1L (default) only the initial residual -- that is computed before any iteration, is skipped, if present in the track (it associated with iteration 0).
clustering specification(s) for the rows. It allows to specify the distance/clustering/ordering/display parameters to be used for the rows only. Possible values are:
  • TRUE or NULL (to be consistent with heatmap): compute a dendrogram from hierarchical clustering using the distance and clustering methods distfun and hclustfun.
  • NA: disable any ordering. In this case, and if not otherwise specified with argument revC=FALSE, the heatmap shows the input matrix with the rows in their original order, with the first row on top to the last row at the bottom. Note that this differ from the behaviour or heatmap, but seemed to be a more sensible choice when vizualizing a matrix without reordering.
  • an integer vector of length the number of rows of the input matrix (nrow(x)), that specifies the row order. As in the case Rowv=NA, the ordered matrix is shown first row on top, last row at the bottom.
  • a character vector or a list specifying values to use instead of arguments distfun, hclustfun and reorderfun when clustering the rows (see the respective argument descriptions for a list of accepted values). If Rowv has no names, then the first element is used for distfun, the second (if present) is used for hclustfun, and the third (if present) is used for reorderfun.
  • a numeric vector of weights, of length the number of rows of the input matrix, used to reorder the internally computed dendrogram d by reorderfun(d, Rowv).
  • FALSE: the dendrogram is computed using methods distfun, hclustfun, and reorderfun but is not shown.
  • a single integer that specifies how many subtrees (i.e. clusters) from the computed dendrogram should have their root faded out. This can be used to better highlight the different clusters.
  • a single double that specifies how much space is used by the computed dendrogram. That is that this value is used in place of treeheight.
Main title as a character string or a grob.


The methods compare enables to compare multiple NMF fits either passed as arguments or as a list of fits. These methods eventually call the method summary,NMFList, so that all its arguments can be passed named in ....


  1. comparesignature(object = "NMFfit"): Compare multiple NMF fits passed as arguments.

  2. comparesignature(object = "list"): Compares multiple NMF fits passed as a standard list.

  3. consensusmapsignature(object = "NMF.rank"): Draw a single plot with a heatmap of the consensus matrix obtained for each value of the rank, in the range tested with nmfEstimateRank.

  4. consensusmapsignature(object = "list"): Draw a single plot with a heatmap of the consensus matrix of each element in the list object.

  5. plotsignature(x = "NMFList", y = "missing"): plot plot on a single graph the residuals tracks for each fit in x. See function nmf for details on how to enable the tracking of residuals.

  6. summarysignature(object = "NMFList"): summary,NMFList computes summary measures for each NMF result in the list and return them in rows in a data.frame. By default all the measures are included in the result, and NA values are used where no data is available or the measure does not apply to the result object (e.g. the dispersion for single' NMF runs is not meaningful). This method is very useful to compare and evaluate the performance of different algorithms.