private void processPostAlignment()

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));
        }
    }