Add module: modkit/localize - #11120
Conversation
|
We usually recommend to have one module per PR. That makes the review process easier and it is more likely that someone will review your PR. I would suggest to split this PR up into the dorado module and the modkit module :) |
Adds `modkit localize`, which summarises methylation around a set of regions. This PR previously carried three modules — `modkit/localize`, `modkit/localize/plot` and the whole of `dorado/basecaller` — which is why @famosab asked for it to be split. It now contains `modkit/localize` only: - `dorado/basecaller` is dropped entirely; it is already in nf-core#11122, and the copy here was the older revision that still committed pod5 files into the repo. - `modkit/localize/plot` moves to its own PR, renamed `modkit/localizeplot` since nf-core module paths are at most two levels deep. Rebased onto current master, which required two fixes: - `TABIX_TABIX` is now deprecated (its script is `assert false`, pointing at `HTSLIB/BGZIPTABIX`), and its input signature had grown from two elements to four. The test setup now uses `HTSLIB_BGZIPTABIX` to build the tabix index from the `MODKIT_PILEUP` output. - `main.nf.test` never loaded `tests/nextflow.config`, so `params.module_args` never reached `ext.args` and the `--min-coverage 1 --window 1000` settings the test relies on were silently ignored. Added the `config` directive. Also aligned the container declaration with the merged modkit modules (`workflow.containerEngine in ['singularity', 'apptainer']` and the `quay.io/` prefix required by lint). nf-core/tools 4.1.0 lint: 59 passed, 0 warnings, 0 failed. Both nf-tests pass under the singularity profile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E7RSvpouxbMBdimYSwJ5ZP
6079e68 to
58263ab
Compare
|
@famosab you were right, and sorry this took so long. Split done — this PR is
Rebasing onto current master surfaced two things that were quietly broken:
The test config was never loaded. Also aligned the container declaration with the merged modkit modules nf-core/tools 4.1.0 lint: 59 passed, 0 warnings, 0 failed. Both nf-tests On |
….6.4 Ports the review changes from nf-core#11286 to this module, keeping all four open modkit module PRs on one modkit version. - Snapshot via `sanitizeOutput(process.out)` with `assert process.success` outside `assertAll`, so a tool failure fails fast rather than reporting a snapshot mismatch against empty output. - tests/nextflow.config is kept: it carries a real `ext.args2 = '-p bed'` for HTSLIB_BGZIPTABIX, not an empty ext.args. - Bump ont-modkit 0.6.1 -> 0.6.4 (clears the `bioconda_latest` lint warning); container tag `0.6.4--h7f49ad2_0` verified on the Galaxy depot and quay.io. All three output md5s are unchanged across the bump (bc5b3b2e…, fdabfb3e…, and the empty-file stub hash). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JAsT7dzCcLSicJxFRWJozr
1d92bf8 to
369669c
Compare
|
Update since the split: rebased onto master, tests moved to |
New module:
modkit/localizeTool
modkit — A bioinformatics tool for working with modified bases from Oxford Nanopore sequencing data.
What this module does
MODKIT_LOCALIZEaggregates bedMethyl pileup counts around genomic features of interest (e.g. CpG islands, gene bodies, repeat elements), producing:This enables investigation of modification enrichment or depletion patterns relative to genomic landmarks, analogous to a methylation profile around features.
Inputs
modkit pileup).faior.sizes)Outputs
*.tsv— percent-modification vs. offset table*.html— interactive chart*.log— debug logTests
Tests chain
MODKIT_PILEUP→TABIX_TABIX→MODKIT_LOCALIZEusing existing nf-core test-datasets (homo_sapiensnanopore BAM +genome.fasta.fai). Regions BED is created inline — no new test data upload required.nf-testpasses locally (singularity profile)nf-testpasses on SLURM compute node (job 17362918, 2 tests PASSED in 13s)nf-core modules lintpasses: 48/48 tests, 0 warnings, 0 failuresNotes
--regionsis required by the modkit 0.6.1 CLI (enforced at the tool level)modkit/pileupmodulemodkit/localize/plotsubmodule for composite multi-sample visualization is planned as a follow-up PR