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/inc/annoStreamDbPslPlus.h src/hg/inc/annoStreamDbPslPlus.h
index 9df599f..da65484 100644
--- src/hg/inc/annoStreamDbPslPlus.h
+++ src/hg/inc/annoStreamDbPslPlus.h
@@ -1,24 +1,28 @@
 /* annoStreamDbPslPlus -- subclass of annoStreamer for joining PSL+CDS+seq database tables */
 
 #ifndef ANNOSTREAMDBPSLPLUS_H
 #define ANNOSTREAMDBPSLPLUS_H
 
 #include "annoStreamer.h"
+#include "jsonParse.h"
 
 #define PSLPLUS_NUM_COLS PSL_NUM_COLS+6
 #define PSLPLUS_CDS_IX PSL_NUM_COLS+0
 #define PSLPLUS_PROTACC_IX PSL_NUM_COLS+1
 #define PSLPLUS_NAME2_IX PSL_NUM_COLS+2
 #define PSLPLUS_PATH_IX PSL_NUM_COLS+3
 #define PSLPLUS_FILEOFFSET_IX PSL_NUM_COLS+4
 #define PSLPLUS_FILESIZE_IX PSL_NUM_COLS+5
 
 struct asObject *annoStreamDbPslPlusAsObj();
-/* Return an autoSql object with PSL, gene name, protein acc, CDS and sequence file info fields. */
+/* Return an autoSql object with PSL, gene name, protein acc, CDS and sequence file info fields.
+ * An annoStreamDbPslPlus instance may return additional additional columns if configured, but
+ * these columns will always be present. */
 
-struct annoStreamer *annoStreamDbPslPlusNew(struct annoAssembly *aa, char *gpTable, int maxOutRows);
+struct annoStreamer *annoStreamDbPslPlusNew(struct annoAssembly *aa, char *gpTable, int maxOutRows,
+                                            struct jsonElement *config);
 /* Create an annoStreamer (subclass) object that streams PSL, CDS and seqFile info.
  * gpTable is a genePred table that has associated PSL, CDS and sequence info
  * (i.e. refGene, ncbiRefSeq, ncbiRefSeqCurated or ncbiRefSeqPredicted). */
 
 #endif//ndef ANNOSTREAMDBPSLPLUS_H