bd8697516cb549c7b833754cedf91a387312347b
kent
  Thu Jul 25 10:56:17 2013 -0700
Adding functions to sum up size of all ranges in tree.
diff --git src/lib/genomeRangeTree.c src/lib/genomeRangeTree.c
index 667ed08..81e8752 100644
--- src/lib/genomeRangeTree.c
+++ src/lib/genomeRangeTree.c
@@ -169,15 +169,26 @@
 slSort(&chromList, hashElCmp); /* alpha sort on chrom */
 dyStringFree(&tmpTreeToString);
 tmpTreeToString = newDyString(0);
 dyStringAppend(tmpTreeToString, "[tree");
 for (chrom = chromList ; chrom ; chrom = chrom->next)
     {
     dyStringPrintf(tmpTreeToString, " [%s:", chrom->name);
     rbTreeTraverse(genomeRangeTreeFindRangeTree(tree, chrom->name), tmpNodeToString);
     dyStringAppend(tmpTreeToString, "]");
     }
 dyStringAppend(tmpTreeToString, "]");
 hashElFreeList(&chromList);
 return tmpTreeToString;
 }
 
+long long genomeRangeTreeSumRanges(struct genomeRangeTree *grt)
+/* Sum up all ranges in tree. */
+{
+long long sum = 0;
+struct hashEl *chrom, *chromList = hashElListHash(grt->hash);
+for (chrom = chromList; chrom != NULL; chrom = chrom->next)
+    rbTreeTraverseWithContext(chrom->val, rangeTreeSumRangeCallback, &sum);
+hashElFreeList(&chromList);
+return sum;
+}
+