After thinking about this a bit more, it makes sense to pull this functionality out of my walker and into the GenomeLocParser where everyone else can benefit from it...

git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1677 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
ebanks 2009-09-22 01:32:35 +00:00
parent 7bfb5fad27
commit 5ce42cbab3
2 changed files with 13 additions and 13 deletions

View File

@ -56,7 +56,7 @@ public class IntervalMergerWalker extends ReadWalker<Integer,Integer> {
@Override
public void initialize() {
intervals = parseIntervals(intervalsSource);
intervals = new LinkedList<GenomeLoc>(GenomeLocParser.parseIntervals(intervalsSource));
currentInterval = (intervals.size() > 0 ? intervals.removeFirst() : null);
}
@ -109,16 +109,5 @@ public class IntervalMergerWalker extends ReadWalker<Integer,Integer> {
currentInterval.getStop() - currentInterval.getStart() < maxIntervalSize)
out.println(currentInterval);
}
/**
* Load the intervals directly from the command-line or from file, as appropriate.
* Merge overlapping intervals.
* @param intervalsSource Source of intervals.
* @return a linked list of sorted, merged intervals.
*/
private LinkedList<GenomeLoc> parseIntervals(List<String> intervalsSource) {
List<GenomeLoc> parsedIntervals = GenomeAnalysisEngine.parseIntervalRegion(intervalsSource);
Collections.sort(parsedIntervals);
return new LinkedList<GenomeLoc>(GenomeLocParser.mergeOverlappingLocations(parsedIntervals));
}
}

View File

@ -130,6 +130,17 @@ public class GenomeLocParser {
return true;
}
/**
* Load one or more intervals sources, sorting and merging overlapping intervals.
* @param intervalsSource Source of intervals.
* @return a list of sorted, merged intervals.
*/
public static List<GenomeLoc> parseIntervals(List<String> intervalsSource) {
List<GenomeLoc> parsedIntervals = GenomeAnalysisEngine.parseIntervalRegion(intervalsSource);
Collections.sort(parsedIntervals);
return GenomeLocParser.mergeOverlappingLocations(parsedIntervals);
}
/**
* parse a genome location, from a location string
*