Package beagleutil
Class ChromInterval
- java.lang.Object
-
- beagleutil.ChromInterval
-
- All Implemented Interfaces:
IntInterval
,java.lang.Comparable<ChromInterval>
public final class ChromInterval extends java.lang.Object implements IntInterval, java.lang.Comparable<ChromInterval>
Class
Instances of classChromInterval
represents a chromosome interval whose end points are genome coordinates.ChromInterval
are immutable.
-
-
Constructor Summary
Constructors Constructor Description ChromInterval(java.lang.String chrom, int start, int end)
Constructs a newChromInterval
instance.ChromInterval(Marker start, Marker end)
Constructs a newChromInterval
instance.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
chrom()
Returns the chromosome identifier.int
chromIndex()
Returns the chromosome index.int
compareTo(ChromInterval o)
Compares thisChromInteval
with the specifiedChromInterval
instance for order, and returns -1, 0, or 1 depending on whetherthis
is less than, equal or greater than the specified instance.boolean
contains(Marker marker)
Returnstrue
if the specified marker is in this chromosome interval and returnsfalse
otherwise.boolean
equals(java.lang.Object obj)
Returnstrue
if the specified object is aChromInterval
instance representing the same interval of genome coordinates asthis
, and returnsfalse
otherwise.int
hashCode()
Returns a hash code value for the object.int
inclEnd()
Returns the last genome coordinate in this chromosome interval.static ChromInterval
merge(ChromInterval a, ChromInterval b)
Returns the union of the specified overlapping chromosome intervals.static boolean
overlap(ChromInterval a, ChromInterval b)
Returnstrue
if the specified chromosome intervals have non-empty intersection and returnsfalse
otherwise.static ChromInterval
parse(java.lang.String str)
Returns aChromInterval
instance corresponding to the specified string, or returnsnull
if the specified string does not represent a valid chromosome interval or if the specified string isnull
.int
start()
Returns the first genome coordinate in this chromosome interval.java.lang.String
toString()
Returns a string describingthis
.
-
-
-
Constructor Detail
-
ChromInterval
public ChromInterval(Marker start, Marker end)
Constructs a newChromInterval
instance.- Parameters:
start
- the first marker in the interval.end
- the last marker in the interval.- Throws:
java.lang.IllegalArgumentException
- ifstart.chromIndex()!=end.chromIndex() || start.pos()<0 || start.pos()>end.pos()
.java.lang.NullPointerException
- ifstart==null || end==null
.
-
ChromInterval
public ChromInterval(java.lang.String chrom, int start, int end)
Constructs a newChromInterval
instance.- Parameters:
chrom
- the chromosome,start
- the first genome coordinate in the interval.end
- the last genome coordinate in the interval.- Throws:
java.lang.IllegalArgumentException
- ifstart>end || chrom.isEmpty()
java.lang.NullPointerException
- ifchrom==null
-
-
Method Detail
-
parse
public static ChromInterval parse(java.lang.String str)
Returns a
The string representation of the chromosome interval must have one of the following forms:ChromInterval
instance corresponding to the specified string, or returnsnull
if the specified string does not represent a valid chromosome interval or if the specified string isnull
.
[chrom]:[start]-[end] [chrom] [chrom]: [chrom]:[start]- [chrom]:-[end]
where
[chrom]
is a chromosome identifier, and[start]
and[end]
are integers satisfying[start]<=[end]
. If the specified string does not contain a start position, thestart()
method of the returnedChromInterval
instance returnsInteger.MIN_VALUE
. If no end position is specified, theend()
method of the returnedChromInterval
instance returnsInteger.MAX_VALUE
.- Parameters:
str
- a chromosome interval.- Returns:
- a
ChromInterval
instance corresponding to the specified string, or returnsnull
if the specified string does not represent a valid chromosome interval or if the specified string isnull
.
-
chromIndex
public int chromIndex()
Returns the chromosome index. The chromosome index is equal toChromIds.indexOf(this.chrom())
.- Returns:
- the chromosome index.
-
chrom
public java.lang.String chrom()
Returns the chromosome identifier.- Returns:
- the chromosome identifier.
-
start
public int start()
Returns the first genome coordinate in this chromosome interval.- Specified by:
start
in interfaceIntInterval
- Returns:
- the first genome coordinate in this chromosomet interval.
-
inclEnd
public int inclEnd()
Returns the last genome coordinate in this chromosome interval.- Specified by:
inclEnd
in interfaceIntInterval
- Returns:
- the last genome coordinate in this chromosome interval.
-
compareTo
public int compareTo(ChromInterval o)
Compares this
ChromInteval
with the specifiedChromInterval
instance for order, and returns -1, 0, or 1 depending on whetherthis
is less than, equal or greater than the specified instance.ChromInterval
objects are ordered first bythis.chromIndex()
, then bythis.start()
, and finally bythis.end()
. All fields are ordered in ascending order.- Specified by:
compareTo
in interfacejava.lang.Comparable<ChromInterval>
- Parameters:
o
- theChromInterval
to be compared withthis
.- Returns:
- -1, 0, or 1 depending on whether
this
is less than, equal or greater than the specified instance.
-
hashCode
public int hashCode()
Returns a hash code value for the object.
The hash code is defined by the following calculation:
int hash = 7; hash = 67 * hash + this.chromIndex(); hash = 67 * hash + this.start(); hash = 67 * hash + this.end();
- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- a hash code value for the object.
-
equals
public boolean equals(java.lang.Object obj)
Returnstrue
if the specified object is aChromInterval
instance representing the same interval of genome coordinates asthis
, and returnsfalse
otherwise.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the object to be compared withthis
for equality.- Returns:
true
if the specified object is aChromInterval
instance representing the same interval of genome coordinates asthis
, and returnsfalse
otherwise.
-
toString
public java.lang.String toString()
Returns a string describingthis
. This format of the returned string is unspecified and subject to change.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a string describing
this
-
contains
public boolean contains(Marker marker)
Returnstrue
if the specified marker is in this chromosome interval and returnsfalse
otherwise.- Parameters:
marker
- a marker- Returns:
true
if the specified marker is in this chromosome interval- Throws:
java.lang.NullPointerException
- ifmarker == null
-
overlap
public static boolean overlap(ChromInterval a, ChromInterval b)
Returnstrue
if the specified chromosome intervals have non-empty intersection and returnsfalse
otherwise.- Parameters:
a
- a chromosome interval.b
- a chromosome interval.- Returns:
true
if the specified chromosome intervals have non-empty intersection and returnsfalse
otherwise.
-
merge
public static ChromInterval merge(ChromInterval a, ChromInterval b)
Returns the union of the specified overlapping chromosome intervals.- Parameters:
a
- a chromosome interval.b
- a chromosome interval.- Returns:
- the union of the specified overlapping chromosome intervals.
- Throws:
java.lang.IllegalArgumentException
- ifChromInterval.overlap(a, b)==false
.
-
-