459b8273fa9eaafb16d8980567a7fcfa209fd4ef
max
  Wed Nov 23 09:30:30 2016 -0800
Adding VAI/DAI support for bigDataIndex, refs #18420

diff --git src/hg/inc/hAnno.h src/hg/inc/hAnno.h
index d92c2b7..c3a0b21 100644
--- src/hg/inc/hAnno.h
+++ src/hg/inc/hAnno.h
@@ -8,38 +8,40 @@
 #include "jsonParse.h"
 #include "trackDb.h"
 
 // Represent "unlimited" as limit==0.
 #define ANNO_NO_LIMIT 0
 
 
 struct annoAssembly *hAnnoGetAssembly(char *db);
 /* Make annoAssembly for db. */
 
 struct annoStreamer *hAnnoStreamerFromTrackDb(struct annoAssembly *assembly, char *selTable,
                                               struct trackDb *tdb, char *chrom, int maxOutRows,
                                               struct jsonElement *config);
 /* Figure out the source and type of data and make an annoStreamer. */
 
-struct annoStreamer *hAnnoStreamerFromBigFileUrl(char *fileOrUrl, struct annoAssembly *assembly,
+struct annoStreamer *hAnnoStreamerFromBigFileUrl(char *fileOrUrl, char *indexUrl, struct annoAssembly *assembly,
                                                  int maxOutRows, char *type);
 /* Determine what kind of big data file/url we have and make streamer for it.
- * If type is NULL, this will determine type using custom track type or file suffix. */
+ * If type is NULL, this will determine type using custom track type or file suffix. 
+ * indexUrl can be NULL, unless the type is VCF and the .tbi file is not alongside the .VCF */
 
-struct annoGrator *hAnnoGratorFromBigFileUrl(char *fileOrUrl, struct annoAssembly *assembly,
+struct annoGrator *hAnnoGratorFromBigFileUrl(char *fileOrUrl, char *indexUrl, struct annoAssembly *assembly,
                                              int maxOutRows, enum annoGratorOverlap overlapRule);
 /* Determine what kind of big data file/url we have, make an annoStreamer & in annoGrator. */
+/* indexUrl can be NULL, unless the type is VCF and the .tbi file is not alongside the .VCF */
 
 struct annoGrator *hAnnoGratorFromTrackDb(struct annoAssembly *assembly, char *selTable,
                                           struct trackDb *tdb, char *chrom, int maxOutRows,
                                           struct asObject *primaryAsObj,
                                           enum annoGratorOverlap overlapRule,
                                           struct jsonElement *config);
 /* Figure out the source and type of data, make an annoStreamer & wrap in annoGrator.
  * If not NULL, primaryAsObj is used to determine whether we can make an annoGratorGpVar. */
 
 struct asObject *hAnnoGetAutoSqlForTdb(char *db, char *chrom, struct trackDb *tdb);
 /* If possible, return the asObj that a streamer for this track would use, otherwise NULL. */
 
 struct asObject *hAnnoGetAutoSqlForDbTable(char *db, char *table, struct trackDb *tdb,
                                            boolean skipBin);
 /* Get autoSql for db.dbTable from tdb and/or db.tableDescriptions;