{% macro file_validation_report(validation_results, file_name) -%} {% for check_type, check_per_file in validation_results.items() %} {% set result = check_per_file.get(file_name, {}) %} {% if check_type == "assembly_check" %} {{ assembly_check(result) }} {% elif check_type == "vcf_check" %} {{ vcf_check(result) }} {% endif %} {% endfor %} {%- endmacro %} {% macro vcf_check(vcf_check_result) %} {% set critical_count = vcf_check_result.get("critical_count", 0) %} {% set error_count = vcf_check_result.get("error_count", 0) %} {% set expand_icon = "" %} {% if critical_count > 0 %} {% set expand_icon = "▶" %} {% set icon = "❌" %} {% set row_class = "report-section fail collapsible" %} {% elif error_count > 0 %} {% set expand_icon = "▶" %} {% set icon = "❌" %} {% set row_class = "report-section warn collapsible" %} {% else %} {% set icon = "✔" %} {% set row_class = "report-section pass" %} {% endif %}
{{ expand_icon }} {{ icon }} VCF check: {{ critical_count }} critical errors, {{ error_count }} non-critical errors
{% set critical_list = vcf_check_result.get("critical_list") %} {% set error_list = vcf_check_result.get("error_list") %} {% if critical_list or error_list%}
First 10 errors per category are below. Full report: {{ vcf_check_result.get('report_path', '') }}
{% for error in critical_list[:10] %} {% endfor %} {% for error in error_list[:10] %} {% endfor %}
CategoryError
critical error {{ error }}
non-critical error {{ error }}
{% endif %} {%- endmacro %} {% macro assembly_check(assembly_check_result) %} {% set nb_match = assembly_check_result.get("match", 0) %} {% set nb_total = assembly_check_result.get("total", 0) %} {% set match_percentage = nb_match / nb_total * 100 if nb_total else 0 %} {% set expand_icon = "" %} {% if assembly_check_result.get("nb_mismatch", 0) > 0 or nb_total == 0 %} {% set expand_icon = "▶" %} {% set icon = "❌" %} {% set row_class = "report-section fail collapsible" %} {% else %} {% set icon = "✔" %} {% set row_class = "report-section pass" %} {% endif %}
{{ expand_icon }} {{ icon }} Assembly check: {{ nb_match }}/{{ nb_total }} ({{ match_percentage|round(2) }}%)
{% set mismatch_list = assembly_check_result.get("mismatch_list") %} {% set error_list = assembly_check_result.get("error_list") %} {% if mismatch_list or error_list %}
First 10 errors per category are below. Full report: {{ assembly_check_result.get('report_path', '') }}
{% for error in error_list[:10] %} {% endfor %} {% for error in mismatch_list[:10] %} {% endfor %}
CategoryError
Parsing Error {{ error }}
mismatch error {{ error }}
{% endif %} {%- endmacro %}