1
0
Fork 0
mirror of https://github.com/MillironX/taxprofiler.git synced 2024-11-22 01:06:04 +00:00

Merge pull request #115 from nf-core/json-schema

Add documentation for all parameters JSON schema (and other minor usage documentation tweaks)
This commit is contained in:
James A. Fellows Yates 2022-08-31 15:19:07 +02:00 committed by GitHub
commit 2ca837a4a3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 479 additions and 243 deletions

View file

@ -65,7 +65,7 @@ An [example samplesheet](../assets/samplesheet.csv) has been provided with the p
nf-core/taxprofiler supports multiple databases being profiled in parallel for each tool. nf-core/taxprofiler supports multiple databases being profiled in parallel for each tool.
Databases can be supplied either in the form of a compressed `.tar.gz` archive of a directory containing all relevant database files or the path to a directory on the filesystem. Databases can be supplied either in the form of a compressed `.tar.gz` archive of a directory containing all relevant database files or the path to a directory on the filesystem.
The pipeline takes the locations and specific parameters of these databases as input via a four column comma-separated sheet. The pipeline takes the locations and specific profiling parameters of the tool of these databases as input via a four column comma-separated sheet.
> ⚠️ nf-core/taxprofiler does not provide any databases by default, nor does it currently generate them for you. This must be performed manually by the user. See below for more information of the expected database files. > ⚠️ nf-core/taxprofiler does not provide any databases by default, nor does it currently generate them for you. This must be performed manually by the user. See below for more information of the expected database files.
@ -84,12 +84,12 @@ motus,db_mOTU,,/<path>/<to>/motus/motus_database/
Column specifications are as follows: Column specifications are as follows:
| Column | Description | | Column | Description |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `tool` | Taxonomic profiling tool (supported by nf-core/taxprofiler) that the database has been indexed for [required]. | | `tool` | Taxonomic profiling tool (supported by nf-core/taxprofiler) that the database has been indexed for [required]. |
| `db_name` | A unique name of the particular database [required]. | | `db_name` | A unique name of the particular database [required]. |
| `db_params` | Any parameters of the given taxonomic profiler that you wish to specify that the taxonomic profiling tool should use when profiling against this specific. Can be empty to use taxonomic profiler defaults Must not be surrounded by quotes [required]. | | `db_params` | Any parameters of the given taxonomic profiler that you wish to specify that the taxonomic profiling tool should use when profiling against this specific. Can be empty to use taxonomic profiler defaults. Must not be surrounded by quotes [required]. We generally do not recommend specifying parameters here that turn on/off saving of output files or specifying particular file extensions - this should be already addressed via pipeline parameters. |
| `db_path` | Path to the database. Can either be a path to a directory containing the database index files or a `.tar.gz` file which contains the compressed database directory with the same name as the tar archive, minus `.tar.gz` [required]. | | `db_path` | Path to the database. Can either be a path to a directory containing the database index files or a `.tar.gz` file which contains the compressed database directory with the same name as the tar archive, minus `.tar.gz` [required]. |
> 💡 You can also specify the same database directory/file twice (ensuring unique `db_name`s) and specify different parameters for each database to compare the effect of different parameters during profiling. > 💡 You can also specify the same database directory/file twice (ensuring unique `db_name`s) and specify different parameters for each database to compare the effect of different parameters during profiling.
@ -207,7 +207,7 @@ Similarly to complexity filtering, host-removal can be useful for runtime optimi
nf-core/taxprofiler currently offers host-removal via alignment against a reference genome with Bowtie2, and the use of the unaligned reads for downstream profiling. nf-core/taxprofiler currently offers host-removal via alignment against a reference genome with Bowtie2, and the use of the unaligned reads for downstream profiling.
You can supply your reference genome in FASTA format with `--hostremoval_reference`. You can also optionally supply a directory containing pre-indexed Bowtie2 index files with `--shortread_hostremoval_index` or `--longread_hostremoval_index`, however nf-core/taxprofiler will generate this for you if necessary. Pre-supplying the directory of index files can greatly speed up the process, and these can be re-used. You can supply your reference genome in FASTA format with `--hostremoval_reference`. You can also optionally supply a directory containing pre-indexed Bowtie2 index files with `--shortread_hostremoval_index` or a minimap2 `.mmi` file for `--longread_hostremoval_index`, however nf-core/taxprofiler will generate these for you if necessary. Pre-supplying the index directory or files can greatly speed up the process, and these can be re-used.
> 💡 If you have multiple taxa or sequences you wish to remove (e.g., the host genome and then also PhiX - common quality-control reagent during sequencing) you can simply concatenate the FASTAs of each taxa or sequences into a single reference file. > 💡 If you have multiple taxa or sequences you wish to remove (e.g., the host genome and then also PhiX - common quality-control reagent during sequencing) you can simply concatenate the FASTAs of each taxa or sequences into a single reference file.

View file

@ -105,28 +105,28 @@ params {
run_malt = false run_malt = false
malt_mode = 'BlastN' malt_mode = 'BlastN'
malt_generate_megansummary = false malt_generate_megansummary = false
malt_save_reads = false malt_save_reads = false // added via map + database args extension in profiling.nf
// kraken2 // kraken2
run_kraken2 = false run_kraken2 = false
kraken2_save_reads = false kraken2_save_reads = false // added directly to module in profiling.nf
kraken2_save_readclassification = false kraken2_save_readclassification = false // added directly to module in profiling.nf
// centrifuge // centrifuge
run_centrifuge = false run_centrifuge = false
centrifuge_save_reads = false centrifuge_save_reads = false // added directly to module in profiling.nf
// metaphlan3 // metaphlan3
run_metaphlan3 = false run_metaphlan3 = false
// kaiju // kaiju
run_kaiju = false run_kaiju = false
kaiju_taxon_name = 'species' kaiju_taxon_rank = 'species'
// diamond // diamond
run_diamond = false run_diamond = false
diamond_output_format = 'tsv' // TSV is only format with taxonomic information apparently diamond_output_format = 'tsv' // TSV is only format with taxonomic information apparently
diamond_save_reads = false // this will override default diamond output format so no taxonomic profile is generated! diamond_save_reads = false // this will override default diamond output format so no taxonomic profile is generated! added directly to module in profiling.nf
// mOTUs // mOTUs
run_motus = false run_motus = false
@ -137,7 +137,7 @@ params {
// profile standardisation // profile standardisation
run_profile_standardisation = false run_profile_standardisation = false
generate_biom_output = false generate_biom_output = false
} }
// Load base.config by default for all pipelines // Load base.config by default for all pipelines

View file

@ -10,7 +10,7 @@
"type": "object", "type": "object",
"fa_icon": "fas fa-terminal", "fa_icon": "fas fa-terminal",
"description": "Define where the pipeline should find input data and save output data.", "description": "Define where the pipeline should find input data and save output data.",
"required": ["input", "outdir"], "required": ["input", "databases", "outdir"],
"properties": { "properties": {
"input": { "input": {
"type": "string", "type": "string",
@ -18,10 +18,18 @@
"mimetype": "text/csv", "mimetype": "text/csv",
"pattern": "^\\S+\\.csv$", "pattern": "^\\S+\\.csv$",
"schema": "assets/schema_input.json", "schema": "assets/schema_input.json",
"description": "Path to comma-separated file containing information about the samples in the experiment.", "description": "Path to comma-separated file containing information about the samples and libraries/runs.",
"help_text": "You will need to create a design file with information about the samples in your experiment before 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. See [usage docs](https://nf-co.re/taxprofiler/usage#samplesheet-input).", "help_text": "You will need to create a design file with information about the samples and libraries/runs you want to running in your pipeline run. Use this parameter to specify its location. It has to be a comma-separated file with 6 columns, and a header row. See [usage docs](https://nf-co.re/taxprofiler/usage#samplesheet-input).",
"fa_icon": "fas fa-file-csv" "fa_icon": "fas fa-file-csv"
}, },
"databases": {
"type": "string",
"mimetype": "text/csv",
"format": "file-path",
"fa_icon": "fas fa-database",
"description": "Path to comma-separated file containing information about databases and profiling parameters for each taxonomic profiler",
"help_text": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with 4 columns, and a header row. See [usage docs](https://nf-co.re/taxprofiler/dev/usage#full-database-sheet).\n\nProfilers will only be executed if a corresponding database are supplied. \n\nWe recommend storing this database sheet somewhere centrally and accessible by others members of your lab/institutions, as this file will likely be regularly reused."
},
"outdir": { "outdir": {
"type": "string", "type": "string",
"format": "directory-path", "format": "directory-path",
@ -42,35 +50,408 @@
} }
} }
}, },
"reference_genome_options": { "preprocessing_general_qc_options": {
"title": "Reference genome options", "title": "Preprocessing general QC options",
"type": "object", "type": "object",
"fa_icon": "fas fa-dna", "description": "Common options across both long and short read preprocessing QC steps",
"description": "Reference genome related files and options required for the workflow.", "default": "",
"properties": { "properties": {
"genome": { "save_preprocessed_reads": {
"type": "string",
"description": "Name of iGenomes reference.",
"fa_icon": "fas fa-book",
"help_text": "If using a reference genome configured in the pipeline using iGenomes, use this parameter to give the ID for the reference. This is then used to build the full paths for all required reference genome files e.g. `--genome GRCh38`. \n\nSee the [nf-core website docs](https://nf-co.re/usage/reference_genomes) for more details.",
"hidden": true
},
"igenomes_base": {
"type": "string",
"format": "directory-path",
"description": "Directory / URL base for iGenomes references.",
"default": "s3://ngi-igenomes/igenomes",
"fa_icon": "fas fa-cloud-download-alt",
"hidden": true
},
"igenomes_ignore": {
"type": "boolean", "type": "boolean",
"description": "Do not load the iGenomes reference config.", "fa_icon": "fas fa-save",
"fa_icon": "fas fa-ban", "description": "Save reads from adapter clipping/pair-merging, length filtering for both short and long reads",
"hidden": true, "help_text": "This saves the FASTQ output from the following tools:\n\n- fastp\n- AdapterRemoval\n- Porechop\n- Filtlong\n\nThese reads will be a mixture of: adapter clipped, quality trimmed, pair-merged, and length filtered, depending on the parameters you set."
"help_text": "Do not load `igenomes.config` when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in `igenomes.config`."
} }
} },
"fa_icon": "fas fa-users-cog"
},
"preprocessing_short_read_qc_options": {
"title": "Preprocessing short-read QC options",
"type": "object",
"description": "Options for adapter clipping, quality trimming, pair-merging, and complexity filtering",
"default": "",
"properties": {
"perform_shortread_qc": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turns on short read quality control steps (adapter clipping, complexity filtering etc.)",
"help_text": "Turns on short read quality control steps (adapter clipping, complexity filtering etc.)\n\nThis subworkflow can perform:\n\n- Adapter removal\n- Read quality trimming\n- Read pair merging\n- Length filtering\n- Complexity filtering\n\nEither with fastp or AdapterRemoval.\n\nRemoving adapters (if present) is recommend to reduce false-postive hits that may occur from 'dirty' or 'contaminated' reference genomes in a profiling database that contain accidentially incorporated adapter sequences. Note that some, but not all, tools support paired-end alignment (utilising information about the insert covered by the pairs). However read pair merging in some cases can be recommend to increase read length (such as in aDNA). Length filtering, and/or complexity can speed up alignment by reducing the number of short unspecific reads that need to be aligned."
},
"shortread_qc_tool": {
"type": "string",
"default": "fastp",
"enum": ["fastp", "adapterremoval"],
"fa_icon": "fas fa-tools",
"description": "Specify which tool to use for short-read QC"
},
"shortread_qc_skipadaptertrim": {
"type": "boolean",
"fa_icon": "fas fa-forward",
"description": "Skip adapter trimming",
"help_text": "Skip the removal of sequencing adapters. \n\nThis often can be useful to speed up run-time of the pipeline when analysing data downloaded from public databases such as the ENA or SRA, as adapters should already be removed (however we recommend to check FastQC results to ensure this is the case)."
},
"shortread_qc_adapter1": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-grip-lines",
"description": "Specify adapter 1 nucleotide sequence",
"help_text": "Specify a custom forward or R1 adapter sequence to be removed from reads. \n\nIf not set, the selected short-read QC tool's defaults will be used.\n\n> Modifies tool parameter(s):\n> - fastp: `--adapter_sequence`. fastp default: `AGATCGGAAGAGCACACGTCTGAACTCCAGTCA`\n> - AdapterRemoval: `--adapter1`. AdapteRemoval2 default: `AGATCGGAAGAGCACACGTCTGAACTCCAGTCACNNNNNNATCTCGTATGCCGTCTTCTGCTTG`"
},
"shortread_qc_adapter2": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-grip-lines",
"description": "Specify adapter 2 nucleotide sequence",
"help_text": "Specify a custom reverse or R2 adapter sequence to be removed from reads. \n\nIf not set, the selected short-read QC tool's defaults will be used.\n\n> Modifies tool parameter(s):\n> - fastp: `--adapter_sequence`. fastp default: `AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT`\n> - AdapterRemoval: `--adapter1`. AdapteRemoval2 default: `AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGTAGATCTCGGTGGTCGCCGTATCATT`"
},
"shortread_qc_mergepairs": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on merging of read pairs for paired-end data",
"default": true,
"help_text": "Turn on the merging of read-pairs of paired-end short read sequencing data for AdapterRemoval (this is performed automatically with fastp).\n\n> Modifies tool parameter(s):\n> - AdapterRemoval: `--collapse`\n"
},
"shortread_qc_excludeunmerged": {
"type": "boolean",
"fa_icon": "far fa-times-circle",
"description": "Discard unmerged reads from paired-end merging",
"help_text": "Turns off the inclusion of unmerged reads in resulting processing FASTQ file of paired-end sequencing data when using `fastp`.\n\nThis can be useful in cases where you prefer to have very short reads (e.g. aDNA), thus excluding longer-reads or possibly faulty reads where one of the pair was discarded.\n\n> Modifies tool parameter(s):\n> - removed from reads `--include_unmerged`\n"
},
"shortread_qc_minlength": {
"type": "integer",
"default": 15,
"fa_icon": "fas fa-ruler-horizontal",
"description": "Specify the minimum length of reads to be retained",
"help_text": "Specifying a mimum read length filtering can speed up profiling by reducing the number of short unspecific reads that need to be match/aligned to the database.\n\n> Modifies tool parameter(s):\n> - removed from reads `--length_required`\n> - AdapterRemoval: `--minlength`"
},
"perform_shortread_complexityfilter": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turns on nucleotide sequence complexity filtering",
"help_text": "Turns on sequencing complexity filtering. Complexity filtering can be useful to increase run-time by removing unspecific read sequences that do not provide any informative taxon ID."
},
"shortread_complexityfilter_tool": {
"type": "string",
"default": "bbduk",
"enum": ["bbduk", "prinseqplusplus", "fastp"],
"fa_icon": "fas fa-hammer",
"description": "Specify which tool to use for complexity filtering"
},
"shortread_complexityfilter_entropy": {
"type": "number",
"default": 0.3,
"fa_icon": "fas fa-random",
"description": "Specify the minimum sequence entropy level for complexity filtering",
"help_text": "Specify the minimum 'entropy' value for complexity filtering for BBDuk or PRINSEQ++.\n\nNote that this value will only be used for PRINSEQ++ if `--shortread_complexityfilter_prinseqplusplus_mode` is set to `entropy`.\n\nEntropy here corresponds to the amount of sequence variation exists within the read. Higher values correspond to more variety, and thus will likely reslut in more specific matching to a taxon's reference genome. The trade off here is fewer reads (or abundance information) available for having a confident identification.\n\n\n> Modifies tool parameter(s):\n> - BBDuk: `entropy=`\n> - PRINSEQ++: `-lc_entropy`\n\n"
},
"shortread_complexityfilter_bbduk_windowsize": {
"type": "integer",
"default": 50,
"fa_icon": "far fa-window-maximize",
"description": "Specify the window size for BBDuk complexity filtering",
"help_text": "Specify the window size to calculate the level entropy within for BBDuk.\n\n> Modifies tool parameter(s):\n> - BBDuk: `entropywindow=`"
},
"shortread_complexityfilter_bbduk_mask": {
"type": "boolean",
"fa_icon": "fas fa-mask",
"description": "Turn on masking rather than discarding of low complexity reads for BBduk",
"help_text": "Turn on masking of low-complexity reads (i.e., replacement with `N`) rather than removal.\n\n> Modifies tool parameter(s)\n> - BBDuk: `entropymask=`"
},
"shortread_complexityfilter_fastp_threshold": {
"type": "integer",
"default": 30,
"fa_icon": "fas fa-sort-numeric-down",
"description": "Specify the minimum complexity filter threshold of fastp",
"help_text": "Specify the minimum sequence complexity value for fastp. This value corresponds to the percentage of bases that is different from it's adjacent bases.\n\n> Modifies tool parameter(s):\n> - removed from reads `--complexity_threshold`"
},
"shortread_complexityfilter_prinseqplusplus_mode": {
"type": "string",
"default": "entropy",
"enum": ["entropy", "dust"],
"fa_icon": "fas fa-check-square",
"description": "Specify the complexity filter mode for PRINSEQ++"
},
"shortread_complexityfilter_prinseqplusplus_dustscore": {
"type": "number",
"default": 0.5,
"fa_icon": "fas fa-head-side-mask",
"description": "Specify the minimum dust score for PRINTSEQ++ complexity filtering",
"help_text": "Specify the minimum dust score below which low-complexity reads will be removed. A DUST score is based on how often different tri-nucleotides occur along a read.\n\n> Modifies tool parameter(s):\n> - PRINSEQ++: `--lc_dust`"
},
"save_complexityfiltered_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Save complexity filtered short-reads",
"help_text": "Specify whether to save the final complexity filtered reads in your results directory (`--outdir`)."
}
},
"fa_icon": "fas fa-compress-alt"
},
"preprocessing_long_read_qc_options": {
"title": "Preprocessing long-read QC options",
"type": "object",
"description": "Options for adapter clipping, quality trimming, and length filtering",
"default": "",
"properties": {
"perform_longread_qc": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turns on long read quality control steps (adapter clipping, length filtering etc.)",
"help_text": "Turns on long read quality control steps (adapter clipping, length and/or quality filtering.)\n\nRemoving adapters (if present) is recommend to reduce false-postive hits that may occur from 'dirty' or 'contaminated' reference genomes in a profiling database that contain accidentially incorporated adapter sequences.\n\nLength filtering, and quality filtering can speed up alignment by reducing the number of unspecific reads that need to be aligned."
},
"longread_qc_skipadaptertrim": {
"type": "boolean",
"description": "Skip long-read trimming",
"fa_icon": "fas fa-forward",
"help_text": "Skip removal of adapters by Porechop. This can be useful in some cases to speed up run time - particularly when you are running data downloading from public databases such as the ENA/SRA that should already have adapters removed. We recommend that you check your FastQC results this is indeed the case."
},
"longread_qc_skipqualityfilter": {
"type": "boolean",
"description": "Skip long-read length and quality filtering",
"fa_icon": "fas fa-forward",
"help_text": "Skip removal of quality filtering with Filtlong. This will skip length, percent reads, and target bases filtering (see other `--longread_qc_qualityfilter_*` parameters)."
},
"longread_qc_qualityfilter_minlength": {
"type": "integer",
"default": 1000,
"description": "Specify the minimum length of reads to be retained",
"fa_icon": "fas fa-ruler-horizontal",
"help_text": "Specify the minimum of length of reads to be kept for downstream analysis.\n\n> Modifies tool parameter(s):\n> - Filtlong: `--min_length`"
},
"longread_qc_qualityfilter_keeppercent": {
"type": "integer",
"default": 90,
"description": "Specify the percent of high-quality bases to be retained",
"fa_icon": "fas fa-percentage",
"help_text": "Throw out the remaining percentage of reads outside the value. This is measured by bp, not by read count. So this option throws out the worst e.g. 10% of read bases if the parameter is set to `90`. _Modified from [Filtlong documentation](https://github.com/rrwick/Filtlong)_\n\n> Modifies tool parameter(s):\n> - Filtlong: `--keep_percent`"
},
"longread_qc_qualityfilter_targetbases": {
"type": "integer",
"default": 500000000,
"description": "Specify the number of high-quality bases in the library to be retained",
"fa_icon": "fas fa-bullseye",
"help_text": "Removes the worst reads until only the specified value of bases remain, useful for very large read sets. If the input read set is less than the specified value, this setting will have no effect. _Modified from [Filtlong documentation](https://github.com/rrwick/Filtlong)_\n\n> Modifies tool parameter(s):\n> - Filtlong: `--keep_percent`"
}
},
"fa_icon": "fas fa-expand-alt"
},
"preprocessing_host_removal_options": {
"title": "Preprocessing host removal options",
"type": "object",
"description": "Options for pre-profiling host read removal",
"default": "",
"properties": {
"perform_shortread_hostremoval": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on short-read host removal",
"help_text": "Turns on the ability to remove short-reads from the that derived from a known organism, using Bowtie2 and samtools\n\nThis subworkflow is useful to remove reads that may come from a host, or a known contamination like the human reference genome. Human DNA contamination of (microbial) reference genomes is well known, so removal of these prior profiling both reduces the risks of false positives, and in _some cases_ a faster runtime (as less reads need to be profiled).\n\nAlternatively, you can include the reference genome within your profiling databases and can turn off this subworkflow, with the trade off of a larger taxonomic profiling database."
},
"perform_longread_hostremoval": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on long-read host removal",
"help_text": "Turns on the ability to remove long-reads from the that derived from a known organism, using minimap2 and samtools\n\nThis subworkflow is useful to remove reads that may come from a host, or a known contamination like the human reference genome. Human DNA contamination of (microbial) reference genomes is well known, so removal of these prior profiling both reduces the risks of false positives, and in _some cases_ a faster runtime (as less reads need to be profiled).\n\nAlternatively, you can include the reference genome within your profiling databases and can turn off this subworkflow, with the trade off of a larger taxonomic profiling database."
},
"hostremoval_reference": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-file-alt",
"description": "Specify path to single reference FASTA of host(s) genome(s)",
"help_text": "Specify a path to the FASTA file (optionally gzipped) of the reference genome of the organism to be removed.\n\nIf you have two or more host organisms or contaminants you wish to remove, you can concatenate the FASTAs of the different taxa into a single one to provide to the pipeline."
},
"shortread_hostremoval_index": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-address-book",
"description": "Specify path to the directory containing pre-made BowTie2 indexes of the host removal reference",
"help_text": "Specify the path to a _directory_ containing pre-made Bowtie2 reference index files (i.e. the directory containing `.bt1`, `.bt2` files etc.). These should sit in the same directory alongside the the reference file specified in `--hostremoval_reference`.\n\nSpecifying premade indices can speed up runtime of the host-removal step, however if not supplied the pipeline will generate the indices for you."
},
"longread_hostremoval_index": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-address-book",
"description": "Specify path to a pre-made Minimap2 index file (.mmi) of the host removal reference",
"help_text": "Specify path to a pre-made Minimap2 index file (.mmi) of the host removal reference file given to `--hostremoval_reference`.\n\nSpecifying a premade index file can speed up runtime of the host-removal step, however if not supplied the pipeline will generate the indices for you."
},
"save_hostremoval_index": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Save mapping index of input reference when not already supplied by user",
"help_text": "Save the output files of the in-built indexing of the host genome.\n\nThis is recommend to be turned on if you plan to use the same reference genome multiple times, as supplying the directory or file to `--shortread_hostremoval_index` or `--longread_hostremoval_index` respectively can speed up runtime of future runs. Once generated, we recommend you place this file _outside_ of your run results directory in a central 'cache' directory you and others using your machine can access and supply to the pipeline."
},
"save_hostremoval_mapped": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Save mapped reads in BAM format from host removal",
"help_text": "Save the reads mapped to the reference genome in BAM format as output by the respective hostremoval alignment tool.\n\nThis can be useful if you wish to perform other analyses on the host organism (such as host-microbe interaction), however, you should consider whether the default mapping parameters of Bowtie2 (short-read) or minimap2 (long-read) are optimised to your context. "
},
"save_hostremoval_unmapped": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Save unmapped reads in FASTQ format from host removal",
"help_text": "Save the unreads mapped to the reference genome in FASTQ format (as exported from `samtools view`).\n\nThis can be useful if you wish to perform other analyses on the off-target reads from the host mapping, such as manual profiling or _de novo_ assembly."
}
},
"fa_icon": "fas fa-user-times"
},
"preprocessing_run_merging_options": {
"title": "Preprocessing run merging options",
"type": "object",
"description": "Options for per-sample run-merging",
"default": "",
"properties": {
"perform_runmerging": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on run merging",
"help_text": "Turns on the concatenation of sequencing runs or libraries with the same sample name.\n\nThis can be useful to ensure you get a single profile per sample, rather than one profile per run or library. Note that in some cases comparing profiles of independent _libraries_ may be useful, so this parameter may not always be suitable. "
},
"save_runmerged_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Save run-concatenated input FASTQ files for each sample",
"help_text": "Save the run- and library-concatenated reads of a given sample in FASTQ format."
}
},
"fa_icon": "fas fa-clipboard-check"
},
"profiling_options": {
"title": "Profiling options",
"type": "object",
"description": "",
"default": "",
"properties": {
"run_centrifuge": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with Centrifuge. Requires database to be present CSV file passed to --databases"
},
"centrifuge_save_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on saving of Centrifuge-aligned reads",
"help_text": "Save mapped (SAM, FASTQ) and unmapped (FASTQ) reads from alignment step of centrifuge in your output results directory.\n\n> Modifies tool parameter(s):\n> - centrifuge: `--un-gz`, `--al-gz`, `--un-conc-gz`, `--al-conc-gz`, `--out-fmt`"
},
"run_diamond": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with DIAMOND. Requires database to be present CSV file passed to --databases"
},
"diamond_output_format": {
"type": "string",
"default": "tsv",
"enum": ["blast", "xml", "txt", "daa", "sam", "tsv", "paf"],
"fa_icon": "fas fa-file",
"description": "Specify output format from DIAMOND profiling.",
"help_text": "DIAMOND can produce output in a number of different formats, you can specify here which to produce.\n\nNote that DIAMOND can only produce one format at a time, and depending on which you pick, some downstream steps may not be executed. For example, selecting `daa` or `sam` will mean you will not get a tabular taxonomic profile as with the other tools.\n\nWill be overriden by `--diamond_save_reads.`\n\n> Modifies tool parameter(s):\n> - diamond blastx: `--outfmt`"
},
"diamond_save_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on saving of DIAMOND-aligned reads. Will override --diamond_output_format and no taxon tables will be generated",
"help_text": "Save aligned reads in SAM format from alignment step of DIAMOND in your output results directory.\n\nNote this explicitly overrides `--diamond_output_format` to produce the SAM file, and no taxon table will be generated.\n\n> Modifies tool parameter(s):\n> - DIAMOND: `--outfmt`"
},
"run_kaiju": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with Kaiju. Requires database to be present CSV file passed to --databases"
},
"kaiju_taxon_rank": {
"type": "string",
"default": "species",
"enum": ["phylum", "class", "order", "family", "genus", "species"],
"fa_icon": "fas fa-tag",
"description": "Specify taxonomic rank to be displayed in Kaiju taxon table",
"help_text": "Specify the taxonomic level(s) to be displayed in the resulting Kaiju taxon table, as generated by the kaiju2table helper tool.\n\nThis can be either a single level (e.g. `species`), or a comma separated list to display the full taxonomic path (e.g. `superkingdom,phylum,class,order,family,genus,species.`).\n\n> Modifies tool parameter(s):\n> - kaiju2table: `-l`"
},
"run_kraken2": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with Kraken2. Requires database to be present CSV file passed to --databases"
},
"kraken2_save_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on saving of Kraken2-aligned reads",
"help_text": "Save reads that do and do not have a taxonomic classification in your output results directory in FASTQ format.\n\n> Modifies tool parameter(s):\n> - kraken2: `--classified-out` and `--unclassified-out`"
},
"kraken2_save_readclassification": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on saving of Kraken2 per-read taxonomic assignment file",
"help_text": "Save a text file that contains a list of each read that had a taxonomic assignment, with information on specific taxonomic taxonomic assignment that that read recieved.\n\n> Modifies tool parameter(s):\n> - kraken2: `--output`"
},
"run_malt": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with MALT. Requires database to be present CSV file passed to --databases"
},
"malt_mode": {
"type": "string",
"default": "BlastN",
"fa_icon": "fas fa-check-square",
"description": "Specify which MALT alignment mode to use",
"help_text": "Specify which version of MALT alignment to use.\n\nBlastN is generally recommended (nucleotide-nucleotide alignment), but particularly for very short reads (such as aDNA), whereas BlastX mode is similar to DIAMOND and will translate the nucleotide to amino acid sequences. Note each type of alignment mode requires different parameters during database construction. Refer to the MALT manual for more information.\n\n> Modifies tool parameter(s):\n> - malt-run: `-mode` "
},
"malt_save_reads": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on saving of MALT-aligned reads",
"help_text": "Turns on saving of MALT aligned reads in SAM format.\n\nNote that the SAM format produce by MALT is not completely valid, and may not work with downstream tools.\n\n> Modifies tool parameter(s):\n> - malt-run: `--alignments`, `-za`"
},
"malt_generate_megansummary": {
"type": "boolean",
"fa_icon": "fas fa-save",
"description": "Turn on generation of MEGAN summary file from MALT results",
"help_text": "Turns on saving of MALT output in an additional MEGAN summary file (`.megan`) that can be loaded into the MEGAN metagenomic exploration tool.\n\nNote: this file is generated not directly from MALT but rather then MEGAN utility script `rma2info`.\n\n> Modifies tool parameter(s):\n> - rma2info: `-es`"
},
"run_metaphlan3": {
"type": "boolean",
"description": "Turn on profiling with MetaPhlAn3. Requires database to be present CSV file passed to --databases",
"fa_icon": "fas fa-toggle-on"
},
"run_motus": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on profiling with mOTUs. Requires database to be present CSV file passed to --databases"
}
},
"fa_icon": "fas fa-align-center"
},
"postprocessing_and_visualisation_options": {
"title": "Postprocessing and visualisation options",
"type": "object",
"description": "",
"default": "",
"properties": {
"run_profile_standardisation": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on standardisation of taxon tables across profilers",
"help_text": "Turns on standardisation of output OTU tables across all tools; each into a TSV format following the following scheme:\n\n|TAXON | SAMPLE_A | SAMPLE_B |\n|-------------|----------------|-----------------|\n| taxon_a | 32 | 123 |\n| taxon_b | 1 | 5 |\n\nThis currently only is generated for mOTUs."
},
"generate_biom_output": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on generation of BIOM output (currently only applies to mOTUs)",
"help_text": "Turn on the saving of the taxonomic output in BIOM format (`.biom`) in the results directory of your pipeline run, instead of the default TSV format.\n\nNote this file is from the output of the `motus merge` command.\n\n> Modifies tool parameter(s):\n> - `-B -o`"
},
"run_krona": {
"type": "boolean",
"fa_icon": "fas fa-toggle-on",
"description": "Turn on generation of Krona plots for supported profilers",
"help_text": "Turn on the generation of Krona interactive pie-chart HTMLs for a selection of profilers.\n\nThe tools currently supported are:\n\n- centrifuge\n- kraken2\n- kaiju\n- MALT"
},
"krona_taxonomy_directory": {
"type": "string",
"default": "None",
"fa_icon": "fas fa-folder-open",
"description": "Specify path to krona taxonomy directories (required for MALT krona plots)",
"help_text": "Specify a path to a Krona taxonomy database directory (i.e. a directory containing a krona generated `.tab` file).\n\nThis is only required for generating Krona plots of MALT output.\n\nNote this taxonomy database must be downloaded and generated with the `updateTaxonomy.sh` script from the krona-tools package."
}
},
"fa_icon": "fas fa-chart-line"
}, },
"institutional_config_options": { "institutional_config_options": {
"title": "Institutional config options", "title": "Institutional config options",
@ -239,6 +620,36 @@
"fa_icon": "fas fa-bacon" "fa_icon": "fas fa-bacon"
} }
} }
},
"reference_genome_options": {
"title": "Reference genome options",
"type": "object",
"fa_icon": "fas fa-dna",
"description": "Reference genome related files and options required for the workflow.",
"properties": {
"genome": {
"type": "string",
"description": "Name of iGenomes reference.",
"fa_icon": "fas fa-book",
"help_text": "If using a reference genome configured in the pipeline using iGenomes, use this parameter to give the ID for the reference. This is then used to build the full paths for all required reference genome files e.g. `--genome GRCh38`. \n\nSee the [nf-core website docs](https://nf-co.re/usage/reference_genomes) for more details.",
"hidden": true
},
"igenomes_base": {
"type": "string",
"format": "directory-path",
"description": "Directory / URL base for iGenomes references.",
"default": "s3://ngi-igenomes/igenomes",
"fa_icon": "fas fa-cloud-download-alt",
"hidden": true
},
"igenomes_ignore": {
"type": "boolean",
"description": "Do not load the iGenomes reference config.",
"fa_icon": "fas fa-ban",
"hidden": true,
"help_text": "Do not load `igenomes.config` when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in `igenomes.config`."
}
}
} }
}, },
"allOf": [ "allOf": [
@ -246,7 +657,25 @@
"$ref": "#/definitions/input_output_options" "$ref": "#/definitions/input_output_options"
}, },
{ {
"$ref": "#/definitions/reference_genome_options" "$ref": "#/definitions/preprocessing_general_qc_options"
},
{
"$ref": "#/definitions/preprocessing_short_read_qc_options"
},
{
"$ref": "#/definitions/preprocessing_long_read_qc_options"
},
{
"$ref": "#/definitions/preprocessing_host_removal_options"
},
{
"$ref": "#/definitions/preprocessing_run_merging_options"
},
{
"$ref": "#/definitions/profiling_options"
},
{
"$ref": "#/definitions/postprocessing_and_visualisation_options"
}, },
{ {
"$ref": "#/definitions/institutional_config_options" "$ref": "#/definitions/institutional_config_options"
@ -256,202 +685,9 @@
}, },
{ {
"$ref": "#/definitions/generic_options" "$ref": "#/definitions/generic_options"
},
{
"$ref": "#/definitions/reference_genome_options"
} }
], ]
"properties": {
"databases": {
"type": "string",
"mimetype": "text/csv",
"format": "file-path",
"default": "None"
},
"shortread_qc_excludeunmerged": {
"type": "boolean"
},
"run_malt": {
"type": "boolean"
},
"malt_mode": {
"type": "string",
"default": "BlastN"
},
"run_kraken2": {
"type": "boolean"
},
"run_centrifuge": {
"type": "boolean"
},
"run_metaphlan3": {
"type": "boolean",
"description": "Enable MetaPhlAn for taxonomic profiling"
},
"shortread_qc_tool": {
"type": "string",
"default": "fastp",
"enum": ["fastp", "adapterremoval"]
},
"shortread_qc_skipadaptertrim": {
"type": "boolean"
},
"shortread_qc_mergepairs": {
"type": "boolean"
},
"shortread_qc_adapter1": {
"type": "string",
"default": "None"
},
"shortread_qc_adapter2": {
"type": "string",
"default": "None"
},
"shortread_qc_minlength": {
"type": "integer",
"default": 15
},
"save_preprocessed_reads": {
"type": "boolean"
},
"shortread_complexityfilter_tool": {
"type": "string",
"default": "bbduk",
"enum": ["bbduk", "prinseqplusplus", "fastp"]
},
"shortread_complexityfilter_bbduk_windowsize": {
"type": "integer",
"default": 50
},
"shortread_complexityfilter_bbduk_mask": {
"type": "boolean"
},
"shortread_complexityfilter_entropy": {
"type": "number",
"default": 0.3
},
"shortread_complexityfilter_prinseqplusplus_mode": {
"type": "string",
"default": "entropy",
"enum": ["entropy", "dust"]
},
"shortread_complexityfilter_prinseqplusplus_dustscore": {
"type": "number",
"default": 0.5
},
"save_complexityfiltered_reads": {
"type": "boolean"
},
"save_runmerged_reads": {
"type": "boolean"
},
"perform_shortread_qc": {
"type": "boolean"
},
"perform_longread_qc": {
"type": "boolean"
},
"perform_shortread_complexityfilter": {
"type": "boolean"
},
"perform_runmerging": {
"type": "boolean"
},
"perform_shortread_hostremoval": {
"type": "boolean"
},
"perform_longread_hostremoval": {
"type": "boolean"
},
"hostremoval_reference": {
"type": "string",
"default": "None"
},
"shortread_hostremoval_index": {
"type": "string",
"default": "None"
},
"save_hostremoval_index": {
"type": "boolean"
},
"save_hostremoval_mapped": {
"type": "boolean"
},
"save_hostremoval_unmapped": {
"type": "boolean"
},
"run_kaiju": {
"type": "boolean"
},
"malt_generate_megansummary": {
"type": "boolean"
},
"kaiju_taxon_name": {
"type": "string",
"default": "species",
"enum": ["phylum", "class", "order", "family", "genus", "species"]
},
"run_diamond": {
"type": "boolean"
},
"diamond_output_format": {
"type": "string",
"default": "tsv",
"enum": ["blast", "xml", "txt", "daa", "sam", "tsv", "paf"]
},
"longread_hostremoval_index": {
"type": "string",
"default": "None"
},
"shortread_complexityfilter_fastp_threshold": {
"type": "integer",
"default": 30
},
"longread_qc_skipadaptertrim": {
"type": "boolean"
},
"longread_qc_skipqualityfilter": {
"type": "boolean"
},
"longread_qc_qualityfilter_minlength": {
"type": "integer",
"default": 1000
},
"longread_qc_qualityfilter_keeppercent": {
"type": "integer",
"default": 90
},
"longread_qc_qualityfilter_targetbases": {
"type": "integer",
"default": 500000000
},
"run_motus": {
"type": "boolean"
},
"malt_save_reads": {
"type": "boolean"
},
"kraken2_save_reads": {
"type": "boolean"
},
"kraken2_save_readclassification": {
"type": "boolean"
},
"centrifuge_save_reads": {
"type": "boolean"
},
"diamond_save_reads": {
"type": "boolean"
},
"run_krona": {
"type": "boolean"
},
"krona_taxonomy_directory": {
"type": "string",
"default": "None"
},
"run_profile_standardisation": {
"type": "boolean"
},
"generate_biom_output": {
"type": "boolean"
}
}
} }

View file

@ -185,7 +185,7 @@ workflow PROFILING {
} }
KAIJU_KAIJU ( ch_input_for_kaiju.reads, ch_input_for_kaiju.db) KAIJU_KAIJU ( ch_input_for_kaiju.reads, ch_input_for_kaiju.db)
KAIJU_KAIJU2TABLE (KAIJU_KAIJU.out.results, ch_input_for_kaiju.db, params.kaiju_taxon_name) KAIJU_KAIJU2TABLE (KAIJU_KAIJU.out.results, ch_input_for_kaiju.db, params.kaiju_taxon_rank)
ch_multiqc_files = ch_multiqc_files.mix( KAIJU_KAIJU2TABLE.out.summary ) ch_multiqc_files = ch_multiqc_files.mix( KAIJU_KAIJU2TABLE.out.summary )
ch_versions = ch_versions.mix( KAIJU_KAIJU.out.versions.first() ) ch_versions = ch_versions.mix( KAIJU_KAIJU.out.versions.first() )
ch_raw_classifications = ch_raw_classifications.mix( KAIJU_KAIJU.out.results ) ch_raw_classifications = ch_raw_classifications.mix( KAIJU_KAIJU.out.results )
@ -209,7 +209,7 @@ workflow PROFILING {
DIAMOND_BLASTX ( ch_input_for_diamond.reads, ch_input_for_diamond.db, ch_diamond_reads_format , [] ) DIAMOND_BLASTX ( ch_input_for_diamond.reads, ch_input_for_diamond.db, ch_diamond_reads_format , [] )
ch_versions = ch_versions.mix( DIAMOND_BLASTX.out.versions.first() ) ch_versions = ch_versions.mix( DIAMOND_BLASTX.out.versions.first() )
ch_raw_profiles = ch_raw_profiles.mix( DIAMOND_BLASTX.out.tsv ) ch_raw_profiles = ch_raw_profiles.mix( DIAMOND_BLASTX.out.tsv )
ch_multiqc_files = ch_multiqc_files.mix( DIAMOND_BLASTX.out.log ) ch_multiqc_files = ch_multiqc_files.mix( DIAMOND_BLASTX.out.log )
} }