![]() |
OpenMS
|
Rescore OpenSWATH OSW / OSWPQ peak groups and transitions with the in-process OpenMS Percolator implementation.
OpenSwathPercolatorScoring operates directly on existing OpenSWATH result containers:
.osw).oswpq)One or more scoring levels can be requested sequentially via level:
ms1 rescoring writes SCORE_MS1 or score_ms1_* ms2 rescoring writes SCORE_MS2 or score_ms2_* ms1ms2 combines MS2 and MS1 features and writes SCORE_MS2 or score_ms2_* transition rescoring writes SCORE_TRANSITION or score_transition_* Rows with missing active VAR_* features are excluded from rescoring rather than being imputed to zero. Peak-group q-values and PEPs are estimated from the top-ranked target/decoy peak groups and then propagated back onto all scored candidates, mirroring PyProphet's OpenSWATH scoring semantics.
If out is empty, the input is updated in place. Otherwise the input is first copied to out and all requested rescoring passes are applied there.
Transition rescoring requires prior precursor-level scores in the same file. Starting from an unscored result, run either -level ms2 transition or -level ms1ms2 transition in one invocation.
The command line parameters of this tool are:
OpenSwathPercolatorScoring -- Rescore OpenSWATH OSW / OSWPQ results with in-process Percolator.
Full documentation: http://www.openms.de/doxygen/nightly/html/TOPP_OpenSwathPercolatorScoring.html
Version: 3.7.0-pre-nightly-2026-10-26 Oct 27 2026, 01:38:48, Revision: bd790fc
To cite OpenMS:
+ Pfeuffer, J., Bielow, C., Wein, S. et al.. OpenMS 3 enables reproducible analysis of large-scale mass spec
trometry data. Nat Methods (2024). doi:10.1038/s41592-024-02197-7.
Usage:
OpenSwathPercolatorScoring <options>
Options (mandatory options marked with '*'):
-in <file>* Input OpenSWATH result file (.osw) or OSWPQ parquet archive/dire
ctory (.oswpq). (valid formats: 'osw', 'oswpq')
-out <file> Optional output path. If empty, the input is updated in place.
(valid formats: 'osw', 'oswpq')
-level <levels> One or more scoring levels to run sequentially. Use 'ms2 transit
ion' or 'ms1ms2 transition' to derive peak-group and transition
scores from an unscored input. (default: '[ms1ms2]') (valid:
'ms1', 'ms2', 'ms1ms2', 'transition')
-training_main_score <text> Peak-group score that selects the best peak group of each precur
sor for the Percolator training set of ms1, ms2 and ms1ms2 resco
ring (prefix '-' if lower values are better). The training set
holds these peak groups plus all peak groups of precursors drawn
at random, up to percolator:subset_max_train further peak group
s (0: train on all peak groups); the model then scores all peak
groups. If the score is not among the features, all peak groups
are used. (default: 'var_xcorr_shape')
transition:
-transition:peakgroup_max_rank <number> Transition scoring: maximum MS2 peak-group rank retained for
transition rescoring. (default: '1') (min: '1')
-transition:peakgroup_max_pep <value> Transition scoring: maximum MS2 peak-group PEP retained for tran
sition rescoring. (default: '0.7') (min: '0.0' max: '1.0')
-transition:max_isotope_overlap <value> Transition scoring: maximum transition isotope-overlap score
retained for rescoring. (default: '0.5') (min: '0.0')
-transition:min_log_sn <value> Transition scoring: minimum log signal-to-noise score retained
for rescoring. (default: '0.0')
percolator:
-percolator:c_pos <value> Positive regularization constant (C+). (default: '0.1') (min:
'0.0')
-percolator:c_neg <value> Negative regularization constant (C-). 0 = auto-select. (default
: '0.0') (min: '0.0')
-percolator:test_fdr <value> Test FDR threshold for SVM direction selection. (default: '0.01'
) (min: '0.0' max: '1.0')
-percolator:train_fdr <value> Training FDR for SVM iterations. (default: '0.01') (min: '0.0'
max: '1.0')
-percolator:num_iterations <number> Number of SVM training iterations. (default: '10') (min: '1')
-percolator:initial_direction <text> Feature name to use as the initial scoring direction. Prefix
with '-' if LOWER values are more target-like (e.g. 'COMET:lnExp
ect' means higher is better; '-COMET:lnExpect' means lower is
better). Leave empty (default) to let Percolator auto-select by
testing every feature in both directions and picking the one
that separates the most targets at train_fdr.
-percolator:pep_method <choice> Posterior error probability estimator: 'logistic_regression'
(target-decoy competition + isotonic fit; legacy name, not actua
lly logistic regression), 'isotonic' (target-q → pep monotone
regression), or 'nonparametric' (kernel smoothing). (default:
'logistic_regression') (valid: 'logistic_regression', 'isotonic'
, 'nonparametric')
-percolator:seed <number> Random seed for CV splitting. (default: '1')
-percolator:target_decoy_metavalue <text> Meta-value on PeptideHit indicating target/decoy ('target'/'deco
y'). (default: 'target_decoy')
-percolator:normalizer <choice> Feature normalizer: 'stdv' (zero-mean, unit-stdv, default), 'uni
' (min/max), or 'none' (no normalization). (default: 'stdv')
(valid: 'stdv', 'uni', 'none')
-percolator:train_best_positive <choice> During TRAINING, use only the best-scoring target PSM per spectr
um (file and ScanNr; with cv_group_keys: per group) as a positiv
e example, if it passes train_fdr. Affects the SVM (weights chan
ge). Orthogonal to post_processing_tdc. Default is 'true' becaus
e typical OpenMS inputs are multi-hit-per-spectrum (Comet/MSGF+/
Sage top-N, OSW peak groups). Inert on one-hit-per-spectrum inpu
ts. Note: the upstream percolator binary defaults this to off
— PercolatorAdapter preserves the CLI contract by mirroring
its flag state when writing this param. (default: 'true') (valid
: 'true', 'false')
-percolator:post_processing_tdc <choice> AFTER training, before PEP/q-value calculation, apply Target-Dec
oy Competition: keep only the highest-scoring PSM per (scan,
mass, charge) and drop the rest from the score set. Does NOT
touch the SVM — only the score distribution used for FDR. Defa
ult is 'true' because without TDC on multi-hit input, q-values
count every candidate as an independent 'chance' and drift optim
istic. Inert on one-hit-per-spectrum inputs. Note: the upstream
percolator binary defaults this to off — PercolatorAdapter
preserves the CLI contract by mirroring its flag state when writ
ing this param. (default: 'true') (valid: 'true', 'false')
-percolator:nested_xval_bins <number> Number of nested CV bins for grid search of Cpos/Cneg. Upstream
default for cross validation is 3; 1 disables nested search.
(default: '1') (min: '1')
-percolator:subset_max_train <number> Cap on the training set size (0 = use all). Default 100000 bound
s training time on very large inputs (>1M PSMs) at negligible
quality loss. Sampling is reservoir-based, keyed by (scan, exp_m
ass) so all PSMs sharing a spectrum travel together; the trained
model is then applied to ALL input rows via a second scoring
pass (matches upstream Caller.cpp behavior). Inert when the inpu
t size is at or below the cap. Note: upstream percolator binary
defaults this to 0 — PercolatorAdapter preserves the CLI contr
act by passing its own int option (CLI default 0) through to
this param. (default: '100000') (min: '0')
-percolator:report_as_main_score <choice> Which Percolator output to stamp as the main PeptideHit score
after rescoring. 'none' (default) leaves hit.getScore() and the
PeptideIdentification score_type untouched — callers who want
the original search score preserved (or who run their own post-p
rocessing like PercolatorAdapter) rely on this. 'q-value' sets
main score to the PSM-level q-value and marks higher_score_bette
r=false. 'pep' sets main score to the PEP and marks higher_score
_better=false. 'svm' sets main score to the SVM discriminant
...
regardless of this setting. (default: 'none') (valid: 'none',
'q-value', 'pep', 'svm')
-percolator:num_threads <number> Maximum number of OpenMP threads for cross-validation; never
more than the threads the tool may use (-threads). With the defa
ult settings, cross-validation trains 9 models (3 folds x 3 Cneg
values) in parallel. Default and range match upstream. (default
: '3') (min: '1' max: '128')
-percolator:use_pi0 <choice> Enable pi0 correction when computing q-values and PEPs. When
true, pi0 is estimated per CV fold via bootstrap spline fit on
the target score distribution using decoys as the null, and q-va
lues follow the mix-max procedure for separate target and decoy
searches. When false, pi0 is fixed at 1.0 (pure target-decoy
FDR, no bootstrap estimation). Affects both Scores::calcQvals
and Scores::calcPep. 'auto' (default) decides as the percolator
executable, which uses pi0 only for mix-max: true without post_p
rocessing_tdc when a spectrum (scan, mass) has both target and
decoy PSMs (separate searches), false otherwise. (default: 'auto
') (valid: 'auto', 'true', 'false')
Common TOPP options:
-ini <file> Use the given TOPP INI file
-threads <n> Sets the number of threads allowed to be used by the TOPP tool
(0 = all available cores) (default: '1')
-write_ini <file> Writes the default configuration file
--help Shows options
--helphelp Shows all options (including advanced)
INI file documentation of this tool:
This section lists all parameters supported by the tool. Parameters are organized into hierarchical subsections that group related settings together. Subsections may contain further subsections or individual parameters.
Each parameter entry contains the following information:
Parameter tags provide additional information about how a parameter is used. Some tags indicate whether a parameter is required or intended for advanced configuration, while others may be used internally by OpenMS or workflow tools.
Parameters highlighted as required must be specified for the tool to run successfully. Parameters marked as advanced allow fine-tuning of algorithm behavior and are typically not needed for standard workflows.