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