From a9c30c5fcc52703d7590c4d1c2a9906425640208 Mon Sep 17 00:00:00 2001 From: asivache Date: Wed, 24 Jun 2009 15:58:00 +0000 Subject: [PATCH] added -nosort cmdline flag; if specified, the output writer does not attempt to sort reads on the fly (sorting involves use of sorting collection backed up by temporary disk storage and can lead to crashes if temp size is low and/or filesystem is not behaving). Output can be later sorted externally by samtools git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@1085 348d0f76-0448-11de-a6fe-93d51630548a --- .../gatk/walkers/indels/IntervalCleanerWalker.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java index cb6b56830..63907131d 100755 --- a/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java +++ b/java/src/org/broadinstitute/sting/playground/gatk/walkers/indels/IntervalCleanerWalker.java @@ -9,6 +9,8 @@ import org.broadinstitute.sting.utils.cmdLine.Argument; import org.broadinstitute.sting.playground.indels.*; import net.sf.samtools.*; +import net.sf.samtools.SAMFileHeader.SortOrder; + import java.util.*; import java.io.File; import java.io.FileWriter; @@ -37,6 +39,8 @@ public class IntervalCleanerWalker extends LocusWindowWalker public int MAX_CONSENSUSES = 30; @Argument(fullName="maxReadsForConsensuses", shortName="greedy", doc="max reads used for finding the alternate consensuses (necessary to improve performance in deep coverage)", required=false) public int MAX_READS_FOR_CONSENSUSES = 120; + @Argument(fullName="noOutputSorting", shortName="nosort", doc="if specified, the output bam file may be not fully sorted. Use if low on temp space", required=false) + public boolean NOSORT=false; public static final int MAX_QUAL = 99; @@ -58,7 +62,12 @@ public class IntervalCleanerWalker extends LocusWindowWalker SAMFileHeader header = getToolkit().getEngine().getSAMHeader(); if ( OUT != null ) { - writer = Utils.createSAMFileWriterWithCompression(header, false, OUT, getToolkit().getBAMCompression()); + if ( NOSORT ) { + header.setSortOrder(SortOrder.unsorted); + writer = Utils.createSAMFileWriterWithCompression(header, true, OUT, getToolkit().getBAMCompression()); + } else { + writer = Utils.createSAMFileWriterWithCompression(header, false, OUT, getToolkit().getBAMCompression()); + } readsToWrite = new TreeSet(); }