bc21bd3d27fe3d29971231955b3fc544fa1c3d1e
angie
  Wed Oct 16 11:51:39 2013 -0700
Two new tracks for Locus Reference Genomic (LRG) (#11863) with customhandlers: LRG Regions and LRG Transcripts.
LRGs are frozen reference sequences for a particular gene plus some
upstream and downstream sequence.  They are intended to provide a
stable coordinate system for gene annotations that won't change
with every new genome assembly, but can be mapped to each genome
assembly.  Since there is a lot of metadata associated with each
region, I made LRG Regions a bigBed 12 + with fields describing
mismatches and indels, so that PSL can be derived from the bigBed
and the original LRG sequence can be reconstructed using genome
assembly sequence and the mismatch/indel info.  hgTracks shows
differences and LRG insertions into the reference assembly using
the cds.c baseColor code.  (LRG deletions from the reference appear
as gaps, which we get for free with bed12 info).
For LRG Transcripts, I found the genePred codon-coloring code
inadequate for showing an insertion into hg19 (or even mismatches),
so instead of genePred I ended up using PSL + sequence, more like
the mRNA track representation and display.

diff --git src/hg/inc/hui.h src/hg/inc/hui.h
index 9037b96..461c8a5 100644
--- src/hg/inc/hui.h
+++ src/hg/inc/hui.h
@@ -1091,30 +1091,37 @@
 // Confirms that this track has encode Peak cfgUI
 
 void encodePeakCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title,
                      boolean boxed);
 // Put up UI for filtering wgEnocde peaks based on score, Pval and Qval
 
 void genePredCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed);
 // Put up genePred-specific controls
 
 void wigMafCfgUi(struct cart *cart, struct trackDb *tdb,char *name, char *title, boolean boxed, char *db);
 /* UI for maf/wiggle track */
 
 void bamCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed);
 /* BAM: short-read-oriented alignment file format. */
 
+void lrgCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed);
+/* LRG: Locus Reference Genomic sequences mapped to assembly. */
+
+void lrgTranscriptAliCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title,
+			   boolean boxed);
+/* LRG Transcripts: Locus Reference Genomic transcript sequences mapped to assembly. */
+
 boolean tdbSortPrioritiesFromCart(struct cart *cart, struct trackDb **tdbList);
 // Updates the tdb->priority from cart then sorts the list anew.
 // Returns TRUE if priorities obtained from cart
 
 boolean tdbRefSortPrioritiesFromCart(struct cart *cart, struct slRef **tdbRefList);
 /* Updates the tdb->priority from cart then sorts the list anew.
    Returns TRUE if priorities obtained from cart */
 
 enum trackVisibility visCompositeViewDefault(struct trackDb *parentTdb,char *view);
 // returns the default track visibility of particular view within a composite track
 
 boolean isNameAtParentLevel(struct trackDb *tdb,char *name);
 // cfgUi controls are passed a prefix name that may be at the composite, view or subtrack level
 // returns TRUE if name at view or composite level