10fa676b128c832e3bc60bf03787c89f2183d32e chinhli Thu Sep 2 16:27:31 2010 -0700 finidh up NumTs diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 9ccfaa6..fc91f18 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -22192,6 +22192,11 @@ 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 "_" */ +//char itemNameTrimmedDash[64]; /* itemName trimed with dash added back */ + +int sDiff = 30; /* acceptable difference of genomics size */ /* message strings */ char clickMsg[128]; char *openMsg1 = "Click 'browser' link below to open Genome Browser at genomic position where"; @@ -22199,39 +22204,72 @@ char *openMsgM = "Click 'browser' link below to open Genome Browser at mitochondrial position where"; - - genericHeader(tdb, itemName); -//genericClickHandler(tdb, itemName, NULL); genericBedClick(conn, tdb, itemName, start, num); +/* printTBSchemaLink(tdb); printf("
"); char *date = firstWordInLine(sqlTableUpdate(conn, table)); if (date != NULL) printf("Data last updated: %s
\n", date); +*/ +strcpy(itemNameDash, itemName); +strcat(itemNameDash, "_"); +strcpy(itemNameTrimmed, itemName); +char *tPt = strrchr(itemNameTrimmed, '_'); +*tPt = '\0'; + +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("numtS", table)) { safef(query, sizeof(query), - "select chrom, chromStart, chromEnd, name, score, strand from numtSMitochondrion where name = '%s'", itemName); /* name like '%s%%'" */ + "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); strcpy(clickMsg, openMsgM); } else if (sameString("numtSAssembled", table)) { safef(query, sizeof(query), - "select chrom, chromStart, chromEnd, name, score, strand from numtSMitochondrion where name = '%s'", itemName); + "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); strcpy(clickMsg, openMsgM); } else if (sameString("numtSMitochondrion", table)) { safef(query, sizeof(query), - "select chrom, chromStart, chromEnd, name, score, strand from numtS where name = '%s'", itemName); + "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); strcpy(clickMsg, openMsg1); } else if (sameString("numtSMitochondrionChrPlacement", table)) { safef(query, sizeof(query), - "select chrom, chromStart, chromEnd, name, score, strand from numtS where name = '%s'", itemName); + "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); strcpy(clickMsg, openMsg1); } sr = sqlGetResult(conn, query); @@ -22266,7 +22304,7 @@ printf(""); } - + printf("
"); printTrackHtml(tdb); hFreeConn(&conn); }