Skip to content
Merged

Dev #87

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
ba5627d
:art: update schema
enryH Feb 27, 2026
3b1fbb3
:wrench: update schema
enryH Mar 2, 2026
d742c89
:wrench: bump schema version
enryH Mar 2, 2026
b380102
:bug: not sure how to resolve the schema builder error
enryH Mar 2, 2026
d4a979a
Merge branch 'dev' into upt_schema
enryH Mar 2, 2026
cba2229
:bug: set reference channel to string
enryH Mar 3, 2026
87d51ac
Merge pull request #681 from daichengxin/dev
ypriverol Mar 3, 2026
9276986
Merge branch 'dev' into upt_schema
ypriverol Mar 3, 2026
02d8c82
Merge pull request #679 from bigbio/upt_schema
ypriverol Mar 4, 2026
d095ea8
:wrench: update to fetch SDRF and FASTA files from maintained repo
enryH Mar 12, 2026
8ba3db2
:art: replace remaining links to nf-core/test-datasets
enryH Mar 13, 2026
8c9a778
:art: change last occurence... plus some comment udpates
enryH Mar 13, 2026
51d4c84
:sparkles: switch to nf-core/modules for thermorawfileparser
enryH Mar 13, 2026
d4eb7ae
Merge pull request #686 from bigbio/updt_test_configs
enryH Mar 13, 2026
cbd5d6f
:bug: topic channel vs yaml files - can it be modified for one channe…
enryH Mar 13, 2026
142cb00
:bug: add nf-core/thermorawfileparser
enryH Mar 16, 2026
c0b3371
:bug: patch module to adhere to custom mzml_id
enryH Mar 16, 2026
8155b05
:art: add back in Thermorawfileparser version
enryH Mar 16, 2026
3c5269f
Merge branch 'dev' into nfcore_thermo_test
ypriverol Mar 17, 2026
025a90f
:sparkles: switch back to update bigbio
enryH Mar 23, 2026
5107b29
:art: format file
enryH Mar 23, 2026
8466288
:art: format
enryH Mar 23, 2026
803e43c
Merge pull request #687 from bigbio/nfcore_thermo_test
ypriverol Mar 26, 2026
e3daf3b
Fix typo in openms_peak_picker processOption value (#689)
Copilot Mar 27, 2026
3344e87
feat: expose FDR conservative parameter for FalseDiscoveryRate
ypriverol Apr 3, 2026
48937af
chore: update quantms-rescoring container to 0.0.16
ypriverol Apr 3, 2026
8427ac3
Merge pull request #690 from ypriverol/feat/expose-fdr-conservative-p…
ypriverol Apr 4, 2026
831eb6b
feat: expose Biosaur2 as alternative seeding algorithm for LFQ
ypriverol Apr 4, 2026
15bff40
Merge pull request #694 from ypriverol/feat/biosaur2-seeding
ypriverol Apr 4, 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
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/bigbio/quant
- [ ] This comment contains a description of changes (with reason).
- [ ] If you've fixed a bug or added code that should be tested, add tests!
- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/bigbio/quantms/tree/master/.github/CONTRIBUTING.md)
- [ ] If necessary, also make a PR on the bigbio/quantms _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository.
- [ ] If necessary, also make a PR on the bigbio/quantms _branch_ on the [bigbio/quantms-test-datasets](https://github.com/bigbio/quantms-test-datasets) repository.
- [ ] Make sure your code lints (`nf-core pipelines lint`).
- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir <OUTDIR>`).
- [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir <OUTDIR>`).
Expand Down
2 changes: 1 addition & 1 deletion conf/tests/test_full_dia.config
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ params {
outdir = './results_dia_full'

// Input data
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata-aws/dia_full/PXD004684.sdrf.tsv'
input = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata-aws/dia_full/PXD004684.sdrf.tsv'
database = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata/dia_ci/REF_EColi_K12_UPS1_combined.fasta'
min_pr_mz = 450
max_pr_mz = 1080
Expand Down
4 changes: 2 additions & 2 deletions conf/tests/test_full_lfq.config
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ params {
outdir = "./results_lfq_full"

// Input data
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata-aws/lfq_full/PXD001819.sdrf.tsv'
database = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata-aws/lfq_full/yeast_2021_04_reviewed.fasta'
input = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata-aws/lfq_full/PXD001819.sdrf.tsv'
database = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata-aws/lfq_full/yeast_2021_04_reviewed.fasta'
search_engines = "msgf,comet"
add_decoys = true
protein_level_fdr_cutoff = 0.01
Expand Down
4 changes: 2 additions & 2 deletions conf/tests/test_full_tmt.config
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ params {
outdir = "./results_iso_full"

// Input data for full size test
input = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata-aws/tmt_full/PXD005486.sdrf.tsv'
database = 'https://raw.githubusercontent.com/nf-core/test-datasets/quantms/testdata-aws/tmt_full/uniprot_E_coli_13spiked_reviewed_2021_04.fasta'
input = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata-aws/tmt_full/PXD005486.sdrf.tsv'
database = 'https://raw.githubusercontent.com/bigbio/quantms-test-datasets/quantms/testdata-aws/tmt_full/uniprot_E_coli_13spiked_reviewed_2021_04.fasta'
search_engines = "comet,msgf"
protein_level_fdr_cutoff = 0.01
psm_level_fdr_cutoff = 0.01
Expand Down
2 changes: 1 addition & 1 deletion conf/tests/test_latest_dia.config
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ process {
}

withLabel: diann {
container = 'ghcr.io/bigbio/diann:2.1.0' // This docker container is private in for quantms
container = 'ghcr.io/bigbio/diann:2.1.0' // This docker container is in a private registry for bigbio
}

resourceLimits = [
Expand Down
5 changes: 3 additions & 2 deletions modules.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@
},
"thermorawfileparser": {
"branch": "main",
"git_sha": "a1a4a11ff508b2b5c23c9fb21c51c3327b748d4d",
"installed_by": ["modules"]
"git_sha": "53f2d78652a7040e3d44610286471642b1e1b55b",
"installed_by": ["modules"],
"patch": "modules/bigbio/thermorawfileparser/thermorawfileparser.diff"
}
}
}
Expand Down
1 change: 0 additions & 1 deletion modules/bigbio/thermorawfileparser/environment.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
name: thermorawfileparser
channels:
- conda-forge
- bioconda
Expand Down
79 changes: 42 additions & 37 deletions modules/bigbio/thermorawfileparser/main.nf
Original file line number Diff line number Diff line change
@@ -1,62 +1,67 @@
process THERMORAWFILEPARSER {
tag "$meta.mzml_id"
tag "${meta.mzml_id}"
label 'process_low'
label 'process_single'
label 'error_retry'

conda "${moduleDir}/environment.yml"
container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ?
'https://depot.galaxyproject.org/singularity/thermorawfileparser:1.4.5--h05cac1d_1' :
'biocontainers/thermorawfileparser:1.4.5--h05cac1d_1' }"
container "${workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container
? 'https://depot.galaxyproject.org/singularity/thermorawfileparser:1.4.5--h05cac1d_1'
: 'biocontainers/thermorawfileparser:1.4.5--h05cac1d_1'}"

stageInMode {
if (task.attempt == 1) {
if (task.executor == "awsbatch") {
'symlink'
} else {
'link'
}
} else if (task.attempt == 2) {
if (task.executor == "awsbatch") {
'copy'
} else {
'symlink'
}
} else {
'copy'
}
}
input:
tuple val(meta), path(rawfile)
tuple val(meta), path(raw)

output:
tuple val(meta), path("*.{mzML,mgf,parquet}"), emit: convert_files
path "versions.yml", emit: versions
path "*.log", emit: log
tuple val(meta), path("*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}"), emit: spectra
tuple val("${task.process}"), val('thermorawfileparser'), eval("ThermoRawFileParser.sh --version"), emit: versions_thermorawfileparser, topic: versions
path "*.log", emit: log

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

script:
def args = task.ext.args ?: ''
// Detect existing format options in any supported syntax: -f=2, -f 2, --format=2,
// or --format 2.
def hasFormatArg = (args =~ /(^|\s)(-f(=|\s)\d+|--format(=|\s)\d+)/).find()
// Default to indexed mzML format (-f=2) if not specified in args
def formatArg = args.contains('-f=') ? '' : '-f=2'
def formatArg = hasFormatArg ? '' : '-f=2'
def prefix = task.ext.prefix ?: "${meta.mzml_id}"
def suffix = args.contains("--format 0") || args.contains("-f 0")
? "mgf"
: args.contains("--format 1") || args.contains("-f 1")
? "mzML"
: args.contains("--format 2") || args.contains("-f 2")
? "mzML"
: args.contains("--format 3") || args.contains("-f 3")
? "parquet"
: "mzML"
suffix = args.contains("--gzip") ? "${suffix}.gz" : "${suffix}"

"""
ThermoRawFileParser.sh -i='${rawfile}' ${formatArg} ${args} -o=./ 2>&1 | tee '${rawfile.baseName}_conversion.log'

cat <<-END_VERSIONS > versions.yml
"${task.process}":
ThermoRawFileParser: \$(ThermoRawFileParser.sh --version)
END_VERSIONS
ThermoRawFileParser.sh \\
-i='${raw}' \\
${formatArg} ${args} \\
-o=./ 2>&1 | tee '${prefix}_conversion.log'
"""

stub:
def prefix = task.ext.prefix ?: "${meta.mzml_id}"
def args = task.ext.args ?: ''
// Determine output format from args, default to mzML
// Format 0 = MGF, formats 1-2 = mzML, format 3 = Parquet, format 4 = None
def outputExt = (args =~ /-f=0\b/).find() ? 'mgf' : 'mzML'
def prefix = task.ext.prefix ?: "${meta.mzml_id}"
def suffix = args.contains("--format 0") || args.contains("-f 0")
? "mgf"
: args.contains("--format 1") || args.contains("-f 1")
? "mzML"
: args.contains("--format 2") || args.contains("-f 2")
? "mzML"
: args.contains("--format 3") || args.contains("-f 3")
? "parquet"
: "mzML"
suffix = args.contains("--gzip") ? "${suffix}.gz" : "${suffix}"

"""
touch '${prefix}.${outputExt}'
touch '${prefix}.${suffix}'
touch '${prefix}_conversion.log'

cat <<-END_VERSIONS > versions.yml
Expand Down
96 changes: 64 additions & 32 deletions modules/bigbio/thermorawfileparser/meta.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
name: thermorawfileparser
description: Convert RAW file to mzML or MGF files
description: Convert RAW file to mzML or MGF files format
keywords:
- raw
- mzML
- MGF
- OpenMS
- mzml
- mgf
- parquet
- parser
- proteomics
tools:
- thermorawfileparser:
description: |
Expand All @@ -14,36 +16,66 @@ tools:
- `-L` or `--msLevel=VALUE` to select MS levels (e.g., `-L=1,2` or `--msLevel=1-3`)
homepage: https://github.com/compomics/ThermoRawFileParser
documentation: https://github.com/compomics/ThermoRawFileParser
tool_dev_url: https://github.com/compomics/ThermoRawFileParser
doi: "10.1021/acs.jproteome.9b00328"
licence:
- "Apache Software"
identifier: biotools:ThermoRawFileParser
input:
- meta:
type: map
description: |
Groovy Map containing sample information
- rawfile:
type: file
description: |
Thermo RAW file
pattern: "*.{raw,RAW}"
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- raw:
type: file
description: Thermo RAW file
pattern: "*.{raw,RAW}"
ontologies: []
output:
- meta:
type: map
description: |
Groovy Map containing sample information
e.g. [ id:'sample1', mzml_id:'UPS1_50amol_R3' ]
- convert_files:
type: file
description: |
Converted files in mzML or MGF format depending on the format parameter (-f).
Format options: 0 for MGF, 1 for mzML, 2 for indexed mzML (default), 3 for Parquet, 4 for None.
pattern: "*.{mzML,mgf,parquet}"
- log:
type: file
description: log file
pattern: "*.log"
- versions:
type: file
description: File containing software version
pattern: "versions.yml"
spectra:
- - meta:
type: map
description: |
Groovy Map containing sample information
e.g. `[ id:'sample1', single_end:false ]`
- "*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}":
type: file
description: Mass spectra in open format
pattern: "*.{mzML,mzML.gz,mgf,mgf.gz,parquet,parquet.gz}"
ontologies: []
versions_thermorawfileparser:
- - ${task.process}:
type: string
description: The process the versions were collected from
- thermorawfileparser:
type: string
description: The name of the tool
- ThermoRawFileParser.sh --version:
type: eval
description: The expression to obtain the version of the tool
log:
- "*.log":
type: file
description: Log file from the conversion process
pattern: "*.log"
ontologies: []
topics:
versions:
- - ${task.process}:
type: string
description: The process the versions were collected from
- thermorawfileparser:
type: string
description: The name of the tool
- ThermoRawFileParser.sh --version:
type: eval
description: The expression to obtain the version of the tool
authors:
- "@jonasscheid"
- "@daichengxin"
- "@ypriverol"
maintainers:
- "@jonasscheid"
- "@daichengxin"
- "@ypriverol"
11 changes: 6 additions & 5 deletions modules/bigbio/thermorawfileparser/tests/main.nf.test
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ nextflow_process {

then {
assert process.success
assert snapshot(process.out.versions).match("versions")
assert new File(process.out.convert_files[0][1]).name == 'TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01.mzML'
assert snapshot(process.out.versions_thermorawfileparser).match("versions")
assert new File(process.out.spectra[0][1]).name == 'TMT_Erwinia_1uLSike_Top10HCD_isol2_45stepped_60min_01.mzML'
assert process.out.log.size() == 1
}
}
Expand All @@ -36,7 +36,7 @@ nextflow_process {
process {
"""
input[0] = [
[ id: 'test', mzml_id: 'test_sample' ],
[ id: 'test_sample', mzml_id: 'test_sample' ],
file(params.test_data['proteomics']['msspectra']['ups1_50amol_r3'], checkIfExists: false)
]
"""
Expand All @@ -45,8 +45,9 @@ nextflow_process {

then {
assert process.success
assert snapshot(process.out.versions).match("versions_stub")
assert new File(process.out.convert_files[0][1]).name == 'test_sample.mzML'
assert snapshot(process.out.versions_thermorawfileparser).match("versions_stub")
assert new File(process.out.spectra[0][1]).name == 'test_sample.mzML'
assert snapshot(process.out).match()
assert process.out.log.size() == 1
}
}
Expand Down
56 changes: 32 additions & 24 deletions modules/bigbio/thermorawfileparser/tests/main.nf.test.snap
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
{
"versions": {
"content": [
[
"versions.yml:md5,dc9625538c025d615109ef8cac3a86ab"
]
],
"meta": {
"nf-test": "0.9.3",
"nextflow": "25.04.8"
"versions_stub": {
"content": [
[
[
"THERMORAWFILEPARSER",
"thermorawfileparser",
"1.4.5"
]
]
],
"timestamp": "2026-03-20T12:41:22.8183",
"meta": {
"nf-test": "0.9.4",
"nextflow": "25.10.4"
}
},
"timestamp": "2025-12-11T06:27:00.000000"
},
"versions_stub": {
"content": [
[
"versions.yml:md5,dc9625538c025d615109ef8cac3a86ab"
]
],
"meta": {
"nf-test": "0.9.3",
"nextflow": "25.04.8"
},
"timestamp": "2025-12-11T06:27:00.000000"
}
}
"versions": {
"content": [
[
[
"THERMORAWFILEPARSER",
"thermorawfileparser",
"1.4.5"
]
]
],
"timestamp": "2026-03-20T12:36:30.88531",
"meta": {
"nf-test": "0.9.4",
"nextflow": "25.10.4"
}
}
}
Loading
Loading