b95ff3835509b242bd9007ba55c4f60c1022da47
markd
  Thu Dec 30 14:58:16 2010 -0800
moved to programs to hg/utils, fixed build of distributed utilities
diff --git src/hg/overlapSelect/chromAnnMap.c src/hg/overlapSelect/chromAnnMap.c
deleted file mode 100644
index 95e3a00..0000000
--- src/hg/overlapSelect/chromAnnMap.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Object the maps ranges to chromAnn objects */
-#include "common.h"
-#include "chromAnnMap.h"
-#include "chromAnn.h"
-#include "genomeRangeTree.h"
-
-static char const rcsid[] = "$Id: chromAnnMap.c,v 1.2 2009/07/31 18:09:23 markd Exp $";
-
-struct chromAnnMap
-/* Object the maps ranges to chromAnn objects */
-{
-    struct genomeRangeTree* ranges; // values are lists of chromAnn object
-};
-
-struct chromAnnMap *chromAnnMapNew()
-/* construct a new object */
-{
-struct chromAnnMap *cam;
-AllocVar(cam);
-cam->ranges = genomeRangeTreeNew();
-return cam;
-}
-
-void chromAnnMapAdd(struct chromAnnMap *cam,
-                    struct chromAnn *ca)
-/* add a record to the table. */
-{
-/* don't add if zero-length, they can't select */
-if (ca->start < ca->end)
-    genomeRangeTreeAddValList(cam->ranges, ca->chrom, ca->start, ca->end, ca);
-else
-    chromAnnFree(&ca);
-}
-
-struct chromAnnRef *chromAnnMapFindOverlap(struct chromAnnMap *cam,
-                                           struct chromAnn *ca)
-/* get list of overlaps to ca */
-{
-struct range *or, *overs
-    = genomeRangeTreeAllOverlapping(cam->ranges, ca->chrom, ca->start, ca->end);
-struct chromAnnRef *overlaps = NULL;
-for (or = overs; or != NULL; or = or->next)
-    {
-    struct chromAnn *ca;
-    for (ca = or->val; ca != NULL; ca = ca->next)
-        chromAnnRefAdd(&overlaps, ca);
-    }
-return overlaps;
-}
-
-struct chromAnnMapIter chromAnnMapFirst(struct chromAnnMap *cam)
-/* get iterator over a chromAnnMap */
-{
-struct chromAnnMapIter iter;
-ZeroVar(&iter);
-iter.cam = cam;
-iter.chromCookie = hashFirst(cam->ranges->hash);
-return iter;
-}
-
-struct chromAnn *chromAnnMapIterNext(struct chromAnnMapIter *iter)
-/* next element in select table */
-{
-if (iter->currentCa == NULL)
-    {
-    // no more chromAnns in this range
-    if (iter->currentRange == NULL)
-        {
-        // no more ranges on this chrom
-        struct hashEl *chromEl = hashNext(&iter->chromCookie);
-        if (chromEl == NULL)
-            return NULL;  // no more chroms
-        iter->currentRange = genomeRangeTreeList(iter->cam->ranges, chromEl->name);
-        }
-    iter->currentCa = iter->currentRange->val;
-    iter->currentRange = iter->currentRange->next;
-    }
-struct chromAnn *ca = iter->currentCa;
-iter->currentCa = iter->currentCa->next;
-return ca;
-}
-
-void chromAnnMapFree(struct chromAnnMap **camPtr)
-/* free chromAnnMap structures. */
-{
-struct chromAnnMap *cam = *camPtr;
-if (cam != NULL)
-    {
-    struct hashCookie chromCookie = hashFirst(cam->ranges->hash);
-    struct hashEl *chromEl;
-    for (chromEl = hashNext(&chromCookie); chromEl != NULL; chromEl = chromEl->next)
-        {
-        struct range *r, *ranges = genomeRangeTreeList(cam->ranges, chromEl->name);
-        for (r = ranges; r != NULL; r = r->next)
-            {
-            struct chromAnn *ca, *cas = r->val;
-            while ((ca = slPopHead(&cas)) != NULL)
-                chromAnnFree(&ca);
-            }
-        }
-    freez(camPtr);
-    }
-}
-
-