b7c90da8c24329bdb5744e89c9ab30d155aff6b5
hartera
  Wed Oct 15 12:33:19 2014 -0700
Corrected off by 1 errors in position starts. Added a link from the Breaks in Orthology table to the description for this feature.
diff --git src/hg/hgc/retroClick.c src/hg/hgc/retroClick.c
index bb3edfd..d267e03 100644
--- src/hg/hgc/retroClick.c
+++ src/hg/hgc/retroClick.c
@@ -186,31 +186,31 @@
     }
 }
 
 static void displaySrcGene(struct sqlConnection *conn, struct mappingInfo *mi)
 /* display information about the source gene that was mapped */
 {
 char srcGeneUrl[1024];
 
 /* description will be NULL if deleted */
 if (!startsWith("retroAugust",mi->geneSet))
     getGenbankInfo(conn, mi);
 
 /* construct URL to browser */
 safef(srcGeneUrl, sizeof(srcGeneUrl),
       "../cgi-bin/hgTracks?db=%s&position=%s:%d-%d",
-       database, mi->pg->gChrom, mi->pg->gStart, mi->pg->gEnd);
+       database, mi->pg->gChrom, mi->pg->gStart + 1, mi->pg->gEnd);
 
 printf("<TABLE class=\"transMap\">\n");
 printf("<H3>Source Gene:</H3>\n");
 printf("<TBODY>\n");
 printf("<TD CLASS=\"transMapNoWrap\"><A HREF=\"%s\" target=_blank>%s</A>", srcGeneUrl, mi->pg->name);
 if (mi->desc == NULL)
     printf("<TD>&nbsp;<TD>Gene no longer in source database");
 else
     printf("<TD>%s<TD>%s", mi->sym, mi->desc);
 printf("</TR>\n");
 printf("</TBODY></TABLE>\n");
 }
 
 
 static void displayRetroDetails(struct sqlConnection *conn, struct mappingInfo *mi)
@@ -218,31 +218,31 @@
 {
 struct ucscRetroInfo *pg = mi->pg;
 char query[256];
 char orthoTable[128];
 char orgDb[128];
 char *org;
 
 if (mi->suffix != NULL && strlen(mi->suffix) > 0)
     safef(orthoTable, sizeof(orthoTable), "%s%sOrtho%s", 
             mi->tblPre, mi->geneSet, mi->suffix);
 else
     safef(orthoTable, sizeof(orthoTable), "%s%sOrtho", 
             mi->tblPre, mi->geneSet);
 
 printf("<TABLE class=\"transMap\">\n");
-printf("<H3>Breaks in Orthology:</H3>\n");
+printf("<H3><A HREF=\"#orthology\">Breaks in Orthology:</A></H3>\n");
 printf("<THEAD>\n");
 printf("<TR><TH>Organism<TH>%% Coverage</TR>\n");
 printf("</THEAD><TBODY>\n");
 if (hTableExists(database, orthoTable))
     {
     struct sqlResult *sr;
     char **row;
     sqlSafef(query, sizeof(query), "select * from %s where name = '%s' ", 
             orthoTable, pg->name);
     sr = sqlGetResult(conn, query);
     while ((row = sqlNextRow(sr)) != NULL)
         {
         struct ucscRetroOrtho *puro = ucscRetroOrthoLoad(row);
         /* get substring after "net" prefix and convert first char to lower
            case then get organism name */
@@ -479,32 +479,32 @@
 else
     printf("no all_mrna table found<br>\n");
 return pslList;
 }
 
 static void displayParentAligns(struct mappingInfo *mi, struct psl *pslList, char *table)
 {
 struct ucscRetroInfo *pg = mi->pg;
 if (pslList != NULL && *table )
     {
     printf("<H3>Parent Locus/Parent mRNA Alignments </H3>");
     printAlignments(pslList, pslList->tStart, "htcCdnaAli", table, \
             mi->gbAcc);
     }
 else
-    printf("missing alignment %s %s:%d-%d from table %s<br>\n",
-             mi->gbAcc, pg->gChrom, pg->gStart, pg->gEnd, table);
+    printf("missing alignment %s chr %s:%d-%d from table %s<br>\n",
+             mi->gbAcc, pg->gChrom, pg->gStart + 1, pg->gEnd, table);
 }
 
 /* return count of coding exons */
 int genePredcountCdsExons(struct genePred *gp)
 {
 int i;
 int count = 0;
 for (i=0; i<(gp->exonCount); i++)
     {
     if ( (gp->cdsStart <= gp->exonEnds[i]) &&  
          (gp->cdsEnd >= gp->exonStarts[i]) )
          count++;
     }
 return count;