Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## v1.2.0dev

### `Added`

- [#188](https://github.com/IntGenomicsLab/lrsomatic/pull/188) - Added `modkit_args` (default `--cpg --modified-bases 5mC`) to control the arguments passed to `modkit pileup`, and `modkit_phased` to run the pileup with `--phased` on the Longphase-haplotagged BAMs, producing `_hp1`, `_hp2` and `_combined` bedMethyl files per sample (@ljwharbers).

### `Changed`

- [#184](https://github.com/IntGenomicsLab/lrsomatic/pull/184) - Replaced the CHM13 Severus panel of normals with the merged 1000 Genomes + ASAP panel (@AmberVerhasselt).

### `Fixed`

- [#188](https://github.com/IntGenomicsLab/lrsomatic/pull/188) - `MODKIT_PILEUP` now runs a patched modkit 0.6.4 (`ghcr.io/ljwharbers/modkit:0.6.4-pacbiofix-6e0afa2`, built from [ljwharbers/modkit@pacbio-conflict-fix](https://github.com/ljwharbers/modkit/tree/pacbio-conflict-fix)) that keeps reads whose 5mC and 5hmC probabilities sum above 1, fixes pileup on PacBio-style MM tags, and honours `--phased` and `--modified-bases` in the general pileup workers that modkit uses for PacBio BAMs with 6mA calls (stock modkit wrote empty `_hp1`/`_hp2` files and an `h` row next to every `m` row for those). Stock modkit 0.4.3-0.6.4 silently dropped 32-65 % of reads from recent PacBio HiFi BAMs (Jasmine >= 26.1.3) and returned empty `--cpg` pileups ([nanoporetech/modkit#612](https://github.com/nanoporetech/modkit/issues/612); fixes proposed upstream in [nanoporetech/modkit#720](https://github.com/nanoporetech/modkit/pull/720)). The module should return to the nf-core biocontainer once a modkit release includes the fix. `MODKIT_PILEUP` now also defaults to `--cpg --modified-bases 5mC`; the previous unfiltered pileup (all modification codes, all contexts) produced 30-45 GB per sample (@ljwharbers).
- [#182](https://github.com/IntGenomicsLab/lrsomatic/pull/182) - Added `--vcf` to the default `vep_args` so VEP writes VCF output rather than its default tab-delimited format (@AmberVerhasselt).

## v1.1.0 - [2026-04-28]
Expand Down
6 changes: 6 additions & 0 deletions conf/modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,12 @@ process {
//

withName: '.*:MODKIT_PILEUP' {
ext.args = {
[
params.modkit_args ?: '',
params.modkit_phased ? '--phased' : ''
].join(' ').trim()
}
publishDir = [
path: { "${params.outdir}/${meta.id}/methylation/${meta.type}/modkit_pileup" },
mode: params.publish_dir_mode,
Expand Down
15 changes: 10 additions & 5 deletions docs/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,20 @@ QC outputs are placed under `tumor/` for all samples, and additionally under `no
├── methylation
│ ├── tumor
│ │ └── modkit_pileup
│ │ └── sample.bed.gz
│ │ ├── sample.bed.gz # default
│ │ ├── sample_hp1.bed.gz # --modkit_phased only
│ │ ├── sample_hp2.bed.gz # --modkit_phased only
│ │ └── sample_combined.bed.gz # --modkit_phased only
│ ├── normal # paired samples only
│ │ └── modkit_pileup
│ │ └── sample.bed.gz
│ │ └── ... # same layout as tumor
```

| File | Description |
| -------------------------------------------- | ----------------------------------------------------------------------------------- |
| `{tumor,normal}/modkit_pileup/sample.bed.gz` | Modkit pileup BED file containing per-CpG methylation frequency and coverage values |
| File | Description |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `{tumor,normal}/modkit_pileup/sample.bed.gz` | Modkit pileup bedMethyl table (bgzip) with per-strand methylation frequency and coverage. By default (`--modkit_args '--cpg --modified-bases 5mC'`) rows are 5mC calls at CpG sites only. |
| `{tumor,normal}/modkit_pileup/sample_{hp1,hp2}.bed.gz` | With `--modkit_phased`: bedMethyl tables restricted to reads carrying haplotype tag `HP:1` or `HP:2` from the Longphase-haplotagged BAM. |
| `{tumor,normal}/modkit_pileup/sample_combined.bed.gz` | With `--modkit_phased`: bedMethyl table over all reads, including untagged ones (equivalent to the unphased default output). |

</details>

Expand Down
34 changes: 18 additions & 16 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,22 +137,24 @@ For structural variants, the CHM13 panel of normals is a merged panel combining

#### Skipping options:

| Parameter | Description |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--skip_qc` | A boolean to skip all QC steps, including `mosdepth`, `samtools`,`fibertools`, `cramino`. Default = `false` |
| `--skip_fiber` | A boolean to skip all `fibertools` related modules. Default = `false` |
| `--skip_cramino` | A boolean to skip `cramino`. Default = `false` |
| `--skip_mosdepth` | A boolean to skip `mosdepth`. Default = `false` |
| `--skip_ascat` | A boolean to skip `ascat`. Default = `false` |
| `--skip_bamstats` | A boolean to skip `bamstats`. Default = `false` |
| `--skip_wakhan` | A boolean to skip `wakhan`. Default = `false` |
| `--skip_vep` | A boolean to skip `vep`. Default = `false` |
| `--skip_m6a` | A boolean to skip `fibertools_m6a`, used if you have m6a calls but would still like nucleosome positions for PacBio data (ONT data is required to have m6a calls). Default = `false` |
| `--skip_nanoplot` | A boolean to skip NanoPlot QC on aligned and unaligned BAM files. Default = `false` |
| `--skip_normalfiber` | A boolean to skip fibertools processing for the normal sample. Default = `false` |
| `--skip_modcall` | A boolean to skip modkit methylation calling. Default = `false` |
| `--skip_modkit` | A boolean to skip the modkit pileup step. Default = `false` |
| `--skip_whatshapstats` | A boolean to skip WhatsHap phasing statistics. Default = `false` |
| Parameter | Description |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--skip_qc` | A boolean to skip all QC steps, including `mosdepth`, `samtools`,`fibertools`, `cramino`. Default = `false` |
| `--skip_fiber` | A boolean to skip all `fibertools` related modules. Default = `false` |
| `--skip_cramino` | A boolean to skip `cramino`. Default = `false` |
| `--skip_mosdepth` | A boolean to skip `mosdepth`. Default = `false` |
| `--skip_ascat` | A boolean to skip `ascat`. Default = `false` |
| `--skip_bamstats` | A boolean to skip `bamstats`. Default = `false` |
| `--skip_wakhan` | A boolean to skip `wakhan`. Default = `false` |
| `--skip_vep` | A boolean to skip `vep`. Default = `false` |
| `--skip_m6a` | A boolean to skip `fibertools_m6a`, used if you have m6a calls but would still like nucleosome positions for PacBio data (ONT data is required to have m6a calls). Default = `false` |
| `--skip_nanoplot` | A boolean to skip NanoPlot QC on aligned and unaligned BAM files. Default = `false` |
| `--skip_normalfiber` | A boolean to skip fibertools processing for the normal sample. Default = `false` |
| `--skip_modcall` | A boolean to skip modkit methylation calling. Default = `false` |
| `--skip_modkit` | A boolean to skip the modkit pileup step. Default = `false` |
| `--modkit_args` | Additional arguments passed to `modkit pileup`. The default restricts output to 5mC calls at CpG sites; note that `--modified-bases` only filters the output, so PacBio positions where the 5mC and 5hmC probabilities sum above 1 are still dropped. Default = `--cpg --modified-bases 5mC` |
| `--modkit_phased` | A boolean to run `modkit pileup --phased` on the Longphase-haplotagged BAMs, producing `_hp1`, `_hp2` and `_combined` bedMethyl files per sample instead of a single unphased file. Default = `false` |
| `--skip_whatshapstats` | A boolean to skip WhatsHap phasing statistics. Default = `false` |

#### LONGPHASE options:

Expand Down
7 changes: 4 additions & 3 deletions modules/nf-core/modkit/pileup/main.nf

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading