Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
dd84728
pretext2asm module
yumisims May 22, 2026
4502cdd
update busco_gene and telo_finder with HTSLIB_BGZIPTABIX
yumisims May 26, 2026
63e3890
zippy
yumisims Jun 9, 2026
b3e0c3b
update findtelomere
yumisims Jun 10, 2026
7403d85
Add pretext modules and zippypretext subworkflow to conda skip list
Copilot Jun 10, 2026
323b090
Merge remote-tracking branch 'origin/main' into zippy
Copilot Jun 10, 2026
64d5230
Fix meta.yml: quote float version key 1.2 as string to fix lint TypeE…
Copilot Jun 10, 2026
948d2ee
fix: resolve nf-core lint failures in pretext/makepairs module
Copilot Jun 10, 2026
780f473
fix: resolve nf-core lint failures in pretext/pretext2asm module
Copilot Jun 10, 2026
5835741
update snapshot
yumisims Jun 10, 2026
6b9ab80
fixed .github/skip_nf_test.json
yumisims Jun 10, 2026
6caf226
fix: resolve merge conflict in .github/skip_nf_test.json
Copilot Jun 10, 2026
5a9de69
update snapshots
yumisims Jun 10, 2026
d8479da
update snapshot
yumisims Jun 10, 2026
5ee6bc6
add a newline to snapshotsgit add modules/sanger-tol/pretext/pretext2…
yumisims Jun 10, 2026
0e0f302
fixed meta of yaml files
yumisims Jun 10, 2026
fbfa778
add author to meta
yumisims Jun 10, 2026
e49d7f0
snapshot
yumisims Jun 10, 2026
f278291
snapshot
yumisims Jun 10, 2026
f9f5057
meta typeerror
yumisims Jun 10, 2026
d982fd5
update makeapairs
yumisims Jun 10, 2026
37b820a
fix(pretext/makepairs): add missing environment.yml
Copilot Jun 10, 2026
fb9b7cd
change container registery
yumisims Jun 10, 2026
bdbbca0
update container registry
yumisims Jun 10, 2026
92c5f66
Update subworkflows/sanger-tol/busco_gene/main.nf
yumisims Jun 11, 2026
17f0a18
Update subworkflows/sanger-tol/zippypretext/main.nf
yumisims Jun 11, 2026
b644cdd
Update modules/sanger-tol/pretext/juicerc/tests/main.nf.test
yumisims Jun 11, 2026
0973c2d
Update subworkflows/sanger-tol/zippypretext/main.nf
yumisims Jun 11, 2026
c1ca9e4
Update subworkflows/sanger-tol/zippypretext/meta.yml
yumisims Jun 11, 2026
e641123
Update subworkflows/sanger-tol/zippypretext/main.nf
yumisims Jun 11, 2026
52a697c
Update subworkflows/sanger-tol/zippypretext/main.nf
yumisims Jun 11, 2026
a615209
update container
yumisims Jun 11, 2026
dcd1102
Fix Nextflow lint failures in busco_gene and zippypretext subworkflows
Copilot Jun 11, 2026
95cec8f
Merge branch 'main' into zippy
yumisims Jun 11, 2026
67437d9
Fix zippypretext subworkflow meta components
Copilot Jun 11, 2026
58a1260
fix: rename JUICERC process to PRETEXT_JUICERC to fix CI test failure
Copilot Jun 11, 2026
5aa54eb
fix: disable Nextflow task monitor for singularity nf-test runs
Copilot Jun 11, 2026
1febf69
Fix pretext/juicerc module name in meta.yml
Copilot Jun 11, 2026
72a51a9
fix(busco_gene): pass full tuple to bgziptabix
Copilot Jun 11, 2026
34cbc2f
Apply suggestions from code review
DLBPointon Jun 11, 2026
08de223
Apply suggestions from code review
DLBPointon Jun 11, 2026
4cd145c
Update subworkflows/sanger-tol/zippypretext/meta.yml
yumisims Jun 11, 2026
dc39f94
Fix PRETEXT_JUICERC test: use correct process name PRETEXT_PRETEXT2ASM
Copilot Jun 11, 2026
f26ae46
snapshots
yumisims Jun 11, 2026
4c5bdb4
Merge branch 'zippy' of https://github.com/sanger-tol/nf-core-modules…
yumisims Jun 11, 2026
73bd799
fix: correct zippypretext pretextmap component metadata
Copilot Jun 11, 2026
4d35df4
resolve same meta ids for busco tracks issue
yumisims Jun 11, 2026
9e7b48e
Merge branch 'zippy' of https://github.com/sanger-tol/nf-core-modules…
yumisims Jun 11, 2026
0f49408
juicers output contains timestamp
yumisims Jun 11, 2026
a621feb
changed snapshot format
yumisims Jun 11, 2026
8a5cb4c
snapshot
yumisims Jun 12, 2026
97c3e79
fix(busco_gene tests): use BUSCO S3 data mirror in test config
Copilot Jun 12, 2026
959b97a
Update modules/sanger-tol/pretext/juicerc/main.nf
yumisims Jun 12, 2026
01939d2
Update modules/sanger-tol/pretext/juicerc/meta.yml
yumisims Jun 12, 2026
7456d2d
Update modules/sanger-tol/pretext/pretext2asm/main.nf
yumisims Jun 12, 2026
ed08038
Update modules/sanger-tol/pretext/juicerc/meta.yml
yumisims Jun 12, 2026
dec0cef
Update modules/sanger-tol/pretext/makepairs/main.nf
yumisims Jun 12, 2026
f3e12fb
Fix: add missing versions_juicerc output to pretext/juicerc meta.yml
Copilot Jun 12, 2026
05d7000
install procps in the nf-test configuration and re-enabled tracing.
yumisims Jun 12, 2026
90e128f
nf-test.config update
yumisims Jun 12, 2026
a4478e1
add procps to agp container
yumisims Jun 12, 2026
7d5580b
Fix BUSCO test failures caused by unreachable data servers
Copilot Jun 12, 2026
9d362c3
Apply suggestions from code review
DLBPointon Jun 17, 2026
828ec94
Apply suggestions from code review
DLBPointon Jun 17, 2026
c873d2b
Update spacing that got screwed in github
DLBPointon Jun 17, 2026
6a0dc9c
Linting
DLBPointon Jun 17, 2026
9967f02
Update
DLBPointon Jun 17, 2026
ff1bd5e
Update
DLBPointon Jun 17, 2026
7fd1bce
Rename config to online, makes room for an offline test in future
DLBPointon Jun 17, 2026
a8b119c
Update process name
DLBPointon Jun 17, 2026
8a9dd38
Update process
DLBPointon Jun 17, 2026
8e07573
Update ontology
DLBPointon Jun 17, 2026
a88f779
Fix naming
DLBPointon Jun 17, 2026
2584767
Update
DLBPointon Jun 17, 2026
d1286bd
Update for new field
DLBPointon Jun 17, 2026
a775ff2
UPDATE REFS
DLBPointon Jun 17, 2026
b12a9ba
tbi is now index
DLBPointon Jun 17, 2026
ee8cb10
Update subworkflows/sanger-tol/telo_finder/main.nf
yumisims Jun 17, 2026
bcd4dcc
Update subworkflows/sanger-tol/busco_gene/main.nf
yumisims Jun 17, 2026
a0ddd71
change config
yumisims Jun 17, 2026
7fcceda
Merge branch 'main' into zippy
DLBPointon Jun 18, 2026
5edc986
Update
DLBPointon Jun 18, 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
5 changes: 4 additions & 1 deletion .github/skip_nf_test.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@
"conda": [
"modules/sanger-tol/ancestral",
"modules/sanger-tol/longranger",
"modules/sanger-tol/pretext/pretext2asm",
"modules/sanger-tol/pretext/juicerc",
"modules/sanger-tol/telomere",
"subworkflows/sanger-tol/ancestral",
"subworkflows/sanger-tol/fasta_purge_retained_haplotype",
"subworkflows/sanger-tol/fasta_10x_polishing_longranger_freebayes",
"subworkflows/sanger-tol/telo_finder",
"subworkflows/sanger-tol/fasta_10x_polishing_longranger_freebayes"
"subworkflows/sanger-tol/zippypretext"
],
"docker": ["modules/sanger-tol/longranger", "subworkflows/sanger-tol/fasta_10x_polishing_longranger_freebayes"],
"singularity": []
Expand Down
45 changes: 45 additions & 0 deletions modules/sanger-tol/pretext/juicerc/main.nf
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
process PRETEXT_JUICERC {
tag "${meta.id}"
label 'process_medium'

container 'quay.io/sanger-tol/juicerc:1.2-c1'

input:
tuple val(meta), path(hicmap)
path agpfile
path idxfile

output:
tuple val(meta), path("*_alignment_sorted.txt"), emit: alignment
path("juicercout.log"), emit: outlog
tuple val("${task.process}"), val('juicer_pre'), eval('juicer pre --version'), topic: versions, emit: versions_juicer_pre
// juicerc container has no CLI --version; pin to container tag (bump when `container` changes)
tuple val("${task.process}"), val('juicerc'), val('1.2'), topic: versions, emit: versions_juicerc

when:
task.ext.when == null || task.ext.when

script:
if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) {
error "PRETEXT_JUICERC module does not support Conda. Please use Docker / Singularity instead."
}
def prefix = task.ext.prefix ?: "${meta.id}"
def sort_mem = (task.memory.toGiga() * 0.9).intValue()

"""
juicer pre -q 0 ${hicmap} ${agpfile} ${idxfile} 2>juicercout.log \\
| LC_ALL=C sort -k2,2d -k6,6d -T . --parallel=${task.cpus} -S${sort_mem}G \\
| awk '\$3>=0 && \$7>=0' \\
> ${prefix}_alignment_sorted.txt
"""

stub:
if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) {
error "PRETEXT_JUICERC module does not support Conda. Please use Docker / Singularity instead."
}
def prefix = task.ext.prefix ?: "${meta.id}"
"""
touch ${prefix}_alignment_sorted.txt
touch juicercout.log
"""
}
107 changes: 107 additions & 0 deletions modules/sanger-tol/pretext/juicerc/meta.yml
Comment thread
DLBPointon marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: "pretext_juicerc"
description: |
Remap Hi-C alignments onto a curated AGP with `juicer pre`, sort pairs, and filter
invalid coordinates — equivalent to the zippypretext `juicerc.sh` wrapper.
keywords:
- pretext
- juicer
- hic
- agp
- curation
tools:
- juicer_pre:
description: |
Remap Hi-C contacts from a `.bin` or BAM onto scaffold coordinates in an AGP
using a contig-level FASTA index (`juicer pre -q 0`).
homepage: https://github.com/aidenlab/juicer/wiki/Juicer-Tools-Quick-Start
documentation: https://github.com/aidenlab/juicer/wiki/Juicer-Tools-Quick-Start
licence:
- "MIT"
identifier: ""
input:
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1' ]`
- hicmap:
type: file
description: Hi-C alignment file (BAM or Juicer `.bin` contacts)
pattern: "*.{bam,bin}"
ontologies:
- edam: "http://edamontology.org/format_2572" # BAM
- edam: "http://edamontology.org/format_2333" # BIN
- agpfile:
type: file
description: AGP file describing scaffold coordinates (typically output of
`pretext2asm`)
pattern: "*.agp"
ontologies:
- edam: "http://edamontology.org/format_3693" # AGP
- idxfile:
type: file
description: FASTA index (`.fai`) matching the contig-level Hi-C assembly
pattern: "*.fai"
ontologies: []
output:
alignment:
- - meta:
type: map
description: Groovy Map containing sample information
- "*_alignment_sorted.txt":
type: file
description: Sorted Hi-C alignment records remapped to scaffold
coordinates
pattern: "*_alignment_sorted.txt"
ontologies:
- edam: http://edamontology.org/format_2330 # Textual format
outlog:
- juicercout.log:
type: file
description: Log file written by `juicerc.sh`
pattern: "juicercout.log"
ontologies: []
versions_juicer_pre:
- - ${task.process}:
type: string
description: The process the versions were collected from
- juicer_pre:
type: string
description: The tool name
- juicer pre --version:
type: eval
description: The expression to obtain the version of the tool
versions_juicerc:
- - ${task.process}:
type: string
description: The process the versions were collected from
- juicerc:
type: string
description: The tool name
- "1.2":
type: string
description: The version of the tool
topics:
versions:
- - ${task.process}:
type: string
description: The process the versions were collected from
- juicer_pre:
type: string
description: The tool name
- juicer pre --version:
type: eval
description: The expression to obtain the version of the tool
- - ${task.process}:
type: string
description: The process the versions were collected from
- juicerc:
type: string
description: The tool name
- "1.2":
type: string
description: The expression to obtain the version of the tool
authors:
- "@yumisims"
maintainers:
- "@yumisims"
108 changes: 108 additions & 0 deletions modules/sanger-tol/pretext/juicerc/tests/main.nf.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
nextflow_process {

name "Test Process PRETEXT_JUICERC"
script "../main.nf"
process "PRETEXT_JUICERC"

tag "modules"
tag "modules_sangertol"
tag "pretext"
tag "pretext/juicerc"
tag "pretext/pretext2asm"

test("gfAmaRube1 - bin") {

setup {
run("PRETEXT_PRETEXT2ASM") {
script "../../pretext2asm/main.nf"
process {
"""
input[0] = [
[ id:'test' ],
file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.fa', checkIfExists: true)
]
input[1] = file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1_pretext.agp', checkIfExists: true)
"""
}
}
}

when {
process {
"""
input[0] = [
[ id:'test' ],
file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.bin', checkIfExists: true)
]
input[1] = PRETEXT_PRETEXT2ASM.out.correctedagp.map { meta, agp -> agp }
input[2] = file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.fa.fai', checkIfExists: true)
"""
}
}

then {
def pre_c_sizes = file(process.out.outlog.get(0)).readLines().findAll { it.contains('PRE_C_SIZE') }
assertAll(
{ assert process.success },
{ assert pre_c_sizes.size() > 0 },
{ assert snapshot([
alignment: process.out.alignment,
pre_c_sizes: pre_c_sizes,
versions_juicer_pre: process.out.versions_juicer_pre,
versions_juicerc: process.out.versions_juicerc,
]).match() }
)
}

}

test("gfAmaRube1 - bin - stub") {

options "-stub"

setup {
run("PRETEXT_PRETEXT2ASM") {
options "-stub"
script "../../pretext2asm/main.nf"
process {
"""
input[0] = [
[ id:'test' ],
file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.fa', checkIfExists: true)
]
input[1] = file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1_pretext.agp', checkIfExists: true)
"""
}
}
}

when {
process {
"""
input[0] = [
[ id:'test' ],
file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.bin', checkIfExists: true)
]
input[1] = PRETEXT_PRETEXT2ASM.out.correctedagp.map { meta, agp -> agp }
input[2] = file(params.modules_testdata_base_path + 'Amanita_rubescens/assembly/gfAmaRube1.fa.fai', checkIfExists: true)
"""
}
}

then {
def pre_c_sizes = file(process.out.outlog.get(0)).readLines().findAll { it.contains('PRE_C_SIZE') }
assertAll(
{ assert process.success },
{ assert pre_c_sizes.isEmpty() },
{ assert snapshot([
alignment: process.out.alignment,
pre_c_sizes: pre_c_sizes,
versions_juicer_pre: process.out.versions_juicer_pre,
versions_juicerc: process.out.versions_juicerc,
]).match() }
)
}

}

}
Loading
Loading