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; +} +