059927383e72afe59202535b4863fc016463127a
max
  Thu Sep 3 15:04:05 2026 -0700
Document that cdsStart == cdsEnd marks a non-coding transcript in genePred format, refs #38245

This convention was previously only documented indirectly, as a SQL
filtering tip on the Gene tracks FAQ page. Add it next to the
cdsStart/cdsEnd field declarations in genePred.as, genePredExt.as,
sangerGene.as, ensGene.as, knownGene.as, refFlat.as, genePred.h and
sangerGene.h, and mention it in FAQformat.html and bigGenePred.html
(via the equivalent thickStart == thickEnd check).

diff --git src/hg/lib/genePredExt.as src/hg/lib/genePredExt.as
index 6355fa8bf3a..e5cb7519223 100644
--- src/hg/lib/genePredExt.as
+++ src/hg/lib/genePredExt.as
@@ -1,20 +1,20 @@
 table genePredExt
 "A gene prediction with some additional info."
     (
     string name;	"Name of gene (usually transcript_id from GTF)"
     string chrom;	"Reference sequence chromosome or scaffold"
     char[1] strand;     "+ or - for strand"
     uint txStart;	"Transcription start position (or end position for minus strand item)"
     uint txEnd;         "Transcription end position (or start position for minus strand item)"
-    uint cdsStart;	"Coding region start (or end position for minus strand item)"
-    uint cdsEnd;        "Coding region end (or start position for minus strand item)"
+    uint cdsStart;	"Coding region start (or end position for minus strand item); cdsStart == cdsEnd for non-coding transcripts"
+    uint cdsEnd;        "Coding region end (or start position for minus strand item); cdsStart == cdsEnd for non-coding transcripts"
     uint exonCount;     "Number of exons"
     uint[exonCount] exonStarts; "Exon start positions (or end positions for minus strand item)"
     uint[exonCount] exonEnds;   "Exon end positions (or start positions for minus strand item)"
     uint score;         "score"
     string name2;       "Alternate name (e.g. gene_id from GTF)"
     string cdsStartStat; "Status of CDS start annotation (none, unknown, incomplete, or complete)" 
     string cdsEndStat;   "Status of CDS end annotation (none, unknown, incomplete, or complete)"
     int[exonCount] exonFrames; "Reading frame of the start of the CDS region of the exon, in the direction of transcription (0,1,2), or -1 if there is no CDS region."
     )