Joint decomposition of several linked matrices with Nonnegative Matrix Factorization (NMF) It is based on the MSE loss, proposed by Lee, Daniel D., and H. Sebastian Seung. "Learning the parts of objects by non-negative matrix factorization." Nature 401.6755 (1999): 788-791.
Usage
jointNMF(
dataset,
group,
comp_num,
weighting = NULL,
max_ite = 100,
max_err = 1e-04,
proj_dataset = NULL,
proj_group = NULL,
enable_normalization = TRUE,
column_sum_normalization = FALSE,
screen_prob = NULL
)
Arguments
- dataset
A list of dataset to be analyzed
- group
A list of grouping of the datasets, indicating the relationship between datasets
- comp_num
A vector indicates the dimension of each compoent
- weighting
Weighting of each dataset, initialized to be NULL
- max_ite
The maximum number of iterations for the jointNMF algorithms to run, default value is set to 100
- max_err
The maximum error of loss between two iterations, or the program will terminate and return, default value is set to be 0.0001
- proj_dataset
The datasets to be projected on
- proj_group
The grouping of projected data sets
- enable_normalization
An argument to decide whether to use normalizaiton or not, default is TRUE
- column_sum_normalization
An argument to decide whether to use column sum normalization or not, default it FALSE
- screen_prob
A vector of probabilies for genes to be chosen
Value
A list contains the component and the score of each dataset on every component after jointNMF algorithm
Examples
dataset = list(matrix(runif(5000, 1, 2), nrow = 100, ncol = 50),
matrix(runif(5000, 1, 2), nrow = 100, ncol = 50),
matrix(runif(5000, 1, 2), nrow = 100, ncol = 50),
matrix(runif(5000, 1, 2), nrow = 100, ncol = 50))
group = list(c(1,2,3,4), c(1,2), c(3,4), c(1,3), c(2,4), c(1), c(2), c(3), c(4))
comp_num = c(2,2,2,2,2,2,2,2,2)
proj_dataset = list(matrix(runif(5000, 1, 2), nrow = 100, ncol = 50))
proj_group = list(c(TRUE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE))
res_jointNMF = jointNMF(
dataset,
group,
comp_num,
proj_dataset = proj_dataset,
proj_group = proj_group)