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("<BR>");
 char *date = firstWordInLine(sqlTableUpdate(conn, table));
 if (date != NULL)
     printf("<B>Data last updated:</B> %s<BR>\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 <BR>", 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("</TT></PRE>");
         }
 
-
+ printf("<BR>");
  printTrackHtml(tdb); 
  hFreeConn(&conn);
 }