256b87a01941403ecb6d5b6ce2ed34aa0fd77514 markd Fri Dec 19 21:50:42 2014 -0800 added support for transmap V3 which includes source databases in mapped alignment idenitifier diff --git src/hg/hgc/transMapClick.c src/hg/hgc/transMapClick.c index b071b34..cd366e4 100644 --- src/hg/hgc/transMapClick.c +++ src/hg/hgc/transMapClick.c @@ -51,31 +51,31 @@ AllocVar(bag); bag->psl = getAlignments(conn, tdb->table, mappedId); char *transMapInfoTbl = trackDbRequiredSetting(tdb, transMapInfoTblSetting); bag->info = transMapInfoQuery(conn, transMapInfoTbl, mappedId); if (getSrcRec) { char *transMapSrcTbl = trackDbRequiredSetting(tdb, transMapSrcTblSetting); bag->src = transMapSrcQuery(conn, transMapSrcTbl, bag->info->srcDb, bag->info->srcId); } char *transMapGeneTbl = trackDbSetting(tdb, transMapGeneTblSetting); if (transMapGeneTbl != NULL) bag->gene = transMapGeneQuery(conn, transMapGeneTbl, - bag->info->srcDb, transMapIdToAcc(bag->info->srcId)); + bag->info->srcDb, transMapIdToSeqId(bag->info->srcId)); bag->srcDbIsActive = hDbIsActive(bag->info->srcDb); return bag; } static void transMapBagFree(struct transMapBag **bagPtr) /* free the bag */ { struct transMapBag *bag = *bagPtr; if (bag != NULL) { pslFree(&bag->psl); transMapInfoFree(&bag->info); transMapSrcFree(&bag->src); transMapGeneFree(&bag->gene); freez(bagPtr); @@ -224,39 +224,39 @@ static struct dnaSeq *getCdnaSeq(struct trackDb *tdb, char *name) /* look up sequence name in seq and extFile tables specified * for base coloring. */ { /* FIXME: this is really a rip off of some of the code in * hgTracks/cds.c; really need to centralize it somewhere */ char *spec = trackDbRequiredSetting(tdb, BASE_COLOR_USE_SEQUENCE); 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 = hDnaSeqGet(NULL, name, words[1], words[2]); +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 */ { struct sqlConnection *conn = hAllocConn(database); struct transMapBag *bag = transMapBagLoad(conn, tdb, mappedId, FALSE); struct genbankCds cds; if ((bag->gene == NULL) || (strlen(bag->gene->cds) == 0) || !genbankCdsParse(bag->gene->cds, &cds)) ZeroVar(&cds); /* can't get or parse cds */ -struct dnaSeq *seq = getCdnaSeq(tdb, transMapIdToAcc(mappedId)); +struct dnaSeq *seq = getCdnaSeq(tdb, transMapIdToSeqId(mappedId)); writeFramesetType(); puts(""); printf("\n%s vs Genomic\n\n\n", mappedId); showSomeAlignment(bag->psl, seq, gftDna, 0, seq->size, NULL, cds.start, cds.end); dnaSeqFree(&seq); transMapBagFree(&bag); hFreeConn(&conn); }