Conversation
hotfix to module + Adds metro diagram, updates README.md
Add blocks into the figure use true 'light' theme add nf-metro command
Remove trailing spaces and redundant blank lines
Update metro pipeline
attempt 1 at sensible defaults for eggnogmapper
Module updates, version topics, snapshots
Update resource references for HUMANn v4, FMH FunProfiler, and eggNOG-mapper. Changes include: directing HUMANn v4 to official documentation, updating FMH FunProfiler repository to KoslickiLab organization, and pointing eggNOG-mapper to the official GitHub repository instead of the academic paper.
* Ignore branch.yml in files_unchanged lint The 4.0.3 template renders `HEAD_REPO:` with two spaces while the prettier pin used by prek collapses it to one, so the file can never match the template and CI lint fails. Also drops the stale linting_comment.yml entry, replaced by pr-comment.yml in the 4.0.3 template. * Document local subworkflows in meta.yml (#58) All three still described a samtools sort subworkflow copied from the template. * Drop template TODO comments (#58) Adds real pipeline-specific contribution guidelines in place of the docs/CONTRIBUTING.md placeholder. * Format nf files with nextflow lint -format (#52) Review point 3 from jfy133. Restores the inline comments the formatter drops. * Tidy test_full config (#58) Drops commented-out placeholders, plus outdir (set by awsfulltest) and cleanup (not a param, and unused). * Rebuild schema to drop false defaults (#58) * Fix singularity CI: bump apptainer, allow user namespaces All singularity shards fail with 'Failed to create user namespace: Permission denied'; latest-everything only looks green because it is continue-on-error. Apptainer 1.1.2 (action default) is non-suid and the runner image blocks unprivileged userns. * Collect software versions from the versions topic (#52) Modules publish to the topic but nothing consumed it, so the MultiQC software versions section was empty. Restores the template's collection block and drops the unused versions/mqc emits from PROFILING. * Point test configs at nf-core test-datasets nf-core/test-datasets#2172 is merged, so samplesheets/test.csv and database_full.csv now resolve under pipelines_testdata_base_path. Also drops outdir and cleanup from test.config: both sat inside params, so cleanup never reached the Nextflow directive and outdir is supplied by the caller. * List humann4 modules in profile meta.yml * Update fmhfunprofiler snapshot for new sketch database nf-core/test-datasets#2172 replaced KOs_sketched_scaled_1000_demo.sig.zip on the funcprofiler branch, which is where tests/nextflow.config points pipelines_testdata_base_path. The pipeline-level snapshot already carried the new md5 because it resolves the database through database.csv. * Update outdated nf-core modules and subworkflow diamond 2.1.24 to 2.2.1 and seqkit 2.9.0 to 2.13.0; metaphlan stays on 4.1.1 but drops the pip/setuptools workaround and reports its version through the versions topic. gunzip and untar only gain the apptainer container-engine check. utils_nfschema_plugin renames option keys that this pipeline never sets, since it passes null for both the parameters schema and the CLI typecast. * Revert metaphlan module update, it breaks conda The newer module drops the pip/setuptools dependency, leaving metaphlan on a Python 3.12 env with no distutils. Docker is unaffected.
* Fix DIAMOND database input, read meta and output format The module needs the database as a tuple and --outfmt 6 rather than 102, and publishDir needs the database identity in the read meta. * Regenerate default test snapshot for RGI publish path
* update citations * docs: add remaining tool citations (#65) Signed-off-by: sapunyangkut <302607731+sapunyangkut@users.noreply.github.com> Co-authored-by: sapunyangkut <302607731+sapunyangkut@users.noreply.github.com> * fix lint --------- Signed-off-by: sapunyangkut <302607731+sapunyangkut@users.noreply.github.com> Co-authored-by: sapunyangkut <sapunyangkut@gmail.com> Co-authored-by: sapunyangkut <302607731+sapunyangkut@users.noreply.github.com>
* Fix eggNOG-mapper database wiring The data dir was looked up under an empty entity key, and the search database was passed as a bare path instead of the [ search_mode, db ] tuple the module takes. * Add an eggNOG-mapper test case to the profile subworkflow The test builds its own data dir from the demo eggnog.db, since emapper.py requires --data_dir to be a directory and the shared test data is a bare file. * Test eggNOG-mapper on reads the demo database can annotate The demo search database is the SARS-CoV-2 proteome, so the minigut fixture had no homology to find and the test snapshotted an annotation file holding nothing but its header. Switch the query to the sarscov2 Illumina reads, which annotate 139 reads against the one protein the 61 KB demo eggnog.db carries, and assert the annotations are non-empty so a future empty result fails instead of re-recording clean. Snapshot the unique seed ortholog, OG and description triples rather than one row per read: the read-level rows are 30 KB and their order is not guaranteed stable across thread counts. * Stop publishing the eggNOG-mapper DIAMOND hit table .emapper.hits carries every hit for every query and is an order of magnitude larger than the rest of the pipeline's output: 5.6 GB per sample against 1.1 GB of annotations on a ~5 M read metagenome. Nothing downstream reads it, and reannotating against a newer eggNOG release takes the seed orthologs via -m no_search --annotate_hits_table, so drop it from the publish pattern. The module still emits it; only publishDir changes. * Test DIAMOND against the B. fragilis database Add test case against B. fragilis reference db * Update output.md Original text too verbose
Removes three things that were documented or declared but never wired up: the `profileUsesContainers` variable left behind when its guard was deleted, the commented-out igenomes params, and `save_runmerged_reads`, which was in the schema and advertised FASTQ output the pipeline never publishes. Also moves the profile subworkflow helpers below the workflow bodies, trims the eggNOG-mapper publishDir comment, and converts the remaining GitHub-style admonitions in usage.md and output.md to the nf-core website syntax, fixing an unclosed `::` block in the process. Co-authored-by: Jonas Scheid <43858870+jonasscheid@users.noreply.github.com>
Address review follow-ups from PR #52
FastQC was never called, so the citation claimed a tool that never ran. Also carries over the database version table from #76.
|
|
|
||
| # Update welcome message | ||
| echo "Welcome to the nf-core/funcprofiler devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt | ||
| echo "Welcome to the nf-core/nextbigthing devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt |
There was a problem hiding this comment.
| echo "Welcome to the nf-core/nextbigthing devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt | |
| echo "Welcome to the nf-core/funcprofiler devcontainer!" > /usr/local/etc/vscode-dev-containers/first-run-notice.txt |
There was a problem hiding this comment.
Where does the logo against the legned come from here? I think it looks quite ugly having this darker grey... if this is an nf-metro thing, then ignore me.
I would also argue you should simplify a lot of this, there is a lot of unnecessary complicated detail (e.g. one coloured line per profiler), which could be simplified for user-facing understanding when encountering the pipeline.
Given you only have a single data type - DNA FASTQ reads, you short read FASTQ to results directory could essentially be a single colour line (input database, and multiqc could be separate), as all you are doing up until the profilers are modifying the FASTQs. The log files (to multiqc) and profile tables (to results directory) could be a different colour.
| "db_name": { | ||
| "type": "string", | ||
| "pattern": "^\\S+$", | ||
| "errorMessage": "The unique name of the database should be provided.", |
There was a problem hiding this comment.
| "errorMessage": "The unique name of the database should be provided.", | |
| "errorMessage": "A unique name of the database should be provided.", |
| "eggnogmapper_db", | ||
| "eggnogmapper_data_dir" | ||
| ], | ||
| "errorMessage": "The unique name of the database entity should be provided. (eg, for HUMAnN, specify whether db_path is the humann_nucleotide, humann_protein, or humann_metaphlan database; for eggnogmapper, specify eggnogmapper_db or eggnogmapper_data_dir)", |
There was a problem hiding this comment.
What is the difference between the database and database entity? I think this differenation should be made clear between the two columns
| "errorMessage": "Invalid database db_params entry. No quotes allowed.", | ||
| "meta": ["db_params"] | ||
| }, | ||
| "db_type": { |
There was a problem hiding this comment.
I would add a help text here, saying that 'Please specify if the files that should be profiled are short- or -long' reads.
But don't you only support short reads atm?
| include { PROFILE } from '../subworkflows/local/profile/main' | ||
| include { DATAPREP } from '../subworkflows/local/dataprep/main' | ||
| include { DBPREP } from '../subworkflows/local/dbprep/main' | ||
|
|
There was a problem hiding this comment.
There is a lot of non-useful whitespace in these subworkflows, I would do a clean up pass and remove them.
| ## v1.0.0 - [date] | ||
| ## v1.0.0 - [unreleased<!-- TODO nf-core: replace with date on release -->] | ||
|
|
||
| Initial release of nf-core/funcprofiler, created with the [nf-core](https://nf-co.re/) template. |
There was a problem hiding this comment.
Could add a list of the supported profilers here as well
| "pattern": "^\\S+\\.csv$", | ||
| "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 5 columns (`tool`, `db_name`, `db_entity`, `db_params`, `db_path`), and a header row. See [usage docs](https://nf-co.re/funcprofiler/dev/usage#full-database-sheet).\n\nProfilers will only be executed if a corresponding database are supplied. \n\n As with taxprofiler, we recommend storing this database sheet somewhere centrally and accessible by others members of your lab/institutions, as this file will likely be regularly reused." |
There was a problem hiding this comment.
| "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 5 columns (`tool`, `db_name`, `db_entity`, `db_params`, `db_path`), and a header row. See [usage docs](https://nf-co.re/funcprofiler/dev/usage#full-database-sheet).\n\nProfilers will only be executed if a corresponding database are supplied. \n\n As with taxprofiler, we recommend storing this database sheet somewhere centrally and accessible by others members of your lab/institutions, as this file will likely be regularly reused." | |
| "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 5 columns (`tool`, `db_name`, `db_entity`, `db_params`, `db_path`), and a header row. See [usage docs](https://nf-co.re/funcprofiler/dev/usage#full-database-sheet).\n\nProfilers will only be executed if a corresponding database are supplied. \n\n As with taxprofiler, we recommend storing this database sheet somewhere centrally and accessible by others members of your lab/institutions, as this file will likely be regularly reused." |
| "run_fmhfunprofiler": { | ||
| "type": "boolean", | ||
| "fa_icon": "fas fa-toggle-on", | ||
| "description": "Turn on profiling with fmhfunprofiler; Requires database to be present CSV file passed to --databases" |
There was a problem hiding this comment.
| "description": "Turn on profiling with fmhfunprofiler; Requires database to be present CSV file passed to --databases" | |
| "description": "Turn on profiling with fmhfunprofiler. Requires database to be present in CSV file passed to --databases" |
| "run_humann_v3": { | ||
| "type": "boolean", | ||
| "fa_icon": "fas fa-toggle-on", | ||
| "description": "Turn on profiling with HUMAnN3. Requires `humann_v3`-tagged database to be present CSV file passed to --databases" |
There was a problem hiding this comment.
| "description": "Turn on profiling with HUMAnN3. Requires `humann_v3`-tagged database to be present CSV file passed to --databases" | |
| "description": "Turn on profiling with HUMAnN3. Requires `humann_v3`-tagged database to be present in CSV file passed to --databases" |
Check all entries for same change
Samplesheet rows are validated and turned into their final [meta, [reads]] form in PIPELINE_INITIALISATION, so a bad sheet aborts before any task is submitted; DATAPREP now only merges runs and concatenates. The platform, fastq_1 and long-read checks move into assets/schema_input.json, which no longer offers OXFORD_NANOPORE or PACBIO_SMRT. validateProfilerDatabases() does the same for the database sheet, replacing the lazy checks inside getDbPath() and the fmhfunprofiler db_params check inside PROFILE. Drops the unread db_type column from the database schema.
Drops leftover debug output and a duplicated ${args} from HUMANN4, adds a
header comment saying why the humann4 modules are local, and credits the
authors who modified them.
tests/nextflow.config goes back to the template shape so -profile test can be run without nf-test, and test_full says why some profilers are off.
One sentence per line, GitHub admonitions instead of Astro, output file lists in collapsible blocks, a database-preparation section per tool, and the db_name/db_entity distinction spelled out before the examples.
Drops the preprocessing node, which 1.0.0 does not have, and collapses the per-profiler lines into reads, databases, profiles and logs.
This PR SHOULD NOT BE MERGED, and is only used for a 'clean' reviewing experience of
devagainst the latest template (vs. main, which will have an older version of the template).