|
| 1 | +# ConMod |
| 2 | + |
| 3 | +This algorithm is used for identifying conserved functional modules in multiple networks, as described in: |
| 4 | +> Feature related multi-view nonnegative matrix factorization for identifying conserved functional modules in multiple biological networks. Peizhuo Wang, Lin Gao, Yuxuan Hu and Feng Li. BMC Bioinformatics, 2018, 19(1): 394. |
| 5 | +
|
| 6 | +This algorithm is implemented primarily in Matlab 2015b. |
| 7 | + |
| 8 | +## Usage |
| 9 | + |
| 10 | +### Input Format |
| 11 | + |
| 12 | +The code takes a series of networks as an input. These networks must be stored in a variable of type *cell* in matlab. Each network can be represented by the following two types: |
| 13 | + |
| 14 | +1. adjacency matrix |
| 15 | +2. edge list, e.g: |
| 16 | +``` |
| 17 | +1 2 0.62 |
| 18 | +1 3 0.88 |
| 19 | +2 9 0.14 |
| 20 | +... |
| 21 | +``` |
| 22 | + |
| 23 | +These codes are for generating synthetic datasets: |
| 24 | + |
| 25 | +- `syn_dataset_common.m`: Conserved modules have the same size and are common to a given set of networks. |
| 26 | +- `syn_dataset_overlap.m`: Conserved modules are present only in a subset of networks and they are the overlapping parts of specific modules across different networks. |
| 27 | + |
| 28 | +### Main functions |
| 29 | + |
| 30 | +- `ConMod.m`: The implementation of the ConMod algorithm. |
| 31 | +``` |
| 32 | +function modulesfinal = ConMod(multiNetworks, N, K, lambda, xita, maxIter) |
| 33 | +% INPUT: |
| 34 | +% multiNetworks: a cell contains multiple networks, each of which is presented by edgelist format or a full matrix with N nodes |
| 35 | +% N: the number of all nodes |
| 36 | +% K: the number of hidden factors |
| 37 | +% lambda: a vector which contains the parameters for balancing the relative weight among different views |
| 38 | +% xita: the parameter for selecting nodes |
| 39 | +% maxIter: the maximum number of iterations for multi-view NMF |
| 40 | +% |
| 41 | +% OUTPUT: |
| 42 | +% modulesfinal: a cell which contains the final conserved modules |
| 43 | +``` |
| 44 | + |
| 45 | +- `featureNets.m`: Compute two feature matrices which characterize the multiple networks. |
| 46 | +``` |
| 47 | +function [Strength, Participation] = featureNets(multiNetworks, N) |
| 48 | +% INPUT: |
| 49 | +% multiNetworks: a cell contains multiple networks, each is presented by a sparse matrix or a full matrix with N nodes |
| 50 | +% N: the number of all nodes |
| 51 | +% |
| 52 | +% OUTPUT: |
| 53 | +% Strength : N x N matrix for Connection Strength |
| 54 | +% Participation : N x N matrix for Participation Coefficient |
| 55 | +``` |
| 56 | + |
| 57 | +- `multiViewNMF.m`: Multi-view non-negative symmetric matrix factorization. |
| 58 | +``` |
| 59 | +function [H, Hc, objValue] = multiViewNMF(X, K, lambda, maxIter) |
| 60 | +% INPUT: |
| 61 | +% X: a cell which contains symmetric matrices |
| 62 | +% K: the number of hidden factors |
| 63 | +% lambda: a vector which contains the parameters for balancing the relative weight among different views |
| 64 | +% maxiter: the maximum number of iterations |
| 65 | +% |
| 66 | +% OUTPUT: |
| 67 | +% H: a cell containing factor matrices for all views |
| 68 | +% Hc: the result consensus factor matrix |
| 69 | +% objValue: the value of objective function |
| 70 | +``` |
| 71 | + |
| 72 | +- `moduleNodesSelection.m`: Assigning the module members by a soft node selection procedure and then truing the modules to obtain more accurate results |
| 73 | +``` |
| 74 | +function modulesFinal = moduleNodesSelection(Hc, xita) |
| 75 | +% INPUT: |
| 76 | +% Hc: the consensus factor matrix |
| 77 | +% xita: the parameter for selecting nodes |
| 78 | +% |
| 79 | +% OUTPUT: |
| 80 | +% modulesFinal: a cell which contains the final result modules |
| 81 | +``` |
| 82 | + |
| 83 | +If you have any questions, please contact `[email protected]`. |
0 commit comments