From ff98e28abffd43bc5fb7e29248ced4b3c081dc64 Mon Sep 17 00:00:00 2001 From: depristo Date: Wed, 25 Mar 2009 02:17:48 +0000 Subject: [PATCH] High-performance interval list implement -- uses StringBuilder to avoid n^2 calculation. Can handle millions of locations quickly now git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@182 348d0f76-0448-11de-a6fe-93d51630548a --- .../org/broadinstitute/sting/gatk/TraversalEngine.java | 10 +++++----- java/src/org/broadinstitute/sting/utils/GenomeLoc.java | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/TraversalEngine.java b/java/src/org/broadinstitute/sting/gatk/TraversalEngine.java index 0621d6ccb..76875393e 100755 --- a/java/src/org/broadinstitute/sting/gatk/TraversalEngine.java +++ b/java/src/org/broadinstitute/sting/gatk/TraversalEngine.java @@ -187,7 +187,7 @@ public class TraversalEngine { * @param file_name */ public void setLocationFromFile(final String file_name) { - String locStr = ""; + StringBuilder locStr = new StringBuilder(); Scanner scanner = null; try { @@ -195,9 +195,9 @@ public class TraversalEngine { while (scanner.hasNextLine()) { String line = scanner.nextLine(); line.replaceAll("\n", ""); - locStr += line; + locStr.append(line); if (scanner.hasNextLine()) { - locStr += ";"; + locStr.append(";"); } } } @@ -210,9 +210,9 @@ public class TraversalEngine { scanner.close(); } - logger.debug("DEBUG: locStr: " + locStr); + logger.debug("DEBUG: locStr: " + locStr.toString()); - this.locs = parseGenomeLocs(locStr); + this.locs = parseGenomeLocs(locStr.toString()); } /** diff --git a/java/src/org/broadinstitute/sting/utils/GenomeLoc.java b/java/src/org/broadinstitute/sting/utils/GenomeLoc.java index b570a08b3..37ea726f5 100644 --- a/java/src/org/broadinstitute/sting/utils/GenomeLoc.java +++ b/java/src/org/broadinstitute/sting/utils/GenomeLoc.java @@ -59,7 +59,7 @@ public class GenomeLoc implements Comparable { public static GenomeLoc parseGenomeLoc( final String str ) { // Ôchr2Õ, Ôchr2:1000000Õ or Ôchr2:1,000,000-2,000,000Õ - System.out.printf("Parsing location '%s'%n", str); + //System.out.printf("Parsing location '%s'%n", str); final Pattern regex1 = Pattern.compile("([\\w&&[^:]]+)$"); // matches case 1 final Pattern regex2 = Pattern.compile("([\\w&&[^:]]+):([\\d,]+)$"); // matches case 2 @@ -102,7 +102,7 @@ public class GenomeLoc implements Comparable { } GenomeLoc loc = new GenomeLoc(contig, start, stop); - System.out.printf(" => Parsed location '%s' into %s%n", str, loc); + //System.out.printf(" => Parsed location '%s' into %s%n", str, loc); return loc; }