See the documentation »
Report Bug · Request Feature
Bacannot is an easy to use nextflow docker-based pipeline that adopts state-of-the-art software for prokaryotic genome annotation. It is a wrapper around several tools that enables a better understanding of prokaryotic genomes.
Its main steps are:
Analysis steps | Used software or databases |
---|---|
Genome assembly (if raw reads are given) | Flye and Unicycler |
Identification of closest 10 NCBI Refseq genomes | RefSeq Masher |
Generic annotation and gene prediction | Prokka |
rRNA prediction | barrnap |
Classification within multi-locus sequence types (STs) | mlst |
KEGG KO annotation and visualization | KofamScan and KEGGDecoder |
Methylation annotation | Nanopolish |
Annotation of antimicrobial (AMR) genes | AMRFinderPlus, ARGminer, Resfinder and RGI |
Annotation of virulence genes | Victors and VFDB |
Prophage sequences and genes annotation | PHASTER database, Phigaro and PhySpy |
Annotation of integrative and conjugative elements | ICEberg |
In silico detection of plasmids | Plasmidfinder and Platon |
Prediction and visualization of genomic islands | IslandPath-DIMOB and gff-toolbox |
Focused detection of insertion sequences | digIS |
Merge of annotation results | bedtools |
Renderization of results in a Genome Browser | JBrowse |
Renderization of automatic reports and shiny app for results interrogation | R Markdown and Shiny |
Are you curious about changes between releases? See the changelog.
- I strongly, vividly, mightily recommend the usage of the latest versions hosted in master branch, which is nextflow's default.
- The latest will always have support, bug fixes and generally maitain the same processes (I mainly add things instead of removing) that also were in previous versions.
- But, if you really want to execute an earlier release, please see the instructions for that.
- Versions below 2.0 are no longer supported.
Moreover, this pipeline has two complementary pipelines (also written in nextflow) for NGS preprocessing and Genome assembly that can give the user a more thorough and robust workflow for bacterial genomics analyses.
- Unix-like operating system (Linux, macOS, etc)
- Windows users maybe can execute it using the linux subsystem for windows as shown in:
- Java 8
- Nextflow
- Docker
These images have been kept separate to not create massive Docker image and to avoid dependencies conflicts.
- If you don't have it already install Docker in your computer.
-
After installed, you need to download the required Docker images
docker pull fmalmeida/bacannot:v2.3 docker pull fmalmeida/bacannot:v2.3_renv docker pull fmalmeida/bacannot:kofamscan docker pull fmalmeida/bacannot:jbrowse docker pull fmalmeida/bacannot:server (For the shiny parser) docker pull fmalmeida/mpgap (Only necessary if using raw reads as input)
-
🔥 Nextflow can also automatically handle images download on the fly when executed.
❗ If the download of fmalmeida/bacannot:v2.3
image keeps hanging due to its size, download fmalmeida/bacannot:main_tools
first. This is the core of the versioned tag and it will help on its download afterwards.
-
Install Nextflow (version 20.07 or higher):
curl -s https://get.nextflow.io | bash
-
Give it a try:
nextflow run fmalmeida/bacannot --help
🔥 Users can get let the pipeline always updated with: nextflow pull fmalmeida/bacannot
By default, github actions have been set to build the docker image containing the databases (fmalmeida/bacannot:v2.3
) in the first day of every month. Therefore, to use the most up-to-date databases users must run docker pull fmalmeida/bacannot:v2.3
before running the pipeline.
Additionally, a custom script is provided to allow users to update the database image any time.
bash <(wget -O - -o /dev/null https://github.com/fmalmeida/bacannot/raw/master/bin/update_database_image.sh)
This command line will trigger a custom script that downloads the databases and build the fmalmeida/bacannot:v2.3 docker image.
For a rapid and simple quickstart we will use as input the Escherichia coli reference genome.
# Download the ecoli ref genome
wget -O ecoli_ref.fna.gz https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/008/865/GCF_000008865.2_ASM886v2/GCF_000008865.2_ASM886v2_genomic.fna.gz
gzip -d ecoli_ref.fna.gz
# Run the pipeline using the Escherichia coli resfinder database
nextflow run fmalmeida/bacannot \
--prefix ecoli \
--genome ecoli_ref.fna \
--outdir _ANNOTATION \
--threads 4 \
--resfinder_species "Escherichia coli"
A nice overview of the output directory structure and the main tools/features produced by the pipeline is provided at https://bacannot.readthedocs.io/en/latest/outputs.html.
Users are advised to read the complete documentation »
- Complete command line explanation of parameters:
nextflow run fmalmeida/bacannot --help
- See usage examples in the command line:
nextflow run fmalmeida/bacannot --examples
Command line executions are exemplified in the manual.
All the parameters showed above can be, and are advised to be, set through the configuration file. When a configuration file is set the pipeline is run by simply executing nextflow run fmalmeida/bacannot -c ./configuration-file
Your configuration file is what will tell to the pipeline the type of data you have, and which processes to execute. Therefore, it needs to be correctly set up.
Create a configuration file in your working directory:
nextflow run fmalmeida/bacannot --get_config
Nextflow has an awesome feature called NF tower. It allows that users quickly customise and set-up the execution and configuration of cloud enviroments to execute any nextflow pipeline from nf-core, github (this one included), bitbucket, etc. By having a compliant JSON schema for pipeline configuration it means that the configuration of parameters in NF tower will be easier because the system will render an input form.
Checkout more about this feature at: https://seqera.io/blog/orgs-and-launchpad/
Users can trigger a graphical and interactive pipeline configuration and execution by using nf-core launch utility. nf-core launch will start an interactive form in your web browser or command line so you can configure the pipeline step by step and start the execution of the pipeline in the end.
# Install nf-core
pip install nf-core
# Launch the pipeline
nf-core launch fmalmeida/bacannot
It will result in the following:
- Sometimes when navigating through the shiny parser the reports and JBrowse tabs may still be pointing to old, or just different, samples that have been analysed before and not the actual sample in question. For example, you open the shiny server for the Sample 2, but the reports and JBrowse are showing results of Sample 1. This is caused by the browser's data storages and cookies.
- To solve this problem user's can just clear the cookies and data cache from the browser.
- The JBrowse wrapper in the shiny server is not capable of displaying the GC content and methylation plots when available. It can only display the simpler tracks. If the user wants to visualise and interrogate the GC or methylation tracks it must open the JBrowse outside from the shiny server. For that, two options are available:
- You can navigate to the
jbrowse
directory under your sample's output folder and simply executehttp-server
. This command can be found at: https://www.npmjs.com/package/http-server - Or, you can download the JBrowse Desktop app and, from inside the app, select the folder
jbrowse/data
that is available in your sample's output directory.
- You can navigate to the
Please cite this pipeline using our Zenodo tag or directly via the github url.
Please, do not forget to cite the software that were used whenever you use its outputs. See the list of tools.