cfa97200252eecb2b8dfe20d9d65cd5afd0f3ba3 max Thu May 28 02:37:57 2020 -0700 more OMIM hgc changes, refs #18419 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 460a48e..32ee090 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -10654,95 +10654,87 @@ } sqlFreeResult(&sr); printf("<tbody>\n"); printf("</table>\n"); } void printOmimGene2Details(struct trackDb *tdb, char *itemName, boolean encode) /* Print details of an omimGene2 entry. */ { struct sqlConnection *conn = hAllocConn(database); char query[256]; struct sqlResult *sr; char **row; char *url = tdb->url; -char *title1 = NULL; -char *geneSymbol = NULL; char *chrom, *chromStart, *chromEnd; chrom = cartOptionalString(cart, "c"); chromStart = cartOptionalString(cart, "o"); chromEnd = cartOptionalString(cart, "t"); printf("<div id='omimText'>"); if (url != NULL && url[0] != 0) { printf("<B>MIM gene number: "); printf("<A HREF=\"%s%s\" target=_blank>", url, itemName); - printf("%s</A></B>", itemName); - sqlSafef(query, sizeof(query), - "select geneName from omimGeneMap2 where omimId=%s;", itemName); - sr = sqlMustGetResult(conn, query); - row = sqlNextRow(sr); - if (row != NULL) - { - if (row[0] != NULL) - { - title1 = cloneString(row[0]); - printf(" %s", title1); - } - } - else - { - printf("<BR>"); - } - sqlFreeResult(&sr); + printf("%s</A></B><BR>", itemName); // disable NCBI link until they work it out with OMIM /* printf("<BR>\n"); printf("<B>OMIM page at NCBI: "); printf("<A HREF=\"%s%s\" target=_blank>", ncbiOmimUrl, itemName); printf("%s</A></B>", itemName); */ - // can use NOSQLINJ since itemName has already been checked to be a number struct dyString *symQuery = newDyString(1024); sqlDyStringPrintf(symQuery, "SELECT approvedSymbol from omimGeneMap2 where omimId=%s", itemName); char *approvSym = sqlQuickString(conn, symQuery->string); if (approvSym) { - printf("<BR><B>HGNC-approved symbol:</B> %s<BR>", approvSym); - freez(&approvSym); + printf("<B>HGNC-approved symbol:</B> %s", approvSym); } + + sqlSafef(query, sizeof(query), + "select geneName from omimGeneMap2 where omimId=%s;", itemName); + char *longName = sqlQuickString(conn, query); + if (longName) { + printf(" — %s", longName); + freez(&longName); + } + puts("<BR>"); + printPosOnChrom(chrom, atoi(chromStart), atoi(chromEnd), NULL, FALSE, itemName); sqlSafef(query, sizeof(query), "select geneSymbol from omimGeneMap2 where omimId=%s;", itemName); - sr = sqlMustGetResult(conn, query); - row = sqlNextRow(sr); - if (row != NULL) - { - geneSymbol = cloneString(row[0]); - } - sqlFreeResult(&sr); + char *altSyms = sqlQuickString(conn, query); - if (geneSymbol!= NULL) + if (altSyms) + { + if (approvSym) { - printf("<BR><B>Alternative symbols:</B> %s", geneSymbol); + char symRe[255]; + safef(symRe, sizeof(symRe), "^%s, ", approvSym); + altSyms = replaceRegEx(altSyms, "", symRe, 0); + } + printf("<B>Alternative symbols:</B> %s", altSyms); printf("<BR>\n"); + freez(&altSyms); } + if (approvSym) + freez(&approvSym); // show RefSeq Gene link(s) sqlSafef(query, sizeof(query), "select distinct locusLinkId from %s l, omim2gene g, refGene r where l.omimId=%s and g.geneId=l.locusLinkId and g.entryType='gene' and chrom='%s' and txStart = %s and txEnd= %s", refLinkTable, itemName, chrom, chromStart, chromEnd); sr = sqlMustGetResult(conn, query); row = sqlNextRow(sr); if (row != NULL) { char *geneId; geneId = strdup(row[0]); sqlFreeResult(&sr); sqlSafef(query, sizeof(query), "select distinct l.mrnaAcc from %s l where locusLinkId = '%s' order by mrnaAcc asc", refLinkTable, geneId);