Visitar URL original
Isoform nomenclature question · Issue #217 · ncbi/egapx · GitHub
Skip to content

Isoform nomenclature question #217

Open

Description

@MonicaPoelchau-USDA

Hi EGAPx team! I have some questions about the isoform nomenclature rules that EGAPx uses in product attributes. I've noticed three types of isoform product suffixes (where 'N' is a number):

  1. isoform N (for mRNA/CDS features)
  2. -TN (for mRNA/CDS features)
  3. transcript variant XN (for transcript features)

Some observations about the suffixes:

  • In some cases, the number used in the 'isoform' suffix and the '-T' suffix is different for the same isoform.
  • For protein-coding isoforms, the transcript ID uses '-RN' instead of '-TN'.
  • For transcript features, different rules for isoform naming are used.

My questions are:

  1. Why are two separate suffixes used in the same product value for protein-coding isoforms?
  2. Why do the numbers used in the separate suffixes sometimes differ for the same isoform?
  3. Why use 'TN' for the protein-coding product suffix, 'RN' for the protein-coding transcript ID suffix, and 'XN' for transcript feature product suffixes?

Here are some examples from EGAPx runs (v0.4.1 and v0.5):

  • product=heat shock protein 60A-like isoform 1-T1
  • product=uncharacterized protein isoform 1-T2
  • product=synaptotagmin 1 isoform 1-T3
  • product=uncharacterized protein isoform 2-T3
  • product=cramped chromatin regulator%2C transcript variant X5

Thanks for your help with this!

Activity

  1. murphyte commented on Mar 25, 2026

    @murphyte

    There are some background details to note:

    1. Multiple mRNAs can encode the same protein (identical CDS features) if they differ only in their UTRs.
    2. For EGAP, the RefSeq data model allows distinct mRNA and CDS product names; in contrast, the GenBank data model requires them to be identical.
    3. EGAPx first assigns RefSeq-style names which are then transformed to meet GenBank requirements

    For mRNA:CDS pairs, the final product name is intended for human consumption and is based on the CDS. Differences in the isoform # counter mean the CDSes are different. The -T# suffix is added to indicate the mRNA transcript variant #. So a gene with 3 pairs of mRNA:CDS, where the first two have the same CDS, will be:
    isoform 1-T1
    isoform 1-T2
    isoform 2-T3

    That structure retains the distinct transcript counters relevant for the mRNAs while allowing you to tell which CDSes are identical (if you know the naming convention).

    For the transcript_id and protein_id, which later get transformed into orig_transcript_id and the GenBank protein accession, they're constructed as locus_tag-[R|P]# where R=RNA, P=Protein, and the # counter is the transcript counter. They need to be distinct for every feature, even for two identical CDSes, and this was a more typical convention.

    For non-coding transcripts from gnomon, there are two types:

    1. misc_RNA features on coding genes, which typically have a splice structure that makes them candidates for nonsense-mediated decay (NMD)
    2. lncRNAs

    neither feature type currently have their product names transformed from the original RefSeq style since they don't have paired CDSes to derive the name from. This could be a bit cleaner to at least switch the "X" to "T" for better consistency with the mRNAs. I think we can also add orig_transcript_id, which isn't required for GenBank but would provide better consistency across the features.

  2. MonicaPoelchau-USDA commented on Apr 3, 2026

    @MonicaPoelchau-USDA
    Author

    Thanks for the explanations @murphyte! This helps.

    I've talked through this with some of our users, and they agree that switching the "X" to "T" for non-coding transcripts would be helpful for consistency. That said, it's not a huge deal if it's too challenging to make the switch at this point.

    I personally think addingorig_transcript_id to misc_RNA and lncRNA features would be quite helpful for consistency, if they end up being indexed by GenBank.

  3. murphyte commented on Apr 3, 2026

    @murphyte

    yep, I made a backlog ticket, but I don't know when we'll get to it. Thanks for asking -- I do agree clearing up the inconsistency is worthwhile in the long run.

  4. MonicaPoelchau-USDA commented on Jul 9, 2026

    @MonicaPoelchau-USDA
    Author

    Hello again! I have another question about EGAPx isoform nomenclature.

    We've noticed some cases where some isoforms receive an informative product name (e.g. plasma membrane ascorbate-dependent reductase CYBRD1-like isoform 2-T2), but other isoforms of the same gene model don't (e.g. uncharacterized protein isoform 1-T1). The isoforms do not differ substantially from each other (89% ID at the transcript level in the example below). Do you know why that might be?

    Example:

    scaffold_3	Gnomon	mRNA	42767826	42790747	.	-	.	ID=rna-Onco_EGAPx_v2_002953-R1;Parent=gene-Onco_EGAPx_v2_002953;gbkey=mRNA;locus_tag=Onco_EGAPx_v2_002953;model_evidence=Supporting evidence includes similarity to: 1 Protein%2C 13 long SRA reads%2C and 65%25 coverage of the annotated genomic feature by RNAseq alignments;orig_protein_id=gnl|EGAPX|Onco_EGAPx_v2_002953-P1;orig_transcript_id=gnl|EGAPX|Onco_EGAPx_v2_002953-R1;product=uncharacterized protein isoform 1-T1
    scaffold_3	Gnomon	mRNA	42767826	42782849	.	-	.	ID=rna-Onco_EGAPx_v2_002953-R2;Parent=gene-Onco_EGAPx_v2_002953;gbkey=mRNA;locus_tag=Onco_EGAPx_v2_002953;model_evidence=Supporting evidence includes similarity to: 1 Protein%2C 7 long SRA reads%2C and 68%25 coverage of the annotated genomic feature by RNAseq alignments;orig_protein_id=gnl|EGAPX|Onco_EGAPx_v2_002953-P2;orig_transcript_id=gnl|EGAPX|Onco_EGAPx_v2_002953-R2;product=plasma membrane ascorbate-dependent reductase CYBRD1-like isoform 2-T2
    
  5. murphyte commented on Jul 9, 2026

    @murphyte

    @MonicaPoelchau-USDA - in the absence of orthology, individual isoforms of a gene get named based on their SwissProt best hit, as long as it's at least 50% query coverage. I suspect the hits are close to that coverage threshold such that one is above the cutoff and not the other.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions