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.
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
public static Location location(int start,
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.
public static Location circularLocation(int start,
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
location - The location which currently expresses the outer
bounds of a circular location.
length - The length of the circular genomic unit
The circular location; can optionally return a normal non
circular location if the one you give is within the bounds of
Scans through a list of locations to find the Location with the
public static int modulateCircularIndex(int index,
Takes a point on a circular location and moves it left until it falls
at the earliest possible point that represents the same base.
index - Index of the position to work with
seqLength - Length of the Sequence
The shifted point
public static int completeCircularPasses(int index,
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.
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
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
subLocations - The locations to scan
Returns a boolean indicating if this is consistently accessioned
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