d3752edc12da1bf08427946150f564dbdd5d2254
angie
  Thu Oct 24 13:55:51 2019 -0700
bigDbSnp track handler code - initial commit.  refs #23283
* dnautil: Added trimRefAltLeft to get left-justified trimming (a la VCF not HGVS).
* bigBedClick: do hReplaceGbdb up front in parseDetailsTablUrls instead of waiting until endpoint.
* trackDbCustom.c: consolidating type-handling for wig/bigWig vs. bigBed-based big*.

diff --git src/hg/hgc/hgc.h src/hg/hgc/hgc.h
index c79ff4c..649f1e1 100644
--- src/hg/hgc/hgc.h
+++ src/hg/hgc/hgc.h
@@ -485,46 +485,52 @@
 void doLrgTranscriptPsl(struct trackDb *tdb, char *item);
 /* Locus Reference Genomic (LRG) transcript mapping and sequences. */
 
 void htcLrgCdna(char *item);
 /* Serve up LRG transcript cdna seq */
 
 void doPeptideAtlas(struct trackDb *tdb, char *item);
 /* Details for PeptideAtlas peptide mapping */
 
 void doGtexGeneExpr(struct trackDb *tdb, char *item);
 /* Details of GTEX gene expression item */
 
 void doGtexEqtlDetails(struct trackDb *tdb, char *item);
 /* Details of GTEx eQTL item */
 
+void doBigDbSnp(struct trackDb *tdb, char *rsId);
+/* Show details for bigDbSnp item. */
+
 void printAddWbr(char *text, int distance);
 /* a crazy hack for firefox/mozilla that is unable to break long words in tables
  * We need to add a <wbr> tag every x characters in the text to make text breakable.
  */
 
 struct slPair* getExtraFields(struct trackDb *tdb, char **fields, int fieldCount);
 /* return the extra field names and their values as a list of slPairs */
 
 struct slPair *getFields(struct trackDb *tdb, char **fields);
 /* return field names and their values as a list of slPairs.  */
 
 int extraFieldsPrint(struct trackDb *tdb,struct sqlResult *sr,char **fields,int fieldCount);
 // Any extra bed or bigBed fields (defined in as and occurring after N in bed N + types.
 // sr may be null for bigBeds.
 // Returns number of extra fields actually printed.
 
+struct slPair *parseDetailsTablUrls(struct trackDb *tdb);
+/* Parse detailsTabUrls setting string into an slPair list of {offset column name, fileOrUrl} */
+
 #define NUCCORE_SEARCH "https://www.ncbi.nlm.nih.gov/sites/entrez?db=nuccore&cmd=search&term="
 
 void doJRepeat (struct trackDb *tdb, char *repeat);
 /* New RepeatMasker Visualization defined in joinedRmskClick.c */
 
 INLINE char* strOrNbsp(char* val)
 /* return val if not empty otherwise HTML entity &nbsp; */
 {
 return isEmpty(val) ? "&nbsp;" : val;
 }
 
 void doInteractDetails(struct trackDb *tdb, char *item);
 /* Details of interaction item */
 
 #endif