This class is used to return the result from a multiple run of a single NMF
algorithm performed with function nmf
with option
keep.all=TRUE
(cf. nmf
).
It extends both classes NMFfitX-class
and list
, and
stores the result of each run (i.e. a NMFfit
object) in its
list
structure.
IMPORTANT NOTE: This class is designed to be read-only, even though
all the list
-methods can be used on its instances. Adding or removing
elements would most probably lead to incorrect results in subsequent calls.
Capability for concatenating and merging NMF results is for the moment only
used internally, and should be included and supported in the next release of
the package.
list
object data.
See R documentation on S3/S4 classes for more details (e.g., setOldClass
).
signature(object = "NMFfitXn")
: Returns the name of the common NMF algorithm used to compute all fits
stored in object
Since all fits are computed with the same algorithm, this method returns the
name of algorithm that computed the first fit.
It returns NULL
if the object is empty.
signature(object = "NMFfitXn")
: Returns the basis matrix of the best fit amongst all the fits stored in
object
.
It is a shortcut for basis(fit(object))
.
signature(object = "NMFfitXn")
: Returns the coefficient matrix of the best fit amongst all the fits stored in
object
.
It is a shortcut for coef(fit(object))
.
signature(object = "NMFfitXn")
: Compares the fits obtained by separate runs of NMF, in a single
call to nmf
.
signature(object = "NMFfitXn")
: This method returns NULL
on an empty object.
The result is a matrix with several attributes attached, that are used by
plotting functions such as consensusmap
to annotate the plots.
signature(x = "NMFfitXn")
: Returns the dimension common to all fits.
Since all fits have the same dimensions, it returns the dimension of the
first fit.
This method returns NULL
if the object is empty.
signature(x = "NMFfitXn", y = "ANY")
: Computes the best or mean entropy across all NMF fits stored in x
.
signature(object = "NMFfitXn")
: Returns the best NMF fit object amongst all the fits stored in object
,
i.e. the fit that achieves the lowest estimation residuals.
signature(object = "NMFfitXn")
: Returns the RNG settings used for the best fit.
This method throws an error if the object is empty.
signature(object = "NMFfitXn")
: Returns the RNG settings used for the first run.
This method throws an error if the object is empty.
signature(object = "NMFfitXn")
: Returns the best NMF model in the list, i.e. the run that achieved the lower
estimation residuals.
The model is selected based on its deviance
value.
signature(object = "NMFfitXn")
: Returns the common type NMF model of all fits stored in object
Since all fits are from the same NMF model, this method returns the
model type of the first fit.
It returns NULL
if the object is empty.
signature(x = "NMFfitXn")
: Returns the number of basis components common to all fits.
Since all fits have been computed using the same rank, it returns the
factorization rank of the first fit.
This method returns NULL
if the object is empty.
signature(object = "NMFfitXn")
: Returns the number of runs performed to compute the fits stored in the list
(i.e. the length of the list itself).
signature(x = "NMFfitXn", y = "ANY")
: Computes the best or mean purity across all NMF fits stored in x
.
signature(object = "NMFfitXn")
: If no time data is available from in slot runtime.all and argument
null=TRUE
, then the sequential time as computed by
seqtime
is returned, and a warning is thrown unless warning=FALSE
.
signature(object = "NMFfitXn")
: Returns the name of the common seeding method used the computation of all fits
stored in object
Since all fits are seeded using the same method, this method returns the
name of the seeding method used for the first fit.
It returns NULL
if the object is empty.
signature(object = "NMFfitXn")
: Returns the CPU time that would be required to sequentially compute all NMF
fits stored in object
.
This method calls the function runtime
on each fit and sum up the
results.
It returns NULL
on an empty object.
signature(object = "NMFfitXn")
: Show method for objects of class NMFfitXn
# generate a synthetic dataset with known classes
n <- 20; counts <- c(5, 2, 3);
V <- syntheticNMF(n, counts)
# get the class factor
groups <- V$pData$Group
# perform multiple runs of one algorithm, keeping all the fits
res <- nmf(V, 3, nrun=3, .options='k') # .options=list(keep.all=TRUE) also works
## # NOTE - CRAN check detected: limiting maximum number of cores [2/4]
## # NOTE - CRAN check detected: limiting maximum number of cores [2/4]
res
## <Object of class: NMFfitXn >
## Method: brunet
## Runs: 3
## RNG:
## 407L, 1934160049L, -162350402L, 779694119L, -1901819332L, 520338957L, -994911894L
## Total timing:
## user system elapsed
## 2.500 0.233 1.801
## Sequential timing:
## user system elapsed
## 0.364 0.000 0.366
summary(res)
## Length Class Mode
## [1,] 1 NMFfit S4
## [2,] 1 NMFfit S4
## [3,] 1 NMFfit S4
# get more info
summary(res, target=V, class=groups)
## Length Class Mode
## [1,] 1 NMFfit S4
## [2,] 1 NMFfit S4
## [3,] 1 NMFfit S4
# compute/show computational times
runtime.all(res)
## user system elapsed
## 2.500 0.233 1.801
seqtime(res)
## user system elapsed
## 0.364 0.000 0.366
# plot the consensus matrix, computed on the fly
## Not run: consensusmap(res, annCol=groups)