193841571306bec9ee747f98d05904116dc412b8
hiram
  Tue Oct 18 15:01:14 2016 -0700
adding Gene Tree link refs #18240

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 7659c99..e8b5ad4 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -8937,32 +8937,37 @@
 char *ensemblSource = NULL;
 if (hTableExists(database, "ensemblSource"))
     {
     sqlSafef(query, sizeof(query), "select source from ensemblSource where name='%s'", itemName);
     ensemblSource = sqlQuickString(conn, query);
     }
 
 sqlSafefFrag(query, sizeof(query), "name = \"%s\"", itemName);
 struct genePred *gpList = genePredReaderLoadQuery(conn, "ensGene", query);
 if (gpList && gpList->name2)
     {
     printf("<B>Ensembl Gene Link: </B>");
     if ((strlen(gpList->name2) < 1) || sameString(gpList->name2, "noXref"))
        printf("none<BR>\n");
     else
+       {
        printf("<A HREF=\"%s/geneview?gene=%s\" "
 	    "target=_blank>%s</A><BR>", ensUrl, gpList->name2, gpList->name2);
+       printf("<B>Ensembl Gene Tree: </B>");
+       printf("<A HREF=\"%s/Gene/Compara_Tree?g=%s&t=%s\" "
+             "target=_blank>%s</A><br>", ensUrl, gpList->name2, shortItemName, gpList->name2);
+       }
     }
 genePredFreeList(&gpList);
 
 printf("<B>Ensembl Transcript: </B>");
 printf("<A HREF=\"%s/transview?transcript=%s\" "
                "target=_blank>", ensUrl, shortItemName);
 printf("%s</A><br>", itemName);
 
 if (hTableExists(database, "superfamily"))
     {
     sqlSafefFrag(cond_str, sizeof(cond_str), "transcript_name='%s'", shortItemName);
 
     /* This is necessary, Ensembl kept changing their gene_xref table definition and content.*/
     proteinID = NULL;