Package beagleutil

Class ChromInterval

  • All Implemented Interfaces:
    IntInterval, java.lang.Comparable<ChromInterval>

    public final class ChromInterval
    extends java.lang.Object
    implements IntInterval, java.lang.Comparable<ChromInterval>

    Class ChromInterval represents a chromosome interval whose end points are genome coordinates.

    Instances of class ChromInterval are immutable.
    • Constructor Summary

      Constructors 
      Constructor Description
      ChromInterval​(java.lang.String chrom, int start, int end)
      Constructs a new ChromInterval instance.
      ChromInterval​(Marker start, Marker end)
      Constructs a new ChromInterval 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 this ChromInteval with the specified ChromInterval instance for order, and returns -1, 0, or 1 depending on whether this is less than, equal or greater than the specified instance.
      boolean contains​(Marker marker)
      Returns true if the specified marker is in this chromosome interval and returns false otherwise.
      boolean equals​(java.lang.Object obj)
      Returns true if the specified object is a ChromInterval instance representing the same interval of genome coordinates as this, and returns false 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)
      Returns true if the specified chromosome intervals have non-empty intersection and returns false otherwise.
      static ChromInterval parse​(java.lang.String str)
      Returns a ChromInterval instance corresponding to the specified string, or returns null if the specified string does not represent a valid chromosome interval or if the specified string is null.
      int start()
      Returns the first genome coordinate in this chromosome interval.
      java.lang.String toString()
      Returns a string describing this.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ChromInterval

        public ChromInterval​(Marker start,
                             Marker end)
        Constructs a new ChromInterval instance.
        Parameters:
        start - the first marker in the interval.
        end - the last marker in the interval.
        Throws:
        java.lang.IllegalArgumentException - if start.chromIndex()!=end.chromIndex() || start.pos()<0 || start.pos()>end.pos().
        java.lang.NullPointerException - if start==null || end==null.
      • ChromInterval

        public ChromInterval​(java.lang.String chrom,
                             int start,
                             int end)
        Constructs a new ChromInterval 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 - if start>end || chrom.isEmpty()
        java.lang.NullPointerException - if chrom==null
    • Method Detail

      • parse

        public static ChromInterval parse​(java.lang.String str)

        Returns a ChromInterval instance corresponding to the specified string, or returns null if the specified string does not represent a valid chromosome interval or if the specified string is null.

        The string representation of the chromosome interval must have one of the following forms:
         [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, the start() method of the returned ChromInterval instance returns Integer.MIN_VALUE. If no end position is specified, the end() method of the returned ChromInterval instance returns Integer.MAX_VALUE.
        Parameters:
        str - a chromosome interval.
        Returns:
        a ChromInterval instance corresponding to the specified string, or returns null if the specified string does not represent a valid chromosome interval or if the specified string is null.
      • chromIndex

        public int chromIndex()
        Returns the chromosome index. The chromosome index is equal to ChromIds.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 interface IntInterval
        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 interface IntInterval
        Returns:
        the last genome coordinate in this chromosome interval.
      • compareTo

        public int compareTo​(ChromInterval o)

        Compares this ChromInteval with the specified ChromInterval instance for order, and returns -1, 0, or 1 depending on whether this is less than, equal or greater than the specified instance.

        ChromInterval objects are ordered first by this.chromIndex(), then by this.start(), and finally by this.end(). All fields are ordered in ascending order.
        Specified by:
        compareTo in interface java.lang.Comparable<ChromInterval>
        Parameters:
        o - the ChromInterval to be compared with this.
        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 class java.lang.Object
        Returns:
        a hash code value for the object.
      • equals

        public boolean equals​(java.lang.Object obj)
        Returns true if the specified object is a ChromInterval instance representing the same interval of genome coordinates as this, and returns false otherwise.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to be compared with this for equality.
        Returns:
        true if the specified object is a ChromInterval instance representing the same interval of genome coordinates as this, and returns false otherwise.
      • toString

        public java.lang.String toString()
        Returns a string describing this. This format of the returned string is unspecified and subject to change.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string describing this
      • contains

        public boolean contains​(Marker marker)
        Returns true if the specified marker is in this chromosome interval and returns false otherwise.
        Parameters:
        marker - a marker
        Returns:
        true if the specified marker is in this chromosome interval
        Throws:
        java.lang.NullPointerException - if marker == null
      • overlap

        public static boolean overlap​(ChromInterval a,
                                      ChromInterval b)
        Returns true if the specified chromosome intervals have non-empty intersection and returns false otherwise.
        Parameters:
        a - a chromosome interval.
        b - a chromosome interval.
        Returns:
        true if the specified chromosome intervals have non-empty intersection and returns false 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 - if ChromInterval.overlap(a, b)==false.