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(""); } 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("