601af09179ebe3caeb5fcdeaac4f5cf7adb0f604 hiram Wed Jul 23 14:54:05 2014 -0700 trying 0-relative genoStart on rmskAlignBaseline table refs #9741 diff --git src/hg/hgc/joinedRmskClick.c src/hg/hgc/joinedRmskClick.c index cfae48d..aa586fc 100644 --- src/hg/hgc/joinedRmskClick.c +++ src/hg/hgc/joinedRmskClick.c @@ -231,31 +231,31 @@ { struct sqlConnection *conn2 = hAllocConn (database); struct sqlResult *sr2; char **row; char query[256]; char qTable[64]; boolean hasBin; int start = cartInt (cart, "o"); if (hTableExists (database, table)) { hFindSplitTable (database, seqName, table, qTable, &hasBin); sqlSafef (query, sizeof (query), "select * from %s where chrom = '%s' and alignStart >= %d" - " and id = %s", qTable, seqName, start, repeat); + " and id = %s", qTable, seqName, start-1, repeat); sr2 = sqlGetResult (conn2, query); if ((row = sqlNextRow (sr2)) != NULL) { struct rmskJoined *rmJoin = rmskJoinedLoad (row + hasBin); char class[32]; class[0] = '\0'; char family[32]; family[0] = '\0'; char *poundPtr = index (rmJoin->name, '#'); if (poundPtr) { // Terminate name string properly safecpy (class, sizeof (class), poundPtr + 1); @@ -278,31 +278,31 @@ printf ("<br><br>\n"); } sqlFreeResult (&sr2); } /* * Locate *.out annotation for this element */ if (hTableExists (database, outTable)) { int isFirst = 0; struct rmskOut2 *ro; hFindSplitTable (database, seqName, outTable, qTable, &hasBin); sqlSafef (query, sizeof (query), "select * from %s where genoName = '%s' and genoStart >= %d" - " and id = %s", qTable, seqName, start, repeat); + " and id = %s", qTable, seqName, start-1, repeat); sr2 = sqlGetResult (conn2, query); printf ("<h4>RepeatMasker Annotation:</h4>\n"); printf ("The RepeatMasker annotation line(s) for this element. " "If the element is fragmented the output will contain one " "line per joined fragment.<p>\n"); printf ("<table cellspacing=\"0\">\n"); while ((row = sqlNextRow (sr2)) != NULL) { ro = rmskOut2Load (row + hasBin); if (!isFirst++) printOutTableHeader (ro->strand[0]); printf (" <tr>\n"); printf (" <td %s>%d</td>\n", data_style, ro->swScore); printf (" <td %s>%3.1f</td>\n", data_style, @@ -345,31 +345,31 @@ sqlFreeResult (&sr2); printf ("</table>\n"); } printf ("<br><br>\n"); /* * Locate *.align data for this element */ if (hTableExists (database, alignTable)) { struct rmskAlign *ro; hFindSplitTable (database, seqName, alignTable, qTable, &hasBin); sqlSafef (query, sizeof (query), "select * from %s where genoName = '%s' and genoStart >= %d" - " and id = %s", qTable, seqName, start, repeat); + " and id = %s", qTable, seqName, start-1, repeat); sr2 = sqlGetResult (conn2, query); printf ("<h4>RepeatMasker Alignments:</h4>\n"); printf ("The raw alignment data used by RepeatMasker to generate " "the final annotation call for this element. NOTE: The " "aligned sequence names and consensus positions may differ " "from the final annotation.<p>\n"); printf ("<table>\n"); while ((row = sqlNextRow (sr2)) != NULL) { ro = rmskAlignLoad (row + hasBin); printf (" <tr>\n"); printf (" <td>%d</td>\n", ro->swScore); printf (" <td>%3.2f</td>\n", (double) ro->milliDiv * (double) 0.01);