diff --git a/sunbeam/workflow/scripts/fastqc_report.py b/sunbeam/workflow/scripts/fastqc_report.py index feeea6f6..303ac961 100755 --- a/sunbeam/workflow/scripts/fastqc_report.py +++ b/sunbeam/workflow/scripts/fastqc_report.py @@ -2,17 +2,22 @@ from typing import TextIO -def f(log: TextIO): - import pandas - from sunbeam.bfx.reports import parse_fastqc_quality +def f(log: TextIO): + import pandas + from sunbeam.bfx.reports import parse_fastqc_quality input_reports = snakemake.input.reports # type: ignore output_report = snakemake.output.report # type: ignore - - quality_list = [parse_fastqc_quality(file) for file in input_reports] - quality_list = [qr for qr in quality_list if qr is not None] - quality_table = pandas.concat(quality_list, axis=1).transpose() - quality_table.to_csv(output_report, sep="\t", index_label="Samples") + + quality_list = [parse_fastqc_quality(file) for file in input_reports] + quality_list = [qr for qr in quality_list if qr is not None] + if len(quality_list) == 0: + log.write("No per-base sequence quality data found; writing empty report.\n") + pandas.DataFrame().to_csv(output_report, sep="\t", index_label="Samples") + return + + quality_table = pandas.concat(quality_list, axis=1).transpose() + quality_table.to_csv(output_report, sep="\t", index_label="Samples") log_f = snakemake.log[0] # type: ignore