Skip to content

Commit

Permalink
NIO output support for multiple tools (broadinstitute#4695)
Browse files Browse the repository at this point in the history
ClipReads, LeftAlignIndels, RevertBaseQualityScores, UnmarkDuplicates,
SplitNCigarReds
  • Loading branch information
jean-philippe-martin authored and cwhelan committed May 25, 2018
1 parent 2da13da commit 1404c8c
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DocumentedFeature;
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.utils.io.IOUtils;
import picard.cmdline.programgroups.ReadDataManipulationProgramGroup;
import org.broadinstitute.hellbender.engine.FeatureContext;
import org.broadinstitute.hellbender.engine.ReadWalker;
Expand Down Expand Up @@ -161,7 +162,7 @@ public final class ClipReads extends ReadWalker {
* The output SAM/BAM/CRAM file will be written here
*/
@Argument(doc = "BAM output file", shortName = StandardArgumentDefinitions.OUTPUT_SHORT_NAME, fullName = StandardArgumentDefinitions.OUTPUT_LONG_NAME)
File OUTPUT;
String OUTPUT;

/**
* If provided, ClipReads will write summary statistics about the clipping operations applied to the reads in this file.
Expand Down Expand Up @@ -291,7 +292,7 @@ public void onTraversalStart() {
}

final boolean presorted = EnumSet.of(ClippingRepresentation.WRITE_NS, ClippingRepresentation.WRITE_NS_Q0S, ClippingRepresentation.WRITE_Q0S).contains(clippingRepresentation);
outputBam = createSAMWriter(OUTPUT, presorted);
outputBam = createSAMWriter(IOUtils.getPath(OUTPUT), presorted);

accumulator = new ClippingData(sequencesToClip);
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.broadinstitute.barclay.argparser.Argument;
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DocumentedFeature;
import org.broadinstitute.hellbender.utils.io.IOUtils;
import picard.cmdline.programgroups.ReadDataManipulationProgramGroup;
import org.broadinstitute.hellbender.engine.FeatureContext;
import org.broadinstitute.hellbender.engine.ReadWalker;
Expand Down Expand Up @@ -51,7 +52,7 @@
public final class LeftAlignIndels extends ReadWalker {

@Argument(doc="Output BAM")
private File OUTPUT;
private String OUTPUT;

private SAMFileGATKReadWriter outputWriter = null;

Expand All @@ -62,7 +63,7 @@ public boolean requiresReference() {

@Override
public void onTraversalStart() {
outputWriter = createSAMWriter(OUTPUT, true);
outputWriter = createSAMWriter(IOUtils.getPath(OUTPUT), true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DocumentedFeature;
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.utils.io.IOUtils;
import picard.cmdline.programgroups.ReadDataManipulationProgramGroup;
import org.broadinstitute.hellbender.engine.FeatureContext;
import org.broadinstitute.hellbender.engine.ReadWalker;
Expand All @@ -30,13 +31,13 @@
public class RevertBaseQualityScores extends ReadWalker {

@Argument(fullName = StandardArgumentDefinitions.OUTPUT_LONG_NAME, shortName = StandardArgumentDefinitions.OUTPUT_SHORT_NAME, doc="Write output to this file")
public File OUTPUT;
public String OUTPUT;

private SAMFileGATKReadWriter outputWriter;

@Override
public void onTraversalStart() {
outputWriter = createSAMWriter(OUTPUT, true);
outputWriter = createSAMWriter(IOUtils.getPath(OUTPUT), true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DocumentedFeature;
import org.broadinstitute.hellbender.cmdline.StandardArgumentDefinitions;
import org.broadinstitute.hellbender.utils.io.IOUtils;
import picard.cmdline.programgroups.ReadDataManipulationProgramGroup;
import org.broadinstitute.hellbender.engine.FeatureContext;
import org.broadinstitute.hellbender.engine.ReadWalker;
Expand Down Expand Up @@ -66,13 +67,13 @@ public class UnmarkDuplicates extends ReadWalker {
"Clears the 0x400 SAM flag bit on all reads.";

@Argument(fullName = StandardArgumentDefinitions.OUTPUT_LONG_NAME, shortName = StandardArgumentDefinitions.OUTPUT_SHORT_NAME, doc="Write output to this file")
public File OUTPUT;
public String OUTPUT;

private SAMFileGATKReadWriter outputWriter;

@Override
public void onTraversalStart() {
outputWriter = createSAMWriter(OUTPUT, true);
outputWriter = createSAMWriter(IOUtils.getPath(OUTPUT), true);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.broadinstitute.barclay.argparser.Argument;
import org.broadinstitute.barclay.argparser.CommandLineProgramProperties;
import org.broadinstitute.barclay.help.DocumentedFeature;
import org.broadinstitute.hellbender.utils.io.IOUtils;
import picard.cmdline.programgroups.ReadDataManipulationProgramGroup;
import org.broadinstitute.hellbender.engine.FeatureContext;
import org.broadinstitute.hellbender.engine.ReferenceContext;
Expand Down Expand Up @@ -74,7 +75,7 @@ public final class SplitNCigarReads extends TwoPassReadWalker {
static final String MATE_CIGAR_TAG = "MC";

@Argument(fullName = OUTPUT_LONG_NAME, shortName = OUTPUT_SHORT_NAME, doc="Write output to this BAM filename")
File OUTPUT;
String OUTPUT;

/**
* This flag tells GATK to refactor cigar string with NDN elements to one element. It intended primarily for use in
Expand Down Expand Up @@ -166,7 +167,7 @@ public void onTraversalStart() {
try {
referenceReader = new CachingIndexedFastaSequenceFile(referenceArguments.getReferencePath());
GenomeLocParser genomeLocParser = new GenomeLocParser(getBestAvailableSequenceDictionary());
outputWriter = createSAMWriter(OUTPUT, false);
outputWriter = createSAMWriter(IOUtils.getPath(OUTPUT), false);
overhangManager = new OverhangFixingManager(header, outputWriter, genomeLocParser, referenceReader, MAX_RECORDS_IN_MEMORY, MAX_MISMATCHES_IN_OVERHANG, MAX_BASES_TO_CLIP, doNotFixOverhangs, processSecondaryAlignments);

} catch (FileNotFoundException ex) {
Expand Down

0 comments on commit 1404c8c

Please sign in to comment.