From 7b60f1e77cdfc561d2aa601f4f47b6e176286ac6 Mon Sep 17 00:00:00 2001 From: Martin Beracochea Date: Wed, 5 Jun 2024 16:40:32 +0100 Subject: [PATCH] Fix prettier --- README.md | 24 +- modules.json | 84 +++--- nextflow_schema.json | 642 +++++++++++++++++++++---------------------- 3 files changed, 370 insertions(+), 380 deletions(-) diff --git a/README.md b/README.md index afba51d2..cfe7a652 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ The workflow uses the following tools and databases: | Tool/Database | Version | Purpose | -|--------------------------------------------------------------------------------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------| +| ------------------------------------------------------------------------------------------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | [Prokka](https://github.com/tseemann/prokka) | 1.14.6 | CDS calling and functional annotation (default) | | [Bakta](https://github.com/oschwengers/bakta) | 1.9.3 | CDS calling and functional annotation (if --bakta flag is used) | | [Bakta db](https://zenodo.org/record/10522951/) | 2024-01-19 with AMRFinderPlus DB 2024-01-31.1 | Bakta DB (when Bakta is used as the gene caller) | @@ -56,7 +56,7 @@ The workflow uses the following tools and databases: | [cmscan](http://eddylab.org/infernal/) | 1.1.5 | ncRNA predictions | | [Rfam](https://rfam.org/) | 14.9 | Identification of SSU/LSU rRNA and other ncRNAs | | [tRNAscan-SE](https://github.com/UCSC-LoweLab/tRNAscan-SE) | 2.0.9 | tRNA predictions | -| [pyCirclize](https://github.com/moshi4/pyCirclize) | 1.4.0 | Visualise the merged GFF file | +| [pyCirclize](https://github.com/moshi4/pyCirclize) | 1.4.0 | Visualise the merged GFF file | | [VIRify](https://github.com/EBI-Metagenomics/emg-viral-pipeline) | 2.0.0 | Viral sequence annotation (runs separately) | | [Mobilome annotation pipeline](https://github.com/EBI-Metagenomics/mobilome-annotation-pipeline) | 2.0 | Mobilome annotation (runs separately) | @@ -79,7 +79,7 @@ Although it's possible to run the pipeline on a personal computer, due to the co The pipeline needs reference databases in order to work, they take roughly 110G. | Path | Size | -|---------------------|------| +| ------------------- | ---- | | amrfinder | 217M | | antismash | 9.4G | | bakta | 71G | @@ -123,6 +123,7 @@ maximum length is 24 characters; `taxid` is the NCBI TaxId (if the species-level TaxId is not known, a TaxId for a higher taxonomic level can be used). If the taxonomy is known, look up the TaxID [here](https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi). #### Finding TaxIds + If TaxIds for input genomes are not known, a tool such as [CAT/BAT](https://github.com/MGXlab/CAT_pack) can be used. Follow the [instructions](https://github.com/MGXlab/CAT_pack?tab=readme-ov-file#installation) for getting the tool and downloading the NCBI nr database for it. @@ -137,6 +138,7 @@ CAT add_names -i BAT_results/${genome_name}.bin2classification.txt -o BAT_result ``` To generate an input file for `mettannotator`, use [generate_input_file.py](preprocessing/generate_input_file.py): + ``` python3 preprocessing/generate_input_file.py -h usage: generate_input_file.py [-h] -i INFILE -d INPUT_DIR -b BAT_DIR -o OUTFILE [--no-prefix] @@ -160,16 +162,17 @@ optional arguments: --no-prefix Skip prefix generation and leave the first column of the output file empty for the user to fill out. Defaule: False ``` + For example: + ```bash python3 generate_input_file.py -i list_of_genome_fasta_files.txt -d /path/to/the/fasta/files/folder/ -b BAT_results/ -o mettannotator_input.csv ``` + It is always best to check the outputs to ensure the results are as expected. Correct any wrongly detected taxa before starting `mettannotator`. Note, that by default the script uses FASTA file names as prefixes and truncates them to 24 characters if they exceed the limit. - - ### Running mettannotator Running `mettannotator` with the `--help` option will pull the repository and display the help message: @@ -258,6 +261,7 @@ nextflow run ebi-metagenomics/mettannotator \ > see [docs](https://nf-co.re/usage/configuration#custom-configuration-files). ### Gene caller choice + By default, `mettannotator` uses Prokka to identify protein-coding genes. Users can choose to use Bakta instead by running `mettannotator` with the `--bakta` flag. `mettannotator` runs Bakta without ncRNA and CRISPR annotation as these are produced by separate tools in the pipeline. Archaeal genomes will continue to be annotated using @@ -343,13 +347,12 @@ Additionally, for genomes with no more than 50 annotated contigs, a Circos plot - #### Data sources Below is an explanation of how each field in column 3 and 9 of the final GFF file is populated. In most cases, information is taken as is from the reporting tool's output. | Feature (column 3) | Attribute Name (column 9) | Reporting Tool | Description | -| --------------------- | ----------------------------------------------------------------------- |-----------------| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| --------------------- | ----------------------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ncRNA | all\* | cmscan + Rfam | ncRNA annotation (excluding tRNA) | | tRNA | all\* | tRNAscan-SE | tRNA annotation | | LeftFLANK, RightFLANK | all\* | CRISPRCasFinder | CRISPR array flanking sequence | @@ -413,6 +416,7 @@ The mobilome annotation workflow is not currently integrated into `mettannotator After installing both tools, follow these steps to add the mobilome annotation: 1. Run the [viral annotation pipeline](https://github.com/EBI-Metagenomics/emg-viral-pipeline): + ```bash nextflow run \ emg-viral-pipeline/virify.nf \ @@ -420,7 +424,9 @@ nextflow run \ --fasta \ --output ``` + 2. Run the [mobilome annotation pipeline](https://github.com/EBI-Metagenomics/mobilome-annotation-pipeline): + ```bash nextflow run mobilome-annotation-pipeline/main.nf \ --assembly \ @@ -434,7 +440,9 @@ nextflow run mobilome-annotation-pipeline/main.nf \ --skip_amr true \ -profile " ``` + 3. Integrate the output into the `mettannotator` GFF + ```bash # Add mobilome to the merged GFF produced by mettannotator python3 postprocessing/add_mobilome_to_gff.py \ @@ -448,7 +456,9 @@ python3 postprocessing/add_mobilome_to_gff.py \ -i //functional_annotation/merged_gff/_annotations_with_descriptions.gff \ -o _annotations_with_descriptions_with_mobilome.gff ``` + 4. Optional: regenerate the Circos plot with the mobilome track added + ```bash pip install pycirclize pip install matplotlib diff --git a/modules.json b/modules.json index bdd52228..ec7c7e7f 100644 --- a/modules.json +++ b/modules.json @@ -1,50 +1,40 @@ { - "name": "ebi-metagenomics/mettannotator", - "homePage": "https://github.com/ebi-metagenomics/mettannotator", - "repos": { - "https://github.com/nf-core/modules.git": { - "modules": { - "nf-core": { - "bakta/bakta": { - "branch": "master", - "git_sha": "9d0f89b445e1f5b2fb30476f4be9a8b519c07846", - "installed_by": [ - "modules" - ], - "patch": "modules/nf-core/bakta/bakta/bakta-bakta.diff" - }, - "custom/dumpsoftwareversions": { - "branch": "master", - "git_sha": "05c280924b6c768d484c7c443dad5e605c4ff4b4", - "installed_by": [ - "modules" - ] - }, - "gecco/run": { - "branch": "master", - "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "modules" - ], - "patch": "modules/nf-core/gecco/run/gecco-run.diff" - }, - "multiqc": { - "branch": "master", - "git_sha": "a6e11ac655e744f7ebc724be669dd568ffdc0e80", - "installed_by": [ - "modules" - ] - }, - "quast": { - "branch": "master", - "git_sha": "344638191a5d6b3526556410819dfcf24e98039e", - "installed_by": [ - "modules" - ], - "patch": "modules/nf-core/quast/quast.diff" - } - } - } + "name": "ebi-metagenomics/mettannotator", + "homePage": "https://github.com/ebi-metagenomics/mettannotator", + "repos": { + "https://github.com/nf-core/modules.git": { + "modules": { + "nf-core": { + "bakta/bakta": { + "branch": "master", + "git_sha": "9d0f89b445e1f5b2fb30476f4be9a8b519c07846", + "installed_by": ["modules"], + "patch": "modules/nf-core/bakta/bakta/bakta-bakta.diff" + }, + "custom/dumpsoftwareversions": { + "branch": "master", + "git_sha": "05c280924b6c768d484c7c443dad5e605c4ff4b4", + "installed_by": ["modules"] + }, + "gecco/run": { + "branch": "master", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", + "installed_by": ["modules"], + "patch": "modules/nf-core/gecco/run/gecco-run.diff" + }, + "multiqc": { + "branch": "master", + "git_sha": "a6e11ac655e744f7ebc724be669dd568ffdc0e80", + "installed_by": ["modules"] + }, + "quast": { + "branch": "master", + "git_sha": "344638191a5d6b3526556410819dfcf24e98039e", + "installed_by": ["modules"], + "patch": "modules/nf-core/quast/quast.diff" + } } + } } -} \ No newline at end of file + } +} diff --git a/nextflow_schema.json b/nextflow_schema.json index 77a97fff..5f90c718 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -1,336 +1,326 @@ { - "$schema": "http://json-schema.org/draft-07/schema", - "$id": "https://raw.githubusercontent.com/ebi-metagenomics/mettannotator/master/nextflow_schema.json", - "title": "ebi-metagenomics/mettannotator pipeline parameters", - "description": "ME TT assembly annotation pipeline", - "type": "object", - "definitions": { - "input_output_options": { - "title": "Input/output options", - "type": "object", - "fa_icon": "fas fa-terminal", - "description": "Define where the pipeline should find input data and save output data.", - "required": [ - "input", - "outdir" - ], - "properties": { - "input": { - "type": "string", - "format": "file-path", - "exists": true, - "mimetype": "text/csv", - "pattern": "^\\S+\\.csv$", - "schema": "assets/schema_input.json", - "description": "Path to comma-separated file containing information about the assemblies with the prefix to be used and the taxid.", - "help_text": "You will need to create a design file with information about the assemblies running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row.", - "fa_icon": "fas fa-file-csv" - }, - "outdir": { - "type": "string", - "format": "directory-path", - "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", - "fa_icon": "fas fa-folder-open" - }, - "email": { - "type": "string", - "description": "Email address for completion summary.", - "fa_icon": "fas fa-envelope", - "help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", - "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" - }, - "multiqc_title": { - "type": "string", - "description": "MultiQC report title. Printed as page header, used for filename if not otherwise specified.", - "fa_icon": "fas fa-file-signature" - } - } - }, - "reference_databases": { - "title": "Reference databases", - "type": "object", - "description": "", - "default": "", - "properties": { - "dbs": { - "type": "string", - "format": "directory-path", - "description": "Folder for the tools' reference databases used by the pipeline for downloading.", - "help_text": "Set this parameter to trigger the reference database download; otherwise, specify the databases individually." - }, - "interproscan_db": { - "type": "string", - "format": "directory-path", - "description": "The InterProScan reference database, ftp://ftp.ebi.ac.uk/pub/software/unix/iprscan/", - "help_text": "Set this variable to the path of the uncompressed tarball for the database (obtained from the EBI FTP server)." - }, - "interproscan_db_version": { - "type": "string", - "default": "5.62-94.0", - "description": "The InterProScan reference database version." - }, - "interpro_entry_list": { - "type": "string", - "format": "directory-path", - "description": "TSV file listing basic InterPro entry information - the accessions, types and names, ftp://ftp.ebi.ac.uk/pub/databases/interpro/releases/94.0/entry.list", - "help_text": "Set this variable to the path of the uncompressed tarball for the database (obtained from the EBI FTP server)." - }, - "interpro_entry_list_version": { - "type": "string", - "default": "94", - "description": "InterPro entry list version" - }, - "eggnog_db": { - "type": "string", - "format": "directory-path", - "description": "The EggNOG reference database folder, https://github.com/eggnogdb/eggnog-mapper/wiki/eggNOG-mapper-v2.1.5-to-v2.1.12#requirements", - "help_text": "Set this variable to the path of the uncompressed tarball for the database." - }, - "eggnog_db_version": { - "type": "string", - "default": "5.0.2", - "description": "The EggNOG reference database version." - }, - "rfam_ncrna_models": { - "type": "string", - "format": "directory-path", - "description": "Rfam ncRNA models, ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/genomes-pipeline/ncrna/", - "help_text": "Set this variable to the path of the folder that contains the Rfam models." - }, - "rfam_ncrna_models_rfam_version": { - "type": "string", - "default": "14.9", - "description": "Rfam release version where the models come from.", - "help_text": "Rfam release version." - }, - "amrfinder_plus_db": { - "type": "string", - "format": "directory-path", - "description": "AMRFinderPlus reference database, https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/. Go to the following documentation for the db setup https://github.com/ncbi/amr/wiki/Upgrading#database-updates.", - "help_text": "Set this variable to the path of the folder that contains the AMRFinderPlus database directory." - }, - "amrfinder_plus_db_version": { - "type": "string", - "default": "2024-01-31.1", - "description": "The AMRFinderPlus reference database version." - }, - "defense_finder_db": { - "type": "string", - "format": "directory-path", - "description": "Defense Finder reference models, https://github.com/mdmparis/defense-finder#updating-defensefinder. The Microbiome Informatics team provides a pre-indexed version of the models for version 1.2.3 on this ftp location: ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/pipelines/tool-dbs/defense-finder/defense-finder-models_1.2.3.tar.gz.", - "help_text": "Set this variable to the path of the folder that contains the Defense Finder models directory." - }, - "defense_finder_db_version": { - "type": "string", - "default": "1.2.3", - "description": "The Defense Finder models version." - }, - "antismash_db": { - "type": "string", - "format": "directory-path", - "description": "antiSMASH reference database, go to this documentation to do the database setup https://docs.antismash.secondarymetabolites.org/install/#installing-the-latest-antismash-release.", - "help_text": "Set this variable to the path of the folder that contains the antiSMASH indexed database directory." - }, - "antismash_db_version": { - "type": "string", - "default": "7.1.0", - "description": "The antiSMASH reference database version." - }, - "dbcan_db": { - "type": "string", - "format": "directory-path", - "description": "dbCAN indexed reference database, please go to the documentation for the setup https://dbcan.readthedocs.io/en/latest/. The Microbiome Informatics team provides a pre-indexed version of the database for version 4.0 on this ftp location: ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/pipelines/tool-dbs/dbcan/dbcan_4.0.tar.gz", - "help_text": "Set this variable to the path of the folder that contains the dbCAN indexed database directory." - }, - "dbcan_db_version": { - "type": "string", - "default": "4.1.3_V12", - "description": "The dbCAN reference database version." - }, - "bakta_db": { - "type": "string", - "format": "directory-path", - "description": "Bakta reference database, please go to the documentation for the setup https://zenodo.org/records/10522951 and https://github.com/oschwengers/bakta?tab=readme-ov-file#database", - "help_text": "Set this variable to the path of the folder that contains the Bakta database directory with pre-indexed AMRFinderPlus db inside." - }, - "bakta_db_version": { - "type": "string", - "default": "2024-01-19", - "description": "The Bakta reference database version." - } - } - }, - "max_job_request_options": { - "title": "Max job request options", - "type": "object", - "fa_icon": "fab fa-acquisitions-incorporated", - "description": "Set the top limit for requested resources for any single job.", - "help_text": "If you are running on a smaller system, a pipeline step requesting more resources than are available may cause the Nextflow to stop the run with an error. These options allow you to cap the maximum resources requested by any single job so that the pipeline will run on your system.\n\nNote that you can not _increase_ the resources requested by any job using these options. For that you will need your own configuration file. See [the nf-core website](https://nf-co.re/usage/configuration) for details.", - "properties": { - "max_cpus": { - "type": "integer", - "description": "Maximum number of CPUs that can be requested for any single job.", - "default": 16, - "fa_icon": "fas fa-microchip", - "hidden": true, - "help_text": "Use to set an upper-limit for the CPU requirement for each process. Should be an integer e.g. `--max_cpus 1`" - }, - "max_memory": { - "type": "string", - "description": "Maximum amount of memory that can be requested for any single job.", - "default": "128.GB", - "fa_icon": "fas fa-memory", - "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", - "hidden": true, - "help_text": "Use to set an upper-limit for the memory requirement for each process. Should be a string in the format integer-unit e.g. `--max_memory '8.GB'`" - }, - "max_time": { - "type": "string", - "description": "Maximum amount of time that can be requested for any single job.", - "default": "240.h", - "fa_icon": "far fa-clock", - "pattern": "^(\\d+\\.?\\s*(s|m|h|d|day)\\s*)+$", - "hidden": true, - "help_text": "Use to set an upper-limit for the time requirement for each process. Should be a string in the format integer-unit e.g. `--max_time '2.h'`" - } - } - }, - "generic_options": { - "title": "Generic options", - "type": "object", - "fa_icon": "fas fa-file-import", - "description": "Less common options for the pipeline, typically set in a config file.", - "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", - "properties": { - "help": { - "type": "boolean", - "description": "Display help text.", - "fa_icon": "fas fa-question-circle", - "hidden": true - }, - "version": { - "type": "boolean", - "description": "Display version and exit.", - "fa_icon": "fas fa-question-circle", - "hidden": true - }, - "publish_dir_mode": { - "type": "string", - "default": "copy", - "description": "Method used to save pipeline results to output directory.", - "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", - "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], - "hidden": true - }, - "email_on_fail": { - "type": "string", - "description": "Email address for completion summary, only when pipeline fails.", - "fa_icon": "fas fa-exclamation-triangle", - "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$", - "help_text": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", - "hidden": true - }, - "plaintext_email": { - "type": "boolean", - "description": "Send plain-text email instead of HTML.", - "fa_icon": "fas fa-remove-format", - "hidden": true - }, - "max_multiqc_email_size": { - "type": "string", - "description": "File size limit when attaching MultiQC reports to summary emails.", - "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", - "default": "25.MB", - "fa_icon": "fas fa-file-upload", - "hidden": true - }, - "monochrome_logs": { - "type": "boolean", - "description": "Do not use coloured log outputs.", - "fa_icon": "fas fa-palette", - "hidden": true - }, - "hook_url": { - "type": "string", - "description": "Incoming hook URL for messaging service", - "fa_icon": "fas fa-people-group", - "help_text": "Incoming hook URL for messaging service. Currently, MS Teams and Slack are supported.", - "hidden": true - }, - "validate_params": { - "type": "boolean", - "description": "Boolean whether to validate parameters against the schema at runtime", - "default": true, - "fa_icon": "fas fa-check-square", - "hidden": true - }, - "validationShowHiddenParams": { - "type": "boolean", - "fa_icon": "far fa-eye-slash", - "description": "Show all params when using `--help`", - "hidden": true, - "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters." - }, - "validationFailUnrecognisedParams": { - "type": "boolean", - "fa_icon": "far fa-check-circle", - "description": "Validation of parameters fails when an unrecognised parameter is found.", - "hidden": true, - "help_text": "By default, when an unrecognised parameter is found, it returns a warinig." - }, - "validationLenientMode": { - "type": "boolean", - "fa_icon": "far fa-check-circle", - "description": "Validation of parameters in lenient more.", - "hidden": true, - "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." - }, - "multiqc_config": { - "type": "string", - "description": "Custom config file to supply to MultiQC.", - "fa_icon": "fas fa-cog", - "hidden": true - }, - "multiqc_logo": { - "type": "string", - "description": "Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file", - "fa_icon": "fas fa-image", - "hidden": true - }, - "multiqc_methods_description": { - "type": "string", - "description": "Custom MultiQC yaml file containing HTML including a methods description.", - "fa_icon": "fas fa-cog" - } - } + "$schema": "http://json-schema.org/draft-07/schema", + "$id": "https://raw.githubusercontent.com/ebi-metagenomics/mettannotator/master/nextflow_schema.json", + "title": "ebi-metagenomics/mettannotator pipeline parameters", + "description": "ME TT assembly annotation pipeline", + "type": "object", + "definitions": { + "input_output_options": { + "title": "Input/output options", + "type": "object", + "fa_icon": "fas fa-terminal", + "description": "Define where the pipeline should find input data and save output data.", + "required": ["input", "outdir"], + "properties": { + "input": { + "type": "string", + "format": "file-path", + "exists": true, + "mimetype": "text/csv", + "pattern": "^\\S+\\.csv$", + "schema": "assets/schema_input.json", + "description": "Path to comma-separated file containing information about the assemblies with the prefix to be used and the taxid.", + "help_text": "You will need to create a design file with information about the assemblies running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 3 columns, and a header row.", + "fa_icon": "fas fa-file-csv" + }, + "outdir": { + "type": "string", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", + "fa_icon": "fas fa-folder-open" + }, + "email": { + "type": "string", + "description": "Email address for completion summary.", + "fa_icon": "fas fa-envelope", + "help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", + "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" + }, + "multiqc_title": { + "type": "string", + "description": "MultiQC report title. Printed as page header, used for filename if not otherwise specified.", + "fa_icon": "fas fa-file-signature" } + } }, - "allOf": [ - { - "$ref": "#/definitions/input_output_options" + "reference_databases": { + "title": "Reference databases", + "type": "object", + "description": "", + "default": "", + "properties": { + "dbs": { + "type": "string", + "format": "directory-path", + "description": "Folder for the tools' reference databases used by the pipeline for downloading.", + "help_text": "Set this parameter to trigger the reference database download; otherwise, specify the databases individually." + }, + "interproscan_db": { + "type": "string", + "format": "directory-path", + "description": "The InterProScan reference database, ftp://ftp.ebi.ac.uk/pub/software/unix/iprscan/", + "help_text": "Set this variable to the path of the uncompressed tarball for the database (obtained from the EBI FTP server)." + }, + "interproscan_db_version": { + "type": "string", + "default": "5.62-94.0", + "description": "The InterProScan reference database version." + }, + "interpro_entry_list": { + "type": "string", + "format": "directory-path", + "description": "TSV file listing basic InterPro entry information - the accessions, types and names, ftp://ftp.ebi.ac.uk/pub/databases/interpro/releases/94.0/entry.list", + "help_text": "Set this variable to the path of the uncompressed tarball for the database (obtained from the EBI FTP server)." + }, + "interpro_entry_list_version": { + "type": "string", + "default": "94", + "description": "InterPro entry list version" + }, + "eggnog_db": { + "type": "string", + "format": "directory-path", + "description": "The EggNOG reference database folder, https://github.com/eggnogdb/eggnog-mapper/wiki/eggNOG-mapper-v2.1.5-to-v2.1.12#requirements", + "help_text": "Set this variable to the path of the uncompressed tarball for the database." + }, + "eggnog_db_version": { + "type": "string", + "default": "5.0.2", + "description": "The EggNOG reference database version." + }, + "rfam_ncrna_models": { + "type": "string", + "format": "directory-path", + "description": "Rfam ncRNA models, ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/genomes-pipeline/ncrna/", + "help_text": "Set this variable to the path of the folder that contains the Rfam models." + }, + "rfam_ncrna_models_rfam_version": { + "type": "string", + "default": "14.9", + "description": "Rfam release version where the models come from.", + "help_text": "Rfam release version." }, - { - "$ref": "#/definitions/reference_databases" + "amrfinder_plus_db": { + "type": "string", + "format": "directory-path", + "description": "AMRFinderPlus reference database, https://ftp.ncbi.nlm.nih.gov/pathogen/Antimicrobial_resistance/AMRFinderPlus/database/. Go to the following documentation for the db setup https://github.com/ncbi/amr/wiki/Upgrading#database-updates.", + "help_text": "Set this variable to the path of the folder that contains the AMRFinderPlus database directory." + }, + "amrfinder_plus_db_version": { + "type": "string", + "default": "2024-01-31.1", + "description": "The AMRFinderPlus reference database version." + }, + "defense_finder_db": { + "type": "string", + "format": "directory-path", + "description": "Defense Finder reference models, https://github.com/mdmparis/defense-finder#updating-defensefinder. The Microbiome Informatics team provides a pre-indexed version of the models for version 1.2.3 on this ftp location: ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/pipelines/tool-dbs/defense-finder/defense-finder-models_1.2.3.tar.gz.", + "help_text": "Set this variable to the path of the folder that contains the Defense Finder models directory." + }, + "defense_finder_db_version": { + "type": "string", + "default": "1.2.3", + "description": "The Defense Finder models version." + }, + "antismash_db": { + "type": "string", + "format": "directory-path", + "description": "antiSMASH reference database, go to this documentation to do the database setup https://docs.antismash.secondarymetabolites.org/install/#installing-the-latest-antismash-release.", + "help_text": "Set this variable to the path of the folder that contains the antiSMASH indexed database directory." + }, + "antismash_db_version": { + "type": "string", + "default": "7.1.0", + "description": "The antiSMASH reference database version." + }, + "dbcan_db": { + "type": "string", + "format": "directory-path", + "description": "dbCAN indexed reference database, please go to the documentation for the setup https://dbcan.readthedocs.io/en/latest/. The Microbiome Informatics team provides a pre-indexed version of the database for version 4.0 on this ftp location: ftp://ftp.ebi.ac.uk/pub/databases/metagenomics/pipelines/tool-dbs/dbcan/dbcan_4.0.tar.gz", + "help_text": "Set this variable to the path of the folder that contains the dbCAN indexed database directory." + }, + "dbcan_db_version": { + "type": "string", + "default": "4.1.3_V12", + "description": "The dbCAN reference database version." + }, + "bakta_db": { + "type": "string", + "format": "directory-path", + "description": "Bakta reference database, please go to the documentation for the setup https://zenodo.org/records/10522951 and https://github.com/oschwengers/bakta?tab=readme-ov-file#database", + "help_text": "Set this variable to the path of the folder that contains the Bakta database directory with pre-indexed AMRFinderPlus db inside." + }, + "bakta_db_version": { + "type": "string", + "default": "2024-01-19", + "description": "The Bakta reference database version." + } + } + }, + "max_job_request_options": { + "title": "Max job request options", + "type": "object", + "fa_icon": "fab fa-acquisitions-incorporated", + "description": "Set the top limit for requested resources for any single job.", + "help_text": "If you are running on a smaller system, a pipeline step requesting more resources than are available may cause the Nextflow to stop the run with an error. These options allow you to cap the maximum resources requested by any single job so that the pipeline will run on your system.\n\nNote that you can not _increase_ the resources requested by any job using these options. For that you will need your own configuration file. See [the nf-core website](https://nf-co.re/usage/configuration) for details.", + "properties": { + "max_cpus": { + "type": "integer", + "description": "Maximum number of CPUs that can be requested for any single job.", + "default": 16, + "fa_icon": "fas fa-microchip", + "hidden": true, + "help_text": "Use to set an upper-limit for the CPU requirement for each process. Should be an integer e.g. `--max_cpus 1`" }, - { - "$ref": "#/definitions/max_job_request_options" + "max_memory": { + "type": "string", + "description": "Maximum amount of memory that can be requested for any single job.", + "default": "128.GB", + "fa_icon": "fas fa-memory", + "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", + "hidden": true, + "help_text": "Use to set an upper-limit for the memory requirement for each process. Should be a string in the format integer-unit e.g. `--max_memory '8.GB'`" }, - { - "$ref": "#/definitions/generic_options" + "max_time": { + "type": "string", + "description": "Maximum amount of time that can be requested for any single job.", + "default": "240.h", + "fa_icon": "far fa-clock", + "pattern": "^(\\d+\\.?\\s*(s|m|h|d|day)\\s*)+$", + "hidden": true, + "help_text": "Use to set an upper-limit for the time requirement for each process. Should be a string in the format integer-unit e.g. `--max_time '2.h'`" } - ], - "properties": { - "bakta": { - "type": "boolean", - "description": "Use Bakta instead of Prokka for CDS annotation. Prokka will still be used for archaeal genomes." + } + }, + "generic_options": { + "title": "Generic options", + "type": "object", + "fa_icon": "fas fa-file-import", + "description": "Less common options for the pipeline, typically set in a config file.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "properties": { + "help": { + "type": "boolean", + "description": "Display help text.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "version": { + "type": "boolean", + "description": "Display version and exit.", + "fa_icon": "fas fa-question-circle", + "hidden": true + }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, + "email_on_fail": { + "type": "string", + "description": "Email address for completion summary, only when pipeline fails.", + "fa_icon": "fas fa-exclamation-triangle", + "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$", + "help_text": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", + "hidden": true + }, + "plaintext_email": { + "type": "boolean", + "description": "Send plain-text email instead of HTML.", + "fa_icon": "fas fa-remove-format", + "hidden": true + }, + "max_multiqc_email_size": { + "type": "string", + "description": "File size limit when attaching MultiQC reports to summary emails.", + "pattern": "^\\d+(\\.\\d+)?\\.?\\s*(K|M|G|T)?B$", + "default": "25.MB", + "fa_icon": "fas fa-file-upload", + "hidden": true + }, + "monochrome_logs": { + "type": "boolean", + "description": "Do not use coloured log outputs.", + "fa_icon": "fas fa-palette", + "hidden": true + }, + "hook_url": { + "type": "string", + "description": "Incoming hook URL for messaging service", + "fa_icon": "fas fa-people-group", + "help_text": "Incoming hook URL for messaging service. Currently, MS Teams and Slack are supported.", + "hidden": true + }, + "validate_params": { + "type": "boolean", + "description": "Boolean whether to validate parameters against the schema at runtime", + "default": true, + "fa_icon": "fas fa-check-square", + "hidden": true + }, + "validationShowHiddenParams": { + "type": "boolean", + "fa_icon": "far fa-eye-slash", + "description": "Show all params when using `--help`", + "hidden": true, + "help_text": "By default, parameters set as _hidden_ in the schema are not shown on the command line when a user runs with `--help`. Specifying this option will tell the pipeline to show all parameters." + }, + "validationFailUnrecognisedParams": { + "type": "boolean", + "fa_icon": "far fa-check-circle", + "description": "Validation of parameters fails when an unrecognised parameter is found.", + "hidden": true, + "help_text": "By default, when an unrecognised parameter is found, it returns a warinig." + }, + "validationLenientMode": { + "type": "boolean", + "fa_icon": "far fa-check-circle", + "description": "Validation of parameters in lenient more.", + "hidden": true, + "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." + }, + "multiqc_config": { + "type": "string", + "description": "Custom config file to supply to MultiQC.", + "fa_icon": "fas fa-cog", + "hidden": true + }, + "multiqc_logo": { + "type": "string", + "description": "Custom logo file to supply to MultiQC. File name must also be set in the MultiQC config file", + "fa_icon": "fas fa-image", + "hidden": true + }, + "multiqc_methods_description": { + "type": "string", + "description": "Custom MultiQC yaml file containing HTML including a methods description.", + "fa_icon": "fas fa-cog" } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/input_output_options" + }, + { + "$ref": "#/definitions/reference_databases" + }, + { + "$ref": "#/definitions/max_job_request_options" + }, + { + "$ref": "#/definitions/generic_options" + } + ], + "properties": { + "bakta": { + "type": "boolean", + "description": "Use Bakta instead of Prokka for CDS annotation. Prokka will still be used for archaeal genomes." } + } }