more fixes for the empty interval list problem; you can now run LocusWindow traversals with an empty interval list, but the GATK will give you a warning (unless you're running in unsafe mode).
git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@2563 348d0f76-0448-11de-a6fe-93d51630548a
This commit is contained in:
parent
35a4fcc481
commit
16777e3875
|
|
@ -626,8 +626,9 @@ public class GenomeAnalysisEngine {
|
|||
SHARD_SIZE, maxIterations);
|
||||
}
|
||||
} else if (walker instanceof LocusWindowWalker) {
|
||||
if (intervals == null || intervals.isEmpty())
|
||||
throw new StingException("Unable to shard: walker is of type LocusWindow, but no intervals were provided");
|
||||
if ((intervals == null || intervals.isEmpty()) && !this.argCollection.unsafe)
|
||||
Utils.warnUser("walker is of type LocusWindow (which operates over intervals), but no intervals were provided." +
|
||||
"This may be unintentional, check your command-line arguments.");
|
||||
shardStrategy = ShardStrategyFactory.shatter(ShardStrategyFactory.SHATTER_STRATEGY.INTERVAL,
|
||||
drivingDataSource.getSequenceDictionary(),
|
||||
SHARD_SIZE,
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ public class IntervalShardStrategy implements ShardStrategy {
|
|||
* @param size the next recommended shard size.
|
||||
*/
|
||||
public void adjustNextShardSize( long size ) {
|
||||
this.size = size;
|
||||
this.size = size; // we don't do anything with the size in this case, but we should store it anyway
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -67,26 +67,11 @@ public class IntervalShardStrategy implements ShardStrategy {
|
|||
* @param locations
|
||||
*/
|
||||
IntervalShardStrategy( long size, GenomeLocSortedSet locations, Shard.ShardType shardType ) {
|
||||
if (locations == null || locations.isEmpty()) {
|
||||
throw new StingException("IntervalShardStrategy: genomic regions list is empty.");
|
||||
}
|
||||
type = shardType;
|
||||
this.regions = locations.clone();
|
||||
this.regions = locations == null ? new GenomeLocSortedSet() : locations.clone();
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
/**
|
||||
* the default constructor
|
||||
*
|
||||
* @param dict the sequence dictionary to use
|
||||
*/
|
||||
IntervalShardStrategy( SAMSequenceDictionary dict, GenomeLocSortedSet locations ) {
|
||||
if (locations == null || locations.isEmpty()) {
|
||||
throw new StingException("IntervalShardStrategy: genomic regions list is empty.");
|
||||
}
|
||||
this.regions = locations.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* returns true if there are additional shards
|
||||
*
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@ public class IntervalShardStrategyTest extends BaseTest {
|
|||
mSortedSet = new GenomeLocSortedSet();
|
||||
}
|
||||
|
||||
@Test(expected = StingException.class)
|
||||
public void testExceptionOnEmpty() {
|
||||
@Test
|
||||
public void testNoExceptionOnEmpty() {
|
||||
IntervalShardStrategy strat = new IntervalShardStrategy(100, mSortedSet,Shard.ShardType.LOCUS_INTERVAL);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue