47be3ab18aa782972b96c3c248a7fb63d40bf7ca chinhli Fri Jun 24 14:43:04 2011 -0700 redmine track #4036: Consolidate numtSeq item display logic for hg18, hg19 amd mm9. diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 58606fb..d347ff8 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -23438,31 +23438,32 @@ safecpy(itemNameTrimmed, sizeof(itemNameTrimmed),itemName); chopSuffixAt(itemNameTrimmed, '_'); safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand from %s where name='%s'", table, itemName); sr = sqlGetResult(conn, query); int sSize=0; while ((row = sqlNextRow(sr)) != NULL) { bed = bedLoad6(row); sSize = bed->chromEnd - bed->chromStart; /* printf("sSize is: %5d
", sSize); */ } - +if (sameString("hg18", database)) +{ if (sameString("numtS", table)) { safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrionChrPlacement where ( " "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsgM; } else if (sameString("numtSAssembled", table)) { safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrionChrPlacement where ( " @@ -23479,109 +23480,47 @@ "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsg1; } else if (sameString("numtSMitochondrionChrPlacement", table)) { safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtS where ( " "(name = '%s') OR (((name REGEXP '^%s') OR (name='%s')) AND " " (ABS((chromEnd - chromStart)-%d) <= %d ))) ", itemName, itemNameDash, itemNameTrimmed, sSize, sDiff); clickMsg = openMsg1; } - sr = sqlGetResult(conn, query); - firstTime = TRUE; - - while ((row = sqlNextRow(sr)) != NULL) - { - printf("
");
-        if (firstTime)
-            {
-            firstTime = FALSE;
-        printf("

%s item '%s' %s


", clickMsg, itemName, openMsg2); - - printf("BROWSER | NAME CHROMOSOME START END SIZE STRAND \n"); - printf("--------|-----------------------------------------------------------------------------------\n"); - - } - bed = bedLoad6(row); - printf("browser | ", - hgTracksPathAndSettings(), database, - bed->chrom, bed->chromStart+1, bed->chromEnd); - - printf("%-20s %-10s %9d %9d %5d %1s", - bed->name, bed->chrom, bed->chromStart+1, bed->chromEnd, - (bed->chromEnd - bed->chromStart), bed->strand); - - printf("
"); - } - - printf("
"); - printTrackHtml(tdb); - hFreeConn(&conn); -} - - -void doNumtSHg19Mm9(struct trackDb *tdb, char *itemName) -/* Put up page for NumtS. */ -{ -char *table = tdb->table; -struct sqlConnection *conn = hAllocConn(database); -struct bed *bed; -char query[512]; -struct sqlResult *sr; -char **row; -boolean firstTime = TRUE; -int start = cartInt(cart, "o"); -int num = 6; -/* message strings */ -char *clickMsg = NULL; -char *openMsg1 = "Click 'browser' link below to open Genome Browser at genomic position where"; -char *openMsg2 = "maps\n"; -char *openMsgM = "Click 'browser' link below to open Genome Browser at mitochondrial position where"; - -genericHeader(tdb, itemName); -genericBedClick(conn, tdb, itemName, start, num); - -safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand from %s where name='%s'", - table, itemName); -sr = sqlGetResult(conn, query); -int sSize=0; -while ((row = sqlNextRow(sr)) != NULL) - { - bed = bedLoad6(row); - sSize = bed->chromEnd - bed->chromStart; - /* printf("sSize is: %5d
", sSize); */ - } - +} else { if (sameString("numtS", table) || sameString("numtSAssembled", table)) { safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtSMitochondrion where name = '%s' ", itemName); clickMsg = openMsgM; } else if (sameString("numtSMitochondrion", table)) { safef(query, sizeof(query), "select chrom, chromStart, chromEnd, name, score, strand " "from numtS where name = '%s'", itemName); clickMsg = openMsg1; } +} + sr = sqlGetResult(conn, query); firstTime = TRUE; while ((row = sqlNextRow(sr)) != NULL) { printf("
");
         if (firstTime)
             {
             firstTime = FALSE;
         printf("

%s item '%s' %s


", clickMsg, itemName, openMsg2); printf("BROWSER | NAME CHROMOSOME START END SIZE STRAND \n"); printf("--------|-----------------------------------------------------------------------------------\n"); } @@ -24795,43 +24734,34 @@ { doGwasCatalog(tdb, item); } else if (sameString("par", table)) { doParDetails(tdb, item); } else if (sameString("t2g", table)) { doT2gDetails(tdb, item); } else if (tdb != NULL && startsWith("bedDetail", tdb->type)) { doBedDetail(tdb, NULL, item); } -else if (startsWith("numtS", table) && sameString("hg18", database)) - // && (!sameString("numtSAssembled", table))) +else if (startsWith("numtS", table)) { - //genericHeader(tdb, item); - //genericClickHandler(tdb, item, NULL); doNumtS(tdb, item); } -else if (startsWith("numtS", table) && - (sameString("hg19", database) || sameString("mm9", database))) - { - doNumtSHg19Mm9(tdb, item); - } - else if (tdb != NULL) { genericClickHandler(tdb, item, NULL); } else { cartWebStart(cart, database, "%s", track); printf("Sorry, clicking there doesn't do anything yet (%s).", track); } /* End of 1000+ line dispatch on table involving 100+ if/elses. */ if (didCartHtmlStart) cartHtmlEnd(); }