-
Notifications
You must be signed in to change notification settings - Fork 34
Add per-sample search parameter support via samplesheet #439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jonasscheid
merged 37 commits into
nf-core:dev
from
jonasscheid:search-params-samplesheet
Feb 27, 2026
Merged
Changes from 35 commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
6f93d36
Update openms and openmsthirdparty nf-core modules
jonasscheid 8f939b7
Update local modules to use topic channels for versions
jonasscheid d0b1b82
Remove redundant version parsing and channel creation from subworkflows
jonasscheid 49c0b78
Merge branch 'nf-core:dev' into dev
jonasscheid c6c4269
Merge branch 'dev' of https://github.com/jonasscheid/mhcquant into dev
jonasscheid eda222d
Merge remote-tracking branch 'upstream/topics' into search-params-sam…
jonasscheid ff79328
Add per-sample search parameter support via samplesheet and presets
jonasscheid 100aa29
Use meta-based search parameters in module configs
jonasscheid c823c07
Group global FDR by search preset instead of merging all samples
jonasscheid 146f77b
Add test profile and samplesheet for search params feature
jonasscheid 15fb6ac
Fix deprecated Nextflow syntax for strict mode compliance
jonasscheid 22e930d
Update CHANGELOG for per-sample search parameters feature
jonasscheid 2efdd68
Add nf-test for search params and use test-datasets samplesheet
jonasscheid e502ff5
Rename test_search_params to test_search_presets and add nf-test prof…
jonasscheid 570bc7f
Merge remote-tracking branch 'upstream/dev' into search-params-sample…
jonasscheid bab72f6
Remove redundant emit declarations from version outputs and clean up …
jonasscheid 52b1591
Fix CI failures: prettier formatting, lint ignore, and ionannotator s…
jonasscheid d6ad64e
Add search_presets as hidden param in nextflow_schema.json to fix lint
jonasscheid 06184be
Document per-sample search parameters and fix stale ch_versions refer…
jonasscheid 11c1926
Align search preset fragment_mass_tolerance with recommended settings
jonasscheid 7985ec6
Remove duplicate comment in mhcquant workflow
jonasscheid 103bcf5
Propagate search params through pipeline with CLI > samplesheet > pre…
jonasscheid 87179c8
Update docs/usage.md with CLI > samplesheet > preset > default priority
jonasscheid bbf7eb1
Fix lint: move search_param_defaults into resolveSearchParams and ski…
jonasscheid 7a174c4
Fix CLI override detection and add fixed/variable mods as per-sample …
jonasscheid 793e24e
Use workflow.commandLine for CLI override detection instead of hardco…
jonasscheid 9f8ac95
Update snapshots and fix invalid input parameter warning for search_p…
jonasscheid b8a882b
Fix ion annotator join key mismatch and rename XL preset comment
jonasscheid 83a1fd5
Address PR review: fix mods tokenization, revert fixed_mods default, …
jonasscheid 3217313
Add search_presets back to defaultIgnoreParams to fix nf-schema valid…
jonasscheid 01c2f5a
Add TSV validation to search_presets schema, fix PrecursorMassToleran…
jonasscheid 92f3f4b
Add search_presets.tsv, remove old search_presets.config, simplify in…
jonasscheid 2ae3aa6
Update search_presets test for qe/lumos groups with stable snapshot
jonasscheid 8669e50
Add PrecursorErrorUnit to presets, fix fragment_mass_tolerance to 0.0…
jonasscheid b813fc4
Capture full peptidoform content in search_presets snapshot
jonasscheid 5d5a595
Address PR review comments: remove defaultIgnoreParams hack, simplify…
jonasscheid 337b1da
Merge branch 'dev' into search-params-samplesheet
jonasscheid File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,3 +7,5 @@ testing/ | |
| testing* | ||
| *.pyc | ||
| null/ | ||
| CLAUDE.md | ||
| .claude/ | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,125 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "$id": "https://raw.githubusercontent.com/nf-core/mhcquant/master/assets/schema_search_presets.json", | ||
| "title": "nf-core/mhcquant pipeline - params.search_presets schema", | ||
| "description": "Schema for the search parameter presets file provided with params.search_presets", | ||
| "type": "array", | ||
| "items": { | ||
| "type": "object", | ||
| "properties": { | ||
| "PresetName": { | ||
| "type": "string", | ||
| "pattern": "^[a-zA-Z0-9_]+$", | ||
| "errorMessage": "PresetName must contain only alphanumeric characters and underscores", | ||
| "meta": ["preset_name"] | ||
| }, | ||
| "PeptideMinLength": { | ||
| "type": "integer", | ||
| "minimum": 1, | ||
| "errorMessage": "PeptideMinLength must be a positive integer", | ||
| "meta": ["peptide_min_length"] | ||
| }, | ||
| "PeptideMaxLength": { | ||
| "type": "integer", | ||
| "minimum": 1, | ||
| "errorMessage": "PeptideMaxLength must be a positive integer", | ||
| "meta": ["peptide_max_length"] | ||
| }, | ||
| "PrecursorMassRange": { | ||
| "type": "string", | ||
| "pattern": "^\\d+:\\d+$", | ||
| "errorMessage": "PrecursorMassRange must be in format 'min:max' (e.g., '800:2500')", | ||
| "meta": ["digest_mass_range"] | ||
| }, | ||
| "PrecursorCharge": { | ||
| "type": "string", | ||
| "pattern": "^\\d+:\\d+$", | ||
| "errorMessage": "PrecursorCharge must be in format 'min:max' (e.g., '2:3')", | ||
| "meta": ["prec_charge"] | ||
| }, | ||
| "PrecursorMassTolerance": { | ||
| "type": "number", | ||
| "minimum": 0, | ||
| "errorMessage": "PrecursorMassTolerance must be a non-negative number", | ||
| "meta": ["precursor_mass_tolerance"] | ||
| }, | ||
| "PrecursorErrorUnit": { | ||
| "type": "string", | ||
| "enum": ["ppm", "Da"], | ||
| "errorMessage": "PrecursorErrorUnit must be either 'ppm' or 'Da'", | ||
| "meta": ["precursor_error_units"] | ||
| }, | ||
| "FragmentMassTolerance": { | ||
| "type": "number", | ||
| "minimum": 0, | ||
| "errorMessage": "FragmentMassTolerance must be a non-negative number", | ||
| "meta": ["fragment_mass_tolerance"] | ||
| }, | ||
| "FragmentBinOffset": { | ||
| "type": "number", | ||
| "minimum": 0, | ||
| "errorMessage": "FragmentBinOffset must be a non-negative number", | ||
| "meta": ["fragment_bin_offset"] | ||
| }, | ||
| "MS2PIPModel": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "Immuno-HCD", | ||
| "timsTOF", | ||
| "CIDch2", | ||
| "HCD", | ||
| "CID", | ||
| "ITMS", | ||
| "iTRAQ", | ||
| "iTRAQphospho", | ||
| "TMT", | ||
| "HCDch2" | ||
| ], | ||
| "errorMessage": "MS2PIPModel must be a valid MS2PIP model name", | ||
| "meta": ["ms2pip_model"] | ||
| }, | ||
| "ActivationMethod": { | ||
| "type": "string", | ||
| "enum": ["ALL", "CID", "HCD", "ETD", "ECD", "EThcD", "ETciD"], | ||
| "errorMessage": "ActivationMethod must be one of: ALL, CID, HCD, ETD, ECD, EThcD, ETciD", | ||
| "meta": ["activation_method"] | ||
| }, | ||
| "Instrument": { | ||
| "type": "string", | ||
| "enum": ["high_res", "low_res"], | ||
| "errorMessage": "Instrument must be either 'high_res' or 'low_res'", | ||
| "meta": ["instrument"] | ||
| }, | ||
| "NumberMods": { | ||
| "type": "integer", | ||
| "minimum": 0, | ||
| "errorMessage": "NumberMods must be a non-negative integer", | ||
| "meta": ["number_mods"] | ||
| }, | ||
| "FixedMods": { | ||
| "type": "string", | ||
| "errorMessage": "FixedMods must be a comma-separated list of UNIMOD modification names", | ||
| "meta": ["fixed_mods"] | ||
| }, | ||
| "VariableMods": { | ||
| "type": "string", | ||
| "errorMessage": "VariableMods must be a comma-separated list of UNIMOD modification names", | ||
| "meta": ["variable_mods"] | ||
| } | ||
| }, | ||
| "required": [ | ||
| "PresetName", | ||
| "PeptideMinLength", | ||
| "PeptideMaxLength", | ||
| "PrecursorMassRange", | ||
| "PrecursorCharge", | ||
| "PrecursorMassTolerance", | ||
| "FragmentMassTolerance", | ||
| "FragmentBinOffset", | ||
| "MS2PIPModel", | ||
| "ActivationMethod", | ||
| "Instrument", | ||
| "NumberMods" | ||
| ] | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| PresetName PeptideMinLength PeptideMaxLength PrecursorMassRange PrecursorCharge PrecursorMassTolerance PrecursorErrorUnit FragmentMassTolerance FragmentBinOffset MS2PIPModel ActivationMethod Instrument NumberMods FixedMods VariableMods | ||
| lumos_class1 8 14 800:2500 2:3 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 3 Oxidation (M) | ||
| lumos_class2 8 30 800:5000 2:5 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 5 Oxidation (M) | ||
| qe_class1 8 14 800:2500 2:3 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 3 Oxidation (M) | ||
| qe_class2 8 30 800:5000 2:5 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 5 Oxidation (M) | ||
| timstof_class1 8 14 800:2500 1:4 20 ppm 0.01 0.0 timsTOF CID high_res 3 Oxidation (M) | ||
| timstof_class2 8 30 800:5000 1:5 20 ppm 0.01 0.0 timsTOF CID high_res 5 Oxidation (M) | ||
| astral_class1 8 14 800:2500 2:3 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 3 Oxidation (M) | ||
| astral_class2 8 30 800:5000 2:5 5 ppm 0.01 0.0 Immuno-HCD HCD high_res 5 Oxidation (M) | ||
| xl_class1 8 14 800:2500 2:3 5 ppm 0.50025 0.4 CIDch2 CID low_res 3 Oxidation (M) | ||
| xl_class2 8 30 800:5000 2:5 5 ppm 0.50025 0.4 CIDch2 CID low_res 5 Oxidation (M) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| /* | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| Nextflow config file for running tests with search parameter presets | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| Defines input files and everything required to run a test with different | ||
| search parameter presets specified per sample in the samplesheet. | ||
|
|
||
| Use as follows: | ||
| nextflow run main.nf -profile test_search_presets,<docker/singularity> --outdir <OUTDIR> | ||
|
|
||
| ---------------------------------------------------------------------------------------- | ||
| */ | ||
|
|
||
| process { | ||
| resourceLimits = [ | ||
| cpus: 4, | ||
| memory: '15.GB', | ||
| time: '6.h' | ||
| ] | ||
| } | ||
|
|
||
| params { | ||
| config_profile_name = 'Test search presets profile' | ||
| config_profile_description = 'Minimal test dataset with search parameter presets' | ||
|
|
||
| // Input data | ||
| input = 'https://raw.githubusercontent.com/nf-core/test-datasets/mhcquant/testdata/sample_sheet_presets.tsv' | ||
| fasta = params.pipelines_testdata_base_path + 'mhcquant/testdata/UP000005640_9606.fasta' | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.