.gedLSfit provides access to partial deconvolution
  methods that are based on least-squares fits.
.nn_lsfit implements a standard least-square fit
  with various different procedures to enforce nonnegative
  coefficients. In particular, it implements the iterative
  procedure described in Abbas et al. (2009).
.gedLSfit(X, seed, rescale = TRUE, fit = c("ls", "nnls"), ...)
.nn_lsfit(x, y, nneg = c("iterate", "pmax", "none"), ...)
    
    TRUE) or left as estimated by the linear
  regression (FALSE). This scaling is performed
  after the coefficients have been forced to be
  nonnegative.ls uses
  lm, nnls uses
  fcnnls..nn_lsfit or .fcnnls.'iterate':
  applies the procedure described in Abbas2009. For
  each sample separately, a sequence of least-square fits
  are performed, starting with all cell types, and where
  the cell type corresponding to the lowest negative fitted
  coefficient is excluded from the next fit, and its
  associated final proportion set to zero. This iterative
  process stops when all coefficients are nonnegative.
  'pmax': single least-square fit, where all
  negative estimated proportions are set to zero.
  NA or 'none':  single least-square
  fit where the estimated proportions are returned
  unconstrained. NMF
  object.an NMF object.
Abbas AR, Wolslegel K, Seshasayee D, Modrusan Z and Clark
  HF (2009). "Deconvolution of blood microarray data
  identifies cellular activation patterns in systemic lupus
  erythematosus." _PloS one_, *4*(7), pp. e6098. ISSN
  1932-6203,