|
1 | 1 | package org.labkey.sequenceanalysis.run.bampostprocessing; |
2 | 2 |
|
| 3 | +import htsjdk.samtools.SAMFileHeader; |
3 | 4 | import org.labkey.api.pipeline.PipelineJobException; |
4 | 5 | import org.labkey.api.sequenceanalysis.model.Readset; |
5 | 6 | import org.labkey.api.sequenceanalysis.pipeline.AbstractPipelineStepProvider; |
|
8 | 9 | import org.labkey.api.sequenceanalysis.pipeline.PipelineContext; |
9 | 10 | import org.labkey.api.sequenceanalysis.pipeline.PipelineStepProvider; |
10 | 11 | import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome; |
| 12 | +import org.labkey.api.sequenceanalysis.pipeline.SamSorter; |
| 13 | +import org.labkey.api.sequenceanalysis.pipeline.SamtoolsRunner; |
11 | 14 | import org.labkey.api.sequenceanalysis.pipeline.SequencePipelineService; |
12 | 15 | import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep; |
13 | 16 | import org.labkey.api.util.FileUtil; |
14 | 17 | import org.labkey.sequenceanalysis.run.analysis.LofreqAnalysis; |
| 18 | +import picard.sam.SortSam; |
15 | 19 |
|
16 | 20 | import java.io.File; |
| 21 | +import java.io.IOException; |
17 | 22 | import java.util.Collections; |
18 | 23 |
|
19 | 24 | public class LofreqIndelQualStep extends AbstractCommandPipelineStep<LofreqAnalysis.LofreqWrapper> implements BamProcessingStep |
@@ -58,6 +63,18 @@ public Output processBam(Readset rs, File inputBam, ReferenceGenome referenceGen |
58 | 63 |
|
59 | 64 | output.setBAM(getWrapper().addIndelQuals(inputBam, outputBam, referenceGenome.getWorkingFastaFile())); |
60 | 65 |
|
| 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 | + |
61 | 78 | SequencePipelineService.get().ensureBamIndex(outputBam, getPipelineCtx().getLogger(), false); |
62 | 79 |
|
63 | 80 | return output; |
|
0 commit comments