in src/main/java/com/epam/fonda/workflow/impl/DnaVarFastqWorkflow.java [132:164]
private void processPostAlignment(final Configuration configuration,
final FastqFileSample sample,
final List<String> fastqs1,
final List<String> bamsToMerge) throws IOException {
final StringBuilder resultCmd = new StringBuilder();
resultCmd.append(DnaUtils.periodicIndexBamStatusCheckForFastqList(fastqs1, sample.getName(), null,
configuration));
BamResult bamResult = new PicardMergeDnaBam(sample, bamsToMerge).generate(configuration, TEMPLATE_ENGINE);
configuration.setCustTask("postalignment");
bamResult = new PostAlignment(bamResult).process(flag, sample, configuration, TEMPLATE_ENGINE);
resultCmd.append(bamResult.getCommand().getToolCommand());
BamOutput bamOutput = bamResult.getBamOutput();
bamOutput.setControlBam(bamOutput.getBam().replace(sample.getName(), sample.getControlName()));
if (sample.getSampleType().equals(PipelineUtils.CASE) || sample.getSampleType().equals(PipelineUtils.TUMOR)) {
resultCmd.append(DnaUtils.checkPeriodicBamStatus(stringTag, sample.getName(), sample.getControlName(),
configuration, null));
final boolean isPaired = StringUtils.isNoneBlank(sample.getControlName())
&& !PipelineUtils.NA.equals(sample.getControlName());
resultCmd.append(new SecondaryAnalysis(bamResult, sample.getName(), sample.getSampleOutputDir(),
sample.getControlName(), isPaired, scriptManager)
.process(flag, configuration, TEMPLATE_ENGINE));
}
final String command = configuration.isMasterMode()
? resultCmd.toString()
: resultCmd.append(cleanUpTmpDir(bamResult.getCommand().getTempDirs())).toString();
final String postAlignScript = printShell(configuration, command, sample.getName(), null);
if (scriptManager != null) {
scriptManager.addScript(sample.getName(), POST_ALIGNMENT, postAlignScript);
bamResult.getCommand().getTempDirs().forEach(t -> scriptManager.addScript(sample.getName(), TEMP, t));
}
}