# HG changeset patch # User peter-waltman # Date 1363037448 14400 # Node ID a3c03541fe6f1118cd16228c48d4c3fc7a45d102 # Parent a58527c632b7547960243883a31cb29be01b981f Uploaded diff -r a58527c632b7 -r a3c03541fe6f cluster.tools/select.k.from.consensus.cluster.R --- a/cluster.tools/select.k.from.consensus.cluster.R Mon Mar 11 16:31:29 2013 -0400 +++ b/cluster.tools/select.k.from.consensus.cluster.R Mon Mar 11 17:30:48 2013 -0400 @@ -197,11 +197,21 @@ k.search.range <- (k.select-2):(k.select+2) k.search.range <- k.search.range[ k.search.range %in% as.numeric( names( vector.of.metric.changes ) ) ] k.search.range <- vector.of.metric.changes[ as.character( k.search.range ) ] -k.search.range <- k.search.range[ k.search.range < 0.25 ] -k.search.range <- k.search.range[ k.search.range > 0.025 ] + +if ( sum( k.search.range < 0.25 ) == 0 ) { + ## this should only happen if this is a garbage clustering + k.search.range <- k.search.range[ which.min( k.search.range ) ] +} else { + k.search.range <- k.search.range[ k.search.range < 0.25 ] +} + +if ( sum( k.search.range > 0.025 ) == 0 ) { + k.search.range <- k.search.range[ which.max( k.search.range ) ] +} else { + k.search.range <- k.search.range[ k.search.range > 0.025 ] +} k.search.range <- names( k.search.range ) - if ( exists("data") ) { ## what direction is the clustering in? rows or cols? elts <- unique( names( results[[2]]$consensusClass ) )