9da4faeeb0b3a1c959f9b196e633f9e80741a860
fanhsu
  Fri May 27 14:43:14 2011 -0700
Implemented new color scheme for OMIM tracks.
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 3374655..2911931 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -10851,89 +10851,123 @@
 {
 bedPlusLabelLoad(tg, omimGene2DisorderList);
 omimFilter(tg);
 }
 
 Color omimGene2Color(struct track *tg, void *item, struct hvGfx *hvg)
 /* set the color for omimLocation track items */
 {
 struct bed *el = item;
 char *omimId;
 char *phenClass;
 char query[256];
 struct sqlResult *sr;
 char **row;
 
+struct rgbColor *normal = &(tg->color);
+struct rgbColor lighter;
+struct rgbColor lightest;
+
+Color class1Clr, class2Clr, class3Clr, class4Clr, classOtherClr;
+
+/* color scheme:
+    
+    Lighter Green:
+    	for Class 1 OMIM records 
+    Light Green:
+    	for Class 2 OMIM records
+    Dark Green:
+    	for Class 3 OMIM records
+    Purple:
+    	for Class 4 OMIM records
+    Light Gray:
+    	for Others
+*/
+
+lighter.r = (6*normal->r + 4*255) / 10;
+lighter.g = (6*normal->g + 4*255) / 10;
+lighter.b = (6*normal->b + 4*255) / 10;
+
+lightest.r = (1*normal->r + 2*255) / 3;
+lightest.g = (1*normal->g + 2*255) / 3;
+lightest.b = (1*normal->b + 2*255) / 3;
+
+
 struct sqlConnection *conn = hAllocConn(database);
 
+class1Clr = hvGfxFindColorIx(hvg, lightest.r, lightest.g, lightest.b);
+class2Clr = hvGfxFindColorIx(hvg, lighter.r, lighter.g, lighter.b);
+class3Clr = hvGfxFindColorIx(hvg, normal->r, normal->g, normal->b);
+class4Clr = hvGfxFindColorIx(hvg, 153,0, 204);		// purple
+classOtherClr = hvGfxFindColorIx(hvg, 200, 200, 200);	// light gray
+
 safef(query, sizeof(query),
       "select omimId, phenotypeClass from omimPhenotype where omimId=%s", el->name);
 sr = sqlMustGetResult(conn, query);
 row = sqlNextRow(sr);
 
 hFreeConn(&conn);
 
 if (row == NULL)
     {
     // set to gray if this entry does not have any disorder info
     sqlFreeResult(&sr);
-    return hvGfxFindColorIx(hvg, 200, 200, 200);
+    return classOtherClr;
     }
 else
     {
     omimId    = row[0];
     phenClass = row[1];
 
     if (sameWord(phenClass, "3"))
     	{
-	// set to dark red, the same color as omimGene2 track
+	// set to dark green, the same color as omimGene2 track
 	sqlFreeResult(&sr);
-	return hvGfxFindColorIx(hvg, 220, 0, 0);
+	return class3Clr;
     	}
     else if (sameWord(phenClass, "2"))
     	{
-	// set to green for class 2
+	// set to light green for class 2
 	sqlFreeResult(&sr);
-	return hvGfxFindColorIx(hvg, 0, 255, 0);
+	return class2Clr;
     	}
     else if (sameWord(phenClass, "1"))
     	{
-	// set to orange for class 1
+	// set to lighter green for class 1
 	sqlFreeResult(&sr);
-	return hvGfxFindColorIx(hvg, 200, 0, 200);
+	return class1Clr;
     	}
     else
 	{
 	// set to purplish color for phenClass 4
         sqlFreeResult(&sr);
-	return hvGfxFindColorIx(hvg, 200, 100, 100);
+	return class4Clr; 
 	}
     }
 }
 
 void omimGene2Methods (struct track *tg)
 /* Methods for version 2 of OMIM Genes track. */
 {
 tg->loadItems	  = omimGene2Load;
 tg->itemColor 	  = omimGene2Color;
 tg->itemNameColor = omimGene2Color;
 tg->drawItemAt    = bedPlusLabelDrawAt;
 tg->mapItem       = bedPlusLabelMapItem;
 tg->nextPrevExon = simpleBedNextPrevEdge;
 }
 
-
 static char *omimAvSnpAaReplacement(char *name)
 /* Return replacement string associated with a OMIM AV (Allelic Variant) entry */
 {
 static char omimAvSnpBuffer[256];
 struct sqlConnection *conn;
 char query[256];
 struct sqlResult *sr;
 char **row;
 
 omimAvSnpBuffer[0] = '\0';
 
 conn = hAllocConn(database);
 safef(query,sizeof(query),
         "select replStr, dbSnpId, description from omimAvRepl where avId='%s'", name);
 sr = sqlMustGetResult(conn, query);
@@ -10980,80 +11014,113 @@
 (void)sqlQuickQuery(conn, query, omimLocationBuffer, sizeof(omimLocationBuffer));
 hFreeConn(&conn);
 return(omimLocationBuffer);
 }
 
 Color omimLocationColor(struct track *tg, void *item, struct hvGfx *hvg)
 /* set the color for omimLocation track items */
 {
 struct bed *el = item;
 char *omimId;
 char *phenClass;
 char query[256];
 struct sqlResult *sr;
 char **row;
 
+struct rgbColor *normal = &(tg->color);
+struct rgbColor lighter;
+struct rgbColor lightest;
+
+Color class1Clr, class2Clr, class3Clr, class4Clr, classOtherClr;
+
+/* color scheme:
+    
+    Lighter Green:
+    	for Class 1 OMIM records 
+    Light Green:
+    	for Class 2 OMIM records
+    Dark Green:
+    	for Class 3 OMIM records
+    Purple:
+    	for Class 4 OMIM records
+    Light Gray:
+    	for Others
+*/
+
+lighter.r = (6*normal->r + 4*255) / 10;
+lighter.g = (6*normal->g + 4*255) / 10;
+lighter.b = (6*normal->b + 4*255) / 10;
+
+lightest.r = (1*normal->r + 2*255) / 3;
+lightest.g = (1*normal->g + 2*255) / 3;
+lightest.b = (1*normal->b + 2*255) / 3;
+
+class1Clr = hvGfxFindColorIx(hvg, lightest.r, lightest.g, lightest.b);
+class2Clr = hvGfxFindColorIx(hvg, lighter.r, lighter.g, lighter.b);
+class3Clr = hvGfxFindColorIx(hvg, normal->r, normal->g, normal->b);
+class4Clr = hvGfxFindColorIx(hvg, 153,0, 204);		// purple
+classOtherClr = hvGfxFindColorIx(hvg, 200, 200, 200);	// light gray
+
 struct sqlConnection *conn = hAllocConn(database);
 
 safef(query, sizeof(query),
       "select omimId, phenotypeClass from omimPhenotype where omimId=%s", el->name);
 sr = sqlMustGetResult(conn, query);
 row = sqlNextRow(sr);
 
 hFreeConn(&conn);
 
 if (row == NULL)
     {
     // set to gray if this entry does not have any disorder info
     sqlFreeResult(&sr);
-    return hvGfxFindColorIx(hvg, 200, 200, 200);
+    return classOtherClr;
     }
 else
     {
     omimId    = row[0];
     phenClass = row[1];
 
     if (sameWord(phenClass, "3"))
     	{
-	// set to dark red, the same color as omimGene2 track
+	// set to dark green, the same color as omimGene2 track
 	sqlFreeResult(&sr);
-	return hvGfxFindColorIx(hvg, 220, 0, 0);
+	return class3Clr;
     	}
     else
     	{
     	if (sameWord(phenClass, "2"))
     	    {
-	    // set to green for class 2
+	    // set to light green for class 2
 	    sqlFreeResult(&sr);
-	    return hvGfxFindColorIx(hvg, 0, 255, 0);
+	    return class2Clr; 
     	    }
 	else
 	    {
     	    if (sameWord(phenClass, "1"))
     	    	{
-		// set to orange for class 1
+		// set to lighter green for class 1
 	    	sqlFreeResult(&sr);
-	    	return hvGfxFindColorIx(hvg, 200, 0, 200);
+	    	return class1Clr;
     	    	}
 	    else
 	    	{
 	    	// set to purplish color for phenClass 4
             	sqlFreeResult(&sr);
-	    	return hvGfxFindColorIx(hvg, 200, 100, 100);
+	    	return class4Clr; 
             	}
 	    }
-
 	}
     }
 }
 
 static void omimLocationLoad(struct track *tg)
 /* Load and filter OMIM Loci items, storing long label from omimLocationDescription. */
 {
 bedPlusLabelLoad(tg, omimLocationDescription);
 omimFilter(tg);
 }
 
 void omimLocationMethods (struct track *tg)
 /* Methods for OMIM Loci (Non-Gene Entry Cytogenetic Locations). */
 {
 tg->loadItems     = omimLocationLoad;