This pipeline calculates clusters based on a consensus non-negative matrix factorization (NMF) clustering method ,. This pipeline has the following features:
Convert input data set to a non-negitive matrix by column rank normalization.
Classify samples into consensus clusters.
Determine differentially expressed marker genes for each subtype.
The most robust consensus NMF clustering of 224 samples using the 1500 most variable genes was identified for k = 4 clusters. We computed the clustering for k = 2 to k = 8 and used the cophenetic correlation coefficient to determine the best solution.
Samples most representative of the clusters, hereby called core samples were identified based on positive silhouette width, indicating higher similarity to their own class than to any other class member. Core samples were used to select differentially expressed marker genes for each subtype by comparing the subclass versus the other subclasses, using Student's t-test.
Non-negative matrix factorization (NMF) is an unsupervised learning algorithm that has been shown to identify molecular patterns when applied to gene expression data ,. Rather than separating gene clusters based on distance computation, NMF detects contextdependent patterns of gene expression in complex biological systems.
We use the cophenetic correlation coefficient  to determine the cluster that yields the most robust clustering. The cophenetic correlation coefficient is computed based on the consensus matrix of the CNMF clustering, and measures how reliably the same samples are assigned to the same cluster across many iterations of the clustering lgorithm with random initializations. The cophenetic correlation coefficient lies between 0 and 1, with higher values indicating more stable cluster assignments. We select the number of clusters k based on the largest observed correlation coefficient for all tested values of k.
Silhouette width is defined as the ratio of average distance of each sample to samples in the same cluster to the smallest distance to samples not in the same cluster. If silhouette width is close to 1, it means that sample is well clustered. If silhouette width is close to -1, it means that sample is misclassified .