Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
04ea65c
add saltshaker modules and run mitosalt from bin
ieduba Feb 24, 2026
4d4f3d3
Merge branch 'dev' into saltshaker
ieduba Feb 24, 2026
3194ef6
saltshaker tweaks
ieduba Feb 25, 2026
f6d090a
change mitosalt container and update schema/snaps
ieduba Feb 26, 2026
f8fb561
[automated] Fix code linting
nf-core-bot Feb 26, 2026
2d378e1
updated snaps
ieduba Feb 27, 2026
73b4d69
merge
ieduba Feb 27, 2026
ce2e982
long args, single process, and conda yamls
ieduba Mar 3, 2026
4a552dd
better param and val names, fix versions, fix stubs, citations
Mar 3, 2026
21b34d2
updated test stuff
ieduba Mar 3, 2026
b749028
Merge branch 'dev' into saltshaker
ieduba Mar 3, 2026
e78c61e
updated snap
ieduba Mar 4, 2026
a1d4566
[automated] Fix code linting
nf-core-bot Mar 4, 2026
3b74a51
update schema
Mar 4, 2026
933333c
move call_sv_mt into call_structural_variants to merge vcfs
Mar 12, 2026
58a6eed
merge conflicts
Mar 12, 2026
0727789
modules
ieduba Mar 13, 2026
cd961e0
merge
ieduba Mar 13, 2026
0055bb5
update SV caller priority with mitosalt
ieduba Mar 16, 2026
144bfa2
start updating tests and fixing chr name
Mar 16, 2026
553cddc
Merge branch 'saltshaker' of github.com:nf-core/raredisease into salt…
Mar 16, 2026
5dcbc15
finish tests and saltshaker mt name
Mar 16, 2026
7dc333d
fix test data paths
Mar 16, 2026
2f32354
remove tabix double gzipping
Mar 16, 2026
7c5ed4f
fix bcftools input and test path
Mar 17, 2026
ed64d2b
fix bcftools input
Mar 17, 2026
37a053f
update sv merge logic
ieduba Mar 18, 2026
c9ebe12
replace local saltshaker with nf-core
Mar 18, 2026
180bdf3
add PLI line to config for hisat2 bug
ieduba Mar 20, 2026
70663fb
Merge branch 'saltshaker' of github.com:nf-core/raredisease into salt…
Mar 20, 2026
bddcceb
Merge branch 'dev' into saltshaker
ieduba Mar 20, 2026
fc6c809
Merge branch 'saltshaker' of github.com:nf-core/raredisease into salt…
Mar 20, 2026
5df75fc
move optional saltshaker inputs
Mar 20, 2026
af41859
update saltshaker modules
Mar 20, 2026
493a43a
empty saltshaker output channels for if it does not run
Mar 20, 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
6 changes: 6 additions & 0 deletions CITATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,10 @@

> Chen X, Schulz-Trieglaff O, Shaw R, et al. Manta: rapid detection of structural variants and indels for germline and cancer sequencing applications. Bioinformatics. 2016;32(8):1220-1222. doi:10.1093/bioinformatics/btv710

- [Mitosalt](https://sourceforge.net/projects/mitosalt/)

> Basu S, Xie X, Uhler JP, et al. Accurate mapping of mitochondrial DNA deletions and duplications using deep sequencing. PLoS Genet. 2020;16(12):e1009242. doi: 10.1371/journal.pgen.1009242

- [Mosdepth](https://academic.oup.com/bioinformatics/article/34/5/867/4583630?login=true)

> Pedersen BS, Quinlan AR. Mosdepth: quick coverage calculation for genomes and exomes. Hancock J, ed. Bioinformatics. 2018;34(5):867-868. doi:10.1093/bioinformatics/btx699
Expand Down Expand Up @@ -112,6 +116,8 @@

> John G. Cleary, Ross Braithwaite, Kurt Gaastra, Brian S. Hilbush, Stuart Inglis, Sean A. Irvine, Alan Jackson, Richard Littin, Mehul Rathod, David Ware, Justin M. Zook, Len Trigg, and Francisco M. De La Vega. "Comparing Variant Call Files for Performance Benchmarking of Next-Generation Sequencing Variant Calling Pipelines." bioRxiv, 2015. doi:10.1101/023754.

- [saltshaker](https://pypi.org/project/saltshaker/)

- [Sambamba](https://academic.oup.com/bioinformatics/article/31/12/2032/213831)

> Tarasov A, Vilella AJ, Cuppen E, Nijman IJ, Prins P. Sambamba: fast processing of NGS alignment formats. Bioinformatics. 2015;31(12):2032-2034. doi:10.1093/bioinformatics/btv098
Expand Down
15 changes: 15 additions & 0 deletions conf/modules/call_sv_MT.config
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,19 @@ process {
ext.prefix = { "${meta.id}_mitochondria_deletions" }
}

withName: '.*CALL_SV_MT:SALTSHAKER_CALL' {
ext.args = '--blacklist'
}

withName: '.*CALL_SV_MT:SALTSHAKER_CLASSIFY' {
ext.args = { "--blacklist --vcf --dominant-fraction ${params.saltshaker_dominant_fraction} \
--radius ${params.saltshaker_group_radius} --high-het ${params.saltshaker_high_heteroplasmy} \
--multiple-threshold ${params.saltshaker_multiple_threshold} --noise ${params.saltshaker_noise_threshold}"
}
}

withName: '.*CALL_SV_MT:SALTSHAKER_PLOT' {
ext.args = '--blacklist --genes'
}

}
2 changes: 0 additions & 2 deletions conf/test.config
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ env {
MPLCONFIGDIR="."
}

singularity.pullTimeout='2h'

params {
config_profile_name = 'Test profile - default'
config_profile_description = 'Minimal test dataset to check pipeline function'
Expand Down
8 changes: 6 additions & 2 deletions main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -316,13 +316,17 @@ workflow NFCORE_RAREDISEASE {
//
if (skip_germlinecnvcaller) {
if (val_analysis_type.equals("wgs")) {
ch_svcaller_priority = channel.value(["tiddit", "manta", "cnvnator"])
ch_svcaller_priority = channel.value(["tiddit", "manta", "cnvnator", "mitosalt"])
} else if (val_run_mt_for_wes) {
ch_svcaller_priority = channel.value(["mitosalt"])
} else {
ch_svcaller_priority = channel.value([])
}
} else {
if (val_analysis_type.equals("wgs")) {
ch_svcaller_priority = channel.value(["tiddit", "manta", "gcnvcaller", "cnvnator"])
ch_svcaller_priority = channel.value(["tiddit", "manta", "gcnvcaller", "cnvnator", "mitosalt"])
} else if (val_run_mt_for_wes) {
ch_svcaller_priority = channel.value(["manta", "gcnvcaller", "mitosalt"])
} else {
ch_svcaller_priority = channel.value(["manta", "gcnvcaller"])
}
Expand Down
15 changes: 15 additions & 0 deletions modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,21 @@
"git_sha": "0f04646a9282049b16b3eb35b042e94dfb3340a0",
"installed_by": ["modules"]
},
"saltshaker/call": {
"branch": "master",
"git_sha": "9d051963759dda1a424374e23f4f22aaa2b0bd60",
"installed_by": ["modules"]
},
"saltshaker/classify": {
"branch": "master",
"git_sha": "ff5f2ad4481a4a1e1769a1fad922681e7f7fd176",
"installed_by": ["modules"]
},
"saltshaker/plot": {
"branch": "master",
"git_sha": "ff5f2ad4481a4a1e1769a1fad922681e7f7fd176",
"installed_by": ["modules"]
},
"sambamba/depth": {
"branch": "master",
"git_sha": "ca6da11b05740de461b1e2714037345c0f856201",
Expand Down
9 changes: 4 additions & 5 deletions modules/local/mitosalt/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ process MITOSALT {

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/dc/dc2631dac526622d28ea1109b0f714d536606d0e5b3b85fe24407c8206e7e6b6/data':
'community.wave.seqera.io/library/mitosalt:1.1.1--5fd87ac48a683358' }"

'https://community-cr-prod.seqera.io/docker/registry/v2/blobs/sha256/13/130779a0dd5a8d86441f262a16a5fb1dfe562125edf93646b53c893d982b5519/data':
'community.wave.seqera.io/library/bbmap_bedtools_bioconductor-biostrings_bioconductor-pwalign_pruned:856c05081cbd8239' }"

input:
tuple val(meta), path(reads)
Expand All @@ -28,7 +27,7 @@ process MITOSALT {
"""
cat $msconfig | sed "s/threads = 1/threads = ${task.cpus}/" > new-${msconfig}
mkdir -p log indel bam tab bw plot
mitosalt new-${msconfig} $reads $prefix
MitoSAlt1.1.1.pl new-${msconfig} $reads $prefix
mv indel/*.breakpoint ${prefix}.breakpoint
mv indel/*.cluster ${prefix}.cluster
"""
Expand All @@ -38,7 +37,7 @@ process MITOSALT {
"""
cat $msconfig | sed "s/threads = 1/threads = ${task.cpus}/" > new-${msconfig}
touch ${prefix}.breakpoint
touch ${prefix}.cluster
echo 'cluster' > ${prefix}.cluster
"""

}
10 changes: 1 addition & 9 deletions modules/local/mitosalt/resources/usr/bin/MitoSAlt1.1.1.pl

Choose a reason for hiding this comment

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

Do you think this should be in the templates directory ? https://nf-co.re/docs/guidelines/components/modules#module-template-location

Copy link
Author

Choose a reason for hiding this comment

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

nextflow docs say that templates are discouraged and should only be used for bash scripts (https://www.nextflow.io/docs/latest/process.html#template) which is why I went with the bin. We can discuss more and see what nf-core folks think when/if this becomes an nf-core module

Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,6 @@
my $p2 = $ARGV[2];
my $tag = $ARGV[3];

#CREATE DIRECTORIES -- added by ID
mkdir "log" unless -d "log";
mkdir "indel" unless -d "indel";
mkdir "bam" unless -d "bam";
mkdir "tab" unless -d "tab";
mkdir "bw" unless -d "bw";
mkdir "plot" unless -d "plot";

#LOG
open (STDOUT, "| tee -ai log/$tag.log");

Expand Down Expand Up @@ -158,7 +150,7 @@
if($nu_mt eq 'no' && $o_mt eq 'yes' && $enriched eq 'yes'){
#REMAP ON MT GENOME
print scalar(localtime).": Map to MT genome\n";
system("$reformat in=$p1 in2=$p2 out=tmp_$tag.fq overwrite=true addslash=t trimreaddescription=t spaceslash=f -Xmx100g"); #2>> log/$tag.log");
system("$reformat in=$p1 in2=$p2 out=tmp_$tag.fq overwrite=true addslash=t trimreaddescription=t spaceslash=f -Xmx100g 2>> log/$tag.log");
system("$lastal -Q1 -e80 -P$threads $lastindex tmp_$tag.fq|$lastsp > tmp_$tag.maf");
system("$mfcv sam -d tmp_$tag.maf|$samtools view -@ $threads -bt $mtfaindex -|$samtools sort -@ $threads -o bam/$tag.bam -");
system("$samtools index bam/$tag.bam");
Expand Down
1 change: 1 addition & 0 deletions modules/local/prep_mitosalt/main.nf
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ process PREP_MITOSALT {
echo "MT_fasta = ${mtfasta}" >> mitosalt_config.txt
echo "threads = 1" >> mitosalt_config.txt
echo "refchr = ${mito_name}" >> mitosalt_config.txt
echo "msize = 16569" >> mitosalt_config.txt
echo "exclude = ${exclude}" >> mitosalt_config.txt
echo "orihs = 16081" >> mitosalt_config.txt
echo "orihe = 407" >> mitosalt_config.txt
Expand Down
7 changes: 7 additions & 0 deletions modules/nf-core/saltshaker/call/environment.yml

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

58 changes: 58 additions & 0 deletions modules/nf-core/saltshaker/call/main.nf

Choose a reason for hiding this comment

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

Could this be an nf-core module ? And have tests ?

Copy link
Author

Choose a reason for hiding this comment

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

Yes! will do :)

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

99 changes: 99 additions & 0 deletions modules/nf-core/saltshaker/call/meta.yml

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

Loading
Loading