# Class LossOfFunction

java.lang.Object
org.snpeff.snpEffect.LossOfFunction

public class LossOfFunction extends Object
Analyze if a set of effects are can create a "Loss Of Function" and "Nonsense mediated decays" effects. Of course, this is a prediction based on analysis of groups of "putative effects". Proper wet-lab validation is required to infer "real" LOF. References: I used the LOF definition used in the following paper "A Systematic Survey of Loss-of-Function Variants in Human Protein-Coding Genes", Science, 2012 From the paper: We adopted a definition for LoF variants expected to correlate with complete loss of function of the affected transcripts: stop codon-introducing (nonsense) or splice site-disrupting single-nucleotide variants (SNVs), insertion/deletion (indel) variants predicted to disrupt a transcript's reading frame, or larger deletions removing either the first exon or more than 50% of the protein-coding sequence of the affected transcript. Both nonsense SNVs and frameshift indels are enriched toward the 3' end of the affected gene, consistent with a greater tolerance to truncation close to the end of the coding sequence (Fig. 1C); putative LoF variants identified in the last 5% of the coding region were thus systematically removed from our high-confidence set.

Author:
  pcingola

## Field Summary

Fields
Modifier and Type
Field
Description
`static final double`
`DEFAULT_DELETE_PROTEIN_CODING_BASES`
Larger deletions removing either the first exon or more than 50% of the protein-coding sequence of the affected transcript
`static final double`
`DEFAULT_IGNORE_PROTEIN_CODING_AFTER`
It is assumed that even with a protein coding change at the last 5% of the protein, the protein could still be functional.
`static final double`
`DEFAULT_IGNORE_PROTEIN_CODING_BEFORE`
It is assumed that even with a protein coding change at the first 5% of the protein: "..suggesting some disrupted transcripts are rescued by transcriptional reinitiation at an alternative start codon."
`double`
`deleteProteinCodingBases`
`double`
`ignoreProteinCodingAfter`
`double`
`ignoreProteinCodingBefore`
`static final int`
`MND_BASES_BEFORE_LAST_JUNCTION`
Number of bases before last exon-exon junction that nonsense mediated decay is supposed to occur
`static final String`
`VCF_INFO_LOF_NAME`
`static final String`
`VCF_INFO_NMD_NAME`

## Constructor Summary

Constructors
Constructor
Description
`LossOfFunction(Config config, Collection<VariantEffect> variantEffects)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`isLof()`
Can this collection of effects produce a "Loss of function"
`protected boolean`
`isLof(VariantEffect variantEffect)`
Is this single change a LOF? Criteria: 1) Core splice sites acceptors or donors (only CORE ones) 2) Stop gained (if this happens at the last part of the protein, we assume it has no effect) 3) Frame shifts
`protected boolean`
`isLofDeletion(VariantEffect variantEffect)`
Is this deletion a LOF? Criteria: 1) First (coding) exon deleted 2) More than 50% of coding sequence deleted
`boolean`
`isNmd()`
Can this collection of effects produce a "Nonsense mediated decay"?
`protected boolean`
`isNmd(VariantEffect variantEffect)`
Is this single change a LOF? Criteria: 1) Core splice sites acceptors or donors (only CORE ones) 2) Stop gained (if this happens at the last part of the protein, we assume it has no effect) 3) Frame shifts
`int`
`lastNmdPos(Transcript tr)`
Find the last position where a nonsense mediated decay is supposed to occurr This is 50 bases (MND_BASES_BEFORE_LAST_JUNCTION bases) before the last exon-exon junction.
`String`
`toString()`
`String`
`toStringVcfLof()`
Get LOF value for VCF info field
`String`
`toStringVcfNmd()`
Get NMD value for VCF info field

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### VCF_INFO_NMD_NAME

public static final String VCF_INFO_NMD_NAME

See Also:
  - Constant Field Values

### VCF_INFO_LOF_NAME

public static final String VCF_INFO_LOF_NAME

See Also:
  - Constant Field Values

### MND_BASES_BEFORE_LAST_JUNCTION

public static final int MND_BASES_BEFORE_LAST_JUNCTION
Number of bases before last exon-exon junction that nonsense mediated decay is supposed to occur

See Also:
  - Constant Field Values

### DEFAULT_IGNORE_PROTEIN_CODING_AFTER

public static final double DEFAULT_IGNORE_PROTEIN_CODING_AFTER
It is assumed that even with a protein coding change at the last 5% of the protein, the protein could still be functional.

See Also:
  - Constant Field Values

### DEFAULT_IGNORE_PROTEIN_CODING_BEFORE

public static final double DEFAULT_IGNORE_PROTEIN_CODING_BEFORE
It is assumed that even with a protein coding change at the first 5% of the protein: "..suggesting some disrupted transcripts are rescued by transcriptional reinitiation at an alternative start codon."

See Also:
  - Constant Field Values

### DEFAULT_DELETE_PROTEIN_CODING_BASES

public static final double DEFAULT_DELETE_PROTEIN_CODING_BASES
Larger deletions removing either the first exon or more than 50% of the protein-coding sequence of the affected transcript

See Also:
  - Constant Field Values

### ignoreProteinCodingAfter

public double ignoreProteinCodingAfter

### ignoreProteinCodingBefore

public double ignoreProteinCodingBefore

### deleteProteinCodingBases

public double deleteProteinCodingBases

## Constructor Details

### LossOfFunction

public LossOfFunction(Config config, Collection<VariantEffect> variantEffects)

## Method Details

### isLof

public boolean isLof()
Can this collection of effects produce a "Loss of function"

### isLof

protected boolean isLof(VariantEffect variantEffect)
Is this single change a LOF? Criteria: 1) Core splice sites acceptors or donors (only CORE ones) 2) Stop gained (if this happens at the last part of the protein, we assume it has no effect) 3) Frame shifts

### isLofDeletion

protected boolean isLofDeletion(VariantEffect variantEffect)
Is this deletion a LOF? Criteria: 1) First (coding) exon deleted 2) More than 50% of coding sequence deleted

### isNmd

public boolean isNmd()
Can this collection of effects produce a "Nonsense mediated decay"?

### isNmd

protected boolean isNmd(VariantEffect variantEffect)
Is this single change a LOF? Criteria: 1) Core splice sites acceptors or donors (only CORE ones) 2) Stop gained (if this happens at the last part of the protein, we assume it has no effect) 3) Frame shifts

### lastNmdPos

public int lastNmdPos(Transcript tr)
Find the last position where a nonsense mediated decay is supposed to occurr This is 50 bases (MND_BASES_BEFORE_LAST_JUNCTION bases) before the last exon-exon junction.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### toStringVcfLof

public String toStringVcfLof()
Get LOF value for VCF info field

### toStringVcfNmd

public String toStringVcfNmd()
Get NMD value for VCF info field