This guide covers aggregating per-tool QC metrics into one MultiQC report. The central idea: MultiQC does not measure anything - it scrapes the metrics other tools already wrote and presents them. The report is a human-triage snapshot, not a pass/fail gate, so the real decisions are how to scope detection, how to keep sample names from colliding, and how to turn the parsed data into an actual gate when one is needed.
pip install multiqc
# Or via conda
conda install -c bioconda multiqc
Generate the upstream QC outputs first (FastQC/falco, fastp, STAR/Picard logs, salmon, bcftools, etc.). MultiQC has nothing to aggregate without them.
Tell your AI agent what you want to do: - "Generate a MultiQC report from my FastQC and alignment results" - "Aggregate QC metrics across all samples and tell me which ones look off" - "My MultiQC report merged two samples into one row - fix the sample names" - "Build a QC gate that fails the pipeline when mapping rate drops below 70%" - "Pin a reproducible MultiQC config for my pipeline"
"Run MultiQC on my results directory and produce a shareable HTML report"
"Combine FastQC, STAR, and featureCounts outputs into one QC summary"
"MultiQC is picking up files that aren't real tool outputs - scope it to just the modules I ran"
"Two lanes of the same sample collapsed into one row; configure sample-name cleaning so they stay separate"
"Parse multiqc_data.json and fail the job if any sample has under 50% mapped reads"
"Set up MultiQC in my Snakemake workflow with a pinned config and a separate QC-gating step"
"Generate the report but make sure no sample names or data leave our network"
-m/--ignore/sp: so only intended modules and files are parsedextra_fn_clean_exts, --fn_as_s_name, --dirs, or --replace-names, verifying against multiqc_sources.txtmultiqc_config.yaml (title, module_order, formatting) for reproducible reportsmultiqc_data.json and apply thresholds in a separate parse-and-exit step rather than expecting MultiQC to fail on bad QCmultiqc_data/multiqc_sources.txt first when rows are merged, split, or missing; it maps every file to the sample name it produced.--data-format json gives the machine-readable multiqc_data.json; build automation on that, not on the HTML.--no-ai for clinical or embargoed data.