Skip to content
Merged

Dev #91

Show file tree
Hide file tree
Changes from all commits
Commits
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 .nf-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@ template:
name: quantms
org: bigbio
outdir: .
version: 1.8.0dev
version: 1.8.0
39 changes: 38 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,44 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.8.0] bigbio/quantms - [Unreleased]
## [1.8.0] bigbio/quantms - [23/06/2026] - [Guangzhou]

### `Added`

- [#690](https://github.com/bigbio/quantms/pull/690) Expose `fdr_conservative` parameter to control FDR estimation formula (Keich & Noble 2025)
- [#694](https://github.com/bigbio/quantms/pull/694) Expose Biosaur2 as alternative feature seeding algorithm for LFQ via `lfq_seeding_algorithm` parameter
- [#623](https://github.com/bigbio/quantms/pull/623) Add support for `.dia` file format and improve file format documentation

### `Changed`

- [#639](https://github.com/bigbio/quantms/pull/639) **BREAKING: Deprecated OpenMS experimental design format**: The pipeline now only accepts SDRF files as input. All input files are treated as SDRF regardless of file extension. Supported extensions: `.sdrf`, `.tsv`, `.csv`.
- [#651](https://github.com/bigbio/quantms/pull/651) Remove redundant SDRF-derived parameters: 4 parameters (`acquisition_method`, `labelling_type`, `enzyme`, `fixed_mods`) are now read exclusively from SDRF files
- [#644](https://github.com/bigbio/quantms/pull/644) Update pipeline for Nextflow 26 strict syntax compatibility
- [#641](https://github.com/bigbio/quantms/pull/641) Enable `ext.args` support in GENERATE_CFG module for nf-core standard compliance
- [#660](https://github.com/bigbio/quantms/pull/660) Refactor DIA-NN parameter handling for extended module validation
- [#676](https://github.com/bigbio/quantms/pull/676) Fix `.d` file support and multiple Nextflow 26 compatibility issues
- [#686](https://github.com/bigbio/quantms/pull/686) Update test configurations to fetch SDRF and FASTA files from maintained repository
- [#687](https://github.com/bigbio/quantms/pull/687) Migrate thermorawfileparser module from local to bigbio/nf-modules
- [#709](https://github.com/bigbio/quantms/pull/709) Update onsite module for improved PTM localization
- [#690](https://github.com/bigbio/quantms/pull/690), [#694](https://github.com/bigbio/quantms/pull/694) OpenMS tooling improvements including FDR conservative formula and Biosaur2 feature seeding

### `Fixed`

- [#689](https://github.com/bigbio/quantms/pull/689) Fix typo in openms_peak_picker processOption value (`inmermory` → `inmemory`)
- [#699](https://github.com/bigbio/quantms/pull/699) Fix Comet version reporting in pmultiqc software table

### `Removed`

- [#702](https://github.com/bigbio/quantms/pull/702) **Remove DIA-NN workflow from quantms**: DIA users should use the dedicated repository [bigbio/quantmsdiann](https://github.com/bigbio/quantmsdiann)
- [#701](https://github.com/bigbio/quantms/pull/701) **Remove MSstats post-processing step**: R scripts (`msstats_plfq.R`, `msstats_tmt.R`, `msstats_utils.R`) and corresponding modules removed. Users should run MSstats manually outside the pipeline.
- [#706](https://github.com/bigbio/quantms/pull/706) Remove `ms2features_range` modes (`by_sample`, `by_project`) and IDRipper module. Only `independent_run` per-file Percolator is now supported.
- [#708](https://github.com/bigbio/quantms/pull/708) Remove ConsensusID module; migrate to parquet-based processing

### `Dependencies`

- Updated quantms-utils to version 0.0.25
- Updated quantms-rescoring (container permissions fix)
- Migrated thermorawfileparser to bigbio/nf-modules

### `Deprecations`

Expand Down
41 changes: 0 additions & 41 deletions conf/modules/id.config
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,6 @@

process {

// ID_SCORE_SWITCHER for phospho scoring
withName: '.*:ID:PHOSPHO_SCORING:ID_SCORE_SWITCHER' {
ext.args = [
"-new_score_orientation lower_better",
"-old_score \"q-value\"",
"-new_score_type \"Posterior Error Probability\"",
"-debug $params.idscoreswitcher_debug"
].join(' ').trim()
}

// ONSITE phospho scoring
withName: '.*:ID:PHOSPHO_SCORING:ONSITE' {
ext.args = "-debug $params.onsite_debug"
Expand All @@ -29,28 +19,6 @@ process {
].join(' ').trim()
}

// EPIFANY
withName: '.*:PROTEIN_INFERENCE_EPIFANY' {
ext.args = "-keep_best_psm_only false -debug $params.protein_inference_debug"
}

// PROTEIN_INFERENCE (generic)
withName: '.*:PROTEIN_INFERENCE' {
ext.args = "-debug $params.protein_inference_debug"
}

// PSM FDR control ID_FILTER
withName: '.*:ID:PSM_FDR_CONTROL:ID_FILTER' {
ext.args = "-score:psm \"$params.run_fdr_cutoff\""
ext.suffix = '.idparquet'
}

// DDA_ID PSM FDR control ID_FILTER
withName: '.*:DDA_ID:PSM_FDR_CONTROL:ID_FILTER' {
ext.args = "-score:psm \"$params.run_fdr_cutoff\""
ext.suffix = '.idparquet'
}

// MS2RESCORE
withName: 'MSRESCORE_FEATURES' {
ext.args = [
Expand All @@ -60,13 +28,4 @@ process {
].join(' ').trim()
}

// DDA_ID phospho scoring ID_SCORE_SWITCHER
withName: '.*:DDA_ID:PHOSPHO_SCORING:ID_SCORE_SWITCHER' {
ext.args = [
"-new_score_orientation lower_better",
"-old_score \"q-value\"",
"-new_score_type \"Posterior Error Probability\"",
"-debug $params.idscoreswitcher_debug"
].join(' ').trim()
}
}
9 changes: 0 additions & 9 deletions conf/modules/shared.config
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,6 @@ process {
]
}

// publishDir for all psm tables on id workflow
withName: '.*:PSM_CONVERSION' {
publishDir = [
path: { "${params.outdir}/psm_tables" },
mode: 'copy',
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

// publishDir for all features tables
withName: '.*:MZML_STATISTICS' {
publishDir = [
Expand Down
26 changes: 0 additions & 26 deletions conf/modules/tmt.config
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,6 @@
*/

process {

// IDMAPPER
withName: '.*:TMT:.*:ID_MAPPER' {
ext.args = "-debug $params.idmapper_debug"
}

// IDFILTER on PROTEIN LEVEL
withName: '.*:TMT:PROTEIN_INFERENCE:ID_FILTER' {
ext.args = {
def level = params.protein_quant == 'strictly_unique_peptides' ? 'prot' : 'proteingroup'
def decoys_present = params.quantify_decoys ? ' ' : '-remove_decoys'
[
"-score:${level} \"$params.protein_level_fdr_cutoff\"",
"-score:psm \"$params.psm_level_fdr_cutoff\"",
"-delete_unreferenced_peptide_hits",
"${decoys_present}"
].join(' ').trim()
}
ext.suffix = '.consensusXML'
}

// PROTEINQUANTIFIER
withName: '.*:TMT:PROTEIN_QUANT:PROTEIN_QUANTIFIER' {
ext.args = "-debug $params.protein_quant_debug"
}

// MSSTATSCONVERTER
withName: '.*:TMT:PROTEIN_QUANT:MSSTATS_CONVERTER' {
ext.args = "-debug $params.protein_quant_debug"
Expand Down
82 changes: 0 additions & 82 deletions conf/modules/verbose_modules.config
Original file line number Diff line number Diff line change
Expand Up @@ -124,38 +124,6 @@ process {
]
}

withName: '.*:PROTEIN_INFERENCE_GENERIC|PROTEIN_INFERENCE_EPIFANY' {
publishDir = [
path: { "${params.outdir}/peptide_postprocessing/protein_inference" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:FILE_MERGE' {
publishDir = [
path: { "${params.outdir}/peptide_postprocessing/file_merge" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:ID_MAPPER' {
publishDir = [
path: { "${params.outdir}/peptide_postprocessing/id_mapper" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:ID_SCORE_SWITCHER' {
publishDir = [
path: { "${params.outdir}/peptide_postprocessing/id_score_switcher" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

// Set the default publish for PTM processing steps
withName: '.*:ONSITE' {
publishDir = [
Expand All @@ -165,48 +133,6 @@ process {
]
}

// DIANN preprocessing steps, final results will be stored in quant_tables directory
withName: '.*:INDIVIDUAL_ANALYSIS' {
publishDir = [
path: { "${params.outdir}/diann_preprocessing/individual_analysis" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:PRELIMINARY_ANALYSIS' {
publishDir = [
path: { "${params.outdir}/diann_preprocessing/preliminary_analysis" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

// Database generation steps and subworkflows
withName: '.*:GENERATE_DECOY_DATABASE' {
publishDir = [
path: { "${params.outdir}/database_generation/generate_decoy_database" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:ASSEMBLE_EMPIRICAL_LIBRARY' {
publishDir = [
path: { "${params.outdir}/database_generation/assemble_empirical_library" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:INSILICO_LIBRARY_GENERATION' {
publishDir = [
path: { "${params.outdir}/database_generation/insilico_library_generation" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}

withName: '.*:MSGF_DB_INDEXING' {
publishDir = [
path: { "${params.outdir}/database_generation/msgf_db_indexing" },
Expand All @@ -215,12 +141,4 @@ process {
]
}

// Additional config files generated in DIANN configuration
withName: '.*:GENERATE_CFG' {
publishDir = [
path: { "${params.outdir}/sdrf" },
mode: params.publish_dir_mode,
saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
]
}
}
Loading
Loading