public BamResult process()

in src/main/java/com/epam/fonda/workflow/stage/impl/PostAlignment.java [59:95]


    public BamResult process(final Flag flag, final FastqFileSample sample, final Configuration configuration,
                             final TemplateEngine templateEngine) {
        if (flag.isPicard()) {
            bamResult = new PicardMarkDuplicate(sample, bamResult).generate(configuration, templateEngine);
            if (isCapture(configuration) || isWgsWorkflow(configuration)) {
                bamResult = new PicardRemoveDuplicate(bamResult).generate(configuration, templateEngine);
            }
            if (flag.isQc()) {
                MetricsResult metricsResult = MetricsResult.builder()
                        .bamOutput(bamResult.getBamOutput())
                        .metricsOutput(MetricsOutput.builder().build())
                        .command(BashCommand.withTool(""))
                        .build();
                metricsResult = new DnaPicardQc(sample, metricsResult).generate(configuration, templateEngine);
                final AbstractCommand command = bamResult.getCommand();
                final AbstractCommand metricsCommand = metricsResult.getCommand();
                command.setToolCommand(bamResult.getCommand().getToolCommand()
                        + metricsCommand.getToolCommand());
                command.getTempDirs().addAll(metricsCommand.getTempDirs());
                bamResult.setCommand(command);
            }
        }
        if (PipelineType.RNA_CAPTURE_VAR_FASTQ.getName()
                .equalsIgnoreCase(configuration.getGlobalConfig().getPipelineInfo().getWorkflow())) {
            bamResult = new GatkSplitReads(sample.getSampleOutputDir(),
                    bamResult).generate(configuration, templateEngine);
        }
        if (flag.isAbraRealign() && !flag.isMutect2()) {
            bamResult = new AbraRealign(sample, bamResult).generate(configuration, templateEngine);
        }
        if (flag.isGatkRealign() && !flag.isMutect2()) {
            bamResult = new AmpliconGatkRealign(sample, bamResult).generate(configuration, templateEngine);
        }
        bamResult = new AmpliconGatkRecalibrate(sample.getTmpOutdir(), bamResult)
                .generate(configuration, templateEngine);
        return bamResult;
    }