From 3767adb0bba0206eb1212e224d35f8b820d111bf Mon Sep 17 00:00:00 2001 From: hanna Date: Mon, 22 Mar 2010 22:04:45 +0000 Subject: [PATCH] Processing intervals as they stream in means much lower memory usage and quicker runtime. Making change as minimal as possible to avoid conflicts with BT's incoming patch. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3061 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/utils/GenomeLocParser.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java index 86a3fe15a..6ffd63c7d 100644 --- a/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java +++ b/java/src/org/broadinstitute/sting/utils/GenomeLocParser.java @@ -252,7 +252,6 @@ public class GenomeLocParser { * @return the list of merged locations */ public static List mergeIntervalLocations(final List raw, IntervalMergingRule rule) { - logger.debug(" Raw locations are: " + Utils.join(", ", raw)); if (raw.size() <= 1 || rule == IntervalMergingRule.NONE) return raw; else { @@ -355,11 +354,18 @@ public class GenomeLocParser { } catch (Exception e) { try { + ret = new ArrayList(); xReadLines reader = new xReadLines(new File(file_name)); - List lines = reader.readLines(); + for(String line: reader) { + List loci = parseGenomeLocs(line, rule); + if(loci != null) + ret.addAll(loci); + } reader.close(); - String locStr = Utils.join(";", lines); - ret = parseGenomeLocs(locStr, rule); + + if(ret.isEmpty()) + return null; + for(GenomeLoc locus: ret) exceptionOnInvalidGenomeLocBounds(locus); return ret;