61a6db3160c99a8fef6004db5c5c6402c07255a5 markd Tue Mar 14 16:31:59 2017 -0700 fixed transmap preserving hgsqi when linking to another genome and fixed getting transmap custom display with V4 track names diff --git src/hg/hgc/transMapClick.c src/hg/hgc/transMapClick.c index e2b4f9c..9ca6166 100644 --- src/hg/hgc/transMapClick.c +++ src/hg/hgc/transMapClick.c @@ -308,33 +308,33 @@ { printf("\n"); printf("\n"); printf("\n"); // organism/assembly printf("\n", bag->meta->commonName, bag->meta->scientificName); printf("\n", bag->meta->srcDb); printf("\n", formatGeneSrcSet(bag->srcSet)); // position printf("\n"); // % identity and % aligned, values stored as 1000*fraction ident printf("\n", bag->meta->srcScore/10.0); printf("\n", bag->meta->srcAligned/10.0); // gene and CDS printf("\n", strOrNbsp(bag->meta->geneName)); @@ -350,30 +350,34 @@ strOrNbsp(bag->meta->oCDS)); printf("
Source Alignment
Organism%s (%s)
Genome%s
Source%s
Position\n"); printf(""); if (bag->srcDbIsActive) - printf("" + printf("" "%s:%d-%d", - hgTracksName(), bag->meta->srcDb, + hgTracksPathAndSettings(), bag->meta->srcDb, bag->meta->srcChrom, bag->meta->srcChromStart, bag->meta->srcChromEnd, bag->meta->srcChrom, bag->meta->srcChromStart, bag->meta->srcChromEnd); else printf("%s:%d-%d", bag->meta->srcChrom, bag->meta->srcChromStart, bag->meta->srcChromEnd); printf("
Identity%0.1f%%
Aligned%0.1f%%
Gene%s
\n"); } static void displayAligns(struct trackDb *tdb, struct transMapBag *bag) /* display cDNA alignments */ { int start = cartInt(cart, "o"); printf("

mRNA/Genomic Alignments

"); printAlignmentsSimple(bag->psl, start, "hgcTransMapCdnaAli", tdb->table, bag->psl->qName); } void transMapClickHandler(struct trackDb *tdb, char *mappedId) /* Handle click on a transMap tracks */ { +if (tdb == NULL) + errAbort("transMapClickHandler called without trackDb"); +if (mappedId == NULL) + errAbort("transMapClickHandler called without mappedId"); struct transMapBag *bag = (trackDbSetting(tdb, "bigDataUrl") == NULL) ? transMapBagLoadDb(tdb, mappedId) : transMapBagLoadBig(tdb, mappedId); genericHeader(tdb, mappedId); printf("\n"); printf("\n"); printf("
\n"); displayMapped(bag); printf("\n"); displaySource(bag); printf(" \n"); printf("
\n"); displayAligns(tdb, bag); @@ -394,30 +398,34 @@ char *specCopy = cloneString(spec); // value is: extFile seqTbl extFileTbl char *words[3]; int nwords = chopByWhite(specCopy, words, ArraySize(words)); if ((nwords != ArraySize(words)) || !sameString(words[0], "extFile")) errAbort("invalid %s track setting: %s", BASE_COLOR_USE_SEQUENCE, spec); struct dnaSeq *seq = hDnaSeqMustGet(NULL, name, words[1], words[2]); freeMem(specCopy); return seq; } void transMapShowCdnaAli(struct trackDb *tdb, char *mappedId) /* Show alignment for mappedId, mostly ripped off from htcCdnaAli */ { +if (tdb == NULL) + errAbort("transMapShowCdnaAli called without trackDb"); +if (mappedId == NULL) + errAbort("transMapShowCdnaAli called without mappedId"); struct transMapBag *bag = NULL; struct dnaSeq *seq = NULL; if (trackDbSetting(tdb, "bigDataUrl") == NULL) { bag = transMapBagLoadDb(tdb, mappedId); seq = getCdnaSeqDb(tdb, transMapIdToSeqId(mappedId)); } else { bag = transMapBagLoadBig(tdb, mappedId); seq = newDnaSeq(cloneString(bag->meta->oSequence), strlen(bag->meta->oSequence), mappedId); } struct genbankCds cds;