Package org.snpeff.interval

# Class Exon

java.lang.Object
org.snpeff.interval.Interval
org.snpeff.interval.Marker
org.snpeff.interval.MarkerSeq
org.snpeff.interval.Exon

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Comparable<Interval>`, `MarkerWithFrame`, `TxtSerializable`

public class Exon extends MarkerSeq implements MarkerWithFrame
Interval for an exon

Author:
  pcingola
See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`Exon.ExonSpliceType`
Characterize exons based on alternative splicing References: "Alternative splicing and evolution - diversification, exon definition and function" (see Box 1)

## Field Summary

Fields
Modifier and Type
Field
Description
`static int`
`ToStringVersion`

### Fields inherited from class org.snpeff.interval.Marker

`type`

### Fields inherited from class org.snpeff.interval.Interval

`chromosomeNameOri, end, id, parent, start, strandMinus`

## Constructor Summary

Constructors
Constructor
Description
`Exon()`
`Exon(Transcript parent, int start, int end, boolean strandMinus, String id, int rank)`

## Method Summary

Modifier and Type
Method
Description
`void`
`add(SpliceSite ss)`
Add a splice site to the collection
`Exon`
`apply(Variant variant)`
Apply variant to exon WARNING: There might be conditions which change the exon type (e.g.
`Exon`
`cloneShallow()`
Perform a shallow clone
`SpliceSiteRegion`
`createSpliceSiteRegionEnd(int size)`
Create splice site regions
`SpliceSiteRegion`
`createSpliceSiteRegionStart(int size)`
Create splice site regions
`boolean`
`frameCorrection(int frameCorrection)`
Correct exons according to frame information Shift the start position one base
`int`
`getAaIdxEnd()`
`int`
`getAaIdxStart()`
`int`
`getFrame()`
`int`
`getRank()`
`ArrayList<SpliceSite>`
`getSpliceSites()`
`Exon.ExonSpliceType`
`getSpliceType()`
`protected boolean`
`isAdjustIfParentDoesNotInclude(Marker parent)`
Adjust parent if it does not include child?
`Markers`
`query(Marker marker)`
Query all genomic regions that intersect 'marker'
`void`
`reset()`
`ErrorWarningType`
`sanityCheck(Variant variant)`
Check that the base in the exon corresponds with the one in the SNP
`void`
`serializeParse(MarkerSerializer markerSerializer)`
Parse a line from a serialized file
`String`
`serializeSave(MarkerSerializer markerSerializer)`
Create a string to serialize to a file
`void`
`setAaIdx(int aaIdxStart, int aaIdxEnd)`
`void`
`setFrame(int frame)`
Frame can be {-1, 0, 1, 2}, where '-1' means unknown
`void`
`setRank(int rank)`
`String`
`toString()`
`boolean`
`variantEffect(Variant variant, VariantEffects variantEffects)`
Note: This only adds spliceSites effects, for detailed codon changes effects we use 'CodonChange' class

### Methods inherited from class org.snpeff.interval.MarkerSeq

`applyDel, applyDup, applyIns, applyMnp, applySnp, basesAt, basesAtPos, getSequence, getSequence, hasSequence, setSequence, union`

### Methods inherited from class org.snpeff.interval.Marker

`adjust, applyDel, applyDup, applyIns, applyMixed, clone, codonTable, compareTo, compareToPos, distance, distanceBases, getParent, getType, idChain, idChain, idChain, includes, intersect, isDeferredAnalysis, isShowWarningIfParentDoesNotInclude, minus, query, readTxt, shouldApply, variantEffectNonRef`

### Methods inherited from class org.snpeff.interval.Interval

`equals, findParent, getChromosome, getChromosomeName, getChromosomeNameOri, getChromosomeNum, getEnd, getGenome, getGenomeName, getId, getStart, getStrand, hashCode, intersects, intersects, intersects, intersects, intersectSize, isCircular, isSameChromo, isStrandMinus, isStrandPlus, isValid, setChromosomeNameOri, setEnd, setId, setParent, setStart, setStrandMinus, shiftCoordinates, size, toStr, toStringAsciiArt, toStrPos`

### Methods inherited from class java.lang.Object

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

## Field Details

### ToStringVersion

public static int ToStringVersion

## Constructor Details

### Exon

public Exon()

### Exon

public Exon(Transcript parent, int start, int end, boolean strandMinus, String id, int rank)

## Method Details

### add

public void add(SpliceSite ss)
Add a splice site to the collection

### apply

public Exon apply(Variant variant)
Apply variant to exon WARNING: There might be conditions which change the exon type (e.g. an intron is deleted). Nevertheless ExonSpliceType is not updated since it reflects the exon type before a sequence change.

Overrides:
  `apply` in class `MarkerSeq`
Returns:
  The marker result after applying variant

### cloneShallow

public Exon cloneShallow()
Description copied from class: `Marker`
Perform a shallow clone

Overrides:
  `cloneShallow` in class `MarkerSeq`

### createSpliceSiteRegionEnd

public SpliceSiteRegion createSpliceSiteRegionEnd(int size)
Create splice site regions

### createSpliceSiteRegionStart

public SpliceSiteRegion createSpliceSiteRegionStart(int size)
Create splice site regions

### frameCorrection

public boolean frameCorrection(int frameCorrection)
Correct exons according to frame information Shift the start position one base

### getAaIdxEnd

public int getAaIdxEnd()

### getAaIdxStart

public int getAaIdxStart()

### getFrame

public int getFrame()

Specified by:
  `getFrame` in interface `MarkerWithFrame`

### getRank

public int getRank()

### getSpliceSites

public ArrayList<SpliceSite> getSpliceSites()

### getSpliceType

public Exon.ExonSpliceType getSpliceType()

### isAdjustIfParentDoesNotInclude

protected boolean isAdjustIfParentDoesNotInclude(Marker parent)
Description copied from class: `Marker`
Adjust parent if it does not include child?

Overrides:
  `isAdjustIfParentDoesNotInclude` in class `Marker`

### query

public Markers query(Marker marker)
Query all genomic regions that intersect 'marker'

Overrides:
  `query` in class `Marker`

### reset

public void reset()

### sanityCheck

public ErrorWarningType sanityCheck(Variant variant)
Check that the base in the exon corresponds with the one in the SNP

### serializeParse

public void serializeParse(MarkerSerializer markerSerializer)
Parse a line from a serialized file

Specified by:
  `serializeParse` in interface `TxtSerializable`
Overrides:
  `serializeParse` in class `MarkerSeq`

### serializeSave

public String serializeSave(MarkerSerializer markerSerializer)
Create a string to serialize to a file

Specified by:
  `serializeSave` in interface `TxtSerializable`
Overrides:
  `serializeSave` in class `MarkerSeq`

### setAaIdx

public void setAaIdx(int aaIdxStart, int aaIdxEnd)

### setFrame

public void setFrame(int frame)
Frame can be {-1, 0, 1, 2}, where '-1' means unknown

Specified by:
  `setFrame` in interface `MarkerWithFrame`

### setRank

public void setRank(int rank)

### toString

public String toString()

Overrides:
  `toString` in class `MarkerSeq`

### variantEffect

public boolean variantEffect(Variant variant, VariantEffects variantEffects)
Note: This only adds spliceSites effects, for detailed codon changes effects we use 'CodonChange' class

Overrides:
  `variantEffect` in class `Marker`