GPLv3 license Bash

fq2dna

fq2dna (FASTQ files to de novo assembly) is a command line tool written in Bash to ease the de novo assembly of archaea, bacteria or virus genomes from raw high-throughput sequencing (HTS) paired-end (PE) reads.

Every data pre- and post-processing step is managed by fq2dna (e.g. HTS read filtering and enhancing, well-tuned de novo assemblies, scaffold sequence accuracy assessment). The main purpose of fq2dna is to efficiently use different methods, programs and tools to quickly infer accurate genome assemblies (e.g. from 5 to 20 minutes to deal with a bacteria HTS sample using 12 threads). This mini-workflow can therefore be very useful to deal with large batches of whole-genome shotgun sequencing data.

fq2dna runs on UNIX, Linux and most OS X operating systems.

Dependencies

You will need to install the required programs and tools listed in the following table, or to verify that they are already installed with the required version.

program package version sources
gawk - > 4.0.0 ftp.gnu.org/gnu/gawk
bwa-mem2 - ≥ 2.2.1 gitlab.pasteur.fr/GIPhy/contig_info
contig_info - > 2.0 gitlab.pasteur.fr/GIPhy/contig_info
FASTA2AGP - ≥ 2.0 gitlab.pasteur.fr/GIPhy/FASTA2AGP
fqCleanER - ≥ 23.07 gitlab.pasteur.fr/GIPhy/fqCleanER
fqstats fqtools ≥ 1.2 ftp.pasteur.fr/pub/gensoft/projects/fqtools
ntCard - > 1.2 github.com/bcgsc/ntCard
Platon - > 1.5 github.com/oschwengers/platon
Prokka - ≥ 1.14.5 github.com/tseemann/prokka
samtools - ≥ 1.16 github.com/samtools/samtools
sourceforge.net/projects/samtools
SAM2MAP SAM2MSA ≥ 0.3.3.1 gitlab.pasteur.fr/GIPhy/SAM2MSA
SPAdes - ≥ 3.15.5 github.com/ablab/spades

Installation and execution

A. Clone this repository with the following command line:

git clone https://gitlab.pasteur.fr/GIPhy/fq2dna.git

B. Give the execute permission to the file fq2dna.sh:

chmod +x fq2dna.sh

C. Execute fq2dna with the following command line model:

./fq2dna.sh  [options]

D. If at least one of the required program (see Dependencies) is not available on your $PATH variable (or if one compiled binary has a different default name), fq2dna will exit with an error message. When running fq2dna without option, a documentation should be displayed; otherwise, the name of the missing program is displayed before existing. In such a case, edit the file fq2dna.sh and indicate the local path to the corresponding binary(ies) within the code block REQUIREMENTS (approximately lines 60-150). For each required program, the table below reports the corresponding variable assignment instruction to edit (if needed) within the code block REQUIREMENTS

program variable assignment program variable assignment
bwa-mem2 BWAMEM2_BIN=bwa-mem2; ntcard NTCARD_BIN=ntcard;
contig_info CONTIG_INFO_BIN=contig_info; Platon PLATON_BIN=platon;
FASTA2AGP FASTA2AGP_BIN=FASTA2AGP; Prokka PROKKA_BIN=prokka;
fqCleanER FQCLEANER_BIN=fqCleanER; samtools SAMTOOLS_BIN=samtools;
fqstats FQSTATS_BIN=fqstats; SAM2MAP SAM2MAP_BIN=SAM2MAP;
gawk GAWK_BIN=gawk; SPAdes SPADES_BIN=spades.py;

Note that depending on the installation of some required programs, the corresponding variable can be assigned with complex commands. For example, as FASTA2AGP is a Java tool that can be run using a Java virtual machine, the executable jar file FASTA2AGP.jar can be used by fq2dna by editing the corresponding variable assignment instruction as follows: FASTA2AGP_BIN="java -jar FASTA2AGP.jar".

Usage

Run fq2dna without option to read the following documentation:

 USAGE:  fq2dna.sh  [options] 

 Processing and assembling high-throughput sequencing (HTS) paired-end (PE) reads:
  + processing HTS reads  using different steps:  deduplicating [D], trimming/clipping [T], error
    correction [E], contaminant removal [C], merging [M], and/or digital normalization [N] 
  + de novo assembly [dna] of the whole genome from processed HTS reads

 OPTIONS:
  -1 <infile>   fwd (R1) FASTQ input file name from PE library 1 |  input files can be compressed
  -2 <infile>   rev (R2) FASTQ input file name from PE library 1 |  using   either   gzip   (file
  -3 <infile>   fwd (R1) FASTQ input file name from PE library 2 |  extension .gz), bzip2 (.bz or
  -4 <infile>   rev (R2) FASTQ input file name from PE library 2 |  .bz2),   or  DSRC  (.dsrc  or
  -5 <infile>   fwd (R1) FASTQ input file name from PE library 3 |  .dsrc2), or uncompressed (.fq 
  -6 <infile>   rev (R2) FASTQ input file name from PE library 3 |  or .fastq)                 
  -o <outdir>   path and name of the output directory (mandatory option)
  -b <string>   base name for output files (mandatory option)
  -s <char>     to set a predefined strategy for processing HTS reads among the following ones:
                  A   Archaea:     DT(C)E + [N|MN] + dna + polishing + annotation
                  B   Bacteria:    DT(C)E + [N|MN] + dna + polishing + annotation 
                  E   Eukaryote:   DT(C)  + [N|MN] + dna
                  P   Prokaryote:  DT(C)E + [N|MN] + dna + polishing
                  S   Standard:    DT(C)  + [N|MN] + dna + polishing
                  V   Virus:       DT(C)E + [N|MN] + dna + polishing + annotation
                (default: S)
  -L <int>      minimum required length for a contig (default: 300)
  -T <"G S I">  Genus (G), Species (S) and Isolate (I)  names to be used  during annotation step;
                should be set between quotation  marks and separated by a blank space;  only with
                options -s A, -s B or -s V (default: "Genus sp. STRAIN")
  -q <int>      quality score threshold;  all bases  with Phred  score below  this threshold  are 
                considered as non-confident during step [T] (default: 15)
  -l <int>      minimum required length for a read (default: half the average read length)
  -p <int>      maximum allowed percentage  of non-confident bases  (as ruled  by option -q)  per 
                read (default: 50) 
  -c <int>      minimum allowed coverage depth during step [N] (default: 3)
  -C <int>      maximum allowed coverage depth during step [N] (default: 61)
  -a <infile>   to set a file containing every  alien oligonucleotide sequence  (one per line) to
                be clipped during step [T] (see below)
  -a <string>   one or several key words (separated with commas),  each corresponding to a set of
                alien oligonucleotide sequences to be clipped during step [T]:
                  POLY                nucleotide homopolymers
                  NEXTERA             Illumina Nextera index Kits
                  IUDI                Illumina Unique Dual index Kits
                  AMPLISEQ            AmpliSeq for Illumina Panels
                  TRUSIGHT_PANCANCER  Illumina TruSight RNA Pan-Cancer Kits
                  TRUSEQ_UD           Illumina TruSeq Unique Dual index Kits
                  TRUSEQ_CD           Illumina TruSeq Combinatorial Dual index Kits
                  TRUSEQ_SINGLE       Illumina TruSeq Single index Kits
                  TRUSEQ_SMALLRNA     Illumina TruSeq Small RNA Kits
                Note that these sets of alien sequences are not exhaustive and will never replace
                the exact oligos used for library preparation (default: "POLY")
  -a AUTO       to (try to)  infer 3' alien  oligonucleotide  sequence(s) for step [T];  inferred
                oligo(s) are completed with those from "POLYS" (see above)                
  -A <infile>   to set  sequence or  k-mer model  file(s) to carry  out contaminant  read removal 
                during step [C];  several comma-separated  file names  can be specified;  allowed 
                file extensions: .fa, .fasta, .fna, .kmr or .kmz
  -t <int>      number of threads (default: 12)
  -w <dir>      path to tmp directory (default: $TMPDIR, otherwise /tmp)
  -x            to not remove (after completing) the tmp directory inside the one set with option
                -w (default: not set)
  -h            prints this help and exit

  EXAMPLES:
    fq2dna.sh  -1 r1.fq -2 r2.fq  -o out -b echk12  -s P  -T "Escherichia coli K12"  -a AUTO 
    fq2dna.sh  -1 rA.1.fq -2 rA.2.fq -3 rB.1.fq.gz -4 rB.2.fq.gz  -o out -b name  -a NEXTERA

Notes

output file file content
<prefix>.stepI.log fqCleanER log file of the step I
<prefix>.stepM.log fqCleanER log file of the step M
<prefix>.stepN.log fqCleanER log file of the step N
<prefix>.all.fasta the less fragmented SPAdes assembly (FASTA format)
<prefix>.cov.info.txt coverage profile summary generated using SAM2MAP
<prefix>.scf.fasta selected and polished scaffold sequences (FASTA format)
<prefix>.scf.info.txt residue content of the selected scaffold sequences (tab-delimited)
<prefix>.scf.amb.txt ambiguously assembled bases (tab-delimited)
<prefix>.agp.fasta contigs derived from the selected and polished scaffold sequences (FASTA format)
<prefix>.agp scaffolding information associated to the contigs (AGP format)
<prefix>.dna.info.txt descriptive statistics of each FASTA file content (tab-delimited)
<prefix>.isd.txt descriptive statistics of the insert size distribution
<prefix>.gbk assembled genome annotation (GenBank flat file format)
<prefix>.gbk.info.txt annotation statistics generated by Prokka

Example

In order to illustrate the usefulness of fq2dna and to better describe its output files, the following use case example describes its usage for (re)assembling the draft genome of Listeria monocytogenes 2HF33 (Duru et al. 2020).

All output files are available in the directory example/ (the four sequence files were compressed using gzip), as well as the version of every used tool and program (see program.versions.txt).

Downloading input files

Paired-end sequencing of this genome was performed using Illumina Miseq, and the resulting pair of (compressed) FASTQ files (112 Mb and 128 Mb, respectively) can be downloaded using the following command lines:

wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR403/006/ERR4032786/ERR4032786_1.fastq.gz
wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/ERR403/006/ERR4032786/ERR4032786_2.fastq.gz

As phiX genome was used as spike-in during Illumina sequencing (Duru et al. 2020), this putative contaminating sequence (5.4 kb) can be downloded using the following command line:

wget -O phiX.fasta "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&rettype=fasta&id=NC_001422.1"

Running fq2dna

Below is a typical command line to run fq2dna on PE FASTQ files to deal with such a bacteria HTS data:

./fq2dna.sh -1 ERR4032786_1.fastq.gz -2 ERR4032786_2.fastq.gz -a NEXTERA -A phiX.fasta   \\
            -s B -T "Listeria monocytogenes 2HF33" -o 2HF33 -b Lm.2HF33 -t 12 -w /tmp

Of note, option -a NEXTERA was set to clip the Nextera XT technical oligonucleotides used during library preparation (see Duru et al. 2020), the putative contaminating sequence file phiX.fasta was set using option -A, and the strategy ‘Bacteria’ was trivially set (option -s B).

Different log outputs can be observed depending on the OS and/or installed program versions (see Dependencies). Below is the one observed when using fq2dna together with program and tool versions listed into example/program.versions.txt:

# fq2dna v23.07
# Copyright (C) 2016-2023 Institut Pasteur
# OS:   linux-gnu
# Bash: 4.4.20(1)-release
# input file(s):
> PE lib 1
+ FQ11: [111.9 Mb]    ERR4032786_1.fastq.gz
+ FQ12: [127.8 Mb]    ERR4032786_2.fastq.gz
# output directory
+ OUTDIR=2HF33
# tmp directory
+ TMP_DIR=/tmp/fq2dna.Lm.2HF33.lEgHkpLZz
# STRATEGY B: Bacteria
[00:00] Deduplicating, Trimming, Clipping, Decontaminating and Correcting reads ... [ok]
[03:23] Merging and/or Normalizing reads ... [ok]
[04:56] Approximating genome size ... [ok]
> 3079821 bps (N=3080455 M=3079187)
[05:02] Assembling genome with/without PE read merging (dnaM/dnaN) ... [ok]
> [dnaN]  covr=70   arl=279   k=21,33,55,77,99,121
> [dnaM]  covr=62   arl=280   k=21,33,55,77,99,121
[07:18] Comparing genome assemblies ... [ok]
> [dnaN]  Nseq=30   Nres=3099162   NG50=532745   auGN=435982
> [dnaM]  Nseq=32   Nres=3099079   NG50=452691   auGN=350482
> selecting dnaN
> [dna]   Nseq=30   Nres=3099162   N50=532745     auN=433261
[07:20] Aligning PE reads against scaffolds .... [ok]
[07:38] Polishing scaffolds ... 
> [dna]   Nseq=30   Nres=3099169   N50=532745     auN=433260
[08:42] Processing scaffolds ... [ok]
> min. cov. cutoff: 43
> avg. cov. depth:  67.4839
> bimodality coef.: 0.208677
> [dna]   Nseq=22   Nres=3096528   N50=532745     auN=434407
[09:15] Annotating scaffold sequences ... [ok]
> taxon:     Listeria monocytogenes 2HF33
> locus tag: LISMON2HF33
# output files:
+ de novo assembly (all scaffolds):         2HF33/Lm.2HF33.all.fasta
+ coverage profile summary:                 2HF33/Lm.2HF33.cov.info.txt
+ de novo assembly (selected scaffolds):    2HF33/Lm.2HF33.scf.fasta
+ sequence stats (selected scaffolds):      2HF33/Lm.2HF33.scf.info.txt
+ ambiguous positions (selected scaffolds): 2HF33/Lm.2HF33.scf.amb.txt
+ de novo assembly (selected contigs):      2HF33/Lm.2HF33.agp.fasta
+ scaffolding info:                         2HF33/Lm.2HF33.agp
+ descriptive statistics:                   2HF33/Lm.2HF33.dna.info.txt
+ insert size statistics:                   2HF33/Lm.2HF33.isd.txt
+ annotation (selected scaffolds):          2HF33/Lm.2HF33.scf.gbk
+ annotation info:                          2HF33/Lm.2HF33.scf.gbk.info.txt
[14:58] exit

This log output shows that the complete analysis was performed on 12 threads in less than 15 minutes (HTS read processing in < 5 minutes, de novo assemblies in ~2 minutes, and scaffold sequence post-processing in < 3 minutes). One can also observe that the selected de novo assembly was dnaN (i.e. greater NG50 and auGN metrics), therefore showing that the PE HTS read merging step (M) does not always enable to obtain better genome assemblies.

Output files

The genome coverage profile summary file (Lm.2HF33.cov.info.txt; see excerpt below) shows an average coverage depth of ~61x, corresponding to a symmetrical coverage depth distribution with mode of 67×, close to the expected value (default option -C 61). The bimodality coefficient is 0.208, far below the bimodality cutoff (i.e. 0.55; see e.g. Ellison 1987, Pfister et al. 2013), suggesting that no contamination occurred in the HTS reads selected for assembly.

=  observed coverage distribution:  no.pos=3100185
   avg=67.4839  skewness=-1.672122  excess.kurtosis=15.190788  bimodality.coef=0.208677

#  Poisson(l) coverage tail distribution:  l=0.00402414  w=0.00016031
*  GP(l',r) coverage distribution:  l'=95.04785246  r=-0.40407486  1-w=0.99983969
   min.cov.cutoff=43 (p-value<=0.00001)

These different statistics therefore assess that the assembled sequences are accurate and well-supported by sufficient data. Finally, a generalized Poisson (GP) distribution (that fits the observed genome coverage profile) enables to determine a minimum coverage cutoff (i.e. 43×) under which any assembled base is considered as putatively not trustworthy (lowercase characters in the scaffold sequence file Lm.2HF33.scf.fasta).

The tab-delimited file Lm.2HF33.dna.info.txt shows that the de novo assembly procedure led to quite few scaffold and contig sequences:

#File               Nseq Nres    A      C      G      T      N   %A     %C     %G     %T     %N    %AT    %GC    Min Q25  Med   Q75    Max    Avg       auN    N50    N75    N90   L50 L75 L90
Lm.2HF33.all.fasta  32   3100379 950305 602779 569035 978060 200 30.65% 19.44% 18.35% 31.54% 0.00% 62.21% 37.79% 237 456  2806  99066  685549 96886.84  433875 532745 125907 97509 3   6   10
Lm.2HF33.scf.fasta  22   3096528 949262 602017 568178 977045 26  30.65% 19.44% 18.34% 31.55% 0.00% 62.21% 37.79% 610 2806 61185 125907 685549 140751.27 434407 532745 125907 97509 3   6   10
Lm.2HF33.agp.fasta  22   3096528 949262 602017 568178 977045 26  30.65% 19.44% 18.34% 31.55% 0.00% 62.21% 37.79% 610 2806 61185 125907 685549 140751.27 434407 532745 125907 97509 3   6   10

Of note, 10 small and/or insufficiently covered sequences (cutoff = 43×; see Lm.2HF33.cov.info.txt) were not selected for the final scaffold sequence set (i.e. Lm.2HF33.scf.fasta), therefore leading to a final assembled genome of total size 3,096,528 bps (Nres), represented in 22 contigs (Nseq), with 37.79% GC-content.

The tab-delimited file Lm.2HF33.scf.info.txt (displayed below) shows different residue statistics for each final scaffold sequence. Note that each FASTA header (info files Lm.2HF33.all.fasta and Lm.2HF33.scf.fasta) contains the k-mer coverage depth returned by SPAdes (covk), the base coverage depth estimated by fq2dna (covr), and the (low) coverage cutoff derived from the coverage profile analysis (cutoff).

#Seq                                                    Nres   A      C      G      T      N   %A     %C     %G     %T     %N    %AT    %GC     Pval    CPU
NODE_1_lgt_685549_covk_38.506249_covr_67.262_cutoff_43  685549 215815 127652 129467 212611 4   31.48% 18.62% 18.88% 31.01% 0.00% 62.50% 37.50%  0.3278  C
NODE_2_lgt_612275_covk_38.760753_covr_67.388_cutoff_43  612275 178849 125728 103197 204497 4   29.21% 20.53% 16.85% 33.39% 0.00% 62.62% 37.38%  0.0003  C
NODE_3_lgt_532745_covk_38.924756_covr_67.595_cutoff_43  532745 154855 110898 91559  175432 1   29.06% 20.81% 17.18% 32.92% 0.00% 62.00% 38.00%  0.3144  C
NODE_4_lgt_361897_covk_40.291559_covr_68.509_cutoff_43  361897 108472 74537  65657  113228 3   29.97% 20.59% 18.14% 31.28% 0.00% 61.27% 38.73%  0.0008  C
NODE_5_lgt_126569_covk_39.780874_covr_67.664_cutoff_43  126569 41312  21299  26286  37672  0   32.63% 16.82% 20.76% 29.76% 0.00% 62.41% 37.59%  0.0434  C
NODE_6_lgt_125907_covk_39.850826_covr_68.296_cutoff_43  125907 41255  22119  25733  36800  0   32.76% 17.56% 20.43% 29.22% 0.00% 62.00% 38.00%  0.7742  C
NODE_7_lgt_108596_covk_39.471371_covr_67.061_cutoff_43  108596 32360  22660  17838  35738  0   29.79% 20.86% 16.42% 32.90% 0.00% 62.71% 37.29%  0.0163  C
NODE_8_lgt_103428_covk_39.435771_covr_67.088_cutoff_43  103428 35339  16742  21596  29747  4   34.16% 16.18% 20.88% 28.76% 0.00% 62.94% 37.06%  0.0043  C
NODE_9_lgt_99066_covk_38.732508_covr_67.736_cutoff_43   99066  32740  17152  20508  28666  0   33.04% 17.31% 20.70% 28.93% 0.00% 61.99% 38.01%  0.8653  C
NODE_10_lgt_97509_covk_39.583409_covr_68.085_cutoff_43  97509  31723  17248  20285  28253  0   32.53% 17.68% 20.80% 28.97% 0.00% 61.51% 38.49%  0.0119  C
NODE_11_lgt_64128_covk_39.773868_covr_67.507_cutoff_43  64128  21645  11027  13314  18142  0   33.75% 17.19% 20.76% 28.29% 0.00% 62.05% 37.95%  0.7860  C
NODE_12_lgt_61185_covk_35.785946_covr_65.077_cutoff_43  61185  21142  9717   12639  17687  0   34.55% 15.88% 20.65% 28.90% 0.00% 63.47% 36.53%  0.0000  P
NODE_13_lgt_46823_covk_39.228277_covr_67.094_cutoff_43  46823  14085  9566   7968   15204  0   30.08% 20.43% 17.01% 32.47% 0.00% 62.56% 37.44%  0.0961  C
NODE_14_lgt_35062_covk_40.210698_covr_68.509_cutoff_43  35062  10004  7708   6005   11345  0   28.53% 21.98% 17.12% 32.35% 0.00% 60.89% 39.11%  0.0262  C
NODE_15_lgt_22536_covk_39.556190_covr_67.014_cutoff_43  22536  6000   4813   3643   8080   0   26.62% 21.35% 16.16% 35.85% 0.00% 62.48% 37.52%  0.1200  U
NODE_16_lgt_4973_covk_41.528283_covr_69.896_cutoff_43   4973   1065   1465   1047   1391   5   21.41% 29.45% 21.05% 27.97% 0.10% 49.44% 50.56%  0.0000  U
NODE_17_lgt_2806_covk_36.969832_covr_58.053_cutoff_43   2806   724    661    386    1035   0   25.80% 23.55% 13.75% 36.88% 0.00% 62.69% 37.31%  0.4565  U
NODE_18_lgt_1664_covk_33.209981_covr_53.135_cutoff_43   1664   524    292    266    582    0   31.49% 17.54% 15.98% 34.97% 0.00% 66.47% 33.53%  0.0069  U
NODE_19_lgt_1251_covk_39.584071_covr_59.677_cutoff_43   1251   498    219    215    317    2   39.80% 17.50% 17.18% 25.33% 0.15% 65.26% 34.74%  0.0565  C
NODE_20_lgt_1104_covk_40.303154_covr_57.762_cutoff_43   1104   395    198    256    255    0   35.77% 17.93% 23.18% 23.09% 0.00% 58.88% 41.12%  0.1409  U
NODE_21_lgt_845_covk_30.929558_covr_46.710_cutoff_43    845    228    235    200    181    1   26.98% 27.81% 23.66% 21.42% 0.11% 48.46% 51.54%  0.0045  U
NODE_22_lgt_610_covk_41.198364_covr_49.210_cutoff_43    610    232    81     113    182    2   38.03% 13.27% 18.52% 29.83% 0.32% 68.10% 31.90%  0.0618  U

The last column CPU also shows the classification of each scaffold sequence into the category ‘Chromosome’, ‘Plasmid’ or ‘Undetermined’ (i.e. C, P, U, respectively). Such a classification shows that the 12th scaffold sequence (i.e. NODE_12) is likely a plasmid (subsequent BLAST searches indeed show that it is almost identical to pLM6179).

References

Bankevich A, Nurk S, Antipov D, Gurevich A, Dvorkin M, Kulikov AS, Lesin V, Nikolenko S, Pham S, Prjibelski A, Pyshkin A, Sirotkin A, Vyahhi N, Tesler G, Alekseyev MA, Pevzner PA (2012) SPAdes: A New Genome Assembly Algorithm and Its Applications to Single-Cell Sequencing. Journal of Computational Biology, 19(5):455-477. doi:10.1089/cmb.2012.0021.

Duru IC, Andreevskaya M, Laine P, Rode TN, Ylinen A, Løvdal T, Bar N, Crauwels P, Riedel CU, Bucur FI, Nicolau AI, Auvinen P (2020) Genomic characterization of the most barotolerant Listeria monocytogenes RO15 strain compared to reference strains used to evaluate food high pressure processing. BMC Genomics, 21:455. doi:10.1186/s12864-020-06819-0.

Ellison AM (1987) Effect of seed dimorphism on the density-dependent dynamics of experimental populations of Atriplex triangularis (Chenopodiaceae). American Journal of Botany, 74(8):1280-1288. doi:10.2307/2444163.

Lindner MS, Kollock M, Zickmann F, Renard BY (2013) Analyzing genome coverage profiles with applications to quality control in metagenomics. Bioinformatics, 29(10):1260-1267. doi:10.1093/bioinformatics/btt147.

Pfister R, Schwarz KA, Janczyk M, Dale R, Freeman JB (2013) Good things peak in pairs: a note on the bimodality coefficient. Frontiers in Psychology, 4:700. doi:10.3389/fpsyg.2013.00700.

Roguski L, Deorowicz S (2014) DSRC 2: Industry-oriented compression of FASTQ files. Bioinformatics, 30(15):2213-2215. doi:10.1093/bioinformatics/btu208.

Schwengers O, Barth P, Falgenhauer L, Hain T, Chakraborty T, Goesmann A (2020) Platon: identification and characterization of bacterial plasmid contigs in short-read draft assemblies exploiting protein sequence-based replicon distribution scores. Microbial Genomics, 6(10):mgen000398. doi:10.1099/mgen.0.000398.

Seemann T (2014) Prokka: rapid prokaryotic genome annotation. Bioinformatics, 30(14):2068-2069. doi:10.1093/bioinformatics/btu153.