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