final CyNetwork inputNet,
final int resultId) {
// This method is similar to the finding method with the exception of the filtering so that the decrease of the cluster size
// can produce a single node, also the use of the node seen hash map is differentially applied...
final Map<Long, NodeInfo> nodeInfoHashMap = nodeInfoResultsMap.get(resultId);
final ParameterSet params = mcodeUtil.getCurrentParameters().getResultParams(cluster.getResultId());
final Map<Long, Boolean> nodeSeenHashMap;
// If the size slider is below the set node score cutoff we use the node seen hash map so that clusters
// with higher scoring seeds have priority, however when the slider moves higher than the node score cutoff
// we allow the cluster to accrue nodes from all around without the priority restriction
if (nodeScoreCutoff <= params.getNodeScoreCutoff())
nodeSeenHashMap = new HashMap<Long, Boolean>(cluster.getNodeSeenHashMap());
else
nodeSeenHashMap = new HashMap<Long, Boolean>();
final Long seedNode = cluster.getSeedNode();
final List<Long> alCluster = getClusterCore(seedNode, nodeSeenHashMap, nodeScoreCutoff, params
.getMaxDepthFromStart(), nodeInfoHashMap);
// Make sure seed node is part of cluster, if not already in there
if (!alCluster.contains(seedNode))
alCluster.add(seedNode);
// Create an input graph for the filter and haircut methods
ClusterGraph clusterGraph = createClusterGraph(alCluster, inputNet);
if (params.isHaircut())
haircutCluster(clusterGraph, alCluster);
if (params.isFluff())
fluffClusterBoundary(alCluster, nodeSeenHashMap, nodeInfoHashMap);
clusterGraph = createClusterGraph(alCluster, inputNet);
final double score = scoreCluster(clusterGraph);