Skip to content

Commit ab6f2c4

Browse files
committed
Add sorting to FixMateInformation output
1 parent 4f26eb4 commit ab6f2c4

File tree

4 files changed

+33
-4
lines changed

4 files changed

+33
-4
lines changed

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/run/AbstractCommandWrapper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,11 @@ protected void setLogLevel(Level logLevel)
263263
_logLevel = logLevel;
264264
}
265265

266+
public Level getLogLevel()
267+
{
268+
return _logLevel;
269+
}
270+
266271
public void setWarnNonZeroExits(boolean warnNonZeroExits)
267272
{
268273
_warnNonZeroExits = warnNonZeroExits;

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/alignment/StarWrapper.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.apache.commons.io.FileUtils;
55
import org.apache.commons.lang3.StringUtils;
66
import org.apache.commons.lang3.SystemUtils;
7+
import org.apache.log4j.Level;
78
import org.apache.log4j.Logger;
89
import org.jetbrains.annotations.Nullable;
910
import org.json.JSONObject;
@@ -489,7 +490,11 @@ public void logVersionString() throws PipelineJobException
489490
args.add(getExe(false).getPath());
490491
args.add("--version");
491492

492-
String version = executeWithOutput(args);
493-
getLogger().info("STAR version: " + version);
493+
getLogger().info("STAR version: ");
494+
495+
Level origLavel = getLogLevel();
496+
setLogLevel(Level.INFO);
497+
execute(args);
498+
setLogLevel(origLavel);
494499
}
495500
}

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

Lines changed: 13 additions & 1 deletion
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.BamProcessingOutputImpl;
@@ -11,8 +12,10 @@
1112
import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome;
1213
import org.labkey.api.sequenceanalysis.run.AbstractCommandPipelineStep;
1314
import org.labkey.sequenceanalysis.run.util.FixMateInformationWrapper;
15+
import org.labkey.sequenceanalysis.util.SequenceUtil;
1416

1517
import java.io.File;
18+
import java.io.IOException;
1619

1720
/**
1821
* User: bimber
@@ -48,7 +51,16 @@ public BamProcessingStep.Output processBam(Readset rs, File inputBam, ReferenceG
4851

4952
File outputBam = new File(outputDirectory, FileUtil.getBaseName(inputBam) + ".fixmate.bam");
5053
output.addIntermediateFile(outputBam);
51-
output.setBAM(getWrapper().executeCommand(inputBam, outputBam));
54+
55+
try
56+
{
57+
SAMFileHeader.SortOrder so = SequenceUtil.getBamSortOrder(inputBam);
58+
output.setBAM(getWrapper().executeCommand(inputBam, outputBam, so));
59+
}
60+
catch (IOException e)
61+
{
62+
throw new PipelineJobException(e);
63+
}
5264

5365
return output;
5466
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/util/FixMateInformationWrapper.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.labkey.sequenceanalysis.run.util;
22

3+
import htsjdk.samtools.SAMFileHeader;
34
import org.apache.log4j.Logger;
45
import org.jetbrains.annotations.Nullable;
56
import org.labkey.api.pipeline.PipelineJobException;
@@ -23,7 +24,7 @@ public FixMateInformationWrapper(@Nullable Logger logger)
2324
/**
2425
* If the output file is null, the original will be deleted and replaced by the fixed BAM
2526
*/
26-
public File executeCommand(File inputFile, @Nullable File outputFile) throws PipelineJobException
27+
public File executeCommand(File inputFile, @Nullable File outputFile, @Nullable SAMFileHeader.SortOrder so) throws PipelineJobException
2728
{
2829
getLogger().info("Fixing Mate Information: " + inputFile.getPath());
2930

@@ -33,6 +34,12 @@ public File executeCommand(File inputFile, @Nullable File outputFile) throws Pip
3334
if (outputFile != null)
3435
params.add("OUTPUT=" + outputFile.getPath());
3536

37+
if (so != null)
38+
{
39+
params.add("-SO");
40+
params.add(so.name());
41+
}
42+
3643
execute(params);
3744

3845
File expectedOut = outputFile == null ? inputFile : outputFile;

0 commit comments

Comments
 (0)