Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b7af570
add modkit
robert-a-forsyth Mar 24, 2026
3832767
channel edit
robert-a-forsyth Mar 24, 2026
068660f
Merge branch 'deepvariant' into modkit
robert-a-forsyth Mar 24, 2026
28db3f5
fix value channel structure
robert-a-forsyth Mar 25, 2026
adc92b0
Merge branch 'deepvariant' into modkit
robert-a-forsyth Mar 25, 2026
b6f5aa6
merge
robert-a-forsyth Mar 26, 2026
06921f6
change longphas
robert-a-forsyth Mar 26, 2026
9ca2f78
merge
robert-a-forsyth Mar 26, 2026
dd7eae2
fix params for new wakhan update
robert-a-forsyth Mar 26, 2026
7935ce7
merge wakhan
robert-a-forsyth Mar 26, 2026
3a8a251
switch cna to all
robert-a-forsyth Mar 26, 2026
9b28649
merge
robert-a-forsyth Mar 26, 2026
9e2d555
remove old output
robert-a-forsyth Mar 26, 2026
fa961d8
merge
robert-a-forsyth Mar 26, 2026
c8347db
output fix
robert-a-forsyth Mar 26, 2026
ec119b3
Merge branch 'wakhan' into modkit
robert-a-forsyth Mar 26, 2026
7e0978d
versioning
robert-a-forsyth Mar 27, 2026
f4c6a66
merge
robert-a-forsyth Mar 30, 2026
40cb855
Merge branch 'deepvariant' into modkit
robert-a-forsyth Mar 30, 2026
7c419ca
merge
robert-a-forsyth Mar 30, 2026
486156f
fix merge conflict
robert-a-forsyth Mar 30, 2026
063ba8c
Merge branch 'deepvariant' into modkit
robert-a-forsyth Mar 31, 2026
a2bc320
update snap/ edit config
robert-a-forsyth Apr 1, 2026
1196192
add code documentation bit
ljwharbers Apr 1, 2026
9d5caed
nextflow strict syntax changes
ljwharbers Apr 1, 2026
33cd33b
update patch for longphase/phase
ljwharbers Apr 1, 2026
a657d14
linting a automatically generated file for some reason
ljwharbers Apr 1, 2026
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
1 change: 1 addition & 0 deletions conf/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,5 @@ params {
vep_species = "caenorhabditis_elegans"
skip_wakhan = true
skip_ascat = true
skip_modkit = true
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I guess this is in because it errors in the test data?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

yup

}
3 changes: 2 additions & 1 deletion modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@
"modkit/pileup": {
"branch": "master",
"git_sha": "3d81317a30d1016b533982d6b84df07713ae520a",
"installed_by": ["modules"]
"installed_by": ["modules"],
"patch": "modules/nf-core/modkit/pileup/modkit-pileup.diff"
},
"mosdepth": {
"branch": "master",
Expand Down
2 changes: 1 addition & 1 deletion modules/local/clair3/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ process CLAIR3 {
"""

stub:
def prefix = task.ext.prefix ?: "${meta.id}"
prefix = task.ext.prefix ?: "${meta.id}"
"""
echo "" | gzip > ${prefix}.phased_merge_output.vcf.gz
touch ${prefix}.phased_merge_output.vcf.gz.tbi
Expand Down
12 changes: 1 addition & 11 deletions modules/local/longphase/modcall/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ process LONGPHASE_MODCALL {
output:
tuple val(meta), path("*.vcf") , emit: mod_vcf
tuple val(meta), path("*.log") , emit: log , optional: true
path "versions.yml" , emit: versions
tuple val("${task.process}"), val('longphase'), eval("longphase --version | head -n 1 | sed 's/Version: //'"), topic: versions, emit: versions_longphase

when:
task.ext.when == null || task.ext.when
Expand All @@ -38,11 +38,6 @@ process LONGPHASE_MODCALL {
if [ -f "${prefix}.out" ]; then
mv ${prefix}.out ${prefix}.log
fi

cat <<-END_VERSIONS > versions.yml
"${task.process}":
longphase: \$(longphase --version | head -n 1 | sed 's/Version: //')
END_VERSIONS
"""

stub:
Expand All @@ -52,10 +47,5 @@ process LONGPHASE_MODCALL {
"""
touch ${prefix}.vcf
${log}

cat <<-END_VERSIONS > versions.yml
"${task.process}":
longphase: \$(longphase --version | head -n 1 | sed 's/Version: //')
END_VERSIONS
"""
}
3 changes: 2 additions & 1 deletion modules/local/wakhan/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ process WAKHAN {
tuple val(meta), path("*/vcf_output/*_wakhan_cna_*.vcf") , emit: vcf_files
tuple val(meta), path("*_heatmap_ploidy_purity.html") , emit: heatmap_html
tuple val(meta), path("*_heatmap_ploidy_purity.html.pdf") , emit: heatmap_pdf
tuple val(meta), path("*_optimized_peak.html") , emit: optimized_peak_html
tuple val(meta), path("coverage_data/*.csv") , emit: coverage_csv
tuple val(meta), path("coverage_data/*.png") , emit: coverage_png
tuple val(meta), path("coverage_plots/*.html") , emit: coverage_plots_html
tuple val(meta), path("coverage_plots/*.pdf") , emit: coverage_plots_pdf
tuple val(meta), path("phasing_output/*.html") , emit: phasing_html
Expand All @@ -50,6 +50,7 @@ process WAKHAN {

"""
wakhan \\
all \\
--target-bam ${tumor_input} \\
--breakpoints ${breakpoints} \\
--reference ${reference} \\
Expand Down
10 changes: 0 additions & 10 deletions modules/nf-core/longphase/haplotag/main.nf

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

38 changes: 28 additions & 10 deletions modules/nf-core/longphase/phase/longphase-phase.diff

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

24 changes: 7 additions & 17 deletions modules/nf-core/longphase/phase/main.nf

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

5 changes: 3 additions & 2 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.

23 changes: 23 additions & 0 deletions modules/nf-core/modkit/pileup/modkit-pileup.diff

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

13 changes: 1 addition & 12 deletions modules/nf-core/nanoplot/main.nf

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

1 change: 1 addition & 0 deletions nextflow.config
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ params {
skip_m6a = false
skip_vep = false
skip_modcall = false
skip_modkit = false
use_gpu = false
skip_whatshapstats = false

Expand Down
2 changes: 1 addition & 1 deletion subworkflows/local/deepsomatic.nf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ workflow DEEPSOMATIC {
take:
ch_input // [meta, normal_bam, normal_bai, tumor_bam, tumor_bai]
// normal_bam/bai may be [] for tumor-only mode
ch_intervals // [[:], []] -- empty intervals (genome-wide calling)
_ch_intervals // [[:], []] -- empty intervals (genome-wide calling)
ch_fasta // [[:], fasta]
ch_fai // [[:], fai]
ch_gzi // [[:], gzi] -- bgzipped FASTA index (empty if FASTA is not bgzipped)
Expand Down
2 changes: 0 additions & 2 deletions subworkflows/local/paired/paired_smallvar_germline.nf
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ workflow PAIRED_SMALLVAR_GERMLINE {
clair3_models // [meta(id=model_name), model_dir] -- downloaded Clair3 model directories

main:
ch_versions = channel.empty()
germline_vcf = channel.empty()
germline_tbi = channel.empty()

// COMBINE NORMAL BAMS WITH DOWNLOADED CLAIR3 MODELS
// Clair3 requires the model directory path; models are keyed by model name (meta.id)
Expand Down
2 changes: 0 additions & 2 deletions subworkflows/local/paired/paired_smallvar_somatic.nf
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ workflow PAIRED_SMALLVAR_SOMATIC {
fai // [[:], fai]

main:
ch_versions = channel.empty()
somatic_vcf = channel.empty()
somatic_tbi = channel.empty()

// CLAIRS: somatic SNV/indel calling from T/N paired BAMs
if(params.somatic_var_keep.contains('clair')) {
Expand Down
16 changes: 8 additions & 8 deletions subworkflows/local/phasing_haplotyping.nf
Original file line number Diff line number Diff line change
Expand Up @@ -141,13 +141,13 @@ workflow PHASING_HAPLOTYPING {
// Merge germline and somatic VCFs into a single file for somatic phasing
// Longphase requires all variant sites in one VCF to produce a consistent phase block
germline_vcf
.join(somatic_vcf)
.map { meta, germline_vcf, germline_tbi, somatic_vcf, somatic_tbi ->
def vcfs = [somatic_vcf, germline_vcf] // somatic first (higher priority in phasing)
def tbis = [somatic_tbi, germline_tbi]
return [ meta, vcfs, tbis]
}
.set{germline_somatic_vcfs}
.join(somatic_vcf)
.map { meta, germ_vcf, germ_tbi, som_vcf, som_tbi ->
def vcfs = [som_vcf, germ_vcf] // somatic first (higher priority in phasing)
def tbis = [som_tbi, germ_tbi]
return [ meta, vcfs, tbis]
}
.set{germline_somatic_vcfs}
// germline_somatic_vcfs (pre-concat): [meta, [somatic_vcf, germline_vcf], [somatic_tbi, germline_tbi]]

//
Expand All @@ -157,7 +157,7 @@ workflow PHASING_HAPLOTYPING {
//
BCFTOOLS_CONCAT(germline_somatic_vcfs)
BCFTOOLS_CONCAT.out.vcf
.set{concat_out}
.set{concat_out}
// concat_out: [meta, vcf] -- concatenated (unsorted) somatic+germline VCF

//
Expand Down
6 changes: 3 additions & 3 deletions subworkflows/local/small_variant_consensus.nf
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ workflow SMALL_VARIANT_CONSENSUS {
mixed_vcfs // [meta(+caller field), vcf, tbi] -- one item per caller per sample
// meta.caller is one of: 'clair3', 'clairs-to', 'clairs', 'deepvariant', 'deepsomatic'
fasta // [[:], fasta]
fai // [[:], fai]
_fai // [[:], fai]
prioritize_caller // str: which caller's calls take priority ('deepvariant'/'deepsomatic' or 'clair')
combine_method // str: 'consensus' (intersection only) or 'all' (intersection + private calls from priority caller)

Expand Down Expand Up @@ -82,8 +82,8 @@ workflow SMALL_VARIANT_CONSENSUS {
deepvariant_ch = annotated_vcfs_branched.deepvariant

// Strip 'caller' field from meta before joining so both channels share the same key
clair_ch.
map {meta, vcfs, tbi ->
clair_ch
.map {meta, vcfs, tbi ->
def new_meta = meta.subMap('id',
'paired_data',
'type',
Expand Down
3 changes: 0 additions & 3 deletions subworkflows/local/tumor_only/tumoronly_smallvar.nf
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,8 @@ workflow TUMORONLY_SMALLVAR {

main:

ch_versions = channel.empty()
somatic_vcf = channel.empty()
germline_vcf = channel.empty()
somatic_tbi = channel.empty()
germline_tbi = channel.empty()

// CLAIRS-TO: somatic AND germline variant calling from tumor-only BAM
// ClairS-TO uses a panel-of-normals / population allele database to separate somatic from germline
Expand Down
14 changes: 13 additions & 1 deletion tests/default.nf.test.snap
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,12 @@
"LONGPHASE_HAPLOTAG": {
"longphase": "2.0.1"
},
"LONGPHASE_MODCALL_GERMLINE": {
"longphase": "2.0.1"
},
"LONGPHASE_MODCALL_SOMATIC": {
"longphase": "2.0.1"
},
"LONGPHASE_PHASE_GERMLINE": {
"longphase": "2.0.1"
},
Expand All @@ -76,6 +82,12 @@
"MOSDEPTH": {
"mosdepth": "0.3.11"
},
"NANOPLOT_POST": {
"nanoplot": "1.46.1"
},
"NANOPLOT_PRE": {
"nanoplot": "1.46.1"
},
"SAMTOOLS_FAIDX": {
"samtools": "1.22.1"
},
Expand Down Expand Up @@ -604,6 +616,6 @@
"nf-test": "0.9.3",
"nextflow": "25.10.2"
},
"timestamp": "2026-03-27T17:04:12.049740619"
"timestamp": "2026-04-01T14:22:53.450440867"
}
}
Loading
Loading