1. A method for clustering a plurality of sub-networks comprising: receiving as input in a computing device, one or more expression data sets of one or more samples; preprocessing the input expression data for obtaining a plurality of seed markers; wherein the seed markers are biomarkers or input marker genes, and obtained by methods such but not limited to thresholding normalized expression data based on a predefined threshold value; extracting a set of sub-networks for the input samples using expression values, set of seed markers obtained as above and the interaction network; selecting sub networks among the plurality of the extracted or input sub-networks; building a plurality of local heaps for each cluster among a plurality of clusters by computing a first link between each cluster and remaining clusters of the plurality of clusters, wherein each of the plurality of clusters correspond to the selected sub-networks; building a global heap by computing a second link between each cluster among the plurality of clusters and a highest ranked cluster of each of the local heap among the plurality of local heaps; merging the highest ranked cluster of each local heap and a highest ranked cluster of the global heap to form a plurality of intermediate clusters; calculating a similarity coefficient between each intermediate cluster among the plurality of intermediate clusters and each cluster in the global heap and each cluster corresponding to one of the local heap; and returning each intermediate cluster as a final cluster, if each the calculated similarity coefficients are below a predefined link cutoff value.