diff --git a/hmf-common/src/main/java/com/hartwig/hmftools/common/bamops/BamOperations.java b/hmf-common/src/main/java/com/hartwig/hmftools/common/bamops/BamOperations.java index 3e8592a15d..99a242ed07 100644 --- a/hmf-common/src/main/java/com/hartwig/hmftools/common/bamops/BamOperations.java +++ b/hmf-common/src/main/java/com/hartwig/hmftools/common/bamops/BamOperations.java @@ -18,6 +18,7 @@ public final class BamOperations private static final String MERGE_COMMAND = "merge"; private static final String CONCATENATE_COMMAND = "cat"; private static final String SORT_COMMAND = "sort"; + private static final String REHEADER_COMMAND = "reheader"; protected static final Logger BOP_LOGGER = LogManager.getLogger(BamOperations.class); @@ -132,6 +133,31 @@ public static boolean sortBam( return true; } + public static boolean reheaderBam( + final BamToolName toolName, final String toolPath, final String inputBam, final String outputBam, final String headerBam) + { + if(toolName != BamToolName.SAMTOOLS) + return false; + + List commandArgs = Lists.newArrayList(); + + commandArgs.add(toolPath); + commandArgs.add(REHEADER_COMMAND); + + commandArgs.add("--no-PG"); + commandArgs.add(headerBam); + + commandArgs.add(inputBam); + + commandArgs.add(">"); + commandArgs.add(outputBam); + + if(!executeCommand(commandArgs, outputBam)) + return false; + + BOP_LOGGER.trace("reheader complete"); + return true; + } private static void addThreadsArg(final BamToolName toolName, final List commandArgs, final int threads) {