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/htdocs/FAQ/FAQformat.html src/hg/htdocs/FAQ/FAQformat.html index 3c14911faaa..18d33e436d4 100755 --- src/hg/htdocs/FAQ/FAQformat.html +++ src/hg/htdocs/FAQ/FAQformat.html @@ -990,67 +990,69 @@ and amino acids when zoomed in to the base level.
Gene Predictions
The following definition is used for gene prediction tables. In alternative-splicing situations, each transcript has a row in this table.
table genePred
"A gene prediction."
(
string name; "Name of gene"
string chrom; "Chromosome name"
char[1] strand; "+ or - for strand"
uint txStart; "Transcription start position"
uint txEnd; "Transcription end position"
- uint cdsStart; "Coding region start"
- uint cdsEnd; "Coding region end"
+ uint cdsStart; "Coding region start; cdsStart == cdsEnd for non-coding transcripts"
+ uint cdsEnd; "Coding region end; cdsStart == cdsEnd for non-coding transcripts"
uint exonCount; "Number of exons"
uint[exonCount] exonStarts; "Exon start positions"
uint[exonCount] exonEnds; "Exon end positions"
)
Gene Predictions (Extended)
The following definition is used for extended gene prediction tables. In alternative-splicing situations, each transcript has a row in this table. The refGene table is an example of the genePredExt format.
table genePredExt
"A gene prediction with some additional info."
(
string name; "Name of gene (usually transcript_id from GTF)"
string chrom; "Chromosome name"
char[1] strand; "+ or - for strand"
uint txStart; "Transcription start position"
uint txEnd; "Transcription end position"
- uint cdsStart; "Coding region start"
- uint cdsEnd; "Coding region end"
+ uint cdsStart; "Coding region start; cdsStart == cdsEnd for non-coding transcripts"
+ uint cdsEnd; "Coding region end; cdsStart == cdsEnd for non-coding transcripts"
uint exonCount; "Number of exons"
uint[exonCount] exonStarts; "Exon start positions"
uint[exonCount] exonEnds; "Exon end positions"
int 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)"
lstring exonFrames; "Exon frame offsets {0,1,2}"
)
The fields cdsStartStat and cdsEndStat can have the following values: 'none' = none,
'unk' = unknown, 'incmpl' = incomplete, and 'cmpl' = complete. However, the values are not used for
-our display and cannot be used to identify which genes are coding or non-coding. For most purposes,
+our display and cannot be used to identify which genes are coding or non-coding. To determine
+whether a transcript is non-coding, check whether cdsStart equals cdsEnd
+(coding transcripts have cdsStart != cdsEnd). For most purposes,
to get more information about a transcript, other tables will need to be used.
For instance, in the case of hg38, the tables named wgEncodeGencodeAttrsVxx, where xx is the
Gencode Version number. See this coding/non-coding genes FAQ for more information.
The exonFrames field: The field exonFrames is a comma-separated list of the numbers
with the possible values 0, 1, 2 or -1, one per exon, in order of transcription.
This is different than the exonStarts and exonEnds fields - if the transcript is on the negative strand,
exonFrames are in the reverse order relative than exonStarts.
Put differently, it means that the first value for a transcript on the minus (-) strand is
the exon on the right of the screen on the Genome Browser.
A value of zero means that the first codon of the exon starts at the first nucleotide of the
exon. A value of one means that the first codon starts after the first
nucleotide and a value of two means that it starts after the second nucleotide.
@@ -1059,32 +1061,32 @@
Gene Predictions and RefSeq Genes with Gene Names
A version of genePred that associates the gene name with the gene prediction information. In alternative-splicing situations, each transcript has a row in this table.
table refFlat
"A gene prediction with additional geneName field."
(
string geneName; "Name of gene as it appears in Genome Browser."
string name; "Name of gene"
string chrom; "Chromosome name"
char[1] strand; "+ or - for strand"
uint txStart; "Transcription start position"
uint txEnd; "Transcription end position"
- uint cdsStart; "Coding region start"
- uint cdsEnd; "Coding region end"
+ uint cdsStart; "Coding region start; cdsStart == cdsEnd for non-coding transcripts"
+ uint cdsEnd; "Coding region end; cdsStart == cdsEnd for non-coding transcripts"
uint exonCount; "Number of exons"
uint[exonCount] exonStarts; "Exon start positions"
uint[exonCount] exonEnds; "Exon end positions"
)
This format is for displaying SNPs from personal genomes. It is the same as is used for the Genome Variants and Population Variants tracks.