From b3fd1451611850731fdf744e9af84fa09f73294e Mon Sep 17 00:00:00 2001 From: aaron Date: Fri, 23 Jul 2010 18:39:55 +0000 Subject: [PATCH] fix for a bug deep in the tribble indexing: if you had a single record in the first contig, the second contig's index blocks would point to the wrong file seek location, and you'd see no features in that contig. Thanks to Mark for finding this. I'm not rev'ing the index version (which would cause all indexes to be rebuilt), since this seems like a pretty rare edge case. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@3865 348d0f76-0448-11de-a6fe-93d51630548a --- .../builders/TribbleRMDTrackBuilder.java | 10 ++++------ .../{tribble-124M.jar => tribble-129M.jar} | Bin 191541 -> 185886 bytes .../{tribble-124M.xml => tribble-129M.xml} | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) rename settings/repository/org.broad/{tribble-124M.jar => tribble-129M.jar} (79%) rename settings/repository/org.broad/{tribble-124M.xml => tribble-129M.xml} (64%) diff --git a/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/TribbleRMDTrackBuilder.java b/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/TribbleRMDTrackBuilder.java index 254aea5a1..820290d3a 100644 --- a/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/TribbleRMDTrackBuilder.java +++ b/java/src/org/broadinstitute/sting/gatk/refdata/tracks/builders/TribbleRMDTrackBuilder.java @@ -35,8 +35,8 @@ import org.broad.tribble.index.IndexFactory; import org.broad.tribble.index.interval.IntervalIndexCreator; import org.broad.tribble.index.linear.LinearIndexCreator; import org.broad.tribble.source.BasicFeatureSource; -import org.broad.tribble.util.LEDataOutputStream; -import org.broad.tribble.util.LEDataStreamUtils; +import org.broad.tribble.util.LittleEndianInputStream; +import org.broad.tribble.util.LittleEndianOutputStream; import org.broad.tribble.vcf.NameAwareCodec; import org.broadinstitute.sting.gatk.refdata.tracks.TribbleTrack; import org.broadinstitute.sting.gatk.refdata.tracks.RMDTrack; @@ -46,9 +46,7 @@ import org.broadinstitute.sting.utils.classloader.PluginManager; import org.broadinstitute.sting.utils.StingException; import org.broadinstitute.sting.utils.file.FSLockWithShared; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; +import java.io.*; import java.util.*; @@ -267,7 +265,7 @@ public class TribbleRMDTrackBuilder extends PluginManager implemen locked = lock.exclusiveLock(); if (locked) { logger.info("Writing Tribble index to disk for file " + inputFile); - LEDataOutputStream stream = LEDataStreamUtils.createOutputStream(indexFile); + LittleEndianOutputStream stream = new LittleEndianOutputStream(new FileOutputStream(indexFile)); index.write(stream); stream.close(); } diff --git a/settings/repository/org.broad/tribble-124M.jar b/settings/repository/org.broad/tribble-129M.jar similarity index 79% rename from settings/repository/org.broad/tribble-124M.jar rename to settings/repository/org.broad/tribble-129M.jar index 51780b5cb6aff86667394834c9e9b0798663e038..0b00d42c6cbee890f88198ffdb4790d5f312d7a9 100644 GIT binary patch delta 16602 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 G;Qs-DEA~GC delta 20672 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 - +