src/hg/hgc/retroClick.c 1.13

1.13 2009/09/09 17:02:02 markd
integrated carefully reviewed changes from Robert to retro gene details page
Index: src/hg/hgc/retroClick.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/retroClick.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -b -B -U 4 -r1.12 -r1.13
--- src/hg/hgc/retroClick.c	3 Sep 2008 19:19:08 -0000	1.12
+++ src/hg/hgc/retroClick.c	9 Sep 2009 17:02:02 -0000	1.13
@@ -14,8 +14,9 @@
 #include "hgc.h"
 #include "retroClick.h"
 #include "retroMrnaInfo.h"
 #include "genbank.h"
+#include "hui.h"
 /* combine blocks separated by gaps less than this number */
 #define MAXBLOCKGAP 50
 
 /* space to allocate for a id */
@@ -207,13 +208,22 @@
 printf("<THEAD>\n");
 printf("<TR><TH>Orthology (net) Break<TH>Coverage %%</TR>\n");
 printf("</THEAD><TBODY>\n");
 if (sameString(organism,"Human"))
-    printf("<TR><TH>Mouse <TD>%d</TR>\n",  pg->overlapMouse);
+    printf("<TR><TH>Mouse ");
 else
-    printf("<TR><TH>Human <TD>%d</TR>\n", pg->overlapMouse);
-printf("<TR><TH>Dog<TD>%d</TR>\n", pg->overlapDog);
-printf("<TR><TH>Rhesus<TD>%d</TR>\n", pg->overlapRhesus);
+    printf("<TR><TH>Dog ");
+printf("<TD>%d</TR>\n", pg->overlapMouse);
+if (sameString(organism,"Human"))
+    printf("<TR><TH>Dog ");
+else
+    printf("<TR><TH>Rat ");
+printf("<TD>%d</TR>\n", pg->overlapDog);
+if (sameString(organism,"Human"))
+    printf("<TR><TH>Rhesus ");
+else
+    printf("<TR><TH>Human ");
+printf("<TD>%d</TR>\n", pg->overlapRhesus);
 printf("</TBODY></TABLE>\n");
 }
 
 static struct psl *loadPslRangeT(char *table, char *qName, char *tName, int tStart, int tEnd)
@@ -495,9 +505,9 @@
         pg->score,
         sqlQuickNum(conn, "select max(score) from ucscRetroInfo") );
 printf("<TR><TH>Alignment Coverage of parent gene (Bases&nbsp;matching Parent) <TD>%d %% &nbsp;(%d bp) </TR>\n", pg->coverage, pg->matches);
 printf("<TR><TH>Introns Procesed Out <TD>%d out of %d (%d exons covered)\n", pg->processedIntrons, (pg->parentSpliceCount/2), pg->exonCover);
-printf("<TR><TH>Possible Introns (or gaps) in Retro<TD>%d\n", pg->intronCount);
+printf("<TR><TH>Possible Introns (or gaps) in Retro<TD>%d + %d\n", pg->intronCount, pg->oldIntronCount);
 printf("<TR><TH>Conserved Splice Sites<TD>%d</TR>\n",  pg->conservedSpliceSites);
 printf("<TR><TH>Parent Splice Sites<TD>%d</TR>\n",  pg->parentSpliceCount);
 psl = getAlignments(conn, alignTbl, mi->pg->name);
 if (psl != NULL)
@@ -759,16 +769,22 @@
 void retroShowCdnaAli(char *mappedId)
 /* Show alignment for accession, mostly ripped off from htcCdnaAli */
 {
 char *track = cartString(cart, "aliTrack");
+struct trackDb *tdb = hashMustFindVal(trackHash, track);
 char *table = cartString(cart, "table");
 int start = cartInt(cart, "o");
 struct sqlConnection *conn = hAllocConn(database);
 struct sqlConnection *defDbConn = NULL;
 struct mappingInfo *mi = mappingInfoNew(conn, table, mappedId);
 struct genbankCds cds = getCds(conn, mi);
 struct psl *psl;
-struct dnaSeq *rnaSeq;
+struct dnaSeq *rnaSeq = NULL;
+char *spec = trackDbRequiredSetting(tdb, BASE_COLOR_USE_SEQUENCE);
+char *specCopy = cloneString(spec);
+char *words[3];
+int nwords = chopByWhite(specCopy, words, ArraySize(words));
+
 char acc[512];
 
 /* Print start of HTML. */
 writeFramesetType();
@@ -781,18 +797,22 @@
 if (startsWith("August",mi->geneSet))
     safef(acc, sizeof(acc), "aug-%s.T1",mi->seqId);
 else
     safef(acc, sizeof(acc), "%s.%d",mi->seqId, mi->gbCurVer);
-rnaSeq = hDnaSeqGet(database, acc, "retroSeq", "retroExtFile");
+// value is: extFile seqTbl extFileTbl
+if ((nwords != (int)ArraySize(words)) || !sameString(words[0], "extFile"))
+    errAbort("invalid %s track setting: %s ", BASE_COLOR_USE_SEQUENCE, spec);
+char *seqTable = words[1];
+char *extTable = words[2];
+rnaSeq = hDnaSeqGet(database, acc, seqTable, extTable);
 if (rnaSeq == NULL)
     {
     rnaSeq = hDnaSeqGet(database, acc, "seq", "extFile");
     if (rnaSeq == NULL)
-        errAbort("can't get mRNA sequence from %s prefix %s for %s from retroSeq", 
-            database, mi->geneSet, acc);
+        errAbort("can't get mRNA sequence from %s prefix %s for %s from %s", 
+            database, mi->geneSet, acc, track);
     }
 sqlDisconnect(&defDbConn);
-
 showSomeAlignment(psl, rnaSeq, gftDna, 0, rnaSeq->size, NULL, cds.start, cds.end);
 pslFree(&psl);
 dnaSeqFree(&rnaSeq);
 mappingInfoFree(&mi);