1 package org.broadinstitute.hellbender.tools.spark.bwa; 2 3 import org.broadinstitute.hellbender.CommandLineProgramTest; 4 import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions; 5 import org.broadinstitute.hellbender.engine.spark.GATKSparkTool; 6 import org.broadinstitute.hellbender.testutils.ArgumentsBuilder; 7 import org.broadinstitute.hellbender.testutils.SamAssertionUtils; 8 import org.testng.Assert; 9 import org.testng.annotations.Test; 10 11 import java.io.File; 12 13 public final class BwaSparkIntegrationTest extends CommandLineProgramTest { 14 15 @Override getTestedClassName()16 public String getTestedClassName() { 17 return BwaSpark.class.getSimpleName(); 18 } 19 20 @Test testPairedEnd()21 public void testPairedEnd() throws Exception { 22 final File expectedSam = getTestFile("bwa.sam"); 23 24 final File ref = getTestFile("ref.fa"); 25 final File input = getTestFile("R.bam"); // this is a queryname sorted, paired, and unaligned input 26 27 final File output = createTempFile("bwa", ".bam"); 28 Assert.assertTrue(output.delete()); 29 30 final ArgumentsBuilder args = new ArgumentsBuilder(); 31 args.add(StandardArgumentDefinitions.REFERENCE_LONG_NAME, ref); 32 args.add(StandardArgumentDefinitions.INPUT_LONG_NAME, input); 33 args.add(GATKSparkTool.SHARDED_OUTPUT_LONG_NAME, true); 34 args.add(GATKSparkTool.NUM_REDUCERS_LONG_NAME,"1"); 35 args.addOutput(output); 36 args.add(BwaArgumentCollection.BWA_MEM_INDEX_IMAGE_FULL_NAME, getTestFile("ref.fa.img")); 37 this.runCommandLine(args.getArgsArray()); 38 39 SamAssertionUtils.assertSamsEqual(new File(output, "part-r-00000.bam"), expectedSam); 40 } 41 42 @Test testSingleEnd()43 public void testSingleEnd() throws Exception { 44 final File expectedSam = getTestFile("seBwa.bam"); 45 46 final File ref = getTestFile("ref.fa"); 47 final File input = getTestFile("seR.bam"); 48 final File output = createTempFile("bwa", ".bam"); 49 Assert.assertTrue(output.delete()); 50 51 final ArgumentsBuilder args = new ArgumentsBuilder(); 52 args.add(StandardArgumentDefinitions.REFERENCE_LONG_NAME, ref); 53 args.add(StandardArgumentDefinitions.INPUT_LONG_NAME, input); 54 args.add(GATKSparkTool.SHARDED_OUTPUT_LONG_NAME, true); 55 args.add(GATKSparkTool.NUM_REDUCERS_LONG_NAME,"1"); 56 args.addOutput(output); 57 args.addRaw("--" + BwaArgumentCollection.SINGLE_END_ALIGNMENT_FULL_NAME); 58 this.runCommandLine(args.getArgsArray()); 59 60 SamAssertionUtils.assertSamsEqual(new File(output, "part-r-00000.bam"), expectedSam); 61 } 62 } 63