public class Allele extends java.lang.Object implements java.lang.Comparable<Allele>, java.io.Serializable
Types of alleles:
Ref: a t C g a // C is the reference base : a t G g a // C base is a G in some individuals : a t - g a // C base is deleted w.r.t. the reference : a t CAg a // A base is inserted w.r.t. the reference sequence
In these cases, where are the alleles?
Suppose I see a the following in the population:
Ref: a t C g a // C is the reference base : a t G g a // C base is a G in some individuals : a t - g a // C base is deleted w.r.t. the reference
How do I represent this? There are three segregating alleles:
{ C , G , - }
and these are represented as:
{ tC, tG, t }
Now suppose I have this more complex example:
Ref: a t C g a // C is the reference base : a t - g a : a t - - a : a t CAg a
There are actually four segregating alleles:
{ Cg , -g, --, and CAg } over bases 2-4
represented as:
{ tCg, tg, t, tCAg }
Critically, it should be possible to apply an allele to a reference sequence to create the correct haplotype sequence:
Allele + reference => haplotype
For convenience, we are going to create Alleles where the GenomeLoc of the allele is stored outside of the Allele object itself. So there's an idea of an A/C polymorphism independent of it's surrounding context. Given list of alleles it's possible to determine the "type" of the variation
A / C @ loc => SNP - / A => INDEL
If you know where allele is the reference, you can determine whether the variant is an insertion or deletion.
Alelle also supports is concept of a NO_CALL allele. This Allele represents a haplotype that couldn't be determined. This is usually represented by a '.' allele.
Note that Alleles store all bases as bytes, in **UPPER CASE**. So 'atc' == 'ATC' from the perspective of an Allele.
Modifier and Type | Field and Description |
---|---|
static Allele |
NO_CALL |
static java.lang.String |
NO_CALL_STRING
A generic static NO_CALL allele for use
|
static Allele |
NON_REF_ALLELE |
static java.lang.String |
NON_REF_STRING
A generic static NON_REF allele for use
|
static long |
serialVersionUID |
static Allele |
SPAN_DEL |
static java.lang.String |
SPAN_DEL_STRING
A generic static SPAN_DEL allele for use
|
Modifier | Constructor and Description |
---|---|
protected |
Allele(Allele allele,
boolean ignoreRefState)
Creates a new allele based on the provided one.
|
protected |
Allele(byte[] bases,
boolean isRef) |
protected |
Allele(java.lang.String bases,
boolean isRef) |
Modifier and Type | Method and Description |
---|---|
static boolean |
acceptableAlleleBases(byte[] bases) |
static boolean |
acceptableAlleleBases(byte[] bases,
boolean isReferenceAllele) |
static boolean |
acceptableAlleleBases(java.lang.String bases) |
static boolean |
acceptableAlleleBases(java.lang.String bases,
boolean isReferenceAllele) |
boolean |
basesMatch(Allele test) |
boolean |
basesMatch(byte[] test) |
boolean |
basesMatch(java.lang.String test) |
int |
compareTo(Allele other) |
static Allele |
create(Allele allele,
boolean ignoreRefState)
Creates a new allele based on the provided one.
|
static Allele |
create(byte base) |
static Allele |
create(byte[] bases)
Creates a non-Ref allele.
|
static Allele |
create(byte[] bases,
boolean isRef)
Create a new Allele that includes bases and if tagged as the reference allele if isRef == true.
|
static Allele |
create(byte base,
boolean isRef) |
static Allele |
create(java.lang.String bases)
Creates a non-Ref allele.
|
static Allele |
create(java.lang.String bases,
boolean isRef) |
boolean |
equals(Allele other,
boolean ignoreRefState)
Returns true if this and other are equal.
|
boolean |
equals(java.lang.Object other) |
static Allele |
extend(Allele left,
byte[] right) |
byte[] |
getBases()
Return the DNA bases segregating in this allele.
|
java.lang.String |
getBaseString()
Return the DNA bases segregating in this allele in String format.
|
byte[] |
getDisplayBases()
Same as #getDisplayString() but returns the result as byte[].
|
java.lang.String |
getDisplayString()
Return the printed representation of this allele.
|
static Allele |
getMatchingAllele(java.util.Collection<Allele> allAlleles,
byte[] alleleBases) |
int |
hashCode() |
boolean |
isCalled() |
boolean |
isNoCall() |
boolean |
isNonReference() |
boolean |
isReference() |
boolean |
isSymbolic() |
int |
length() |
static boolean |
oneIsPrefixOfOther(Allele a1,
Allele a2) |
java.lang.String |
toString() |
static boolean |
wouldBeNoCallAllele(byte[] bases) |
static boolean |
wouldBeNullAllele(byte[] bases) |
static boolean |
wouldBeStarAllele(byte[] bases) |
static boolean |
wouldBeSymbolicAllele(byte[] bases) |
public static final long serialVersionUID
public static final java.lang.String NO_CALL_STRING
public static final java.lang.String SPAN_DEL_STRING
public static final java.lang.String NON_REF_STRING
public static final Allele SPAN_DEL
public static final Allele NO_CALL
public static final Allele NON_REF_ALLELE
protected Allele(byte[] bases, boolean isRef)
protected Allele(java.lang.String bases, boolean isRef)
protected Allele(Allele allele, boolean ignoreRefState)
allele
- the allele from which to copy the basesignoreRefState
- should we ignore the reference state of the input allele and use the default ref state?public static Allele create(byte[] bases, boolean isRef)
bases
- the DNA sequence of this variation, '-', '.', or '*'isRef
- should we make this a reference allele?java.lang.IllegalArgumentException
- if bases contains illegal characters or is otherwise malformatedpublic static Allele create(byte base, boolean isRef)
public static Allele create(byte base)
public static boolean wouldBeNullAllele(byte[] bases)
bases
- bases representing an allelepublic static boolean wouldBeStarAllele(byte[] bases)
bases
- bases representing an allelepublic static boolean wouldBeNoCallAllele(byte[] bases)
bases
- bases representing an allelepublic static boolean wouldBeSymbolicAllele(byte[] bases)
bases
- bases representing an allelepublic static boolean acceptableAlleleBases(java.lang.String bases)
bases
- bases representing a reference allelepublic static boolean acceptableAlleleBases(java.lang.String bases, boolean isReferenceAllele)
bases
- bases representing an alleleisReferenceAllele
- is a reference allelepublic static boolean acceptableAlleleBases(byte[] bases)
bases
- bases representing a reference allelepublic static boolean acceptableAlleleBases(byte[] bases, boolean isReferenceAllele)
bases
- bases representing an alleleisReferenceAllele
- true if a reference allelepublic static Allele create(java.lang.String bases, boolean isRef)
bases
- bases representing an alleleisRef
- is this the reference allele?Allele(byte[], boolean)
public static Allele create(java.lang.String bases)
bases
- bases representing an allelepublic static Allele create(byte[] bases)
bases
- bases representing an allelepublic static Allele create(Allele allele, boolean ignoreRefState)
allele
- the allele from which to copy the basesignoreRefState
- should we ignore the reference state of the input allele and use the default ref state?public boolean isNoCall()
public boolean isCalled()
public boolean isReference()
public boolean isNonReference()
public boolean isSymbolic()
public java.lang.String toString()
toString
in class java.lang.Object
public byte[] getBases()
public java.lang.String getBaseString()
public java.lang.String getDisplayString()
public byte[] getDisplayBases()
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
other
- the other allelepublic int hashCode()
hashCode
in class java.lang.Object
public boolean equals(Allele other, boolean ignoreRefState)
other
- allele to compare toignoreRefState
- if true, ignore ref state in comparisonpublic boolean basesMatch(byte[] test)
test
- bases to test againstpublic boolean basesMatch(java.lang.String test)
test
- bases to test againstpublic boolean basesMatch(Allele test)
test
- allele to test againstpublic int length()
public static Allele getMatchingAllele(java.util.Collection<Allele> allAlleles, byte[] alleleBases)
public int compareTo(Allele other)
compareTo
in interface java.lang.Comparable<Allele>