aab73bdcf664545ce749a4a259129fe7ed4a9dfd
braney
  Wed Apr 15 15:46:27 2015 -0700
first cut at NCBI Gene Annotations track for (N|X)(M|R) gene annotations from
NCBI #13673

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index a8540e8..eb6b1da 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -6008,30 +6008,38 @@
 			    strcat(lf->extra, "k");
 			    }
 			}
 		    }
 		sqlFreeResult(&sr);
 		}
 	    hFreeConn(&conn);
 	    }
 	}
     }
 else
     for (lf = tg->items; lf != NULL; lf = lf->next)
 	lf->extra = cloneString(lf->name);
 }
 
+void loadNcbiGene(struct track *tg)
+/* Load up RefSeq known genes. */
+{
+enum trackVisibility vis = tg->visibility;
+loadGenePredWithName2(tg);
+vis = limitVisibility(tg);
+}
+
 void loadRefGene(struct track *tg)
 /* Load up RefSeq known genes. */
 {
 enum trackVisibility vis = tg->visibility;
 tg->items = lfFromGenePredInRange(tg, tg->table, chromName, winStart, winEnd);
 if (vis != tvDense)
     {
     lookupRefNames(tg);
     }
 vis = limitVisibility(tg);
 }
 
 
 Color blastColor(struct track *tg, void *item, struct hvGfx *hvg)
 /* Return color to draw protein in. */
@@ -6164,30 +6172,39 @@
 /* allow itemAttr to override coloring */
 if (lf->itemAttr != NULL)
     return hvGfxFindColorIx(hvg, lf->itemAttr->colorR, lf->itemAttr->colorG, lf->itemAttr->colorB);
 
 /* If refSeqStatus is available, use it to determine the color.
  * Reviewed, Validated -> normal, Provisional -> lighter,
  * Predicted, Inferred(other) -> lightest
  * If no refSeqStatus, color it normally.
  */
 if (hTableExists(database,  "refSeqStatus"))
     return refGeneColorByStatus(tg, lf->name, hvg);
 else
     return(tg->ixColor);
 }
 
+void ncbiGeneMethods(struct track *tg)
+/* Make NCBI Genes track */
+{
+tg->loadItems = loadNcbiGene;
+tg->itemName = refGeneName;
+tg->mapItemName = refGeneMapName;
+tg->itemColor = refGeneColor;
+}
+
 void refGeneMethods(struct track *tg)
 /* Make track of known genes from refSeq. */
 {
 tg->loadItems = loadRefGene;
 tg->itemName = refGeneName;
 tg->mapItemName = refGeneMapName;
 tg->itemColor = refGeneColor;
 }
 
 void rgdGene2Methods(struct track *tg)
 /* Make track of RGD genes. */
 {
 tg->loadItems = loadRgdGene2;
 tg->itemName = rgdGene2Name;
 tg->mapItemName = rgdGene2MapName;
@@ -13254,30 +13271,31 @@
 registerTrackHandler("gap", gapMethods);
 registerTrackHandler("genomicDups", genomicDupsMethods);
 registerTrackHandler("clonePos", coverageMethods);
 registerTrackHandler("genieKnown", genieKnownMethods);
 registerTrackHandler("knownGene", knownGeneMethods);
 registerTrackHandler("h1n1_0602Seq", h1n1SeqMethods);
 registerTrackHandler("h1n1b_0514Seq", h1n1SeqMethods);
 registerTrackHandler("hg17Kg", hg17KgMethods);
 registerTrackHandler("superfamily", superfamilyMethods);
 registerTrackHandler("gad", gadMethods);
 registerTrackHandler("rdmr", rdmrMethods);
 registerTrackHandler("decipher", decipherMethods);
 registerTrackHandler("rgdQtl", rgdQtlMethods);
 registerTrackHandler("rgdRatQtl", rgdQtlMethods);
 registerTrackHandler("refGene", refGeneMethods);
+registerTrackHandler("ncbiGene", ncbiGeneMethods);
 registerTrackHandler("rgdGene2", rgdGene2Methods);
 registerTrackHandler("blastMm6", blastMethods);
 registerTrackHandler("blastDm1FB", blastMethods);
 registerTrackHandler("blastDm2FB", blastMethods);
 registerTrackHandler("blastCe3WB", blastMethods);
 registerTrackHandler("blastHg16KG", blastMethods);
 registerTrackHandler("blastHg17KG", blastMethods);
 registerTrackHandler("blastHg18KG", blastMethods);
 registerTrackHandler("blatHg16KG", blastMethods);
 registerTrackHandler("blatzHg17KG", blatzMethods);
 registerTrackHandler("atomHomIni20_1", atomMethods);
 registerTrackHandler("atom97565", atomMethods);
 registerTrackHandler("mrnaMapHg17KG", blatzMethods);
 registerTrackHandler("blastSacCer1SG", blastMethods);
 registerTrackHandler("tblastnHg16KGPep", blastMethods);