Skip to main content

bactopia

Tags: bacteria assembly annotation amr mlst genomics pipeline named-workflow

Comprehensive bacterial analysis pipeline for complete genomic characterization.

This workflow performs end-to-end analysis including quality control, assembly, annotation, antimicrobial resistance detection, MLST typing, and optional pathogen-specific analysis through Merlin. It processes raw sequencing reads and produces a complete genomic characterization suitable for downstream analysis.

Pipeline Overview

Bactopia Workflow

Looking at the workflow overview above, it might not look like much is happening, but I can assure you that a lot is going on. The workflow is broken down into 8 steps, which are:

  1. Gather - Collect all the data in one place
  2. QC - Quality control of the data
  3. Assembler - Assemble the reads into contigs
  4. Annotator - Annotate the contigs
  5. Sketcher - Create a sketch of the contigs, and query databases
  6. Sequence Typing - Determine the sequence type of the contigs
  7. Antibiotic Resistance - Determine the antibiotic resistance of the contigs and proteins
  8. Merlin - Automatically run species-specific tools based on distance

If you are looking for a guide to get started quickly, please check out the Beginner's Guide.

Step 1 - Gather

The main purpose of the gather step is to get all the samples into a single place. This includes downloading samples from ENA/SRA or NCBI Assembly. The tools used are:

ToolDescription
artFor simulating error-free reads for an input assembly
fastq-dlDownloading FASTQ files from ENA/SRA
ncbi-genome-downloadDownloading FASTA files from NCBI Assembly

This gather step also does basic QC checks to help prevent downstream failures.

Failed Quality Checks

FilenameDescription
-gzip-error.txtSample failed Gzip checks and excluded from further analysis
-low-basepair-proportion-error.txtSample failed basepair proportion checks and excluded from further analysis
-low-read-count-error.txtSample failed read count checks and excluded from further analysis
-low-sequence-depth-error.txtSample failed sequenced basepair checks and excluded from further analysis
Poor samples are excluded to prevent downstream failures

Samples that fail any of the QC checks will be excluded from further analysis. Those samples will generate a *-error.txt file with the error message. Excluding these samples prevents downstream failures that cause the whole workflow to fail.

Example Error: Input FASTQ(s) failed Gzip checks

If input FASTQ(s) fail to pass Gzip test, the sample will be excluded from further analysis.

Example Text from <SAMPLE_NAME>-gzip-error.txt <SAMPLE_NAME> FASTQs failed Gzip tests. Please check the input FASTQs. Further analysis is discontinued.

Example Error: Input FASTQs have disproportionate number of reads

If input FASTQ(s) for a sample have disproportionately different number of reads between the two pairs, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_proportion parameter.

Example Text from <SAMPLE_NAME>-low-basepair-proportion-error.txt <SAMPLE_NAME> FASTQs failed to meet the minimum shared basepairs. They shared Y basepairs, with R1 having A bp and R2 having B bp. Further analysis is discontinued.

Example Error: Input FASTQ(s) has too few reads

If input FASTQ(s) for a sample have less than the minimum required reads, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_reads parameter.

Example Text from <SAMPLE_NAME>-low-read-count-error.txt <SAMPLE_NAME> FASTQ(s) contain X total reads. This does not exceed the required minimum Y read count. Further analysis is discontinued.

Example Error: Input FASTQ(s) has too little sequenced basepairs

If input FASTQ(s) for a sample fails to meet the minimum number of sequenced basepairs, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_basepairs parameter.

Example Text from <SAMPLE_NAME>-low-sequence-depth-error.txt <SAMPLE_NAME> FASTQ(s) contain X total basepairs. This does not exceed the required minimum Y bp. Further analysis is discontinued.

Step 2 - QC

The qc module uses a variety of tools to perform quality control on Illumina and Oxford Nanopore reads. The tools used are:

ToolTechnologyDescription
bbtoolsIlluminaA suite of tools for manipulating reads
fastpIlluminaA tool designed to provide fast all-in-one preprocessing for FastQ files
fastqcIlluminaA quality control tool for high throughput sequence data
fastq_scanNanoporeA tool for quickly scanning FASTQ files
lighterIlluminaA tool for correcting sequencing errors in Illumina reads
NanoPlotNanoporeA tool for plotting long read sequencing data
nanoqNanoporeA tool for calculating quality metrics for Oxford Nanopore reads
porechopNanoporeA tool for removing adapters from Oxford Nanopore reads
rasusaNanoporeRandomly subsample sequencing reads to a specified coverage

Similar to the gather step, the qc step will also stop samples that fail to meet basic QC checks from continuing downstream.

Failed Quality Checks

FilenameDescription
.error-fastq.gzA gzipped FASTQ file of reads that failed QC
-low-read-count-error.txtSample failed read count checks and excluded from further analysis
-low-sequence-coverage-error.txtSample failed sequenced coverage checks and excluded from further analysis
-low-sequence-depth-error.txtSample failed sequenced basepair checks and excluded from further analysis
Poor samples are excluded to prevent downstream failures

Samples that fail any of the QC checks will be excluded from further analysis. Those samples will generate a *-error.txt file with the error message. Excluding these samples prevents downstream failures that cause the whole workflow to fail.

Example Error: After QC, too few reads remain

If after cleaning reads, a sample has less than the minimum required reads, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_reads parameter.

Example Text from <SAMPLE_NAME>-low-read-count-error.txt <SAMPLE_NAME> FASTQ(s) contain X total reads. This does not exceed the required minimum Y read count. Further analysis is discontinued.

Example Error: After QC, too little sequence coverage remains

If after cleaning reads, a sample has failed to meet the minimum sequence coverage required, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_coverage parameter.

Note: This check is only performed when a genome size is available.

Example Text from <SAMPLE_NAME>-low-sequence-coverage-error.txt After QC, <SAMPLE_NAME> FASTQ(s) contain X total basepairs. This does not exceed the required minimum Y bp (Zx coverage). Further analysis is discontinued.

Example Error: After QC, too little sequenced basepairs remain

If after cleaning reads, a sample has failed to meet the minimum number of sequenced basepairs, the sample will be excluded from further analysis. You can adjust this minimum read count using the --min_basepairs parameter.

Example Text from <SAMPLE_NAME>-low-sequence-depth-error.txt <SAMPLE_NAME> FASTQ(s) contain X total basepairs. This does not exceed the required minimum Y bp. Further analysis is discontinued.

Step 3 - Assembler

The assembler module uses a variety of assembly tools to create an assembly of Illumina and Oxford Nanopore reads. The tools used are:

ToolDescription
DragonflyeAssembly of Oxford Nanopore reads, as well as hybrid assembly with short-read polishing
ShovillAssembly of Illumina paired-end reads
Shovill-SEAssembly of Illumina single-end reads
UnicyclerHybrid assembly, using short-reads first then long-reads

Summary statistics for each assembly are generated using assembly-scan.

Prefer --short_polish over --hybrid with recent ONT sequencing

Using Unicycler (--hybrid) to create a hybrid assembly works great when you have low-coverage noisy long-reads. However, if you are using recent ONT sequencing, you likely have high-coverage and using the --short_polish method is going to yield better results (and be faster!) than --hybrid.

Failed Quality Checks

FilenameDescription
-assembly-error.txtSample failed assembly checks and excluded from further analysis
Poor samples are excluded to prevent downstream failures

Samples that fail any of the QC checks will be excluded from further analysis. Those samples will generate a *-error.txt file with the error message. Excluding these samples prevents downstream failures that cause the whole workflow to fail.

Example Error: Assembled Successfully, but 0 Contigs

If a sample assembles successfully, but 0 contigs are formed, the sample will be excluded from further analysis.

Example Text from <SAMPLE_NAME>-assembly-error.txt <SAMPLE_NAME> assembled successfully, but 0 contigs were formed. Please investigate <SAMPLE_NAME> to determine a cause (e.g. metagenomic, contaminants, etc...) for this outcome. Further assembly-based analysis of <SAMPLE_NAME> will be discontinued.

Example Error: Assembled successfully, but poor assembly size

If your sample assembles successfully, but the assembly size is less than the minimum allowed genome size, the sample will be excluded from further analysis. You can adjust this minimum size using the --min_genome_size parameter.

Example Text from <SAMPLE_NAME>-assembly-error.txt <SAMPLE_NAME> assembled size (000 bp) is less than the minimum allowed genome size (000 bp). If this is unexpected, please investigate <SAMPLE_NAME> to determine a cause (e.g. metagenomic, contaminants, etc...) for the poor assembly. Otherwise, adjust the --min_genome_size parameter to fit your need. Further assembly based analysis of <SAMPLE_NAME> will be discontinued.

Step 4 - Annotator

The annotator step uses either Prokka (default) or Bakta (via --use_bakta) to annotate assembled contigs with functional information including genes, proteins, rRNA, tRNA, and other genomic features.

Step 5 - Sketcher

The sketcher module uses Mash and Sourmash to create sketches and query RefSeq and GTDB.

Step 6 - Sequence Typing

The mlst step uses mlst to scan assemblies against PubMLST typing schemes and determine the sequence type.

Step 7 - Antibiotic Resistance

The amrfinderplus step uses AMRFinder+ to identify antimicrobial resistance genes and point mutations from both assembled contigs and annotated protein sequences.

Step 8 - Merlin

The merlin step automatically selects and runs species-specific typing tools based on Mash distance results from the sketcher step. Enable with --ask_merlin. See the Pathogen-Specific Analysis output section below for the full list of supported organisms and tools.

Usage

Bactopia CLI:

bactopia \
--input samples.csv \
--outdir results/

Nextflow:

nextflow run bactopia/bactopia \
--input samples.csv \
--outdir results/

Outputs

Expected Output Files

<BACTOPIA_DIR>
├── <SAMPLE_NAME>
│ ├── main
│ │ ├── annotator
│ │ │ └── prokka
│ │ │ ├── <SAMPLE_NAME>-blastdb.tar.gz
│ │ │ ├── <SAMPLE_NAME>.faa.gz
│ │ │ ├── <SAMPLE_NAME>.ffn.gz
│ │ │ ├── <SAMPLE_NAME>.fna.gz
│ │ │ ├── <SAMPLE_NAME>.fsa.gz
│ │ │ ├── <SAMPLE_NAME>.gbk.gz
│ │ │ ├── <SAMPLE_NAME>.gff.gz
│ │ │ ├── <SAMPLE_NAME>.sqn.gz
│ │ │ ├── <SAMPLE_NAME>.tbl.gz
│ │ │ ├── <SAMPLE_NAME>.tsv
│ │ │ ├── <SAMPLE_NAME>.txt
│ │ │ └── logs
│ │ │ ├── <SAMPLE_NAME>.err
│ │ │ ├── <SAMPLE_NAME>.log
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── assembler
│ │ │ ├── <SAMPLE_NAME>.fna.gz
│ │ │ ├── <SAMPLE_NAME>.tsv
│ │ │ ├── logs
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ ├── shovill-se.log
│ │ │ │ └── versions.yml
│ │ │ └── supplemental
│ │ │ ├── illumina.txt
│ │ │ └── shovill.corrections
│ │ ├── gather
│ │ │ ├── <SAMPLE_NAME>-meta.tsv
│ │ │ └── logs
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── qc
│ │ │ ├── <SAMPLE_NAME>_SE.fastq.gz
│ │ │ ├── logs
│ │ │ │ ├── <SAMPLE_NAME>-fastp.log
│ │ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ │ └── versions.yml
│ │ │ └── supplemental
│ │ │ ├── <SAMPLE_NAME>.fastp.html
│ │ │ ├── <SAMPLE_NAME>.fastp.json
│ │ │ ├── <SAMPLE_NAME>_SE-final.json
│ │ │ ├── <SAMPLE_NAME>_SE-final_fastqc.html
│ │ │ ├── <SAMPLE_NAME>_SE-final_fastqc.zip
│ │ │ ├── <SAMPLE_NAME>_SE-original.json
│ │ │ ├── <SAMPLE_NAME>_SE-original_fastqc.html
│ │ │ └── <SAMPLE_NAME>_SE-original_fastqc.zip
│ │ └── sketcher
│ │ ├── <SAMPLE_NAME>-k21.msh
│ │ ├── <SAMPLE_NAME>-k31.msh
│ │ ├── <SAMPLE_NAME>-mash-refseq88-k21.txt
│ │ ├── <SAMPLE_NAME>-sourmash-gtdb-rs207-k31.txt
│ │ ├── <SAMPLE_NAME>.sig
│ │ └── logs
│ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ └── versions.yml
│ └── tools
│ ├── amrfinderplus
│ │ ├── <SAMPLE_NAME>.tsv
│ │ └── logs
│ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ └── versions.yml
│ └── mlst
│ ├── <SAMPLE_NAME>.tsv
│ └── logs
│ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ └── versions.yml
└── bactopia-runs
└── bactopia-<TIMESTAMP>
├── merged-results
│ ├── amrfinderplus.tsv
│ ├── assembly-scan.tsv
│ ├── logs
│ │ ├── amrfinderplus-concat
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── assembly-scan-concat
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ ├── meta-concat
│ │ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ │ └── versions.yml
│ │ └── mlst-concat
│ │ ├── nf.command.{begin,err,log,out,run,sh,trace}
│ │ └── versions.yml
│ ├── meta.tsv
│ └── mlst.tsv
└── nf-reports
├── bactopia-dag.dot
├── bactopia-report.html
└── bactopia-timeline.html

Quality Control

FileDescription
supplemental/*_fastqc.*FastQC quality control reports for raw and cleaned reads
supplemental/*-NanoPlot.*NanoPlot reports for Nanopore reads
supplemental/*.fastp.*Fastp quality reports (when applicable)
supplemental/*_original.jsonQuality metrics for original reads
supplemental/*_final.jsonQuality metrics for final reads

Assembly

FileDescription
*.fastaAssembled genome sequences
assembly-stats.tsvAssembly quality metrics
merged-assembly-stats.tsvConsolidated assembly statistics

Annotation

note

Output format depends on chosen annotation tool (Bakta or Prokka)

FileDescription
*.gff.gzGenome annotation in GFF3 format (compressed)
*.gbk.gzGenome annotation in GenBank format (compressed)
*.faa.gzProtein sequences (compressed)
*.fna.gzNucleotide sequences from annotation (compressed)
*.ffn.gzFeature nucleotide sequences (compressed)
annotation.tsvAnnotation summary tables
blastdb.*BLAST database created from annotation

Typing

FileDescription
mlst.tsvMLST sequence type results
merged-mlst.tsvConsolidated MLST results

Antimicrobial Resistance

FileDescription
amrfinderplus.tsvAMR gene detection results
amrfinderplus.mutation.tsvAMR point mutation results
merged-amrfinderplus.tsvConsolidated AMR results

Comparative Analysis

FileDescription
*-k21.mshMash sketch files (k=21)
*-k31.mshMash sketch files (k=31)
*-mash-refseq88-*.txtMash screening results against RefSeq
*.sigSourmash signatures
sourmash-*.txtSourmash classification results

Pathogen-Specific Analysis

note

Only created if --ask_merlin is enabled

FileDescription
merlin/clermontyping/*E. coli phylogroup typing
merlin/ectyper/*Enterotoxigenic E. coli typing
merlin/shigatyper/*Shigella serotype prediction
merlin/shigapass/*Shigella passive surveillance
merlin/shigeifinder/*Shigella and EIEC detection
merlin/stecfinder/*STEC detection and typing
merlin/emmtyper/*S. pyogenes emm typing
merlin/hicap/*H. influenzae capsular typing
merlin/hpsuissero/*H. parasuis serotyping
merlin/kleborate/*Klebsiella species typing
merlin/staphtyper/*S. aureus spa typing
merlin/agrvate/*S. aureus agr typing
merlin/sccmec/*S. aureus SCCmec typing

Merged Results

note

Run-level aggregated results from all samples

FileDescription
samplesheet.tsvSample metadata and quality metrics

Audit Trail

Below are files that can assist you in understanding which parameters and program versions were used.

Logs

Each process that is executed will have a folder named logs. In this folder are helpful files for you to review if the need ever arises.

ExtensionDescription
.beginAn empty file used to designate the process started
.errContains STDERR outputs from the process
.logContains both STDERR and STDOUT outputs from the process
.outContains STDOUT outputs from the process
.runThe script Nextflow uses to stage/unstage files and queue processes based on given profile
.shThe script executed by bash for the process
.traceThe Nextflow trace report for the process
versions.ymlA YAML formatted file with program versions

Nextflow Reports

These Nextflow reports provide great a great summary of your run. These can be used to optimize resource usage and estimate expected costs if using cloud platforms.

FilenameDescription
bactopia-dag.dotThe Nextflow DAG visualization
bactopia-report.htmlThe Nextflow Execution Report
bactopia-timeline.htmlThe Nextflow Timeline Report
bactopia-trace.txtThe Nextflow Trace report

Parameters

Required Parameters

The following parameters are how you will provide either local or remote samples to be processed by Bactopia.

ParameterTypeDefaultDescription
--samplesstringA FOFN (via bactopia prepare) with sample names and paths to FASTQ/FASTAs to process
--r1stringFirst set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r2 and --sample)
--r2stringSecond set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r1 and --sample)
--sestringCompressed (gzip) Illumina single-end FASTQ reads (requires --sample)
--ontstringCompressed (gzip) Oxford Nanopore FASTQ reads (requires --sample)
--hybridbooleanfalseCreate hybrid assembly using Unicycler. (requires --r1, --r2, --ont and --sample)
--short_polishbooleanfalseCreate hybrid assembly from long-read assembly and short read polishing. (requires --r1, --r2, --ont and --sample)
--samplestringSample name to use for the input sequences
--accessionsstringA file containing ENA/SRA Experiment accessions or NCBI Assembly accessions to processed
--accessionstringSample name to use for the input sequences
--assemblystringA assembled genome in compressed FASTA format. (requires --sample)
--check_samplesbooleanfalseValidate the input FOFN provided by --samples

AMRFinder+ Parameters

ParameterTypeDefaultDescription
--amrfinderplus_ident_minnumber-1Minimum proportion of identical amino acids in alignment for hit (0..1)
--amrfinderplus_coverage_minnumber0.5Minimum coverage of the reference protein (0..1)
--amrfinderplus_organismstringTaxonomy group to run additional screens against
--amrfinderplus_translation_tableinteger11NCBI genetic code for translated BLAST
--amrfinderplus_noplusbooleanfalseDisable running AMRFinder+ with the --plus option
--amrfinderplus_report_commonbooleanfalseReport proteins common to a taxonomy group
--amrfinderplus_report_all_equalbooleanfalseReport all equally-scoring BLAST and HMM matches
--amrfinderplus_optsstringExtra AMRFinder+ options in quotes.
--amrfinderplus_dbstringA custom AMRFinder+ database to use, either a tarball or a folder

csvtk concat Parameters

ParameterTypeDefaultDescription
--csvtk_concat_optsstringExtra csvtk concat options in quotes

Assembler Parameters

ParameterTypeDefaultDescription
--shovill_assemblerstringskesaAssembler to be used by Shovill (choices: skesa, megahit, spades, velvet)
--dragonflye_assemblerstringflyeAssembler to be used by Dragonflye (choices: flye, miniasm, raven)
--use_unicyclerbooleanUse unicycler for paired end assembly
--min_contig_leninteger500Minimum contig length <0=AUTO>
--min_contig_covinteger2Minimum contig coverage <0=AUTO>
--contig_namefmtstringFormat of contig FASTA IDs in 'printf' style
--shovill_optsstringExtra assembler options in quotes for Shovill
--shovill_kmersstringK-mers to use <blank=AUTO>
--dragonflye_optsstringExtra assembler options in quotes for Dragonflye
--trimbooleanEnable adaptor trimming
--no_stitchbooleanDisable read stitching for paired-end reads
--no_corrbooleanDisable post-assembly correction
--unicycler_modestringnormalBridging mode used by Unicycler (choices: conservative, normal, bold)
--min_component_sizeinteger1000Graph dead ends smaller than this size (bp) will be removed from the final graph
--min_dead_end_sizeinteger1000Graph dead ends smaller than this size (bp) will be removed from the final graph
--nanohqbooleanfalseFor Flye, use '--nano-hq' instead of --nano-raw
--medaka_modelstringThe model to use for Medaka polishing
--medaka_roundsinteger0The number of Medaka polishing rounds to conduct
--racon_roundsinteger1The number of Racon polishing rounds to conduct
--no_polishbooleanSkip the assembly polishing step
--no_miniasmbooleanSkip miniasm+Racon bridging
--no_rotatebooleanDo not rotate completed replicons to start at a standard gene
--reassemblebooleanfalseIf reads were simulated, they will be used to create a new assembly.
--polypolish_roundsinteger1Number of polishing rounds to conduct with Polypolish for short read polishing
--pilon_roundsinteger0Number of polishing rounds to conduct with Pilon for short read polishing

Gather Parameters

ParameterTypeDefaultDescription
--skip_fastq_checkbooleanSkip minimum requirement checks for input FASTQs
--min_basepairsinteger2241820The minimum amount of basepairs required to continue downstream analyses.
--min_readsinteger7472The minimum amount of reads required to continue downstream analyses.
--min_coverageinteger10The minimum amount of coverage required to continue downstream analyses.
--min_proportionnumber0.5The minimum proportion of basepairs for paired-end reads to continue downstream analyses.
--min_genome_sizeinteger100000The minimum estimated genome size allowed for the input sequence to continue downstream analyses.
--max_genome_sizeinteger18040666The maximum estimated genome size allowed for the input sequence to continue downstream analyses.
--attemptsinteger3Maximum times to attempt downloads
--use_enabooleanDownload FASTQs from ENA
--no_cachebooleanSkip caching the assembly summary file from ncbi-genome-download

Sketcher Parameters

ParameterTypeDefaultDescription
--sketch_sizeinteger10000Sketch size. Each sketch will have at most this many non-redundant min-hashes.
--sourmash_scaleinteger10000Choose number of hashes as 1 in FRACTION of input k-mers
--no_winner_take_allbooleanDisable winner-takes-all strategy for identity estimates
--screen_inumber0.8Minimum identity to report.

MLST Parameters

ParameterTypeDefaultDescription
--mlst_schemestringDon't autodetect, force this scheme on all inputs
--mlst_minidinteger95Minimum DNA percent identity of full allele to consider 'similar'
--mlst_mincovinteger10Minimum DNA percent coverage to report partial allele at all
--mlst_minscoreinteger50Minimum score out of 100 to match a scheme
--mlst_nopathbooleanfalseStrip filename paths from FILE column
--mlst_dbstringA custom MLST database to use, either a tarball or a directory

QC Parameters

ParameterTypeDefaultDescription
--use_bbmapbooleanIllumina reads will be QC'd using BBMap
--use_porechopbooleanfalseUse Porechop to remove adapters from ONT reads
--skip_qcbooleanThe QC step will be skipped and it will be assumed the inputs sequences have already been QCed.
--skip_qc_plotsbooleanQC Plot creation by FastQC or Nanoplot will be skipped
--skip_error_correctionbooleanFLASH error correction of reads will be skipped.
--adaptersstringA FASTA file containing adapters to remove
--adapter_kinteger23Kmer length used for finding adapters.
--phixstringphiX174 reference genome to remove
--phix_kinteger31Kmer length used for finding phiX174.
--ktrimstringrTrim reads to remove bases matching reference kmers (choices: f, r, l)
--minkinteger11Look for shorter kmers at read tips down to this length, when k-trimming or masking.
--hdistinteger1Maximum Hamming distance for ref kmers (subs only)
--tpestringtWhen kmer right-trimming, trim both reads to the minimum length of either (choices: f, t)
--tbostringtTrim adapters based on where paired reads overlap (choices: f, t)
--qtrimstringrlTrim read ends to remove bases with quality below trimq. (choices: rl, f, r, l, w)
--trimqinteger6Regions with average quality BELOW this will be trimmed if qtrim is set to something other than f
--maqinteger10Reads with average quality (after trimming) below this will be discarded
--minlengthinteger35Reads shorter than this after trimming will be discarded
--ftminteger5If positive, right-trim length to be equal to zero, modulo this number
--tossjunkstringtDiscard reads with invalid characters as bases (choices: f, t)
--ainstringfWhen detecting pair names, allow identical names (choices: f, t)
--qoutstring33PHRED offset to use for output FASTQs (choices: 33, 64)
--maxcorinteger1Max number of corrections within a 20bp window
--sampleseedinteger42Set to a positive number to use as the random number generator seed for sampling
--ont_minlengthinteger1000ONT Reads shorter than this will be discarded
--ont_minqualinteger0Minimum average read quality filter of ONT reads
--porechop_optsstringExtra Porechop options in quotes
--nanoplot_optsstringExtra NanoPlot options in quotes
--bbduk_optsstringExtra BBDuk options in quotes
--fastp_optsstringExtra fastp options in quotes

Bakta Download Parameters

ParameterTypeDefaultDescription
--bakta_dbstringTarball or path to the Bakta database
--bakta_db_typestringfullWhich Bakta DB to download 'full' (~30GB) or 'light' (~2GB) (choices: full, light)
--bakta_save_as_tarballbooleanfalseSave the Bakta database as a tarball
--download_baktabooleanfalseDownload the Bakta database to the path given by --bakta_db

Bakta Parameters

ParameterTypeDefaultDescription
--bakta_proteinsstringFASTA file of trusted proteins to first annotate from
--bakta_prodigal_tfstringTraining file to use for Prodigal
--bakta_repliconsstringReplicon information table (tsv/csv)
--bakta_min_contig_lengthinteger1Minimum contig size to annotate
--bakta_keep_contig_headersbooleanfalseKeep original contig headers
--bakta_compliantbooleanfalseForce Genbank/ENA/DDJB compliance
--bakta_skip_trnabooleanfalseSkip tRNA detection & annotation
--bakta_skip_tmrnabooleanfalseSkip tmRNA detection & annotation
--bakta_skip_rrnabooleanfalseSkip rRNA detection & annotation
--bakta_skip_ncrnabooleanfalseSkip ncRNA detection & annotation
--bakta_skip_ncrna_regionbooleanfalseSkip ncRNA region detection & annotation
--bakta_skip_crisprbooleanfalseSkip CRISPR array detection & annotation
--bakta_skip_cdsbooleanfalseSkip CDS detection & annotation
--bakta_skip_sorfbooleanfalseSkip sORF detection & annotation
--bakta_skip_gapbooleanfalseSkip gap detection & annotation
--bakta_skip_oribooleanfalseSkip oriC/oriT detection & annotation
--bakta_optsstringExtra Bakta options in quotes. Example: '--gram +'

Prokka Parameters

ParameterTypeDefaultDescription
--prokka_proteinsstring${projectDir}/data/proteins.faaFASTA file of trusted proteins to first annotate from
--prokka_prodigal_tfstringTraining file to use for Prodigal
--prokka_compliantbooleanfalseForce Genbank/ENA/DDJB compliance
--prokka_centrestringBactopiaSequencing centre ID
--prokka_coverageinteger80Minimum coverage on query protein
--prokka_evaluestring1e-09Similarity e-value cut-off
--prokka_optsstringExtra Prokka options in quotes.
--prokka_debugbooleanfalseEnable debug mode for Prokka

mashdist Parameters

ParameterTypeDefaultDescription
--mash_sketchstringThe reference sequence as a Mash Sketch (.msh file)
--mash_seedinteger42Seed to provide to the hash function
--mash_tablebooleanfalseTable output (fields will be blank if they do not meet the p-value threshold)
--mash_minteger1Minimum copies of each k-mer required to pass noise filter for reads
--mash_wnumber0.01Probability threshold for warning about low k-mer size.
--mash_max_pnumber1.0Maximum p-value to report.
--mash_max_distnumber1.0Maximum distance to report.
--merlin_distnumber0.1Maximum distance to report when using Merlin .
--full_merlinbooleanfalseGo full Merlin and run all species-specific tools, no matter the Mash distance
--mash_use_fastqsbooleanfalseQuery with FASTQs instead of the assemblies

ClermonTyping Parameters

ParameterTypeDefaultDescription
--clermontyping_thresholdinteger0Do not use contigs under this size

ECTyper Parameters

ParameterTypeDefaultDescription
--ectyper_opidinteger90Percent identity required for an O antigen allele match
--ectyper_opcovinteger90Minimum percent coverage required for an O antigen allele match
--ectyper_hpidinteger95Percent identity required for an H antigen allele match
--ectyper_hpcovinteger50Minimum percent coverage required for an H antigen allele match
--ectyper_verifybooleanfalseEnable E. coli species verification
--ectyper_print_allelesbooleanfalsePrints the allele sequences if enabled as the final column

emmtyper Parameters

ParameterTypeDefaultDescription
--emmtyper_wfstringblastWorkflow for emmtyper to use. (choices: blast, pcr)
--emmtyper_blastdbstringPath to custom EMM BLAST DB.
--emmtyper_cluster_distanceinteger500Distance between cluster of matches to consider as different clusters
--emmtyper_percidinteger95Minimal percent identity of sequence
--emmtyper_culling_limitinteger5Total hits to return in a position
--emmtyper_mismatchinteger5Threshold for number of mismatch to allow in BLAST hit
--emmtyper_align_diffinteger5Threshold for difference between alignment length and subject length in BLAST
--emmtyper_gapinteger2Threshold gap to allow in BLAST hit
--emmtyper_min_perfectinteger15Minimum size of perfect match at 3 primer end
--emmtyper_min_goodinteger15Minimum size where there must be 2 matches for each mismatch
--emmtyper_max_sizeinteger2000Maximum size of PCR product

hicap Parameters

ParameterTypeDefaultDescription
--hicap_database_dirstringDirectory containing locus database
--hicap_model_fpstringPath to prodigal model
--hicap_full_sequencebooleanfalseWrite the full input sequence out to the genbank file rather than just the region surrounding and including the locus
--hicap_debugbooleanfalsehicap will print debug messages
--hicap_gene_coveragenumber0.8Minimum percentage coverage to consider a single gene complete
--hicap_gene_identitynumber0.7Minimum percentage identity to consider a single gene complete
--hicap_broken_gene_lengthinteger60Minimum length to consider a broken gene
--hicap_broken_gene_identitynumber0.8Minimum percentage identity to consider a broken gene

Mykrobe Parameters

ParameterTypeDefaultDescription
--mykrobe_speciesstringSpecies panel to use (choices: sonnei, staph, tb, typhi)
--mykrobe_kmerinteger21K-mer length
--mykrobe_min_depthinteger1Minimum depth
--mykrobe_modelstringkmer_countGenotype model used. (choices: kmer_count, median_depth)
--mykrobe_report_all_callsbooleanfalseReport all calls
--mykrobe_optsstringExtra Mykrobe options in quotes

GenoTyphi Parameters

ParameterTypeDefaultDescription
--genotyphi_kmerinteger21K-mer length
--genotyphi_min_depthinteger1Minimum depth
--genotyphi_modelstringkmer_countGenotype model used. (choices: kmer_count, median_depth)
--genotyphi_report_all_callsbooleanfalseReport all calls
--genotyphi_mykrobe_optsstringExtra Mykrobe options in quotes

Kleborate Parameters

ParameterTypeDefaultDescription
--kleborate_presetstringkpscPreset module to use for Kleborate (choices: kpsc, kosc, escherichia)
--kleborate_optsstringExtra options in quotes for Kleborate

legsta Parameters

ParameterTypeDefaultDescription
--legsta_noheaderbooleanfalseDon't print header row

LisSero Parameters

ParameterTypeDefaultDescription
--lissero_min_idnumber95.0Minimum percent identity to accept a match
--lissero_min_covnumber95.0Minimum coverage of the gene to accept a match

ngmaster Parameters

ParameterTypeDefaultDescription
--ngmaster_csvbooleanfalseoutput comma-separated format (CSV) rather than tab-separated

pasty Parameters

ParameterTypeDefaultDescription
--pasty_min_pidentinteger95Minimum percent identity to count a hit
--pasty_min_coverageinteger95Minimum percent coverage to count a hit

pbptyper Parameters

ParameterTypeDefaultDescription
--pbptyper_min_pidentinteger95Minimum percent identity to count a hit
--pbptyper_min_coverageinteger95Minimum percent coverage to count a hit

SeqSero2 Parameters

ParameterTypeDefaultDescription
--seqsero2_run_modestringkWorkflow to run. 'a' allele mode, or 'k' k-mer mode (choices: a, k)
--seqsero2_input_typestringassemblyInput format to analyze. 'assembly' or 'fastq' (choices: assembly, fastq)
--seqsero2_bwa_modestringmemAlgorithms for bwa mapping for allele mode (choices: mem, sam)

SeroBA Parameters

ParameterTypeDefaultDescription
--seroba_nocleanbooleanfalseDo not clean up intermediate files
--seroba_coverageinteger20Threshold for k-mer coverage of the reference sequence

SISTR Parameters

ParameterTypeDefaultDescription
--sistr_full_cgmlstbooleanfalseUse the full set of cgMLST alleles which can include highly similar alleles

AgrVATE Parameters

ParameterTypeDefaultDescription
--agrvate_typing_onlybooleanfalseagr typing only. Skips agr operon extraction and frameshift detection

spaTyper Parameters

ParameterTypeDefaultDescription
--spatyper_repeatsstringList of spa repeats
--spatyper_repeat_orderstringList spa types and order of repeats
--spatyper_do_enrichbooleanfalseDo PCR product enrichment

sccmec Parameters

ParameterTypeDefaultDescription
--sccmec_min_targets_pidentinteger90Minimum percent identity to count a target hit
--sccmec_min_targets_coverageinteger80Minimum percent coverage to count a target hit
--sccmec_min_regions_pidentinteger85Minimum percent identity to count a region hit
--sccmec_min_regions_coverageinteger93Minimum percent coverage to count a region hit

STECFinder Parameters

ParameterTypeDefaultDescription
--stecfinder_use_readsbooleanfalsePaired-end Illumina reads will be used instead of assemblies
--stecfinder_hitsbooleanfalseShow detailed gene search results
--stecfinder_cutoffnumber10.0Minimum read coverage for gene to be called
--stecfinder_lengthnumber50.0Percentage of gene length needed for positive call
--stecfinder_ipah_lengthnumber10.0Percentage of ipaH gene length needed for positive gene call
--stecfinder_ipah_depthnumber1.0Minimum depth for positive ipaH gene call (requires --stecfinder_use_reads)
--stecfinder_stx_lengthnumber10.0Percentage of stx gene length needed for positive gene call
--stecfinder_stx_depthnumber1.0Minimum depth for positive stx gene call (requires --stecfinder_use_reads)
--stecfinder_o_lengthnumber60.0Percentage of wz_ gene length needed for positive call
--stecfinder_o_depthnumber1.0Minimum depth for positive qz_ gene call (requires --stecfinder_use_reads)
--stecfinder_h_lengthnumber60.0Percentage of fliC gene length needed for positive call
--stecfinder_h_depthnumber1.0Minimum depth for positive fliC gene call (requires --stecfinder_use_reads)

TB-Profiler Profile Parameters

ParameterTypeDefaultDescription
--tbprofiler_call_whole_genomebooleanfalseCall whole genome
--tbprofiler_mapperstringbwaMapping tool to use. If you are using nanopore data it will default to minimap2 (choices: bwa, minimap2, bowtie2, bwa-mem2)
--tbprofiler_callerstringfreebayesVariant calling tool to use (choices: bcftools, gatk, freebayes)
--tbprofiler_calling_paramsstringExtra variant caller options in quotes
--tbprofiler_suspectbooleanfalseUse the suspect suite of tools to add ML predictions
--tbprofiler_no_flagstatbooleanfalseDon't collect flagstats
--tbprofiler_no_dellybooleanfalseDon't run delly
--tbprofiler_optsstringExtra options in quotes for TBProfiler

TB-Profiler Collate Parameters

ParameterTypeDefaultDescription
--tbprofiler_itolbooleanfalseGenerate itol config files
--tbprofiler_fullbooleanfalseOutput mutations in main result file
--tbprofiler_all_variantsbooleanfalseOutput all variants in variant matrix
--tbprofiler_mark_missingbooleanfalseAn asterisk will be used to mark predictions which are affected by missing data at a drug resistance position
Dataset Parameters

Define where the pipeline should find input data and save output data.

ParameterTypeDefaultDescription
--speciesstringName of species for species-specific dataset to use
--ask_merlinbooleanAsk Merlin to execute species specific Bactopia tools based on Mash distances
--coverageinteger100Reduce samples to a given coverage, requires a genome size
--genome_sizeinteger0Expected genome size (bp) for all samples, required for read error correction and read subsampling
--use_baktabooleanUse Bakta for annotation, instead of Prokka
Optional Parameters

These optional parameters can be useful in certain settings.

ParameterTypeDefaultDescription
--outdirstringbactopiaBase directory to write results to
--skip_compressionbooleanfalseOutput files will not be compressed
--datasetsstringThe path to cache datasets to
--keep_all_filesbooleanfalseKeeps all analysis files created
Max Job Request Parameters

Set the top limit for requested resources for any single job.

ParameterTypeDefaultDescription
--max_retryinteger3Maximum times to retry a process before allowing it to fail.
--max_cpusinteger4Maximum number of CPUs that can be requested for any single job.
--max_memorystring128.GBMaximum amount of memory that can be requested for any single job.
--max_timestring240.hMaximum amount of time that can be requested for any single job.
--max_downloadsinteger3Maximum number of samples to download at a time
Nextflow Configuration Parameters

Parameters to fine-tune your Nextflow setup.

ParameterTypeDefaultDescription
--nfconfigstringA Nextflow compatible config file for custom profiles, loaded last and will overwrite existing variables if set.
--publish_dir_modestringcopyMethod used to save pipeline results to output directory. (choices: symlink, rellink, link, copy, copyNoFollow, move)
--infodirstring${params.outdir}/pipeline_infoDirectory to keep pipeline Nextflow logs and reports.
--forcebooleanfalseNextflow will overwrite existing output files.
--cleanup_workdirbooleanfalseAfter Bactopia is successfully executed, the work directory will be deleted.
Institutional config options

Parameters used to describe centralized config profiles. These should not be edited.

ParameterTypeDefaultDescription
--custom_config_versionstringmasterGit commit id for Institutional configs.
--custom_config_basestringhttps://raw.githubusercontent.com/nf-core/configs/masterBase directory for Institutional configs.
--config_profile_namestringInstitutional config name.
--config_profile_descriptionstringInstitutional config description.
--config_profile_contactstringInstitutional config contact information.
--config_profile_urlstringInstitutional config URL link.
Nextflow Profile Parameters

Parameters to fine-tune your Nextflow setup.

ParameterTypeDefaultDescription
--condadirstringDirectory to Nextflow should use for Conda environments
--registrystringquay.ioRegistry to pull Docker containers from.
--datasets_cachestring<HOME>/.bactopia/datasetsDirectory where downloaded datasets should be stored.
--singularity_cachestringDirectory where remote Singularity images are stored.
--singularity_pull_docker_containerbooleanInstead of directly downloading Singularity images for use with Singularity, force the workflow to pull and convert Docker containers instead.
--force_rebuildbooleanfalseForce overwrite of existing pre-built environments.
--queuestringgeneral,high-memoryComma-separated name of the queue(s) to be used by a job scheduler (e.g. AWS Batch or SLURM)
--cluster_optsstringAdditional options to pass to the executor. (e.g. SLURM: '--account=my_acct_name'
--container_optsstringAdditional options to pass to Apptainer, Docker, or Singularity. (e.g. Singularity: '-D pwd'
--disable_scratchbooleanfalseAll intermediate files created on worker nodes of will be transferred to the head node.
Helpful Parameters

Uncommonly used parameters that might be useful.

ParameterTypeDefaultDescription
--monochrome_logsbooleanDo not use coloured log outputs.
--nfdirbooleanPrint directory Nextflow has pulled Bactopia to
--sleep_timeinteger5The amount of time (seconds) Nextflow will wait after setting up datasets before execution.
--validate_paramsbooleantrueBoolean whether to validate parameters against the schema at runtime
--helpbooleanDisplay help text.
--wfstringbactopiaSpecify which workflow or Bactopia Tool to execute
--list_wfsbooleanList the available workflows and Bactopia Tools to use with '--wf'
--show_hidden_paramsbooleanShow all params when using --help
--help_allbooleanAn alias for --help --show_hidden_params
--versionbooleanDisplay version text.

Composition

This workflow uses the following subworkflows:

  • amrfinderplus - Find antimicrobial resistance genes and point mutations.
  • bactopia_assembler - Assemble bacterial genomes using automated assembler selection.
  • bactopia_datasets - Download and provide pre-compiled datasets required by Bactopia.
  • bactopia_gather - Search, validate, gather, and standardize input samples.
  • bactopia_qc - Perform comprehensive quality control on sequencing reads.
  • bactopia_sketcher - Create genomic sketches and perform rapid taxonomic classification.
  • bakta - Rapid bacterial genome annotation.
  • merlin - MinER assisted species-specific bactopia tool seLectIoN.
  • mlst - Determine multilocus sequence types (MLST) from bacterial assemblies.
  • prokka - Annotate bacterial genomes with functional information.

Source

View source on GitHub