aa4c545f151ae2ba7dadd211012e8b7ca51449fd angie Tue Dec 6 08:36:20 2011 -0800 Feature #6172 (ISCA track tweaks): per ISCA's request, appendabbreviated variant origin to display names. diff --git src/hg/hgTracks/gvfTrack.c src/hg/hgTracks/gvfTrack.c index 5b1e99a..2c843c4 100644 --- src/hg/hgTracks/gvfTrack.c +++ src/hg/hgTracks/gvfTrack.c @@ -103,24 +103,52 @@ // if we someday get dense GVF tracks, might consider upping the default hash size: if (nameHash == NULL) nameHash= hashNew(0); while ((row = sqlNextRow(sr)) != NULL) { struct bed8Attrs *gvf = bed8AttrsLoad(row+rowOffset); slAddHead(&list, gvf); hashAdd(nameHash, gvf->name, gvf); } sqlFreeResult(&sr); hFreeConn(&conn); slSort(&list, gvfHierCmp); tg->items = list; } +static char *gvfItemName(struct track *tg, void *item) +/* ISCA requested that we append abbreviated variant origin to the item names. */ +{ +struct bed8Attrs *gvf = item; +struct dyString *name = dyStringNew(0); +int ix = stringArrayIx("var_origin", gvf->attrTags, gvf->attrCount); +if (ix >= 0) + { + char *origin = gvf->attrVals[ix]; + if (sameWord(origin, "Not tested")) + dyStringPrintf(name, "%s_unk", gvf->name); + else if (sameWord(origin, "De novo")) + dyStringPrintf(name, "%s_dn", gvf->name); + else if (sameWord(origin, "Maternal")) + dyStringPrintf(name, "%s_mat", gvf->name); + else if (sameWord(origin, "Paternal")) + dyStringPrintf(name, "%s_pat", gvf->name); + else if (sameWord(origin, "Biparental")) + dyStringPrintf(name, "%s_bip", gvf->name); + else + dyStringPrintf(name, "%s_%s", gvf->name, origin); + } +else + dyStringPrintf(name, "%s_unk", gvf->name); +return dyStringCannibalize(&name); +} + void gvfMethods(struct track *tg) /* Load GVF variant data. */ { bedMethods(tg); tg->canPack = TRUE; tg->loadItems = gvfLoad; +tg->itemName = gvfItemName; tg->itemColor = gvfColor; tg->nextPrevExon = simpleBedNextPrevEdge; }