Skip to content

feat: add holodeck modules (simulate, mutate, methylate, eval)#12176

Merged
nh13 merged 4 commits into
nf-core:masterfrom
nh13:nh/holodeck
Jul 4, 2026
Merged

feat: add holodeck modules (simulate, mutate, methylate, eval)#12176
nh13 merged 4 commits into
nf-core:masterfrom
nh13:nh/holodeck

Conversation

@nh13

@nh13 nh13 commented Jun 26, 2026

Copy link
Copy Markdown
Member

Description

Adds four new modules for holodeck, a modern NGS read simulator written in Rust:

  • holodeck/simulate — simulate paired-end reads from a reference (optional variants VCF, optional ground-truth golden BAM/VCF).
  • holodeck/mutate — generate a VCF of random mutations from a reference.
  • holodeck/methylate — generate a methylation-annotated VCF (MT/MB FORMAT fields).
  • holodeck/eval — evaluate alignment placement accuracy of simulated reads.

All tested against the sarscov2 reference with stub runs.

PR checklist

  • This comment contains a description of changes (with reason).
  • Followed the module conventions in the contribution docs.
  • Added a resource label.
  • Used BioConda and BioContainers (bioconda::holodeck=0.3.0; Seqera Wave community containers).
  • nf-core modules test holodeck/<sub> --profile docker passes for all four.
  • Broadcast software version numbers to topic: versions.

@nh13 nh13 enabled auto-merge June 26, 2026 20:25
@nh13 nh13 added Ready for Review new module Adding a new module labels Jun 26, 2026
Comment thread modules/nf-core/holodeck/eval/tests/main.nf.test Outdated
Comment thread modules/nf-core/holodeck/eval/tests/main.nf.test Outdated
Comment thread modules/nf-core/holodeck/eval/meta.yml Outdated
Comment on lines +46 to +54
"##fileformat=VCFv4.4",
"##holodeckVersion=0.3.0",
"##FORMAT=<ID=GT,Number=1,Type=String,Description=\"Genotype\">",
"##FORMAT=<ID=MT,Number=.,Type=String,Description=\"Methylation state, top strand. Per-haplotype pipe-separated bitstring: 1=methylated, 0=unmethylated, .=haplotype carries REF or no owned CpG.\">",
"##FORMAT=<ID=MB,Number=.,Type=String,Description=\"Methylation state, bottom strand. Per-haplotype pipe-separated bitstring: 1=methylated, 0=unmethylated, .=haplotype carries REF or no owned CpG.\">",
"##contig=<ID=MT192765.1,length=29829>",
"#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\tFORMAT\tMETHYLATE",
"MT192765.1\t37\t.\tC\t.\t.\t.\t.\tMT:MB\t0|0:0|0",
"MT192765.1\t64\t.\tC\t.\t.\t.\t.\tMT:MB\t0|0:0|0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure about this.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This block is the decompressed VCF body — one record per CpG site with the simulated methylation state (MT/MB FORMAT) — which is deterministic for a fixed input, so it snapshots stably. I've now also filtered the ##holodeckVersion header line (alongside ##holodeckCommand) so the snapshot won't churn on holodeck releases. Happy to adjust if you had a different concern in mind.

Comment thread modules/nf-core/holodeck/methylate/tests/main.nf.test Outdated
Comment thread modules/nf-core/holodeck/mutate/tests/main.nf.test Outdated
Comment thread modules/nf-core/holodeck/simulate/tests/main.nf.test Outdated
@atrigila atrigila added awaiting-changes will be closed after 30 days and removed Ready for Review labels Jul 2, 2026
nh13 added 4 commits July 2, 2026 15:20
Add an nf-core module wrapping `holodeck simulate`. Simulate sequencing reads from a reference genome. Emits paired-end FastQ plus optional ground-truth golden BAM/VCF, with an optional VCF input to embed variants into the reads.

holodeck is a modern NGS read simulator written in Rust. The module is tested against the sarscov2 reference and includes a stub run.
Add an nf-core module wrapping `holodeck mutate`. Generate a VCF of random mutations from a reference genome.

holodeck is a modern NGS read simulator written in Rust. The module is tested against the sarscov2 reference and includes a stub run.
Add an nf-core module wrapping `holodeck methylate`. Generate a methylation-annotated VCF (MT/MB FORMAT fields) from a reference genome, optionally annotating an input VCF of phased variants.

holodeck is a modern NGS read simulator written in Rust. The module is tested against the sarscov2 reference and includes a stub run.
Add an nf-core module wrapping `holodeck eval`. Evaluate alignment placement accuracy of holodeck-simulated reads, comparing mapped positions against the simulated truth (golden BAM or encoded read names).

holodeck is a modern NGS read simulator written in Rust. The module is tested against the sarscov2 reference and includes a stub run.
@nh13

nh13 commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

@atrigila thanks for suggestions, any chance you can take another look?

@atrigila atrigila left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for addressing the comments

@nh13 nh13 added this pull request to the merge queue Jul 4, 2026
Merged via the queue into nf-core:master with commit aa41e27 Jul 4, 2026
44 checks passed
@nh13 nh13 deleted the nh/holodeck branch July 4, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-changes will be closed after 30 days new module Adding a new module

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants