Skip to content

Full Guide

Bactopia is a complete pipeline for the analysis of bacterial genomes, which includes more than 150 bioinformatics tools. In this section, each step of the pipeline will be described in detail. This includes the input data, output data, and the parameters for each step.

Bactopia Workflow

Looking at the workflow overview below, 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

This guide is meant to be extensive, so it will be very detailed. If you are looking for a guide to get started quickly, please check out the Beginner's Guide.

Otherwise, let's get started!

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:

Tool Description
art For simulating error-free reads for an input assembly
fastq-dl Downloading FASTQ files from ENA/SRA
ncbi-genome-download Downloading FASTA files from NCBI Assembly

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

Outputs

Merged Results

Below are results that are concatenated into a single file.

Filename Description
meta.tsv A tab-delimited file with bactopia metadata for all samples

gather

Below is a description of the per-sample results from the gather subworkflow.

Filename Description
-meta.tsv A tab-delimited file with bactopia metadata for each sample

Failed Quality Checks

Built into Bactopia are few basic quality checks to help prevent downstream failures. If a sample fails one of these checks, it will be excluded from further analysis. By excluding these samples, complete pipeline failures are prevented.

Filename Description
-gzip-error.txt Sample failed Gzip checks and excluded from further analysis
-low-basepair-proportion-error.txt Sample failed basepair proportion checks and excluded from further analysis
-low-read-count-error.txt Sample failed read count checks and excluded from further analysis
-low-sequence-depth-error.txt Sample 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 (X``). They sharedYbasepairs, with R1 havingAbp and R2 havingB` 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.

Parameters

Required

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

Parameter Description
--samples A FOFN (via bactopia prepare) with sample names and paths to FASTQ/FASTAs to process
Type: string
--r1 First set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r2 and --sample)
Type: string
--r2 Second set of compressed (gzip) Illumina paired-end FASTQ reads (requires --r1 and --sample)
Type: string
--se Compressed (gzip) Illumina single-end FASTQ reads (requires --sample)
Type: string
--ont Compressed (gzip) Oxford Nanopore FASTQ reads (requires --sample)
Type: string
--hybrid Create hybrid assembly using Unicycler. (requires --r1, --r2, --ont and --sample)
Type: boolean
--short_polish Create hybrid assembly from long-read assembly and short read polishing. (requires --r1, --r2, --ont and --sample)
Type: boolean
--sample Sample name to use for the input sequences
Type: string
--accessions A file containing ENA/SRA Experiment accessions or NCBI Assembly accessions to processed
Type: string
--accession Sample name to use for the input sequences
Type: string
--assembly A assembled genome in compressed FASTA format. (requires --sample)
Type: string
--check_samples Validate the input FOFN provided by --samples
Type: boolean

Dataset

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

Parameter Description
--species Name of species for species-specific dataset to use
Type: string
--ask_merlin Ask Merlin to execute species specific Bactopia tools based on Mash distances
Type: boolean
--coverage Reduce samples to a given coverage, requires a genome size
Type: integer, Default: 100
--genome_size Expected genome size (bp) for all samples, required for read error correction and read subsampling
Type: string, Default: 0
--use_bakta Use Bakta for annotation, instead of Prokka
Type: boolean

Citations

If you use Bactopia and gather results in your analysis, please cite the following.

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:

Tool Technology Description
bbtools Illumina A suite of tools for manipulating reads
fastp Illumina A tool designed to provide fast all-in-one preprocessing for FastQ files
fastqc Illumina A quality control tool for high throughput sequence data
fastq_scan Nanopore A tool for quickly scanning FASTQ files
lighter Illumina A tool for correcting sequencing errors in Illumina reads
NanoPlot Nanopore A tool for plotting long read sequencing data
nanoq Nanopore A tool for calculating quality metrics for Oxford Nanopore reads
porechop Nanopore A tool for removing adapters from Oxford Nanopore reads
rasusa Nanopore Randomly 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.

Outputs

Quality Control

Below is a description of the per-sample results from qc subworkflow.

Filename Description
<SAMPLE_NAME>.fastq.gz A gzipped FASTQ file containing the cleaned Illumina single-end, or Oxford Nanopore reads
<SAMPLE_NAME>_R{1|2}.fastq.gz A gzipped FASTQ file containing the cleaned Illumina paired-end reads
<SAMPLE_NAME>-{final|original}.json A JSON file containing the QC results generated by fastq-scan
<SAMPLE_NAME>-{final|original}_fastqc.html (Illumina Only) A HTML report of the QC results generated by fastqc
<SAMPLE_NAME>-{final|original}_fastqc.zip (Illumina Only) A zip file containing the complete set of fastqc results
<SAMPLE_NAME>-{final|original}_fastp.json (Illumina Only) A JSON file containing the QC results generated by fastp
<SAMPLE_NAME>-{final|original}_fastp.html (Illumina Only) A HTML report of the QC results generated by fastp
<SAMPLE_NAME>-{final|original}_NanoPlot-report.html (ONT Only) A HTML report of the QC results generated by NanoPlot
<SAMPLE_NAME>-{final|original}_NanoPlot.tar.gz (ONT Only) A tarball containing the complete set of NanoPlot results

Failed Quality Checks

Built into Bactopia are few basic quality checks to help prevent downstream failures. If a sample fails one of these checks, it will be excluded from further analysis. By excluding these samples, complete pipeline failures are prevented.

Filename Description
.error-fastq.gz A gzipped FASTQ file of Illumina Single-End or Oxford Nanopore reads that failed QC
_R{1|2}.error-fastq.gz A gzipped FASTQ file of Illumina Single-End or Oxford Nanopore reads that failed QC
-low-read-count-error.txt Sample failed read count checks and excluded from further analysis
-low-sequence-coverage-error.txt Sample failed sequenced coverage checks and excluded from further analysis
-low-sequence-depth-error.txt Sample 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.

QC Parameters

Parameter Description
--use_bbmap Illumina reads will be QC'd using BBMap
Type: boolean
--use_porechop Use Porechop to remove adapters from ONT reads
Type: boolean, Default: turned off
--skip_qc The QC step will be skipped and it will be assumed the inputs sequences have already been QCed.
Type: boolean
--skip_qc_plots QC Plot creation by FastQC or Nanoplot will be skipped
Type: boolean
--skip_error_correction FLASH error correction of reads will be skipped.
Type: boolean
--adapters A FASTA file containing adapters to remove
Type: string
--adapter_k Kmer length used for finding adapters.
Type: integer, Default: 23
--phix phiX174 reference genome to remove
Type: string
--phix_k Kmer length used for finding phiX174.
Type: integer, Default: 31
--ktrim Trim reads to remove bases matching reference kmers
Type: string, Default: r
--mink Look for shorter kmers at read tips down to this length, when k-trimming or masking.
Type: integer, Default: 11
--hdist Maximum Hamming distance for ref kmers (subs only)
Type: integer, Default: 1
--tpe When kmer right-trimming, trim both reads to the minimum length of either
Type: string, Default: t
--tbo Trim adapters based on where paired reads overlap
Type: string, Default: t
--qtrim Trim read ends to remove bases with quality below trimq.
Type: string, Default: rl
--trimq Regions with average quality BELOW this will be trimmed if qtrim is set to something other than f
Type: integer, Default: 6
--maq Reads with average quality (after trimming) below this will be discarded
Type: integer, Default: 10
--minlength Reads shorter than this after trimming will be discarded
Type: integer, Default: 35
--ftm If positive, right-trim length to be equal to zero, modulo this number
Type: integer, Default: 5
--tossjunk Discard reads with invalid characters as bases
Type: string, Default: t
--ain When detecting pair names, allow identical names
Type: string, Default: f
--qout PHRED offset to use for output FASTQs
Type: string, Default: 33
--maxcor Max number of corrections within a 20bp window
Type: integer, Default: 1
--sampleseed Set to a positive number to use as the random number generator seed for sampling
Type: integer, Default: 42
--ont_minlength ONT Reads shorter than this will be discarded
Type: integer, Default: 1000
--ont_minqual Minimum average read quality filter of ONT reads
Type: integer
--porechop_opts Extra Porechop options in quotes
Type: integer
--nanoplot_opts Extra NanoPlot options in quotes
Type: integer
--bbduk_opts Extra BBDuk options in quotes
Type: integer
--fastp_opts Extra fastp options in quotes
Type: integer

Citations

If you use Bactopia and qc results in your analysis, please cite the following.

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:

Tool Description
Dragonflye Assembly of Oxford Nanopore reads, as well as hybrid assembly with short-read polishing
Shovill Assembly of Illumina paired-end reads
Shovill-SE Assembly of Illumina single-end reads
Unicycler Hybrid assembly, using short-reads first then long-reads

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

Outputs

Merged Results

Below are results that are concatenated into a single file.

Filename Description
assembly-scan.tsv Assembly statistics for all samples

Dragonflye

Below is a description of the per-sample results for Oxford Nanopore reads using Dragonflye.

Filename Description
<SAMPLE_NAME>.fna.gz The final assembly produced by Dragonflye
<SAMPLE_NAME>.tsv A tab-delimited file containing assembly statistics
flye-info.txt A log file containing information about the Flye assembly
{flye|miniasm|raven}-unpolished.fasta.gz Raw unprocessed assembly produced by the used assembler
{flye|miniasm|raven}-unpolished.gfa.gz Raw unprocessed assembly graph produced by the used assembler

Shovill

Below is a description of the per-sample results for Illumina reads using Shovill or Shovill-SE.

Filename Description
<SAMPLE_NAME>.fna.gz The final assembly produced by Dragonflye
<SAMPLE_NAME>.tsv A tab-delimited file containing assembly statistics
flash.hist (Paired-End Only) Numeric histogram of merged read lengths.
flash.histogram (Paired-End Only) Visual histogram of merged read lengths
{megahit|spades|velvet}-unpolished.gfa.gz Raw unprocessed assembly graph produced by the used assembler
shovill.corrections List of post-assembly corrections made by Shovill

Hybrid Assembly (Unicycler)

Below is a description of the per-sample results for a hybrid assembly using Unicycler (--hybrid). When using Unicycler, the short-reads are assembled first, then the long-reads are used to polish the assembly.

Filename Description
<SAMPLE_NAME>.fna.gz The final assembly produced by Dragonflye
<SAMPLE_NAME>.tsv A tab-delimited file containing assembly statistics
unicycler-unpolished.fasta.gz Raw unprocessed assembly produced by Unicycler
unicycler-unpolished.fasta.gz Raw unprocessed assembly graph produced by Unicycler

Hybrid Assembly (Short Read Polishing)

Below is a description of the per-sample results for a hybrid assembly using Dragonflye (--short_polish). When using Dragonflye, the long-reads are assembled first, then the short-reads are used to polish the assembly.

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 yeild better results (and be faster!) than --hybrid.

Filename Description
<SAMPLE_NAME>.fna.gz The final assembly produced by Dragonflye
<SAMPLE_NAME>.tsv A tab-delimited file containing assembly statistics
flye-info.txt A log file containing information about the Flye assembly
{flye|miniasm|raven}-unpolished.fasta.gz Raw unprocessed assembly produced by the used assembler
{flye|miniasm|raven}-unpolished.gfa.gz Raw unprocessed assembly graph produced by the used assembler

Failed Quality Checks

Built into Bactopia are few basic quality checks to help prevent downstream failures. If a sample fails one of these checks, it will be excluded from further analysis. By excluding these samples, complete pipeline failures are prevented.

Filename Description
-assembly-error.txt Sample failed read count 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 you 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.

Assembler Parameters

Parameter Description
--shovill_assembler Assembler to be used by Shovill
Type: string, Default: skesa
--dragonflye_assembler Assembler to be used by Dragonflye
Type: string, Default: flye
--use_unicycler Use unicycler for paired end assembly
Type: boolean
--min_contig_len Minimum contig length <0=AUTO>
Type: integer, Default: 500
--min_contig_cov Minimum contig coverage <0=AUTO>
Type: integer, Default: 2
--contig_namefmt Format of contig FASTA IDs in 'printf' style
Type: string
--shovill_opts Extra assembler options in quotes for Shovill
Type: string
--shovill_kmers K-mers to use
Type: string
--dragonflye_opts Extra assembler options in quotes for Dragonflye
Type: string
--trim Enable adaptor trimming
Type: boolean
--no_stitch Disable read stitching for paired-end reads
Type: boolean
--no_corr Disable post-assembly correction
Type: boolean
--unicycler_mode Bridging mode used by Unicycler
Type: string, Default: normal
--min_polish_size Contigs shorter than this value (bp) will not be polished using Pilon
Type: integer, Default: 10000
--min_component_size Graph dead ends smaller than this size (bp) will be removed from the final graph
Type: integer, Default: 1000
--min_dead_end_size Graph dead ends smaller than this size (bp) will be removed from the final graph
Type: integer, Default: 1000
--nanohq For Flye, use '--nano-hq' instead of --nano-raw
Type: boolean
--medaka_model The model to use for Medaka polishing
Type: string
--medaka_rounds The number of Medaka polishing rounds to conduct
Type: integer
--racon_rounds The number of Racon polishing rounds to conduct
Type: integer, Default: 1
--no_polish Skip the assembly polishing step
Type: boolean
--no_miniasm Skip miniasm+Racon bridging
Type: boolean
--no_rotate Do not rotate completed replicons to start at a standard gene
Type: boolean
--reassemble If reads were simulated, they will be used to create a new assembly.
Type: boolean
--polypolish_rounds Number of polishing rounds to conduct with Polypolish for short read polishing
Type: integer, Default: 1
--pilon_rounds Number of polishing rounds to conduct with Pilon for short read polishing
Type: integer

Citations

If you use Bactopia and assembler results in your analysis, please cite the following.

Step 4 - Annotator

Outputs

Prokka

Below is a description of the per-sample results from Prokka.

Filename Description
.blastdb.tar.gz A gzipped tar archive of BLAST+ database of the contigs, genes, and proteins
.faa.gz Protein FASTA file of the translated CDS sequences.
.ffn.gz Nucleotide FASTA file of all the prediction transcripts (CDS, rRNA, tRNA, tmRNA, misc_RNA)
.fna.gz Nucleotide FASTA file of the input contig sequences.
.gbk.gz This is a standard GenBank file derived from the master .gff. If the input to prokka was a multi-FASTA, then this will be a multi-GenBank, with one record for each sequence.
.gff.gz This is the master annotation in GFF3 format, containing both sequences and annotations. It can be viewed directly in Artemis or IGV.
.sqn.gz An ASN1 format "Sequin" file for submission to GenBank. It needs to be edited to set the correct taxonomy, authors, related publication etc.
.tbl.gz Feature Table file, used by "tbl2asn" to create the .sqn file.
.tsv Tab-separated file of all features (locus_tag,ftype,len_bp,gene,EC_number,COG,product)
.txt Statistics relating to the annotated features found.

Bakta

Below is a description of the per-sample results from Bakta.

Filename Description
.blastdb.tar.gz A gzipped tar archive of BLAST+ database of the contigs, genes, and proteins
.embl.gz Annotations & sequences in (multi) EMBL format
.faa.gz CDS/sORF amino acid sequences as FASTA
.ffn.gz Feature nucleotide sequences as FASTA
.fna.gz Replicon/contig DNA sequences as FASTA
.gbff.gz Annotations & sequences in (multi) GenBank format
.gff3.gz Annotations & sequences in GFF3 format
.hypotheticals.faa.gz Hypothetical protein CDS amino acid sequences as FASTA
.hypotheticals.tsv Further information on hypothetical protein CDS as simple human readable tab separated values
.tsv Annotations as simple human readable tab separated values
.txt Broad summary of Bakta annotations

Parameters

Prokka

Parameter Description
--proteins FASTA file of trusted proteins to first annotate from
Type: string
--prodigal_tf Training file to use for Prodigal
Type: string
--compliant Force Genbank/ENA/DDJB compliance
Type: boolean
--centre Sequencing centre ID
Type: string, Default: Bactopia
--prokka_coverage Minimum coverage on query protein
Type: integer, Default: 80
--prokka_evalue Similarity e-value cut-off
Type: string, Default: 1e-09
--prokka_opts Extra Prokka options in quotes.
Type: string

Bakta Download

Parameter Description
--bakta_db Tarball or path to the Bakta database
Type: string
--bakta_db_type Which Bakta DB to download 'full' (~30GB) or 'light' (~2GB)
Type: string, Default: full
--bakta_save_as_tarball Save the Bakta database as a tarball
Type: boolean
--download_bakta Download the Bakta database to the path given by --bakta_db
Type: boolean

Bakta

Parameter Description
--proteins FASTA file of trusted proteins to first annotate from
Type: string
--prodigal_tf Training file to use for Prodigal
Type: string
--replicons Replicon information table (tsv/csv)
Type: string
--min_contig_length Minimum contig size to annotate
Type: integer, Default: 1
--keep_contig_headers Keep original contig headers
Type: boolean
--compliant Force Genbank/ENA/DDJB compliance
Type: boolean
--skip_trna Skip tRNA detection & annotation
Type: boolean
--skip_tmrna Skip tmRNA detection & annotation
Type: boolean
--skip_rrna Skip rRNA detection & annotation
Type: boolean
--skip_ncrna Skip ncRNA detection & annotation
Type: boolean
--skip_ncrna_region Skip ncRNA region detection & annotation
Type: boolean
--skip_crispr Skip CRISPR array detection & annotation
Type: boolean
--skip_cds Skip CDS detection & annotation
Type: boolean
--skip_sorf Skip sORF detection & annotation
Type: boolean
--skip_gap Skip gap detection & annotation
Type: boolean
--skip_ori Skip oriC/oriT detection & annotation
Type: boolean
--bakta_opts Extra Backa options in quotes. Example: '--gram +'
Type: string

Citations

If you use Bactopia and annotator results in your analysis, please cite the following.

Step 5 - Sketcher

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

Outputs

sketcher

Below is a description of the per-sample results from the sketcher subworkflow.

Filename Description
<SAMPLE_NAME>-k{21|31}.msh A Mash sketch of the input assembly for k=21 and k=31
<SAMPLE_NAME>-mash-refseq88-k21.txt The results of querying the Mash sketch against RefSeq88
<SAMPLE_NAME>-sourmash-gtdb-rs207-k31.txt The results of querying the Sourmash sketch against GTDB-rs207
<SAMPLE_NAME>.sig A Sourmash sketch of the input assembly for k=21, k=31, and k=51

Sketcher Parameters

Parameter Description
--sketch_size Sketch size. Each sketch will have at most this many non-redundant min-hashes.
Type: integer, Default: 10000
--sourmash_scale Choose number of hashes as 1 in FRACTION of input k-mers
Type: integer, Default: 10000
--no_winner_take_all Disable winner-takes-all strategy for identity estimates
Type: boolean
--screen_i Minimum identity to report.
Type: number, Default: 0.8

Citations

If you use Bactopia and sketcher results in your analysis, please cite the following.

Step 6 - Sequence Typing

Outputs

Merged Results

Below are results that are concatenated into a single file.

Filename Description
mlst.tsv A merged TSV file with mlst results from all samples

mlst

Below is a description of the per-sample results from mlst.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with mlst result, see mlst - Usage for more details

Parameters

Parameter Description
--scheme Don't autodetect, force this scheme on all inputs
Type: string
--minid Minimum DNA percent identity of full allelle to consider 'similar'
Type: integer, Default: 95
--mincov Minimum DNA percent coverage to report partial allele at all
Type: integer, Default: 10
--minscore Minumum score out of 100 to match a scheme
Type: integer, Default: 50
--nopath Strip filename paths from FILE column
Type: boolean

Citations

If you use Bactopia and sequence typing results in your analysis, please cite the following.

Step 7 - Antibiotic Resistance

Outputs

Merged Results

Below are results that are concatenated into a single file.

Filename Description
amrfinderplus-genes.tsv A merged TSV file with AMRFinder+ results using nucleotide inputs
amrfinderplus-proteins.tsv A merged TSV file with AMRFinder+ results using protein inputs

AMRFinder+

Below is a description of the per-sample results from AMRFinder+.

Filename Description
-genes.tsv A TSV file with AMRFinder+ results using nucleotide inputs
-proteins.tsv A TSV file with AMRFinder+ results using protein inputs

Parameters

Parameter Description
--ident_min Minimum proportion of identical amino acids in alignment for hit (0..1)
Type: number, Default: -1
--coverage_min Minimum coverage of the reference protein (0..1)
Type: number, Default: 0.5
--organism Taxonomy group to run additional screens against
Type: string
--translation_table NCBI genetic code for translated BLAST
Type: integer, Default: 11
--amrfinder_noplus Disable running AMRFinder+ with the --plus option
Type: boolean
--report_common Report proteins common to a taxonomy group
Type: boolean
--report_all_equal Report all equally-scoring BLAST and HMM matches
Type: boolean
--amrfinder_opts Extra AMRFinder+ options in quotes.
Type: string

Citations

If you use Bactopia and antibiotic resistance results in your analysis, please cite the following.

Step 8 - Merlin

Outputs

Merged Results

Below are results that are concatenated into a single file.

Filename Description
agrvate.tsv A merged TSV file with AgrVATE results from all samples
ectyper.tsv A merged TSV file with ECTyper results from all samples
emmtyper.tsv A merged TSV file with emmtyper results from all samples
genotyphi.tsv A merged TSV file with genotyphi results from all samples
hicap.tsv A merged TSV file with hicap results from all samples
hpsuissero.tsv A merged TSV file with HpsuisSero results from all samples
kleborate.tsv A merged TSV file with Kleborate results from all samples
legsta.tsv A merged TSV file with legsta results from all samples
lissero.tsv A merged TSV file with LisSero results from all samples
meningotype.tsv A merged TSV file with meningotype results from all samples
ngmaster.tsv A merged TSV file with ngmaster results from all samples
pasty.tsv A merged TSV file with pasty results from all samples
pbptyper.tsv A merged TSV file with pbptyper results from all samples
seqsero2.tsv A merged TSV file with seqsero2 results from all samples
seroba.tsv A merged TSV file with seroba results from all samples
shigatyper.tsv A merged TSV file with ShigaTyper results from all samples
shigeifinder.tsv A merged TSV file with ShigEiFinder results from all samples
sistr.tsv A merged TSV file with SISTR results from all samples
spatyper.tsv A merged TSV file with spaTyper results from all samples
ssuissero.tsv A merged TSV file with SsuisSero results from all samples
staphopiasccmec.tsv A merged TSV file with staphopia-sccmec results from all samples
stecfinder.tsv A merged TSV file with stecfinder results from all samples

AgrVATE

Below is a description of the per-sample results from AgrVATE.

Filename Description
-agr_gp.tab A detailed report for agr kmer matches
-blastn_log.txt Log files from programs called by AgrVATE
-summary.tab A final summary report for agr typing

ECTyper

Below is a description of the per-sample results from ECTyper.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with ECTyper result, see ECTyper - Report format for details
blast_output_alleles.txt Allele report generated from BLAST results

emmtyper

Below is a description of the per-sample results from emmtyper.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with emmtyper result, see emmtyper - Result format for details

hicap

Below is a description of the per-sample results from hicap.

Filename Description
<SAMPLE_NAME>.gbk GenBank file and cap locus annotations
<SAMPLE_NAME>.svg Visualization of annotated cap locus
<SAMPLE_NAME>.tsv A tab-delimited file with hicap results

HpsuisSero

Below is a description of the per-sample results from HpsuisSero.

Filename Description
<SAMPLE_NAME>_serotyping_res.tsv A tab-delimited file with HpsuisSero result

GenoTyphi

Below is a description of the per-sample results from GenoTyphi. A full description of the GenoTyphi output is available at GenoTyphi - Output

Filename Description
<SAMPLE_NAME>_predictResults.tsv A tab-delimited file with GenoTyphi results
<SAMPLE_NAME>.csv The output of mykrobe predict in comma-separated format
<SAMPLE_NAME>.json The output of mykrobe predict in JSON format

Kleborate

Below is a description of the per-sample results from Kleborate.

Filename Description
<SAMPLE_NAME>.results.txt A tab-delimited file with Kleborate result, see Kleborate - Example output for more details.

legsta

Below is a description of the per-sample results from legsta.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with legsta result, see legsta - Output for more details

LisSero

Below is a description of the per-sample results from LisSero.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with LisSero results

Mash

Below is a description of the per-sample results from Mash.

Filename Description
<SAMPLE_NAME>-dist.txt A tab-delimited file with mash dist results

meningotype

Below is a description of the per-sample results from meningotype .

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with meningotype result

ngmaster

Below is a description of the per-sample results from ngmaster.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with ngmaster results

pasty

Below is a description of the per-sample results from pasty.

Filename Description
.blastn.tsv A tab-delimited file of all blast hits
.details.tsv A tab-delimited file with details for each serogroup
.tsv A tab-delimited file with the predicted serogroup

pbptyper

Below is a description of the per-sample results from pbptyper.

Filename Description
.tblastn.tsv A tab-delimited file of all blast hits
.tsv A tab-delimited file with the predicted PBP type

SeqSero2

Below is a description of the per-sample results from SeqSero2.

Filename Description
<SAMPLE_NAME>_result.tsv A tab-delimited file with SeqSero2 results
<SAMPLE_NAME>_result.txt A text file with key-value pairs of SeqSero2 results

Seroba

Below is a description of the per-sample results from Seroba. More details about the outputs are available from Seroba - Output.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with the predicted serotype
detailed_serogroup_info.txt Detailed information about the predicted results

ShigaTyper

Below is a description of the per-sample results from ShigaTyyper.

Filename Description
<SAMPLE_NAME>-hits.tsv Detailed statistics about each individual gene hit
<SAMPLE_NAME>.tsv The final predicted serotype by ShigaTyper

ShigEiFinder

Below is a description of the per-sample results from ShigEiFinder.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with the predicted Shigella or EIEC serotype

SISTR

Below is a description of the per-sample results from SISTR.

Filename Description
<SAMPLE_NAME>-allele.fasta.gz A FASTA file of the cgMLST allele search results
<SAMPLE_NAME>-allele.json.gz JSON formated cgMLST allele search results, see SISTR - cgMLST search results for more details
<SAMPLE_NAME>-cgmlst.csv A comma-delimited summary of the cgMLST allele search results
<SAMPLE_NAME>.tsv A tab-delimited file with SISTR results, see SISTR - Primary results for more details

spaTyper

Below is a description of the per-sample results from spaTyper.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with spaTyper result

SsuisSero

Below is a description of the per-sample results from SsuisSero.

Filename Description
<SAMPLE_NAME>_serotyping_res.tsv A tab-delimited file with SsuisSero results

staphopia-sccmec

Below is a description of the per-sample results from staphopia-sccmec.

Filename Description
<SAMPLE_NAME>.tsv A tab-delimited file with staphopia-sccmec results

TBProfiler

Below is a description of the per-sample results from TBProfiler.

Filename Description
<SAMPLE_NAME>.results.csv A CSV formated TBProfiler result file of resistance and strain type
<SAMPLE_NAME>.results.json A JSON formated TBProfiler result file of resistance and strain type
<SAMPLE_NAME>.results.txt A text file with TBProfiler results
<SAMPLE_NAME>.bam BAM file with alignment details
<SAMPLE_NAME>.targets.csq.vcf.gz VCF with variant info again reference genomes

mashdist

Parameter Description
--mash_sketch The reference sequence as a Mash Sketch (.msh file)
Type: string
--mash_seed Seed to provide to the hash function
Type: integer, Default: 42
--mash_table Table output (fields will be blank if they do not meet the p-value threshold)
Type: boolean
--mash_m Minimum copies of each k-mer required to pass noise filter for reads
Type: integer, Default: 1
--mash_w Probability threshold for warning about low k-mer size.
Type: number, Default: 0.01
--max_p Maximum p-value to report.
Type: number, Default: 1.0
--max_dist Maximum distance to report.
Type: number, Default: 1.0
--merlin_dist Maximum distance to report when using Merlin .
Type: number, Default: 0.1
--full_merlin Go full Merlin and run all species-specific tools, no matter the Mash distance
Type: boolean
--use_fastqs Query with FASTQs instead of the assemblies
Type: boolean

AgrVATE

Parameter Description
--typing_only agr typing only. Skips agr operon extraction and frameshift detection
Type: boolean

ECTyper

Parameter Description
--opid Percent identity required for an O antigen allele match
Type: integer, Default: 90
--opcov Minumum percent coverage required for an O antigen allele match
Type: integer, Default: 90
--hpid Percent identity required for an H antigen allele match
Type: integer, Default: 95
--hpcov Minumum percent coverage required for an H antigen allele match
Type: integer, Default: 50
--verify Enable E. coli species verification
Type: boolean
--print_alleles Prints the allele sequences if enabled as the final column
Type: boolean

emmtyper

Parameter Description
--emmtyper_wf Workflow for emmtyper to use.
Type: string, Default: blast
--cluster_distance Distance between cluster of matches to consider as different clusters
Type: integer, Default: 500
--percid Minimal percent identity of sequence
Type: integer, Default: 95
--culling_limit Total hits to return in a position
Type: integer, Default: 5
--mismatch Threshold for number of mismatch to allow in BLAST hit
Type: integer, Default: 5
--align_diff Threshold for difference between alignment length and subject length in BLAST
Type: integer, Default: 5
--gap Threshold gap to allow in BLAST hit
Type: integer, Default: 2
--min_perfect Minimum size of perfect match at 3 primer end
Type: integer, Default: 15
--min_good Minimum size where there must be 2 matches for each mismatch
Type: integer, Default: 15
--max_size Maximum size of PCR product
Type: integer, Default: 2000

hicap

Parameter Description
--database_dir Directory containing locus database
Type: string
--model_fp Path to prodigal model
Type: string
--full_sequence Write the full input sequence out to the genbank file rather than just the region surrounding and including the locus
Type: boolean
--hicap_debug hicap will print debug messages
Type: boolean
--gene_coverage Minimum percentage coverage to consider a single gene complete
Type: number, Default: 0.8
--gene_identity Minimum percentage identity to consider a single gene complete
Type: number, Default: 0.7
--broken_gene_length Minimum length to consider a broken gene
Type: integer, Default: 60
--broken_gene_identity Minimum percentage identity to consider a broken gene
Type: number, Default: 0.8

GenoTyphi

Parameter Description
--kmer K-mer length
Type: integer, Default: 21
--min_depth Minimum depth
Type: integer, Default: 1
--model Genotype model used.
Type: string, Default: kmer_count
--report_all_calls Report all calls
Type: boolean
--mykrobe_opts Extra Mykrobe options in quotes
Type: string

Kleborate

Parameter Description
--skip_resistance Turn off resistance genes screening
Type: boolean
--skip_kaptive Turn off Kaptive screening of K and O loci
Type: boolean
--min_identity Minimum alignment percent identity for main results
Type: number, Default: 90.0
--kleborate_min_coverage Minimum alignment percent coverage for main results
Type: number, Default: 80.0
--min_spurious_identity Minimum alignment percent identity for spurious results
Type: number, Default: 80.0
--min_spurious_coverage Minimum alignment percent coverage for spurious results
Type: number, Default: 40.0
--min_kaptive_confidence Minimum Kaptive confidence to call K/O loci - confidence levels below this will be reported as unknown
Type: string, Default: Good
--force_index Rebuild the BLAST index at the start of execution
Type: boolean

legsta

Parameter Description
--noheader Don't print header row
Type: boolean

LisSero

Parameter Description
--min_id Minimum percent identity to accept a match
Type: number, Default: 95.0
--min_cov Minimum coverage of the gene to accept a match
Type: number, Default: 95.0

meningotype

You can use these parameters to fine-tune your meningotype analysis

Parameter Description
--finetype perform porA and fetA fine typing
Type: boolean
--porB perform porB sequence typing (NEIS2020)
Type: boolean
--bast perform Bexsero antigen sequence typing (BAST)
Type: boolean
--mlst perform MLST
Type: boolean
--all perform MLST, porA, fetA, porB, BAST typing
Type: boolean

ngmaster

Parameter Description
--csv output comma-separated format (CSV) rather than tab-separated
Type: boolean

pasty

Parameter Description
--pasty_min_pident Minimum percent identity to count a hit
Type: integer, Default: 95
--pasty_min_coverage Minimum percent coverage to count a hit
Type: integer, Default: 95

pbptyper

Parameter Description
--pbptyper_min_pident Minimum percent identity to count a hit
Type: integer, Default: 95
--pbptyper_min_coverage Minimum percent coverage to count a hit
Type: integer, Default: 95
--pbptyper_min_ani Minimum S. pneumoniae ANI to predict PBP Type
Type: integer, Default: 95

SeqSero2

Parameter Description
--run_mode Workflow to run. 'a' allele mode, or 'k' k-mer mode
Type: string, Default: k
--input_type Input format to analyze. 'assembly' or 'fastq'
Type: string, Default: assembly
--bwa_mode Algorithms for bwa mapping for allele mode
Type: string, Default: mem

SISTR

Parameter Description
--full_cgmlst Use the full set of cgMLST alleles which can include highly similar alleles
Type: boolean

spaTyper

Parameter Description
--repeats List of spa repeats
Type: string
--repeat_order List spa types and order of repeats
Type: string
--do_enrich Do PCR product enrichment
Type: boolean

staphopia-sccmec

Parameter Description
--hamming Report the results as hamming distances
Type: boolean

TBProfiler

Parameter Description
--call_whole_genome Call whole genome
Type: boolean
--mapper Mapping tool to use. If you are using nanopore data it will default to minimap2
Type: string, Default: bwa
--caller Variant calling tool to use
Type: string, Default: freebayes
--calling_params Extra variant caller options in quotes
Type: string
--suspect Use the suspect suite of tools to add ML predictions
Type: boolean
--no_flagstat Don't collect flagstats
Type: boolean
--no_delly Don't run delly
Type: boolean
--tbprofiler_opts Extra options in quotes for TBProfiler
Type: string

Citations

If you use Bactopia and merlin results in your analysis, please cite the following.

Additional Parameters

Optional

These optional parameters can be useful in certain settings.

Parameter Description
--outdir Base directory to write results to
Type: string, Default: ./
--run_name Name of the directory to hold results
Type: string, Default: bactopia
--skip_compression Ouput files will not be compressed
Type: boolean
--datasets The path to cache datasets to
Type: string
--keep_all_files Keeps all analysis files created
Type: boolean

Max Job Request

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

Parameter Description
--max_retry Maximum times to retry a process before allowing it to fail.
Type: integer, Default: 3
--max_cpus Maximum number of CPUs that can be requested for any single job.
Type: integer, Default: 4
--max_memory Maximum amount of memory (in GB) that can be requested for any single job.
Type: integer, Default: 32
--max_time Maximum amount of time (in minutes) that can be requested for any single job.
Type: integer, Default: 120
--max_downloads Maximum number of samples to download at a time
Type: integer, Default: 3

Nextflow Configuration

to fine-tune your Nextflow setup.

Parameter Description
--nfconfig A Nextflow compatible config file for custom profiles, loaded last and will overwrite existing variables if set.
Type: string
--publish_dir_mode Method used to save pipeline results to output directory.
Type: string, Default: copy
--infodir Directory to keep pipeline Nextflow logs and reports.
Type: string, Default: ${params.outdir}/pipeline_info
--force Nextflow will overwrite existing output files.
Type: boolean
--cleanup_workdir After Bactopia is successfully executed, the work directory will be deleted.
Type: boolean

Nextflow Profile

to fine-tune your Nextflow setup.

Parameter Description
--condadir Directory to Nextflow should use for Conda environments
Type: string
--registry Docker registry to pull containers from.
Type: string, Default: dockerhub
--datasets_cache Directory where downloaded datasets should be stored.
Type: string, Default: <BACTOPIA_DIR>/data/datasets
--singularity_cache Directory where remote Singularity images are stored.
Type: string
--singularity_pull_docker_container Instead of directly downloading Singularity images for use with Singularity, force the workflow to pull and convert Docker containers instead.
Type: boolean
--force_rebuild Force overwrite of existing pre-built environments.
Type: boolean
--queue Comma-separated name of the queue(s) to be used by a job scheduler (e.g. AWS Batch or SLURM)
Type: string, Default: general,high-memory
--cluster_opts Additional options to pass to the executor. (e.g. SLURM: '--account=my_acct_name'
Type: string
--disable_scratch All intermediate files created on worker nodes of will be transferred to the head node.
Type: boolean

Helpful

Uncommonly used parameters that might be useful.

Parameter Description
--monochrome_logs Do not use coloured log outputs.
Type: boolean
--nfdir Print directory Nextflow has pulled Bactopia to
Type: boolean
--sleep_time The amount of time (seconds) Nextflow will wait after setting up datasets before execution.
Type: integer, Default: 5
--validate_params Boolean whether to validate parameters against the schema at runtime
Type: boolean, Default: True
--help Display help text.
Type: boolean
--wf Specify which workflow or Bactopia Tool to execute
Type: string, Default: bactopia
--list_wfs List the available workflows and Bactopia Tools to use with '--wf'
Type: boolean
--show_hidden_params Show all params when using --help
Type: boolean
--help_all An alias for --help --show_hidden_params
Type: boolean
--version Display version text.
Type: boolean