diff --git a/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java b/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java index 7da0bcd6f..9b85ccb8a 100755 --- a/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java +++ b/java/src/org/broadinstitute/sting/gatk/GenomeAnalysisEngine.java @@ -41,6 +41,7 @@ import org.broadinstitute.sting.gatk.datasources.shards.MonolithicShardStrategy; import org.broadinstitute.sting.gatk.executive.MicroScheduler; import org.broadinstitute.sting.gatk.arguments.GATKArgumentCollection; import org.broadinstitute.sting.gatk.arguments.ValidationExclusion; +import org.broadinstitute.sting.gatk.arguments.IntervalMergingRule; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedData; import org.broadinstitute.sting.gatk.refdata.ReferenceOrderedDatum; import org.broadinstitute.sting.gatk.walkers.*; @@ -299,6 +300,17 @@ public class GenomeAnalysisEngine { * @return a list of genomeLoc representing the interval file */ public static List parseIntervalRegion(final List intervals) { + return parseIntervalRegion(intervals, GenomeAnalysisEngine.instance.getArguments().intervalMerging); + } + + /** + * setup the interval regions, from either the interval file of the genome region string + * + * @param intervals the list of intervals to parse + * @param mergingRule the rule for merging intervals + * @return a list of genomeLoc representing the interval file + */ + public static List parseIntervalRegion(final List intervals, IntervalMergingRule mergingRule) { List locs = new ArrayList(); for (String interval : intervals) { if (new File(interval).exists()) { @@ -307,12 +319,12 @@ public class GenomeAnalysisEngine { Utils.warnUser("Bed files are 0 based half-open intervals, which are converted to 1-based closed intervals in the GATK. " + "Be aware that all output information and intervals are 1-based closed intervals."); BedParser parser = new BedParser(new File(interval)); - locs.addAll(parser.getSortedAndMergedLocations(GenomeAnalysisEngine.instance.getArguments().intervalMerging)); + locs.addAll(parser.getSortedAndMergedLocations(mergingRule)); } else { - locs.addAll(GenomeLocParser.intervalFileToList(interval,GenomeAnalysisEngine.instance.getArguments().intervalMerging)); + locs.addAll(GenomeLocParser.intervalFileToList(interval,mergingRule)); } } else { - locs.addAll(GenomeLocParser.parseGenomeLocs(interval,GenomeAnalysisEngine.instance.getArguments().intervalMerging)); + locs.addAll(GenomeLocParser.parseGenomeLocs(interval,mergingRule)); } } diff --git a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java index 46d375b93..8561711cb 100755 --- a/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java +++ b/java/src/org/broadinstitute/sting/gatk/walkers/indels/IndelRealigner.java @@ -3,6 +3,7 @@ package org.broadinstitute.sting.gatk.walkers.indels; import org.broadinstitute.sting.utils.*; import org.broadinstitute.sting.gatk.walkers.ReadWalker; import org.broadinstitute.sting.gatk.GenomeAnalysisEngine; +import org.broadinstitute.sting.gatk.arguments.IntervalMergingRule; import org.broadinstitute.sting.gatk.refdata.*; import org.broadinstitute.sting.utils.cmdLine.Argument; @@ -115,7 +116,7 @@ public class IndelRealigner extends ReadWalker { throw new RuntimeException("Entropy threshold must be a fraction between 0 and 1"); // read in the intervals for cleaning - List locs = GenomeAnalysisEngine.parseIntervalRegion(Arrays.asList(intervalsFile)); + List locs = GenomeAnalysisEngine.parseIntervalRegion(Arrays.asList(intervalsFile), IntervalMergingRule.OVERLAPPING_ONLY); intervals = GenomeLocSortedSet.createSetFromList(locs).iterator(); currentInterval = intervals.hasNext() ? intervals.next() : null;