3f06ffc10df40e72dfa18a150eeca23fda6b41df angie Thu Feb 8 13:42:04 2018 -0800 annoStreamDbPslPlus internally used a json config to join in CDS and sequence with the underlying PSL -- so annoStreamDbPslPlusNew did not accept an incoming config, so hgVai's RefSeq Status option was ignored. Add jsonObjectMerge so that the config from hgVai can be merged with the internal config, and make sure that the extra columns from the internal annoStreamDb are added to annoStreamDbPslPlusNew's asObj. We can't just use the internal annoStreamDb's asObj because the field names for CDS etc. fields would differ for refSeqAli vs ncbiRefSeq and column-matching to recognize annoStreamDbPslPlus would fail. refs #20948 diff --git src/hg/lib/hAnno.c src/hg/lib/hAnno.c index f7ddf0f..d8db9d7 100644 --- src/hg/lib/hAnno.c +++ src/hg/lib/hAnno.c @@ -347,31 +347,31 @@ } else { struct annoStreamer *streamer = hAnnoStreamerFromTrackDb(assembly, selTable, tdb, chrom, maxOutRows, config); boolean streamerIsGenePred = asColumnNamesMatchFirstN(streamer->asObj, genePredAsObj(), 10); boolean streamerIsBigGenePred = asObjectsMatch(streamer->asObj, bigGenePredAsObj()); if (primaryIsVariants && (streamerIsGenePred || streamerIsBigGenePred)) { if (streamerIsGenePred && (sameString("refGene", tdb->table) || startsWith("ncbiRefSeq", tdb->table))) { // We have PSL+CDS+seq for these tracks -- pass that instead of genePred // to annoGratorGpVar streamer->close(&streamer); - streamer = annoStreamDbPslPlusNew(assembly, tdb->table, maxOutRows); + streamer = annoStreamDbPslPlusNew(assembly, tdb->table, maxOutRows, config); } grator = annoGratorGpVarNew(streamer); } else grator = annoGratorNew(streamer); } grator->setOverlapRule(grator, overlapRule); return grator; } static struct asObject *getAutoSqlForType(char *db, char *chrom, struct trackDb *tdb) /* Return an asObject for tdb->type if recognized as a hub or custom track type. */ { struct asObject * asObj = NULL; if (startsWith("wig", tdb->type) || startsWithWord("bigWig", tdb->type))