e92495a7ffb311c5b7b4dd8d9520bac66e25dfc0
angie
  Thu Jan 24 11:45:39 2013 -0800
Feature #6152 (Variant Annotation Integrator): remove an asObj tweak that was causing pgSnp load problem in annoGratorGpVar.Also get the trackDb for the selected subtrack, which is not the behavior of trackDbForTrack -- it returns composite tdb.
Implement "mustOverlap" grator behavior.

diff --git src/hg/inc/hdb.h src/hg/inc/hdb.h
index 5703195..ca55863 100644
--- src/hg/inc/hdb.h
+++ src/hg/inc/hdb.h
@@ -468,36 +468,40 @@
  * relationships are established. */
 
 struct trackDb *hTrackDb(char *db);
 /* Load tracks associated with current db.
  * Supertracks are loaded as a trackDb, but are not in the returned list,
  * but are accessible via the parent pointers of the member tracks.  Also,
  * the supertrack trackDb subtrack fields are not set here (would be
  * incompatible with the returned list)
  * Returns list sorted by priority
  *	NOTE: this result is cached, do not free it !
  */
 
 struct trackDb *tdbForTrack(char *db, char *track,struct trackDb **tdbList);
 /* Load trackDb object for a track. If track is composite, its subtracks
  * will also be loaded and inheritance will be handled; if track is a
- * subtrack then inheritance will be handled.  (Unless a subtrack has
- * "noInherit on"...) This will die if the current database does not have
+ * subtrack then inheritance will be handled, and the composite trackDb will
+ * be returned.  (Unless a subtrack has "noInherit on"...)
+ * This will die if the current database does not have
  * a trackDb, but will return NULL if track is not found.
  * MAY pass in prepopulated trackDb list, or may receive the trackDb list as an inout. */
 #define hTrackDbForTrack(db,track) tdbForTrack(db,track,NULL)
 
+struct trackDb *findSubtrackByName(struct trackDb *ancestorTdb, char *track);
+/* Given a tdb for a composite, return the subtrack tdb for track or NULL. */
+
 struct trackDb *hTrackDbForTrackAndAncestors(char *db, char *track);
 /* Load trackDb object for a track. If need be grab its ancestors too.
  * This does not load children. hTrackDbForTrack will handle children, and
  * is actually faster if being called on lots of tracks.  This function
  * though is faster on one or two tracks. */
 
 struct trackDb *hCompositeTrackDbForSubtrack(char *db, struct trackDb *sTdb);
 /* Given a trackDb that may be for a subtrack of a composite track,
  * return the trackDb for the composite track if we can find it, else NULL.
  * Note: if the composite trackDb is found and returned, then its subtracks
  * member will contain a newly allocated tdb like sTdb (but not ==). */
 
 struct hTableInfo *hFindTableInfoWithConn(struct sqlConnection *conn, char *chrom, char *rootName);
 /* Find table information, with conn as part of input parameters.  Return NULL if no table.  */