From 360e2ba87e10c00785f75046d7197cdec57fdbfb Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Fri, 26 Apr 2013 12:23:11 -0400 Subject: [PATCH] Fixed bug reported on the forum where using the --exclude_sample_file argument in SV was giving bad results. Added integration test. https://www.pivotaltracker.com/s/projects/793457/stories/47399245 --- .../SelectVariantsIntegrationTest.java | 17 ++++++++++++++++- .../walkers/variantutils/SelectVariants.java | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java b/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java index 303a2871a..4b1483cb6 100644 --- a/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java +++ b/protected/java/test/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariantsIntegrationTest.java @@ -144,7 +144,7 @@ public class SelectVariantsIntegrationTest extends WalkerTest { } @Test - public void testSampleExclusion() { + public void testSampleExclusionFromFileAndSeparateSample() { String testfile = validationDataLocation + "test.filtered.maf_annotated.vcf"; String samplesFile = validationDataLocation + "SelectVariants.samples.txt"; @@ -158,6 +158,21 @@ public class SelectVariantsIntegrationTest extends WalkerTest { executeTest("testSampleExclusion--" + testfile, spec); } + @Test + public void testSampleExclusionJustFromFile() { + String testfile = validationDataLocation + "test.filtered.maf_annotated.vcf"; + String samplesFile = validationDataLocation + "SelectVariants.samples.txt"; + + WalkerTestSpec spec = new WalkerTestSpec( + "-T SelectVariants -R " + b36KGReference + " -L 1:1-1000000 -o %s --no_cmdline_in_header -xl_sf " + samplesFile + " --variant " + testfile, + 1, + Arrays.asList("875d7e00ac8081e87ab9fb1b20c83677") + ); + spec.disableShadowBCF(); + + executeTest("testSampleExclusion--" + testfile, spec); + } + @Test public void testSampleInclusionWithNonexistingSamples() { String testfile = validationDataLocation + "test.filtered.maf_annotated.vcf"; diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java index 02c8ed8d8..1f2b6d09b 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantutils/SelectVariants.java @@ -377,10 +377,10 @@ public class SelectVariants extends RodWalker implements TreeR } // now, exclude any requested samples - Collection XLsamplesFromFile = SampleUtils.getSamplesFromFiles(XLsampleFiles); + final Collection XLsamplesFromFile = SampleUtils.getSamplesFromFiles(XLsampleFiles); samples.removeAll(XLsamplesFromFile); samples.removeAll(XLsampleNames); - NO_SAMPLES_SPECIFIED = NO_SAMPLES_SPECIFIED && XLsampleNames.isEmpty(); + NO_SAMPLES_SPECIFIED = NO_SAMPLES_SPECIFIED && XLsampleNames.isEmpty() && XLsamplesFromFile.isEmpty(); if ( samples.size() == 0 && !NO_SAMPLES_SPECIFIED ) throw new UserException("All samples requested to be included were also requested to be excluded.");