Skip to content

Report

The MultiQC report, 06.report/multiqc_report.html, gathers the QC results of all samples of a run into one page. MultiQC 1.33 makes it in rule multiqc, once per run, when the QC results, the contig summary and, with the AMR screen on, the AMR table of every sample are ready. The contig summary waits for the finished annotation, so the report is one of the last jobs of a run. This page describes what MultiQC reads, how the rows are named, which numbers the report shows and which files rule multiqc writes. Read it to find a sample's row in the report or the file behind a number.

Terms used on this page

General Statistics table the MultiQC summary table; for an assembly it shows the N50, the length and BUSCO's complete single-copy and missing counts
draft assembly (the draft) the assembly before the contamination and mitochondrion screen removes any contig, such as contigs_filt.fasta or assembly.fasta; the contig summary describes it
guide assembly the SPAdes assembly of the Illumina reads; it is screened, and only the pairs that map to it go on
contig summary the table 02.assembly/{sample}/eval/contig_summary.tsv: one row per contig of the draft, with its evidence (telomeres, depth, rDNA units, genes) and a verdict
verdict (contig summary) the label the contig summary gives each draft contig, one of eleven such as chromosome, chromosome_arm, rDNA_array or mitochondrion, with its reasons
AMR screen the optional step, off by default (parameters.amr.chroquetas), in which ChroQueTas looks in each genome for the changes FungAMR lists for the species; results in 05.amr/
target protein a protein whose FungAMR positions ChroQueTas checks, such as Beta-tubulin or Cyp51
verdict (AMR screen) the reading of FungAMR's evidence for a change or a target: resistance, conflicting, no resistance, unknown, wild type, or not compared for a position

What feeds it

QUAST, BUSCO, the contig summary and the adapter screen feed the report in every mode. The read and mapping QC depend on the mode, and the AMR table appears only with the AMR screen on:

Tool What MultiQC reads Modes
fastp 1.0.1 01.reads/{sample}/illumina/{sample}_fastp.json illumina, hybrid
NanoPlot 1.46.2 01.reads/{sample}/long/raw_qc/, filtered_qc/ ({sample}_NanoStats.txt) longread, hybrid
Qualimap 2.3 02.assembly/{sample}/eval/qualimap/; in hybrid also guide/eval/qualimap/ illumina, longread, hybrid
QUAST 5.3.0 02.assembly/{sample}/eval/quast/; in hybrid the report holds the guide assembly and the final genome, two rows all
BUSCO 6.0.0 02.assembly/{sample}/eval/busco/ all
FunFlux contig summary 02.assembly/{sample}/eval/contig_summary_mqc.tsv: one row per contig of the draft assembly, with its verdict all
FunFlux adapter screen 02.assembly/{sample}/eval/adapter_screen_mqc.tsv: one row per sample, with the ONT adapter trimming of the reads and the adapter found on the contigs all
FunFlux AMR screen (ChroQueTas) 05.amr/{sample}/amr_summary_mqc.tsv: one row per target protein of the species, with the FungAMR mutations found and a verdict on resistance all, with parameters.amr.chroquetas: on

The ITS taxonomy and the annotation are not in the report. Their results are in 03.taxonomy/ and 04.annotation/.

QUAST, BUSCO and Qualimap themselves are described under Assembly QC. The pages of the individual modes, reached from Modes, describe fastp and NanoPlot. The contig summary is described under Contig summary, the Adapters table under Adapter trimming and the adapter screen, and the AMR table under Antifungal resistance mutations.

A failed QUAST, Qualimap or NanoPlot run does not stop the workflow

The row of the sample concerned is then missing from the report. A failed MultiQC run, on the other hand, stops the workflow.

Sample names

The report names each row after what it holds and the sample it belongs to. These are the names, the files they come from and the modes that have them:

Row From Modes
fastp read QC | <sample> 01.reads/{sample}/illumina/{sample}_fastp.json illumina, hybrid
NanoPlot raw read QC | <sample>, NanoPlot filtered read QC | <sample> 01.reads/{sample}/long/raw_qc/{sample}_NanoStats.txt, filtered_qc/{sample}_NanoStats.txt longread, hybrid
mapping QC | <sample> 02.assembly/{sample}/eval/qualimap/: the sample's reads on the draft illumina, longread, hybrid
mapping Illumina QC | <sample> 02.assembly/{sample}/guide/eval/qualimap/: the Illumina pairs on the guide hybrid
QUAST guide assembly QC | <sample> eval/quast/report.tsv, the row labelled {sample}_guide hybrid
QUAST assembly QC | <sample> eval/quast/report.tsv all
BUSCO completeness QC (<lineage>) | <sample> eval/busco/short_summary.generic.<lineage>.{sample}.txt or short_summary.specific.<lineage>.{sample}.txt all
<sample>: <contig> eval/contig_summary_mqc.tsv, one row per contig of the draft assembly all
<sample> eval/adapter_screen_mqc.tsv: the sample's row of the Adapters table all
<sample>: <target> 05.amr/{sample}/amr_summary_mqc.tsv, one row per target protein all, AMR screen on

These names were checked in finished runs of the three read-based modes on one public genome, and of longread and hybrid with PacBio HiFi reads on a second; the Adapters row was checked in the FunFlux 2.1.0 runs, in longread and hybrid mode. The runs are described on Validation on public genomes. A row whose name does not come out as above shows the raw folder path instead. Its numbers are not affected.

With parameters.busco.lineage: auto, BUSCO writes a generic summary, for the broad lineage it tried first, and a specific one, for the lineage it ended with. Every sample then gets two BUSCO rows. With a named lineage, it gets one.

Sample names are shown in full. Otherwise MultiQC would cut a name at the first file ending it knows, such as .clean or .sorted. A sample named SAMPLE1.clean would then get a wrong name, and two such samples would share one row. The names do not depend on where the output folder lies.

What the report shows

For QUAST and BUSCO, the General Statistics table of the report shows by default the N50, the assembly length and the complete single-copy and missing BUSCO counts. Its numbers are in 06.report/multiqc_data/multiqc_general_stats.txt. That file has one line for each row name listed above except the contig-summary, Adapters and AMR rows, for example QUAST assembly QC | SAMPLE1. Each line fills only the columns of its own tool. The QUAST and BUSCO columns are these:

Column Unit In the General Statistics table of the report
quast-N50 kb shown
quast-Total_length Mb shown, as the assembly length
busco-complete BUSCO genes hidden by default
busco-complete_single_copy BUSCO genes shown
busco-complete_duplicated BUSCO genes hidden by default
busco-fragmented BUSCO genes hidden by default
busco-missing BUSCO genes shown

The complete, duplicated and fragmented counts can be switched on in the column settings of the General Statistics table.

The sections of the report for QUAST, BUSCO and the FunFlux tables hold the following:

Section of the report What it holds
QUAST the full QUAST table and a plot of contig counts by length
BUSCO one bar chart per dataset
Adapters one row per sample: for ONT samples, the share of reads that started with the adapter before and after trimming, ONT's published barcodes found in the reads, and what was trimmed; for every sample, the contig ends with adapter, the adapter matches inside contigs and a verdict
Contig summary contig_summary_mqc.tsv of every sample as one table, one row per contig of the draft assembly with all 21 columns of the file; the table's column settings show or hide columns, and multiqc_data/multiqc_contig_summary.txt holds the numbers. It is not part of the General Statistics table
AMR mutations (ChroQueTas), with the AMR screen on amr_summary_mqc.tsv of every sample as one table, one row per target protein of the species: its status, the positions compared, the verdict, the FungAMR mutations and new mutations found, and the drugs with evidence of resistance and of no resistance, with their levels (The tables)

MultiQC shows a table with more than 500 rows as a violin plot

The limit is MultiQC's max_table_rows setting. The contig summary has one row per contig of every sample, so for a batch of fragmented assemblies, read 02.assembly/{sample}/eval/contig_summary.tsv itself, as described under Contig summary.

Files

Rule multiqc writes the report, the configuration it was made with, the numbers behind it and a log:

Path Content
06.report/multiqc_report.html the report
06.report/multiqc_config.yaml the configuration the report was made with: no absolute paths and no creation date and time at the top of the page (show_analysis_paths: False, show_analysis_time: False), sample names not shortened (fn_clean_sample_names: false), and the rules that turn folder paths into the sample names above (sample_names_replace)
06.report/multiqc_data/ the numbers behind the page as text and JSON: multiqc_general_stats.txt (one line per row name of the report), multiqc_quast.txt, multiqc_busco.txt, multiqc_contig_summary.txt, multiqc_data.json, MultiQC's own multiqc.log, and more
logs/multiqc.log what MultiQC printed

The report covers the samples of the current run only and is made again when they change. multiqc_data/ is then replaced as a whole.

To combine several runs in one report, run MultiQC yourself with --ignore '*/busco/run_*' --ignore '*/busco/auto_lineage'. The kept BUSCO folders hold extra copies of each BUSCO summary, and without these two options each copy shows as one more BUSCO row.

A personal MultiQC configuration cannot move the report or multiqc_data/, because multiqc_config.yaml sets their names and is read last.