In Snpeff-Impact, What Is Difference Between Stop_Gained And Non-Synonymous_Stop?
2
1
Entering edit mode
12.3 years ago
Omid ▴ 590

In SNPEFF-IMPACT tool, What is difference between STOP_GAINED and NON-SYNONYMOUS_STOP?

In SNPEFF, effects are categorized by their impact including (High, Moderate, Low and Modifier). I would like to know, what is difference between STOP-GAINED and NON-SYNONYMOUS-STOP?

STOP-GAINED has been categorized in High impact and NON-SYNONYMOUS-STOP has been categorized in Low impact.

Reference : SNPEFF table

variant • 5.4k views
ADD COMMENT
2
Entering edit mode
12.3 years ago
matted 7.8k

Without looking at it, my guess is that the variant changes the original stop codon to a different stop codon (that is, it switches among TAG, TAA, and TGA). So the codon changes (it's non-synonymous), but the effect for the gene should not.

Edit: What I described is a SYNONYMOUS_STOP. As I understand it, a NON_SYNONYMOUS_STOP can't arise, and exists in the code only as an oversight. As evidence of this, only a SYNONYMOUS STOP is explicitly documented in the FAQ. Furthermore, in one of my datasets, I observe over 1000 SYNONYMOUS_STOP calls and no NON_SYNONYMOUS_STOP calls.

More explanation from the relevant code:

                        if (aaOld.equals(aaNew)) {
                                // Same AA: Synonymous coding                                                                                                                                                                                 
                                if ((codonNum == 0) && codonTable.isStartFirst(codonsOld)) {
                                        // details removed
                                } else if (codonTable.isStop(codonsOld)) {
                                        if (codonTable.isStop(codonsNew)) effectType = EffectType.SYNONYMOUS_STOP;
                                        else effectType = EffectType.STOP_LOST;
                                } else effectType = EffectType.SYNONYMOUS_CODING;
                        } else {
                                // Different AA: Non-synonymous coding                                                                                                                                                                        
                                if ((codonNum == 0) && codonTable.isStartFirst(codonsOld)) {
                                        // details removed
                                } else if (codonTable.isStop(codonsOld)) {
                                        if (codonTable.isStop(codonsNew)) effectType = EffectType.NON_SYNONYMOUS_STOP;
                                        else effectType = EffectType.STOP_LOST;
                                } else if (codonTable.isStop(codonsNew)) effectType = EffectType.STOP_GAINED;
                                else effectType = EffectType.NON_SYNONYMOUS_CODING;
                        }

There is no way for the old and new codons to be different (to get into the outer else block) and for both codons to be stop. If they're both stop codons, they'll be the same and go to the first if branch. So the NON_SYNONYMOUS_STOP branch is never reached.

ADD COMMENT
0
Entering edit mode

thanks Matted, If your description is correct now I have an other question: What is difference between synonymous-stop and non-synonymous-stop?Both of them there are in SNPEFF table and also both have Low impact.

ADD REPLY
0
Entering edit mode

Ah, interesting. It looks like NON_SYNONYMOUS_STOP is something that doesn't (can't) exist, and SYNONYMOUS_STOP is what I explained above. I've edited my answer to have more detail since there's more room there.

ADD REPLY
3
Entering edit mode
12.3 years ago
Pablo ★ 1.9k

When I wrote the code, I added the condition (mostly for symmetry). Actually I think I added a "this should never happen" message at some point.

The only case would involve when a stop codons actually code for proteins (e.g. Selenocysteine). Which I'm not sure is biologically plausible. Furthermore, since so far there are no reliable computational methods to predict when 'U' amino acids occurs, that part of the code is unreachable.

So, matted's answer is correct. I'll update the table in the web page to remove sources of confusion (sorry about that).

ADD COMMENT

Login before adding your answer.

Traffic: 2431 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6