b622d147b7dbac52dbf3ba26928cd18e02d42bd8 braney Sat Feb 26 12:34:37 2022 -0800 add support for using a bigBed as the chromAlias file diff --git src/hg/hgc/togaClick.c src/hg/hgc/togaClick.c index db78aa9..62b7627 100644 --- src/hg/hgc/togaClick.c +++ src/hg/hgc/togaClick.c @@ -165,31 +165,31 @@ strcpy(suffix, empty); } else { // just start the string 11 characters upstream memmove(suffix, suffix + HLTOGA_BED_PREFIX_LEN, suff_len - HLTOGA_BED_PREFIX_LEN + 1); } } void doHillerLabTOGAGeneBig(char *database, struct trackDb *tdb, char *item, char *table_name) /* Put up TOGA Gene track info. */ { int start = cartInt(cart, "o"); int end = cartInt(cart, "t"); char *chrom = cartString(cart, "c"); char *fileName = bbiNameFromSettingOrTable(tdb, NULL, tdb->table); -struct bbiFile *bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasChromToAliasHash(database)); +struct bbiFile *bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasFindAliases); struct lm *lm = lmInit(0); struct bigBedInterval *bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm); struct bigBedInterval *bb; char *fields[bbi->fieldCount]; for (bb = bbList; bb != NULL; bb = bb->next) { if (!(bb->start == start && bb->end == end)) continue; // our names are unique char *name = cloneFirstWordByDelimiterNoSkip(bb->rest, '\t'); boolean match = (isEmpty(name) && isEmpty(item)) || sameOk(name, item); if (!match) continue; @@ -252,31 +252,31 @@ printf("

Protein sequence


\n"); printf("Show protein alignment\n"); printf("
\n"); printf("%s
\n", info->prot_alignment); printf("
\n

\n"); // show inactivating mutations if required printf("

Inactivating mutations


\n"); printf("Show inactivating mutations\n"); printf("
\n"); printf("\n"); // init table printf("\n"); printf("\n"); fileName = trackDbSetting(tdb, "inactMutUrl"); -bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasChromToAliasHash(database)); +bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasFindAliases); //struct lm *lm = lmInit(0); bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm); for (bb = bbList; bb != NULL; bb = bb->next) { if (!(bb->start == start && bb->end == end)) continue; // our names are unique char *name = cloneFirstWordByDelimiterNoSkip(bb->rest, '\t'); boolean match = (isEmpty(name) && isEmpty(item)) || sameOk(name, item); if (!match) continue; char startBuf[16], endBuf[16]; bigBedIntervalToRow(bb, chrom, startBuf, endBuf, fields, bbi->fieldCount); @@ -295,31 +295,31 @@ printf("\n", info->mut_id); printf("\n"); togaInactMutFree(&info); } //sqlFreeResult(&sr); printf("
exonposm_classmutis_inactmut_id
%s
\n"); printf("
\n
\n"); // show exons data htmlHorizontalLine(); printf("

Exons data


\n"); printf("Show exon sequences and features\n"); printf("
\n"); fileName = trackDbSetting(tdb, "nuclUrl"); -bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasChromToAliasHash(database)); +bbi = bigBedFileOpenAlias(hReplaceGbdb(fileName), chromAliasFindAliases); //struct lm *lm = lmInit(0); bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm); for (bb = bbList; bb != NULL; bb = bb->next) { if (!(bb->start == start && bb->end == end)) continue; // our names are unique char *name = cloneFirstWordByDelimiterNoSkip(bb->rest, '\t'); boolean match = (isEmpty(name) && isEmpty(item)) || sameOk(name, item); if (!match) continue; char startBuf[16], endBuf[16]; bigBedIntervalToRow(bb, chrom, startBuf, endBuf, fields, bbi->fieldCount);