Skip to content

Commit 4d1e636

Browse files
committed
Ensure Lofreq BAM is coordinate sorted
1 parent 84bfae5 commit 4d1e636

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/bampostprocessing/LofreqIndelQualStep.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.labkey.sequenceanalysis.run.bampostprocessing;
22

3+
import htsjdk.samtools.SAMFileHeader;
34
import org.labkey.api.pipeline.PipelineJobException;
45
import org.labkey.api.sequenceanalysis.model.Readset;
56
import org.labkey.api.sequenceanalysis.pipeline.AbstractPipelineStepProvider;
@@ -8,12 +9,16 @@
89
import org.labkey.api.sequenceanalysis.pipeline.PipelineContext;
910
import org.labkey.api.sequenceanalysis.pipeline.PipelineStepProvider;
1011
import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome;
12+
import org.labkey.api.sequenceanalysis.pipeline.SamSorter;
13+
import org.labkey.api.sequenceanalysis.pipeline.SamtoolsRunner;
1114
import org.labkey.api.sequenceanalysis.pipeline.SequencePipelineService;
1215
import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep;
1316
import org.labkey.api.util.FileUtil;
1417
import org.labkey.sequenceanalysis.run.analysis.LofreqAnalysis;
18+
import picard.sam.SortSam;
1519

1620
import java.io.File;
21+
import java.io.IOException;
1722
import java.util.Collections;
1823

1924
public class LofreqIndelQualStep extends AbstractCommandPipelineStep<LofreqAnalysis.LofreqWrapper> implements BamProcessingStep
@@ -58,6 +63,18 @@ public Output processBam(Readset rs, File inputBam, ReferenceGenome referenceGen
5863

5964
output.setBAM(getWrapper().addIndelQuals(inputBam, outputBam, referenceGenome.getWorkingFastaFile()));
6065

66+
try
67+
{
68+
if (SequencePipelineService.get().getBamSortOrder(outputBam) != SAMFileHeader.SortOrder.coordinate)
69+
{
70+
new SamSorter(getWrapper().getLogger()).execute(outputBam, null, SAMFileHeader.SortOrder.coordinate);
71+
}
72+
}
73+
catch (IOException e)
74+
{
75+
throw new PipelineJobException(e);
76+
}
77+
6178
SequencePipelineService.get().ensureBamIndex(outputBam, getPipelineCtx().getLogger(), false);
6279

6380
return output;

0 commit comments

Comments
 (0)