Class LocationHelper


  • public class LocationHelper
    extends Object
    Helper methods for use with the Location classes. Taking its inspiration from the RichSequence.Tools class from the old BioJava
    • Constructor Summary

      Constructors 
      Constructor Description
      LocationHelper()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static Location circularLocation​(int start, int end, Strand strand, int length)
      Converts a location which defines the outer bounds of a circular location and splits it into the required portions.
      static int completeCircularPasses​(int index, int seqLength)
      Works in a similar way to modulateCircularLocation but returns the number of complete passes over a Sequence length a circular location makes i.e. if we have a sequence of length 10 and the location 3..52 we make 4 complete passes through the genome to go from position 3 to position 52.
      static boolean consistentAccessions​(List<Location> subLocations)
      Scans a list of locations and returns true if all the given locations are linked to the same sequence.
      static boolean detectCicular​(List<Location> subLocations)
      Loops through the given list of locations and returns true if it looks like they represent a circular location.
      static Point detectEnd​(List<Location> subLocations, boolean isCircular)
      This will attempt to find what the last point is and returns that position.
      static Point detectStart​(List<Location> subLocations)
      Assumes that the first element is the start & clones it
      static Strand detectStrand​(List<Location> subLocations)
      Loops through the given list of locations and returns the consensus Strand class.
      static Location getMax​(List<Location> locations)
      Scans through a list of locations to find the Location with the highest end
      static Location getMin​(List<Location> locations)
      Scans through a list of locations to find the Location with the lowest start
      static Location location​(int start, int end, Strand strand, int length)
      Returns a location object which unlike the location constructors allows you to input reverse coordinates and will convert these into the right location on the positive strand.
      static Location location​(List<Location> subLocations)
      Used as a thin wrapper to the location(java.util.List, java.lang.String) method to bring the given location list together as a join (the default type)
      static Location location​(List<Location> subLocations, String type)
      Builds a location from a List of locations; this can be circular or linear joins.
      static int modulateCircularIndex​(int index, int seqLength)
      Takes a point on a circular location and moves it left until it falls at the earliest possible point that represents the same base.
    • Method Detail

      • location

        public static Location location​(List<Location> subLocations,
                                        String type)
        Builds a location from a List of locations; this can be circular or linear joins. The code expects that these locations are in a sensible format.
        Parameters:
        subLocations - The list of locations to use to build the location. If given a list of size 1 we will return that location.
        type - The type of join for this location; defaults to join
        Returns:
      • location

        public static Location location​(int start,
                                        int end,
                                        Strand strand,
                                        int length)
        Returns a location object which unlike the location constructors allows you to input reverse coordinates and will convert these into the right location on the positive strand.
      • circularLocation

        public static Location circularLocation​(int start,
                                                int end,
                                                Strand strand,
                                                int length)
        Converts a location which defines the outer bounds of a circular location and splits it into the required portions. Unlike any other location builder this allows you to express your input location on the reverse strand
        Parameters:
        location - The location which currently expresses the outer bounds of a circular location.
        length - The length of the circular genomic unit
        Returns:
        The circular location; can optionally return a normal non circular location if the one you give is within the bounds of the length
      • getMin

        public static Location getMin​(List<Location> locations)
        Scans through a list of locations to find the Location with the lowest start
      • getMax

        public static Location getMax​(List<Location> locations)
        Scans through a list of locations to find the Location with the highest end
      • modulateCircularIndex

        public static int modulateCircularIndex​(int index,
                                                int seqLength)
        Takes a point on a circular location and moves it left until it falls at the earliest possible point that represents the same base.
        Parameters:
        index - Index of the position to work with
        seqLength - Length of the Sequence
        Returns:
        The shifted point
      • completeCircularPasses

        public static int completeCircularPasses​(int index,
                                                 int seqLength)
        Works in a similar way to modulateCircularLocation but returns the number of complete passes over a Sequence length a circular location makes i.e. if we have a sequence of length 10 and the location 3..52 we make 4 complete passes through the genome to go from position 3 to position 52.
      • detectCicular

        public static boolean detectCicular​(List<Location> subLocations)
        Loops through the given list of locations and returns true if it looks like they represent a circular location. Detection cannot happen if we do not have consistent accessions
      • consistentAccessions

        public static boolean consistentAccessions​(List<Location> subLocations)
        Scans a list of locations and returns true if all the given locations are linked to the same sequence. A list of null accessioned locations is the same as a list where the accession is the same
        Parameters:
        subLocations - The locations to scan
        Returns:
        Returns a boolean indicating if this is consistently accessioned
      • detectStrand

        public static Strand detectStrand​(List<Location> subLocations)
        Loops through the given list of locations and returns the consensus Strand class. If the class switches then we will return an undefined strand
      • detectEnd

        public static Point detectEnd​(List<Location> subLocations,
                                      boolean isCircular)
        This will attempt to find what the last point is and returns that position. If the location is circular this will return the total length of the location and does not mean the maximum point on the Sequence we may find the locations on