---
# System prepended metadata

title: nf-core/taxprofiler adding new profiler workflow
tags: [taxpasta, tutorial, nf-core, taxprofiler]

---

---
title: nf-core/taxprofiler adding new profiler workflow
tags: taxprofiler,taxpasta,nf-core,tutorial,checklist
---

![](https://github.com/nf-core/taxprofiler/blob/master/docs/images/nf-core-taxprofiler_logo_custom_light.png?raw=true)

> Note: does not have to be in this precise order

> [!WARNING]
> Before startring, always make sure you're on a fork and a new branch!

- [x] Installed modules `nf-core modules install <tool>/<subtool>`
- [x] Added profiler to properties in `assets/schema_database.json`
- [x] Added parameters to `nextflow.config`
    - [x] Added `--run_<profiler>`
    - [x] Added other profiler-specific parameters (outside of `meta.db_params`, e.g. saving optional files [read classifications])
- [ ] Added profiler(s) to `subworkflows/local/profiling.nf`
    - [x] Added relevant modules at the top using `include` statement
    - [x] Added the tool to the read-database combining section
    - [x] Added the tool-specific if/else statement
    - [x] Within if/else added `ch_input_for_profiling.profiler` filtering
    - [x] Within if/else invoke module(s)
    - [x] Within if/else raw profile and classification (if necessary) channels mixed
    - [x] Version and MultiQC (if available) channels mixed
- [x] Update `modules.conf`
    - [x] Added `withName:` block
    - [x] Added `ext.args = { "${meta.db_params}" }` (no other parameters should be added to this for the actual profiling modules!)
    - [x] Added other args for non-profiling modules (outside of `meta.db_params`, e.g. saving optional files [read classifications])
    - [x] (Profiling) Added ext.prefix conditional to account for run merging (see other tools)
    - [ ] (Standardisation) Added `ext.prefix = { "ganon_${meta.id}_combined_reports" }` for native multi-sample tables (i.e. not from taxpasta)
    - [x] Added publish dir for the particular profiler + database, with pattern (see other tools)
- [x] Added profiler(s) to `subworkflows/local/standardisation_profiles.nf` if necessary
    - [x] Added relevant modules at the top using `include` statement
    - [x] Added the tool to the read-database combining section (if necessary)
    - [x] Invoke module(s)
    - [x] Version and MultiQC (if available) channels mixed
- [x] If necessary, added any profiler-specific parameter validation checks at the top of `taxprofiler.nf`
- [x] Updated Documentation
    - [x] `nf-core pipelines schema build` has been run and updated
        - [x] All additional tool specific pipeline parameters have a additional help entry with the `Modifies tool parameter(s)` quote block
    - [x] Added citation to `citations.md`  (citation style: APA 7th edition)
    - [x] Add citation to the toolCitation/BibliographyText functions in `subworkflows/local/utils_nfcore/taxprofiler_pipeline
        - [x] Added in-text citation
        - [x] Added bibliography (citation style: APA 7th edition)
    - [ ] Added relevant documentation to `usage.md`
        - [x] Entry in example database sheet (full database sheet section)
        - [x] Entry in 'Expected' paths bullet points (full database sheet section)
        - [x] Entry in 'Classification and profiling' tips section
        - [x] Relevant entries in Post Processing section (Visualisation, multi-table generation)
        - [x] Entry in 'Building custom databases' `docs/usage/tutorial.md`
    - [ ] Described module output in `output.md`
        - [x] Entry in table of contents
        - [x] Entry in results section including tool description, expected output files list, and general tips
        - [x] Entry in taxpasta section
        - [ ] Entry in MultiQC section
    - [x] Added to pipeline summary list on `README.md` 
    - [ ] (Optional) Added to pipeline metro map diagram (can be done just before release)
    - [x] If it's your first contribution, add or move yourself to the Team list on `README.md`!
- [x]  On nf-core/test-data: updated `database_vX.X.csv` to include the test dataset
- [x] Updated `test*.config`s
    - [x] Added `database_vX.X.csv` to all test configs (only once per release with first profiler!)
    - [x] Added `run_<profiler>` to test configs (where applicable)
- [ ] Test(s) pass

## Outside of pipeline repository

- [ ] Make full test database
    - [ ] See `taxprofiler` branch of test datasets for instructions how to get raw FASTAs
    - [ ] Test database locally
    - [ ] Once built and test, upload to iGenomes s3 (Ask James)
    - [ ] Update `database_full_vX.X.csv` and README to include the new s3 URI and instructions
    - [ ] Open PR against test-datasets, taxprofiler branch
- [ ] Add a MultiQC module
- [ ] Make a Taxpasta module
- [ ] Add the database building module to nf-core/createtaxdb (where possible)