3cbc3345fa132a7276f6118398c5601764d38821 chinhli Wed Nov 14 13:37:47 2012 -0800 Code Review #9591: combined duplicated blocks of code in numtsClick.c diff --git src/hg/hgc/numtsClick.c src/hg/hgc/numtsClick.c index fe84d1f..24a12c4 100644 --- src/hg/hgc/numtsClick.c +++ src/hg/hgc/numtsClick.c @@ -1,138 +1,128 @@ /* numtsClick - hgc code to display Numts track item detail page */ #include "common.h" #include "hgc.h" #include "numtsClick.h" void doNumtS(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; char itemNameDash[64]; /* itenName appended with a "_" */ char itemNameTrimmed[64]; /* itemName trimed at last "_" */ int sDiff = 30; /* acceptable difference of genomics size */ /* 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); safecpy(itemNameDash, sizeof(itemNameDash),itemName); safecat(itemNameDash,64,"_"); 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)) + if (sameString("numtS", table) || sameString("numtSAssembled", 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("numtSMitochondrion", 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; } 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; } } 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 SCORE STRAND \n"); printf("--------|--------------------------------------------------------------------------------------------\n"); } bed = bedLoad6(row); printf("browser | ", hgTracksPathAndSettings(), database, bed->chrom, bed->chromStart+1, bed->chromEnd); printf("%-20s %-10s %9d %9d %5d %5d %1s", bed->name, bed->chrom, bed->chromStart+1, bed->chromEnd, (bed->chromEnd - bed->chromStart),bed->score, bed->strand); printf("
"); } printf("
"); printTrackHtml(tdb); hFreeConn(&conn); }