e1ed9bc2135623e47714e0bcc69bbadf971a299a
angie
  Wed Sep 14 14:24:48 2011 -0700
Track #34 (dbVar for human): Split ISCA Retrospective into 3subtracks by clinical interpretation (Benign, Pathogenic, Uncertain).
Data update required code update because of changes in keywords.

diff --git src/hg/hgc/gvfClick.c src/hg/hgc/gvfClick.c
index 05abfb2..4c042aa 100644
--- src/hg/hgc/gvfClick.c
+++ src/hg/hgc/gvfClick.c
@@ -31,34 +31,36 @@
 if ((row = sqlNextRow(sr)) == NULL)
     errAbort("doGvfDetails: can't find item '%s' in %s at %s:%d", item, database, seqName, start);
 int rowOffset = hOffsetPastBin(database, seqName, tdb->table);
 struct bed8Attrs *ba = bed8AttrsLoad(row+rowOffset);
 bedPrintPos((struct bed *)ba, 6, tdb);
 int i = 0;
 // Note: this loop modifies ba->attrVals[i], assuming we won't use them again:
 for (i = 0;  i < ba->attrCount;  i++)
     {
     // The ID is the bed8Attrs name and has already been displayed:
     if (sameString(ba->attrTags[i], "ID"))
 	continue;
     cgiDecode(ba->attrVals[i], ba->attrVals[i], strlen(ba->attrVals[i]));
     char *tag = ba->attrTags[i];
     // User-defined keywords used in dbVar's GVF:
-    if (sameString(tag, "var_type"))
+    if (sameString(tag, "var_type")) // This one isn't anymore, but I add it back (hg18.txt).
 	tag = "Variant type";
     else if (sameString(tag, "clinical_int"))
 	tag = "Clinical interpretation";
+    else if (sameString(tag, "var_origin"))
+	tag = "Variant origin";
     else if (islower(tag[0]))
 	// Uppercase for nice display, assuming user doesn't care which keywords are
 	// user-defined vs. GVF standard:
 	tag[0] = toupper(tag[0]);
     // GVF standard Start_range and End_range tags (1-based coords):
     if (sameString(tag, "Start_range") || sameString(tag, "End_range"))
 	{
 	char *copy = cloneString(ba->attrVals[i]);
 	char *words[3];
 	int wordCount = chopCommas(copy, words);
 	if (wordCount == 2 &&
 	    (sameString(".", words[0]) || isInteger(words[0])) &&
 	    (sameString(".", words[1]) || isInteger(words[1])))
 	    {
 	    boolean isStartRange = sameString(tag, "Start_range");
@@ -66,25 +68,30 @@
 	    if (sameString(".", rangeStart))
 		rangeStart = "unknown";
 	    if (sameString(".", rangeEnd))
 		rangeEnd = "unknown";
 	    if (isStartRange)
 		printf("<B>Start range</B>: outer start %s, inner start %s<BR>\n",
 		       rangeStart, rangeEnd);
 	    else
 		printf("<B>End range</B>: inner end %s, outer end %s<BR>\n",
 		       rangeStart, rangeEnd);
 	    }
 	else
 	    // not formatted as expected, just print as-is:
 	    printf("<B>%s</B>: %s<BR>\n", tag, htmlEncode(ba->attrVals[i]));
 	}
+    // Parent sounds like mom or dad (as in var_origin)... tweak it too:
+    else if (sameString(tag, "Parent"))
+	{
+	printf("<B>Structural variant cluster:</B> %s<BR>\n", htmlEncode(ba->attrVals[i]));
+	}
     else
 	{
 	subChar(tag, '_', ' ');
 	printf("<B>%s</B>: %s<BR>\n", tag, htmlEncode(ba->attrVals[i]));
 	}
     }
 sqlFreeResult(&sr);
 hFreeConn(&conn);
 /* printTrackHtml is done in genericClickHandlerPlus. */
 }