440d84ee43c6a5f8a22bfe7886681db4ee7cc202
braney
Thu Aug 28 16:55:27 2014 -0700
adding more support for bigGenePred in hgc and hgTables.
diff --git src/hg/hgc/bigBedClick.c src/hg/hgc/bigBedClick.c
index 8509b59..c55e384 100644
--- src/hg/hgc/bigBedClick.c
+++ src/hg/hgc/bigBedClick.c
@@ -1,29 +1,51 @@
/* Handle details pages for wiggle tracks. */
/* Copyright (C) 2013 The Regents of the University of California
* See README in this or parent directory for licensing information. */
#include "common.h"
#include "wiggle.h"
#include "cart.h"
#include "hgc.h"
#include "hCommon.h"
#include "hgColors.h"
#include "bigBed.h"
#include "hui.h"
+static void bigGenePredLinks(char *track, char *item)
+/* output links to genePred driven sequence dumps */
+{
+printf("
Links to sequence:
\n");
+printf("\n");
+puts("- \n");
+hgcAnchorSomewhere("htcTranslatedPredMRna", item, "translate", seqName);
+printf("Translated Protein from genomic DNA\n");
+puts("
\n");
+
+puts("- \n");
+hgcAnchorSomewhere("htcGeneMrna", item, track, seqName);
+printf("Predicted mRNA \n");
+puts("
\n");
+
+puts("- \n");
+hgcAnchorSomewhere("htcGeneInGenome", item, track, seqName);
+printf("Genomic Sequence from assembly\n");
+puts("
\n");
+printf("
\n");
+}
+
static void bigBedClick(char *fileName, struct trackDb *tdb,
char *item, int start, int end, int bedSize)
/* Handle click in generic bigBed track. */
{
boolean showUrl = FALSE;
char *chrom = cartString(cart, "c");
/* Open BigWig file and get interval list. */
struct bbiFile *bbi = bigBedFileOpen(fileName);
struct lm *lm = lmInit(0);
int ivStart = start, ivEnd = end;
if (start == end)
{
// item is an insertion; expand the search range from 0 bases to 2 so we catch it:
ivStart = max(0, start-1);
@@ -97,30 +119,32 @@
int restBedFields = bedSize - 3;
if (restCount > restBedFields)
{
if (0 == extraFieldsPrint(tdb,NULL,restFields + restBedFields,restCount - restBedFields))
{
int i;
char label[20];
safef(label, sizeof(label), "nonBedFieldsLabel");
printf("%s ",
trackDbSettingOrDefault(tdb, label, "Non-BED fields:"));
for (i = restBedFields; i < restCount; i++)
printf("%s%s", (i > 0 ? "\t" : ""), restFields[i]);
printf("
\n");
}
}
+ if (sameString(tdb->type, "bigGenePred"))
+ bigGenePredLinks(tdb->track, item);
}
if (isCustomTrack(tdb->track))
{
time_t timep = bbiUpdateTime(bbi);
printBbiUpdateTime(&timep);
}
}
if (!found)
{
printf("No item %s starting at %d\n", emptyForNull(item), start);
}
lmCleanup(&lm);