Class HierClustNode

java.lang.Object
  |
  +--HierClustNode

class HierClustNode
extends java.lang.Object

The HierClustNode class computes a general purpose hierarchical clustering tree. It recursively generates the cluster tree data structures for nObj objects (e.g. genes or samples) based on nDataV data vectors/object (i.e. expression vectors). If data is to be normalized, then it is normalized by the dataV[iDataV] entry.

It recursively constructs a cluster tree using the selected linkage method. The terminal nodes contain the genes.

Version:
$Date: 2003/07/07 21:40:41 $ $Revision: 1.9 $
Author:
P. Lemkin (NCI), G. Thornwall (SAIC), NCI-Frederick, Frederick, MD
See Also:
which sets up various lists dGramXXXX[] that are used by @see DrawClusterGram for drawing the clustergram and dendrogram.

This work was produced by Peter Lemkin of the National Cancer Institute, an agency of the United States Government. As a work of the United States Government there is no associated copyright. It is offered as open source software under the Mozilla Public License (version 1.1) subject to the limitations noted in the accompanying LEGAL file. This notice must be included with the code. The MAExplorer Mozilla and Legal files are available on http://maexplorer.sourceforge.net/.

, MAExplorer Home, ClusterGenes, ClusterGramCanvas, ClusterSamples, DrawClusterGram


Field Summary
(package private) static float[] cacheDistLR1Df
          lower-diagonal cache of distLR[L][R].
(package private) static short[] cacheDistLR1Ds
          lower-diagonal cache of distLR[L][R].
(package private) static int cacheSize
          size of cacheDistLR1D[] cache
(package private)  int cIdx
          Dynamic node: object cluster index if not -1
(package private)  float[] dataV
          Dynamic node: mean vector [0:nDataV-1] of left and right
private  float[] dataV1
          Dynamic node: [0:nDataV-1] copy of dataV1[]
private  float[] dataV2
          Dynamic node: [0:nDataV-1] copy of dataV1[]
(package private) static float[] dGramDist
          [0:nObj-2] distance between children
(package private) static float[] dGramDistL
          [0:nObj-2] distance between Left's children
(package private) static float[] dGramDistR
          [0:nObj-2] distance between Right's children
(package private) static float[] dGramEnumOrder
          [0:nObj-2] enumeration order
(package private) static float[] dGramEOleft
          [0:nObj-2] left child enum order
(package private) static float[] dGramEOright
          [0:nObj-2] right child enum order
(package private) static int[] dGramLeftNNbr
          [0:nObj-2] Left Node Number
(package private) static int[] dGramNodeNbr
          [0:nObj-2] Node Number
(package private) static int[] dGramRightNNbr
          [0:nObj-2] Right Node Number
private  float dist
          Dynamic node: local variables allocated once for speedup
(package private)  float distLR
          Dynamic node: nDistV*(distance**2) between right & left nodes
(package private) static int enumCnt
          # enumerated so far in an enumeration
(package private)  float enumOrder
          Dynamic node: set to enumeration order in range [0:nObj-1].
private static FileIO fio
          link to global FileIO instance
(package private)  HierClustNode hcLeft
          Dynamic node: if not null, then left cluster
(package private)  HierClustNode hcParent
          Dynamic node: if not null, then the parent of this node
(package private)  HierClustNode hcRight
          Dynamic node: if not null, then right cluster
(package private) static HierClustNode[] hierClusters
          hierarchical clusters [0:2*nObj-1] nHierClusters is the current one.
(package private) static int hierClustMode
          linkage mode
(package private) static int iDataV
          col to norm by in [0:nDataV-1]
private static MAExplorer mae
          link to global MAExplorer instance
(package private) static float maxDgramDist
          max dGramDistXXX[] (distance not dist**2)
(package private) static float maxDistLR
          max distLR (dist**2) found between all nodes
(package private)  boolean memAllocFailedFlag
           
private static float[] mnDataV
          Dynamic node: [0:nDataV-1] Global mean of data for samples h
private static float[] mnDataVSq
          Dynamic node: [0:nDataV-1] global mean Sq data for samples h
(package private) static float[] msMaxDataS
          cache mae.hps.msListE[].maQ.maxRI, for normalizng data
(package private)  java.lang.String name
          Dynamic node: name of node if it is not null
(package private)  int nbrChildren
          Dynamic node: # of terminal children of this node.
(package private) static int nDataV
          size of dataV[] vector
(package private) static HierClustNode nextNode
          next node in traversal
(package private) static int nHierClusters
          # of nodes clustered 2*nObj-1
(package private) static int nObj
          # of objects to cluster
(package private)  int nodeID
          Dynamic node: unique cluster node #
(package private) static int nonTermEnumCnt
          # non-terminal nodes enumerated in order
(package private) static boolean normByHPXflag
          flag: normalize data for gene in HP-X else HP[RatioHP]
(package private) static boolean normHCbyRatioHPflag
          flag: set to true if norm dataV[h] by dataV[iDataV] else norm by HP[h] msListE[h].maQ.maxRI
(package private) static int[] objCidx
          sorted cluster cIdx data [0:nObj-1]
(package private) static float[][] objDataV
          sorted norm.
(package private)  int oFeature
          optional feature if not equal to -1
private static float[] sdDataV
          Dynamic node: [0:nDataV-1] global StdDev data for samples h
(package private) static boolean stdizeByMnStdFlag
          flag: standardize all array dataV[h] by mnDataV[h]/sdDataV[h]
private  float sumCBdist
          Dynamic node: sum of CB distances
private  float sumDistSq
          Dynamic node: sum of distances squared
(package private) static int termEnumCnt
          # terminal nodes enumerated in order
(package private) static HierClustNode topNode
          top node of the tree
(package private) static int topNodeID
          top Node of tree
(package private) static boolean unWeightedAvgFlag
          flag: unweighted/weighted avg calc method
(package private) static boolean useClusterDistCacheFlag
          flag: cache distance matrix.
(package private) static boolean useCorrCoeffFlag
          flag: use corr.
(package private) static boolean useShortCacheFlag
          flag: use short else float cache
(package private)  boolean visited
          Dynamic node: set to true if visited in tree traversal
 
Constructor Summary
(package private) HierClustNode(HierClustNode hcRight, HierClustNode hcLeft)
          HierClustNode() - construct top level hierarchical cluster node
(package private) HierClustNode(int cIdx, float[] dataVorig, java.lang.String name, int oFeature)
          HierClustNode() - construct bottom level hierarchical cluster nodes which will provide data for both a Clustergram and Dendrogram...
(package private) HierClustNode(MAExplorer maE, int nObj, int nDataV, GeneList ml, float[][] geneEPvector)
          HierClustNode() - setup static variables for ONLY ClusterGram for use with K-means clustering data.
(package private) HierClustNode(MAExplorer maE, int nObj, int nDataV, int hierClustMode, boolean useCorrCoeffFlag, boolean useClusterDistCacheFlag, boolean normHCbyRatioHPflag, boolean normByHPXflag, int iDataV)
          HierClustNode() - setup static variables for full hier clustering which will provide data for both a Clustergram and Dendrogram...
 
Method Summary
private  int addr1D(int x, int y)
          addr1D() - lookup lower-diagonal addr1D(x,y) [y' + x'*(x'+1)/2] where: x' = (y
private static boolean buildClusterGramLists()
          buildClusterGramLists() - construct ordered ClusterGram lists
private static boolean buildDendrogramLists()
          buildDendrogramLists() - construct ordered ClusterGram and dendrogram lists.
(package private)  boolean calcHierCluster(float[][] objectsVectors, java.lang.String[] objNames, int[] objFeatureList, int hierClusterMode)
          calcHierCluster() - compute the hierarchical clusters tree.
private  float[] calcMeanDataVect(HierClustNode c1, HierClustNode c2)
          calcMeanDataVect() - compute mean intensity vector of 2 nodes.
private  void calcStandardizeMnStdDev()
          calcStandardizeMnStdDev() - calc global mnDataV[] and sdDataV[] over [0:nDataV-1] for all samples.
(package private) static void cleanup()
          cleanup() - close up what needs to be close and GC all structures.
(package private) static HierClustNode enumerateLeafNodes()
          enumerateLeafNodes() - enumerate Leaf nodes (Right then left) of tree.
(package private) static HierClustNode enumerateNodes()
          enumerateNodes() - enumerate the nodes (Right then Left) of tree.
(package private)  HierClustNode findClosestNode(HierClustNode hcI, int i)
          findClosestNode() - find closest unvisited node hcJ to node hcI such that the distance between hcI and HcJ is a minmum.
(package private)  int[] findSubtreeOfNodeNbrs(int topNodeNbrOfSubtree)
          findSubtreeOfNodeNbrs() - return an int[] list of node ID numbers for nodes in the subtree defined by topNodeNbrOfSubtree.
private  float getEnumOrder()
          getEnumOrder() - lookup or RECURSIVELY compute enumOrder of this node.
private  float nodeNodeDistSQ(HierClustNode c1, HierClustNode c2)
          nodeNodeDistSQ() - compute node-node nDistV*(Euclidian distance squared).
private  float[] normalizeDataVector(float[] dataVorig)
          normalizeDataVector() - compute normalized terminal dataV[] using selected ratio-normalization method.
private  void printDistanceMatrix()
          printDistanceMatrix() - pretty print the distance matrix for debugging
(package private) static boolean setEnumerateNodes()
          setEnumerateNodes() - Set the top node of the tree
private static void standarizeDataVector()
          standarizeDataVector() - compute standardized dataV[] using (dataV[h]-mnDataV[h])/sdDataV[h] for ALL terminal objects [0:nObj-1].
(package private)  java.lang.String toString(java.lang.String sMsg, boolean addNameFlag, boolean addDistFlag, boolean addDataVectFlag)
          toString() - convert value of a node to a String.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

mae

private static MAExplorer mae
link to global MAExplorer instance

fio

private static FileIO fio
link to global FileIO instance

useCorrCoeffFlag

static boolean useCorrCoeffFlag
flag: use corr. coeff instead of Eucl.dist

useClusterDistCacheFlag

static boolean useClusterDistCacheFlag
flag: cache distance matrix. Disable save memory if really needed

normByHPXflag

static boolean normByHPXflag
flag: normalize data for gene in HP-X else HP[RatioHP]

unWeightedAvgFlag

static boolean unWeightedAvgFlag
flag: unweighted/weighted avg calc method

normHCbyRatioHPflag

static boolean normHCbyRatioHPflag
flag: set to true if norm dataV[h] by dataV[iDataV] else norm by HP[h] msListE[h].maQ.maxRI

stdizeByMnStdFlag

static boolean stdizeByMnStdFlag
flag: standardize all array dataV[h] by mnDataV[h]/sdDataV[h]

hierClustMode

static int hierClustMode
linkage mode

cacheSize

static int cacheSize
size of cacheDistLR1D[] cache

enumCnt

static int enumCnt
# enumerated so far in an enumeration

termEnumCnt

static int termEnumCnt
# terminal nodes enumerated in order

nonTermEnumCnt

static int nonTermEnumCnt
# non-terminal nodes enumerated in order

nObj

static int nObj
# of objects to cluster

topNodeID

static int topNodeID
top Node of tree

nHierClusters

static int nHierClusters
# of nodes clustered 2*nObj-1

nDataV

static int nDataV
size of dataV[] vector

iDataV

static int iDataV
col to norm by in [0:nDataV-1]

msMaxDataS

static float[] msMaxDataS
cache mae.hps.msListE[].maQ.maxRI, for normalizng data

maxDistLR

static float maxDistLR
max distLR (dist**2) found between all nodes

maxDgramDist

static float maxDgramDist
max dGramDistXXX[] (distance not dist**2)

objDataV

static float[][] objDataV
sorted norm. dataV objDataV[0:nObj-1][:nDataV-1]

objCidx

static int[] objCidx
sorted cluster cIdx data [0:nObj-1]

useShortCacheFlag

static boolean useShortCacheFlag
flag: use short else float cache

cacheDistLR1Ds

static short[] cacheDistLR1Ds
lower-diagonal cache of distLR[L][R].

cacheDistLR1Df

static float[] cacheDistLR1Df
lower-diagonal cache of distLR[L][R].
 It is of size [0:((2*nObjs-1)**2/2)+(2*nObjs-1)]
 that is equivalent to  cacheDistLR1D[addr1D(i,j)] 
 where:
    i' = (j

dGramDist

static float[] dGramDist
[0:nObj-2] distance between children

dGramDistR

static float[] dGramDistR
[0:nObj-2] distance between Right's children

dGramDistL

static float[] dGramDistL
[0:nObj-2] distance between Left's children

dGramEnumOrder

static float[] dGramEnumOrder
[0:nObj-2] enumeration order

dGramEOright

static float[] dGramEOright
[0:nObj-2] right child enum order

dGramEOleft

static float[] dGramEOleft
[0:nObj-2] left child enum order

dGramNodeNbr

static int[] dGramNodeNbr
[0:nObj-2] Node Number

dGramRightNNbr

static int[] dGramRightNNbr
[0:nObj-2] Right Node Number

dGramLeftNNbr

static int[] dGramLeftNNbr
[0:nObj-2] Left Node Number

topNode

static HierClustNode topNode
top node of the tree

nextNode

static HierClustNode nextNode
next node in traversal

hierClusters

static HierClustNode[] hierClusters
hierarchical clusters [0:2*nObj-1] nHierClusters is the current one.

visited

boolean visited
Dynamic node: set to true if visited in tree traversal

nodeID

int nodeID
Dynamic node: unique cluster node #

cIdx

int cIdx
Dynamic node: object cluster index if not -1

nbrChildren

int nbrChildren
Dynamic node: # of terminal children of this node. Terminal nodes have a value of 1.

distLR

float distLR
Dynamic node: nDistV*(distance**2) between right & left nodes

enumOrder

float enumOrder
Dynamic node: set to enumeration order in range [0:nObj-1]. Internmediate nodes may be fractional eg. (hcLeft.enumOrder+hcRight.enumOrder)/2.0

name

java.lang.String name
Dynamic node: name of node if it is not null

oFeature

int oFeature
optional feature if not equal to -1

hcParent

HierClustNode hcParent
Dynamic node: if not null, then the parent of this node

hcRight

HierClustNode hcRight
Dynamic node: if not null, then right cluster

hcLeft

HierClustNode hcLeft
Dynamic node: if not null, then left cluster

dataV

float[] dataV
Dynamic node: mean vector [0:nDataV-1] of left and right

mnDataV

private static float[] mnDataV
Dynamic node: [0:nDataV-1] Global mean of data for samples h

mnDataVSq

private static float[] mnDataVSq
Dynamic node: [0:nDataV-1] global mean Sq data for samples h

sdDataV

private static float[] sdDataV
Dynamic node: [0:nDataV-1] global StdDev data for samples h

dist

private float dist
Dynamic node: local variables allocated once for speedup

dataV1

private float[] dataV1
Dynamic node: [0:nDataV-1] copy of dataV1[]

dataV2

private float[] dataV2
Dynamic node: [0:nDataV-1] copy of dataV1[]

sumDistSq

private float sumDistSq
Dynamic node: sum of distances squared

sumCBdist

private float sumCBdist
Dynamic node: sum of CB distances

memAllocFailedFlag

boolean memAllocFailedFlag
Constructor Detail

HierClustNode

HierClustNode(MAExplorer maE,
              int nObj,
              int nDataV,
              int hierClustMode,
              boolean useCorrCoeffFlag,
              boolean useClusterDistCacheFlag,
              boolean normHCbyRatioHPflag,
              boolean normByHPXflag,
              int iDataV)
HierClustNode() - setup static variables for full hier clustering which will provide data for both a Clustergram and Dendrogram...
Parameters:
maE - is instance of MAExplorer
nObj - is # of genes to cluster
nDataV - is size of vector
hierClustMode - is linkage mode
useCorrCoeffFlag - to use corr. coeff instead of Eucl.dist
useClusterDistCacheFlag - to save memory
normHCbyRatioHPflag - to for norm dataV[]
normByHPXflag - if normalizing, then norm by HP data for gene in HP-X else by max value in HP
iDataV - is the colmn to norm by in [0:nDataV-1]
See Also:
EventMenu.setClusterDisplayState(java.awt.CheckboxMenuItem, boolean), HPxyData, MaHybridSample, Util.showMsg1(java.lang.String, java.awt.Color, java.awt.Color), Util.showMsg2(java.lang.String), Util.showMsg3(java.lang.String)

HierClustNode

HierClustNode(MAExplorer maE,
              int nObj,
              int nDataV,
              GeneList ml,
              float[][] geneEPvector)
HierClustNode() - setup static variables for ONLY ClusterGram for use with K-means clustering data.
Parameters:
maE - is instance of MAExplorer
nObj - is # of genes to cluster
nDataV - is size of vector
hierClustMode - is linkage mode
ml - is the GeneList of genes to use in clustering
geneEPvector - is the array of data vectors [nObj][nDataV]
See Also:
HPxyData, normalizeDataVector(float[])

HierClustNode

HierClustNode(int cIdx,
              float[] dataVorig,
              java.lang.String name,
              int oFeature)
HierClustNode() - construct bottom level hierarchical cluster nodes which will provide data for both a Clustergram and Dendrogram...
Parameters:
cIdx - is index of external object
dataVorig - is the mean vector of (L+R)/2
name - of leaf object
oFeature - is the optional feature
See Also:
normalizeDataVector(float[])

HierClustNode

HierClustNode(HierClustNode hcRight,
              HierClustNode hcLeft)
HierClustNode() - construct top level hierarchical cluster node
Parameters:
hcRight - is the right child cluster
hcLeft - is the left child cluster
See Also:
calcMeanDataVect(HierClustNode, HierClustNode), nodeNodeDistSQ(HierClustNode, HierClustNode)
Method Detail

normalizeDataVector

private float[] normalizeDataVector(float[] dataVorig)
normalizeDataVector() - compute normalized terminal dataV[] using selected ratio-normalization method.
 For all h in 0:nDataV,
 if normHCbyRatioHPflag
    dataV'[] = dataV[] / dataV[iDataV]
 else normalize by maximum value for each sample:
    dataV'[h] = dataV[h] / maxRawIntensity[h]
If stdizeByMnStdFlag, then compute the mnData[h], mnDataSq[h] and we finish normalizing the data later.
Parameters:
dataVorig - is original data vector
Returns:
copy of new vector - don't modify the original vector.

calcStandardizeMnStdDev

private void calcStandardizeMnStdDev()
calcStandardizeMnStdDev() - calc global mnDataV[] and sdDataV[] over [0:nDataV-1] for all samples.

standarizeDataVector

private static void standarizeDataVector()
standarizeDataVector() - compute standardized dataV[] using (dataV[h]-mnDataV[h])/sdDataV[h] for ALL terminal objects [0:nObj-1].

calcHierCluster

boolean calcHierCluster(float[][] objectsVectors,
                        java.lang.String[] objNames,
                        int[] objFeatureList,
                        int hierClusterMode)
calcHierCluster() - compute the hierarchical clusters tree. There must be at least 2 objects and at least 1 data vector
 It clusters the
   objectsVectors[0:nObj-1][0:nDataV-1]
 where cIdx is the nObj index.
 using:
   nodes hierClusters[0:(2*nObj-1)-1]
Parameters:
objectsVectors - is object vectors of size [nObj][nDataV]
objNames - is object names of size [nObj]
objFeatureList - is the optional feature list of size [nObj]
hierClusterMode - for clustering
Returns:
true if ok.
See Also:
Util.showMsg2(java.lang.String), buildClusterGramLists(), buildDendrogramLists(), calcStandardizeMnStdDev(), findClosestNode(HierClustNode, int), HierClustNode(MAExplorer, int, int, int, boolean, boolean, boolean, boolean, int), nodeNodeDistSQ(HierClustNode, HierClustNode), standarizeDataVector()

printDistanceMatrix

private void printDistanceMatrix()
printDistanceMatrix() - pretty print the distance matrix for debugging

addr1D

private final int addr1D(int x,
                         int y)
addr1D() - lookup lower-diagonal addr1D(x,y) [y' + x'*(x'+1)/2] where: x' = (y
Parameters:
x - coordinate of lower diagonal array
y - coordinate of lower diagonal array
Returns:
index of effective address for (x,y)

findClosestNode

HierClustNode findClosestNode(HierClustNode hcI,
                              int i)
findClosestNode() - find closest unvisited node hcJ to node hcI such that the distance between hcI and HcJ is a minmum.
Parameters:
hcI - node to search for node closest to
i - corresponding to hcI
Returns:
nearest node
See Also:
addr1D(int, int), nodeNodeDistSQ(HierClustNode, HierClustNode)

nodeNodeDistSQ

private final float nodeNodeDistSQ(HierClustNode c1,
                                   HierClustNode c2)
nodeNodeDistSQ() - compute node-node nDistV*(Euclidian distance squared). It is nDistV * ( (Euclidean distance squared)**2 )
 Compute average-arithmetic linkages from non-LEAF distances
 using AVG cluster methods.
 See Sneath&Sokol pg 215, 218, 230, ...

 It computes the average-arithmetic linkage if
   hierClustMode==mae.HIER_CLUST_PGMA_LNKG.
 It computes the average-acentroid linkage if
   hierClustMode==mae.HIER_CLUST_PGMC_LNKG.

 Then use unWeightedAvgFlag for un-weighted average else
 use the weighted average.
 if useCorrCoeffFlag then compute
    r= calcPearsonCorrCoef(c1.dataV, c2.dataV, nDataV, use population covar)
    and return dist= (1-r)*(1-r).
 else compute Euclidean distance squared
Parameters:
c1 - node
c2 - node
Returns:
the distance squared between c1 and c2 using current modes
See Also:
MathMAE.calcPearsonCorrCoef(float[], float[], int, boolean), MathMAE.euclidDist(float[], float[], int, boolean)

calcMeanDataVect

private float[] calcMeanDataVect(HierClustNode c1,
                                 HierClustNode c2)
calcMeanDataVect() - compute mean intensity vector of 2 nodes. It computes the average value based on either of two methods. See Sneath&Sokol, "Numerical Taxonomy", pg 230, 1973, W.H. Freeman&Co, SF,CA.
   1.  WPMGA weighted terminal method:
       Equal weights (i.e. 1/2) to left and right subclusters.
       NOTE: this does weights large and small clusters the same!
       This method averages the left and right node values:
       mean of left and right values.
   2. (UPGMA unweighted pair-group method using arithmetic averages)
      [#c1*val1+#c2*val2] (sum terminal nodes)/# terminal nodes
Parameters:
c1 - node
c2 - node
Returns:
the mean data vector between c1 and c2

setEnumerateNodes

static boolean setEnumerateNodes()
setEnumerateNodes() - Set the top node of the tree
Returns:
true if tree exists.

enumerateNodes

static HierClustNode enumerateNodes()
enumerateNodes() - enumerate the nodes (Right then Left) of tree.
 Note:
   terminal nodes are indicated by cIdx==-1.
   topNode.hcParent = topNode;
Returns:
next node rtnNode and null if there are no more nodes to enumerate.

enumerateLeafNodes

static HierClustNode enumerateLeafNodes()
enumerateLeafNodes() - enumerate Leaf nodes (Right then left) of tree.
Returns:
next leaf_node of tree. Traverse tree looking for leaf nodes or return null if reach the top of the tree.
See Also:
enumerateNodes()

findSubtreeOfNodeNbrs

int[] findSubtreeOfNodeNbrs(int topNodeNbrOfSubtree)
findSubtreeOfNodeNbrs() - return an int[] list of node ID numbers for nodes in the subtree defined by topNodeNbrOfSubtree.
 Need to traverse:
   dGramNodeNbr[0:nObj-1] - Node Number
   dGramEOrightNNbr[0:nObj-1] - Right Node Number
   dGramLeftNNbr[0:nObj-1] - Left Node Number
Parameters:
topNodeNbrOfSubtree - defines subtree node
Returns:
subtree list of node numbers else null if not found or error.

getEnumOrder

private float getEnumOrder()
getEnumOrder() - lookup or RECURSIVELY compute enumOrder of this node. This will compute and save the enumOrder values for nodes lower in the tree.
Returns:
enumerated order of node.

buildClusterGramLists

private static boolean buildClusterGramLists()
buildClusterGramLists() - construct ordered ClusterGram lists
  objDataV[] and objCidx[] for rows in the ClusterGram
  dGramXXXX[] for drawing the dendrogram.
Returns:
false if abort or problem
See Also:
enumerateLeafNodes(), setEnumerateNodes()

buildDendrogramLists

private static boolean buildDendrogramLists()
buildDendrogramLists() - construct ordered ClusterGram and dendrogram lists.
  objDataV[] and objCidx[] for rows in the ClusterGram
  dGramXXXX[] for drawing the dendrogram.
Returns:
false if abort.
See Also:
enumerateNodes(), getEnumOrder(), setEnumerateNodes()

toString

java.lang.String toString(java.lang.String sMsg,
                          boolean addNameFlag,
                          boolean addDistFlag,
                          boolean addDataVectFlag)
toString() - convert value of a node to a String. Optionally, you can add the node name and the data vector.
Parameters:
sMsg - is optional message
addNameFlag - to add name to the string
addDistFlag - to add distance to the string
addDataVectFlag - to add dataVect to the string
Returns:
value of fields.

cleanup

static void cleanup()
cleanup() - close up what needs to be close and GC all structures. Reset to initial state so can restart it...