Bacannot
Generic but comprehensive pipeline for prokaryotic genome annotation and interrogation with interactive reports and shiny app.
Install / Use
/learn @fmalmeida/BacannotQuality Score
Category
Education & ResearchSupported Platforms
Tags
README
About
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 and comparison of genomes | RefSeq Masher and Sourmash | | Generic annotation and gene prediction | Prokka or Bakta | | rRNA prediction | barrnap | | Classification within multi-locus sequence types (STs) | mlst | | KEGG KO annotation and visualization | KofamScan and KEGGDecoder | | Annotation of secondary metabolites | antiSMASH | | 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, Phigaro and PhySpy | | Annotation of integrative and conjugative elements | ICEberg | | Annotation of bacterial integrons | Integron Finder | | Focused detection of insertion sequences | digIS | | In silico detection and typing of plasmids | Plasmidfinder, Platon and MOB-typer| | Prediction and visualization of genomic islands | IslandPath-DIMOB and gff-toolbox | | Custom annotation from formatted FASTA or NCBI protein IDs | BLAST | | Merge of annotation results | bedtools | | Genome Browser renderization | JBrowse | | Circos plot generation | easy_circos | | Renderization of automatic reports and shiny app for results interrogation | R Markdown, Shiny and SequenceServer |
🎯 In order to increase the accuracy of prokka annotation, this pipeline includes an additional HMM database to prokka's defaults. It can be either TIGRFAM (smaller but curated) or PGAP (bigger comprehensive NCBI database that contains TIGRFAM).
Release notes
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.
Further reading and complementary analyses
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.
Requirements
- Unix-like operating system (Linux, macOS, etc)
- Windows users maybe can execute it using the linux subsystem for windows as shown in:
- https://docs.microsoft.com/pt-br/windows/wsl/install-win10
- https://www.nextflow.io/docs/latest/getstarted.html
- https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
- Windows users maybe can execute it using the linux subsystem for windows as shown in:
- Nextflow
- Docker
These images have been kept separate to not create massive Docker image and to avoid dependencies conflicts.
Installation
-
If you don't have it already install either Docker or Singularity in your computer.
-
Install Nextflow (version 22.10 or higher):
curl -s https://get.nextflow.io | bash -
Give it a try:
nextflow run fmalmeida/bacannot -profile docker --help
🔥 To run the pipeline now users need to pass the -profile docker or -profile singularity parameter explicitly. The pipeline does not load it automatically anymore.
🔥 Users can get let the pipeline always updated with: nextflow pull fmalmeida/bacannot
<a href="https://bacannot.readthedocs.io/en/latest/installation"><strong>Please refer to the installation page, for a complete guide on required images and databases. »</strong></a>
Quickstart
<a href="https://bacannot.readthedocs.io/en/latest/quickstart"><strong>Please refer to the quickstart page »</strong></a>
Overview of outputs
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.
Documentation
Usage
<a href="https://bacannot.readthedocs.io/en/latest/index.html"><strong>Users are advised to read the complete documentation »</strong></a>
- Complete command line explanation of parameters:
nextflow run fmalmeida/bacannot --help
Command line usage examples
Command line executions are exemplified in the manual.
Using the configuration file
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
Overwrite container versions with config
The pipeline uses pre-set docker and singularity configuration files to set all the containers and versions of images that should be used by each module in the pipeline.
Although not recommended, one can use these configuration files to change the version of specific tools if desired.
To download these configs one can:
nextflow run fmalmeida/bacannot --get_docker_config
nextflow run fmalmeida/bacannot --get_singularity_config
Interactive graphical configuration and execution
Via NF tower launchpad (good for cloud env execution)
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 w
