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