public BamResult generate()

in src/main/java/com/epam/fonda/tools/impl/Star.java [87:120]


    public BamResult generate(Configuration configuration, TemplateEngine templateEngine) {
        AdditionalStarFields additionalStarFields = initializeAdditionalFields(configuration);
        final String genomeBam = format("%s/%s.star.sorted.bam", sample.getBamOutdir(), sample.getName());
        final String transcriptomeBam = format("%s/%s.Aligned.toTranscriptome.out.bam", sample.getBamOutdir(),
                sample.getName());
        if (additionalStarFields.fastq1 == null) {
            throw new IllegalArgumentException(
            "Error Step: In star: no fastq files are properly provided, please check!");
        }
        Context context = new Context();
        context.setVariable("additionalStarFields", additionalStarFields);
        context.setVariable("toolFields", initializeToolFields(configuration));
        context.setVariable("flag", flag);
        context.setVariable("bam", genomeBam);
        String cmd = templateEngine.process(STAR_TOOL_TEMPLATE_NAME, context);

        BamOutput bamOutput = BamOutput.builder().build();
        if (flag.isRsem()) {
            bamOutput.setBam(transcriptomeBam);
            TaskContainer.addTasks("STAR alignment");
        } else {
            bamOutput.setBam(genomeBam);
            bamOutput.setBamIndex(additionalStarFields.bamIndex);
            bamOutput.setSortedBam(genomeBam);
            bamOutput.setSortedBamIndex(additionalStarFields.bamIndex);
            bamOutput.setUnsortedBam(additionalStarFields.unsortedBam);
            bamOutput.setUnsortedBamIndex(additionalStarFields.unsortedBamIndex);
            TaskContainer.addTasks("STAR alignment", "Sort bam", "Index bam");
        }
        return BamResult.builder()
                .bamOutput(bamOutput)
                .command(BashCommand.withTool(cmd))
                .build();
    }