in src/main/java/com/epam/fonda/tools/impl/DnaPicardQc.java [120:154]
public MetricsResult generate(Configuration configuration, TemplateEngine templateEngine) {
workflowType = configuration.getGlobalConfig().getPipelineInfo().getWorkflow();
libraryType = validate(configuration.getStudyConfig().getLibraryType(), StudyConfigFormat.LIBRARY_TYPE);
if (checkWorkflow()) {
return metricsResult;
}
StringBuilder cmd = new StringBuilder();
AdditionalFields additionalFields = initializeAdditionalFields(configuration);
MetricsFields metricsFields = initializeMetricsFields();
Context context = buildContext(configuration, additionalFields, metricsFields);
AbstractCommand resultCommand = metricsResult.getCommand();
if (isWorkflowDnaAmplicon()) {
cmd.append(templateEngine.process(DNA_AMPLICON_PICARD_QC_TOOL_TEMPLATE_NAME, context));
} else if (isCaptureWorkflowTargetType(libraryType)) {
cmd.append(templateEngine.process(DNA_CAPTURE_PICARD_QC_TOOL_TEMPLATE_NAME, context));
} else if (isWorkflowDnaCapture() && matchesExomeLibraryTypeCondition(libraryType) ||
isRnaWorkflow(configuration)) {
cmd.append(templateEngine.process(DNA_PICARD_QC_TOOL_TEMPLATE_NAME, context));
} else if (isWorkflowDnaWgs()) {
cmd.append(templateEngine.process(DNA_WGS_PICARD_QC_TOOL_TEMPLATE_NAME, context));
}
if (isWorkflowRna()) {
TaskContainer.addTasks("RNA QC metrics", "Merge RNA QC");
} else {
TaskContainer.addTasks("DNA QC metrics", "Merge DNA QC");
}
resultCommand.setToolCommand(resultCommand.getToolCommand() + cmd);
return MetricsResult.builder()
.bamOutput(metricsResult.getBamOutput())
.metricsOutput(buildMetricsOutput())
.command(resultCommand)
.build();
}