83858083785a6b2b1f3c05f93e818e5a89318692 max Tue Aug 25 01:42:34 2026 -0700 hgSession: show cytoBand and gene/locus annotations for each saved session; date-only Created/Last used columns with full timestamp on hover. Factor locusName lookup into reusable hLocusName/hLocusNameExpand in hdb.c and reuse from hgBlat. refs #38157 The Assembly column now shows band, gene/locus name and Mbp position (separated by whitespace, normal text size). hLocusNameExpand centralizes the ex:/in:/ig: and | to - expansion that hgBlat's results page did inline. diff --git src/hg/inc/hdb.h src/hg/inc/hdb.h index e604aebfea5..88dee2a4bf2 100644 --- src/hg/inc/hdb.h +++ src/hg/inc/hdb.h @@ -278,30 +278,38 @@ /* Return mixed case (repeats in lower case) DNA from chromosome, given an * input nib path. */ struct dnaSeq *hSeqForBed(char *db, struct bed *bed); /* Get the sequence associated with a particular bed concatenated together. */ boolean hChromBand(char *db, char *chrom, int pos, char retBand[HDB_MAX_BAND_STRING]); /* Fill in text string that says what band pos is on. * Return FALSE if not on any band, or table missing. */ boolean hChromBandConn(struct sqlConnection *conn, char *chrom, int pos, char retBand[HDB_MAX_BAND_STRING]); /* Fill in text string that says what band pos is on. * Return FALSE if not on any band, or table missing. */ +char *hLocusNameExpand(char *raw); +/* Expand locusName-table abbreviations ("ex:"/"in:"/"ig:" and "|") into a human-readable + * string. Returns a cloneString'd value (caller frees), or NULL for empty input. */ + +char *hLocusName(struct sqlConnection *conn, char *chrom, int start, int end); +/* If conn's database has a "locusName" table, return the human-readable gene/locus label + * overlapping the range ("intron STON2", "intergenic FOO-BAR"), else NULL. Caller frees. */ + boolean hScaffoldPos(char *db, char *chrom, int start, int end, char **retScaffold, int *retStart, int *retEnd); /* Return the scaffold, and start end coordinates on a scaffold, for * a chromosome range. If the range extends past end of a scaffold, * it is truncated to the scaffold end. * Return FALSE if unable to convert */ struct dnaSeq *hDnaFromSeq(char *db, char *seqName, int start, int end, enum dnaCase dnaCase); /* Fetch DNA in a variety of cases. */ struct dnaSeq *hLoadChrom(char *db, char *chromName); /* Fetch entire chromosome into memory. */ void hNibForChrom(char *db, char *chromName, char retNibName[HDB_MAX_PATH_STRING]);