From 517f27f331160d50c07a3f7f8cc8f7e9108bc4d8 Mon Sep 17 00:00:00 2001 From: aaron Date: Fri, 8 May 2009 21:55:10 +0000 Subject: [PATCH] Added sharding strat. code that picks the right kind of shard, based on the traversal engine git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@644 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/executive/MicroScheduler.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java b/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java index 2c4713e1d..f76f6d859 100755 --- a/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java +++ b/java/src/org/broadinstitute/sting/gatk/executive/MicroScheduler.java @@ -8,7 +8,7 @@ import org.broadinstitute.sting.gatk.dataSources.shards.Shard; import org.broadinstitute.sting.gatk.dataSources.simpleDataSources.SAMDataSource; import org.broadinstitute.sting.gatk.dataSources.providers.ShardDataProvider; import org.broadinstitute.sting.gatk.traversals.TraversalEngine; -import org.broadinstitute.sting.gatk.traversals.TraverseByReads; +import org.broadinstitute.sting.gatk.traversals.TraverseReads; import org.broadinstitute.sting.gatk.traversals.TraverseLociByReference; import org.broadinstitute.sting.gatk.walkers.TreeReducible; import org.broadinstitute.sting.gatk.walkers.Walker; @@ -69,7 +69,7 @@ public abstract class MicroScheduler { */ protected MicroScheduler( Walker walker, List reads, File refFile, List> rods ) { if (walker instanceof ReadWalker) { - traversalEngine = new TraverseByReads(reads, refFile, rods); + traversalEngine = new TraverseReads(reads, refFile, rods); } else { traversalEngine = new TraverseLociByReference(reads, refFile, rods); } @@ -102,13 +102,16 @@ public abstract class MicroScheduler { */ protected ShardStrategy getShardStrategy( ReferenceSequenceFile drivingDataSource, List intervals ) { ShardStrategy shardStrategy = null; - if( intervals != null ) - shardStrategy = ShardStrategyFactory.shatter( ShardStrategyFactory.SHATTER_STRATEGY.LINEAR, + ShardStrategyFactory.SHATTER_STRATEGY shardType = (traversalEngine instanceof TraverseReads) ? + ShardStrategyFactory.SHATTER_STRATEGY.READS : ShardStrategyFactory.SHATTER_STRATEGY.LINEAR; + + if( intervals != null && shardType != ShardStrategyFactory.SHATTER_STRATEGY.READS) + shardStrategy = ShardStrategyFactory.shatter( shardType, drivingDataSource.getSequenceDictionary(), SHARD_SIZE, intervals ); else - shardStrategy = ShardStrategyFactory.shatter( ShardStrategyFactory.SHATTER_STRATEGY.LINEAR, + shardStrategy = ShardStrategyFactory.shatter( shardType, drivingDataSource.getSequenceDictionary(), SHARD_SIZE );