f1256eb735a0f31e9495e0f9d5dc3ec95fdf7eda
chmalee
  Tue Nov 8 16:02:49 2022 -0800
Fix negative strand exon number output in Table Browser, refs #30232

diff --git src/hg/lib/featureBits.c src/hg/lib/featureBits.c
index b34f53d..4630a73 100644
--- src/hg/lib/featureBits.c
+++ src/hg/lib/featureBits.c
@@ -527,32 +527,34 @@
 			if (e > bed->thickStart) e = bed->thickStart;
 			}
 		    else
 			{
 			if (e < bed->thickEnd) continue;
 			if (s < bed->thickEnd) s = bed->thickEnd;
 			}
 		    fName = "utr3";
 		    }
 		else
 		    {
 		    fName = "exon";
 		    }
 		if (!doScore || (doScore && bed->score >= scoreThreshold))
 		    {
+                    // the -1 is because we output exon numbers starting at 0
+                    int exonNum = bed->strand[0] == '+' ? i : count - 1 - i;
 		    safef(nameBuf, sizeof(nameBuf), "%s_%s_%d_%d_%s_%d_%c", 
-			    bed->name, fName, i, extraSize, bed->chrom, s+1,
+			    bed->name, fName, exonNum, extraSize, bed->chrom, s+1,
 			    frForStrand(bed->strand[0]));
 		    setRangePlusExtra(db, &fbList, nameBuf, bed->chrom, s, e,
 				      bed->strand[0], extraSize, extraSize,
 				      chromStart, chromEnd);
 		    }
 		}
 	    }
 	else
 	    {
 	    if (doCds)
 		{
 		s = bed->thickStart;
 		e = bed->thickEnd;
 		fName = "cds";
 		}