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("Start range: outer start %s, inner start %s
\n", rangeStart, rangeEnd); else printf("End range: inner end %s, outer end %s
\n", rangeStart, rangeEnd); } else // not formatted as expected, just print as-is: printf("%s: %s
\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("Structural variant cluster: %s
\n", htmlEncode(ba->attrVals[i])); + } else { subChar(tag, '_', ' '); printf("%s: %s
\n", tag, htmlEncode(ba->attrVals[i])); } } sqlFreeResult(&sr); hFreeConn(&conn); /* printTrackHtml is done in genericClickHandlerPlus. */ }