7f35730e888eb158e0208a49edd6c1fc24fc380f hiram Thu Sep 2 11:13:49 2010 -0700 first pass at a handler for the altSequence hg19Patch2 PSL track diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 9ccfaa6..2cd29cb 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -6689,7 +6689,7 @@ wholePsl = pslLoad(row+hasBin); sqlFreeResult(&sr); - if (startsWith("ucscRetroAli", aliTable) || startsWith("retroMrnaAli", aliTable) || sameString("pseudoMrna", aliTable)) + if (startsWith("ucscRetroAli", aliTable) || startsWith("retroMrnaAli", aliTable) || sameString("pseudoMrna", aliTable) || sameString("altSeqLiftOverPsl", aliTable)) { rnaSeq = NULL; char *trackName = hGetTrackForTable(database, aliTable); @@ -7856,6 +7856,53 @@ printTrackHtml(tdb); } +void doPslAltSeq(struct trackDb *tdb, char *item) +/* Fairly generic PSL handler -- print out some more details about the + * alignment. */ +{ +int start = cartInt(cart, "o"); +int total = 0, i = 0; +struct psl *pslList = NULL; +struct sqlConnection *conn = hAllocConn(database); +char *otherDb = trackDbSetting(tdb, "otherDb"); +int altSize = hChromSize(otherDb, item); + +genericHeader(tdb, item); +printCustomUrl(tdb, item, TRUE); + +puts("
");
+//puts("Alignment Summary:
\n");
+char strBuf[64];
+sprintLongWithCommas(strBuf, altSize);
+printf("Alignment Summary: '%s' %s
\n", item, strBuf);
+pslList = getAlignments(conn, tdb->table, item);
+printAlignments(pslList, start, "htcCdnaAliInWindow", tdb->table, item);
+
+puts("
");
+total = 0;
+for (i=0; i < pslList -> blockCount; i++)
+ {
+ total += pslList->blockSizes[i];
+ }
+printf("%d block(s) covering %d bases
\n"
+ "%d matching bases
\n"
+ "%d mismatching bases
\n"
+ "%d N bases
\n"
+ "%d bases inserted in %s
\n"
+ "%d bases inserted in %s
\n"
+ "score: %d
\n",
+ pslList->blockCount, total,
+ pslList->match,
+ pslList->misMatch,
+ pslList->nCount,
+ pslList->tBaseInsert, hOrganism(database),
+ pslList->qBaseInsert, item,
+ pslScore(pslList));
+
+printTrackHtml(tdb);
+hFreeConn(&conn);
+}
+
void doPslDetailed(struct trackDb *tdb, char *item)
/* Fairly generic PSL handler -- print out some more details about the
* alignment. */
@@ -22720,6 +22767,10 @@
{
blastProtein(tdb, item);
}
+else if (startsWith("altSeqLiftOverPsl", table))
+ {
+ doPslAltSeq(tdb, item);
+ }
else if (sameWord(table, "chimpSimpleDiff"))
{
doSimpleDiff(tdb, "Chimp");