a7ab24571507f19cc40e4ef65800401b43000a0f
braney
  Mon Dec 6 13:16:27 2021 -0800
support itemRgb for bigPsl, remove overload of lf->extra field for
USE_ITEM_RGB and replace it with a reasonably named field in lf
(useItemRbg)

diff --git src/hg/hgTracks/bigBedTrack.c src/hg/hgTracks/bigBedTrack.c
index 85ca2c7..f3b7f67 100644
--- src/hg/hgTracks/bigBedTrack.c
+++ src/hg/hgTracks/bigBedTrack.c
@@ -538,30 +538,33 @@
         // fill out bedRow to support mouseOver pattern replacements
         char startBuf[16], endBuf[16];
         bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow));
         char *seq, *cds;
         struct psl *psl = pslFromBigPsl(chromName, bb, seqTypeField,  &seq, &cds);
         int sizeMul =  pslIsProtein(psl) ? 3 : 1;
         boolean isXeno = 0;  // just affects grayIx
         boolean nameGetsPos = FALSE; // we want the name to stay the name
 
         lf = lfFromPslx(psl, sizeMul, isXeno, nameGetsPos, track);
         lf->original = psl;
         if ((seq != NULL) && (lf->orientation == -1))
             reverseComplement(seq, strlen(seq));
         lf->extra = seq;
         lf->cds = cds;
+        lf->useItemRgb = useItemRgb;
+        if ( lf->useItemRgb )
+            lf->filterColor = itemRgbColumn(bedRow[8]);
         }
     else if (sameString(tdb->type, "bigDbSnp"))
         {
         // bigDbSnp does not have a score field, but I want to compute the freqSourceIx from
         // trackDb and settings one time instead of for each item, so I'm overloading scoreMin.
         int freqSourceIx = scoreMin;
         lf = lfFromBigDbSnp(tdb, bb, filters, freqSourceIx);
         }
     else
 	{
         char startBuf[16], endBuf[16];
         bigBedIntervalToRow(bb, chromName, startBuf, endBuf, bedRow, ArraySize(bedRow));
         if (bigBedFilterInterval(bedRow, filters))
             {
             struct bed *bed = bedLoadN(bedRow, fieldCount);