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.</p> <a name=GenePredictions></a> <p><strong>Gene Predictions</strong></p> <p> The following definition is used for gene prediction tables. In alternative-splicing situations, each transcript has a row in this table.</p> <pre><code>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" ) </code></pre> <a name=GenePredExt></a> <p><strong>Gene Predictions (Extended)</strong></p> <p> 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.</p> <pre><code>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}" ) </code></pre> <p>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 <code>cdsStart</code> equals <code>cdsEnd</code> +(coding transcripts have <code>cdsStart != cdsEnd</code>). 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 <a href="../../FAQ/FAQgenes.html#coding" target="_blank">coding/non-coding genes FAQ</a> for more information.</p> <p> <b>The exonFrames field:</b> The field <code>exonFrames</code> 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 @@ <a name=RefFlat></a> <p><strong>Gene Predictions and RefSeq Genes with Gene Names</strong></p> <p> 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.</p> <pre><code>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" ) </code></pre> <a name="format10"></a> <h2>Personal Genome SNP format</h2> <p> This format is for displaying SNPs from personal genomes. It is the same as is used for the Genome Variants and Population Variants tracks.</p> <ol> <li> <strong>chrom</strong> - The name of the chromosome (e.g. chr3, chrY, chr2_random) or scaffold (e.g. scaffold10671).</li>