Open modification searching with Mumble
Warning
Mumble is under active development and should be considered beta software. It is usable and already improves identification rates on open-modification-search-style data, but occasional errors can still occur, especially on unusual input files or uncommon modifications. Please report issues on the Mumble GitHub repository.
What Mumble does
Mumble is a PSM generator that expands each PSM’s peptidoform with candidate Unimod modifications that explain its precursor mass shift. This is useful when the PSM file comes from a search that already allows for a wide precursor mass tolerance or an open/semi-open modification search, but did not (or could not) resolve the mass shift to a specific modification.
For each input PSM, Mumble:
Calculates the mass shift between the observed precursor mass and the theoretical mass of the (unmodified) peptidoform.
Looks up candidate Unimod modifications - optionally combined, and optionally combined with amino acid substitutions - that explain this mass shift within a configurable mass error.
Generates one new candidate PSM per matching modification (or combination of modifications), each with the modification placed at every allowed site.
MS²Rescore then rescores all candidate PSMs (and, depending on configuration, the original PSM) together, so that the combination of features and the rescoring model can pick the most likely explanation for the mass shift.
Mumble is integrated into MS²Rescore as a PSM generator, configured through the
psm_generator configuration option, alongside the feature generators and rescoring
engine. See Configuration for how these fit together.
Installing Mumble
Mumble is an optional dependency. Install it together with MS²Rescore with:
pip install ms2rescore[mumble]
or, in an existing MS²Rescore installation:
pip install mumble
If Mumble is not installed and mumble is present in the psm_generator configuration,
MS²Rescore raises a clear configuration error rather than failing silently.
Note
Mumble is currently only configurable through the JSON/TOML configuration file or the Python API, not through the graphical user interface (GUI) or the command line interface (CLI).
Enabling Mumble
Add a mumble entry to the psm_generator configuration section:
"psm_generator": {
"mumble": {
"mass_error": 0.02,
"combination_length": 1,
"aa_combinations": 0,
"exclude_mutations": false
}
}
[ms2rescore.psm_generator.mumble]
mass_error = 0.02
combination_length = 1
aa_combinations = 0
exclude_mutations = false
Only one PSM generator can be configured at a time, and mumble is currently the only
available option.
Configuration options
mass_error(default:0.02): Mass error tolerance in Da used to match the precursor mass shift to a candidate modification.combination_length(default:1): Maximum number of modifications to combine per mass shift. Lower combination lengths are always included as well. Increasing this quickly increases runtime and the number of candidate PSMs.exclude_mutations(default:false): Exclude candidate modifications classified as amino acid substitutions.aa_combinations(default:0): Number of amino acid combinations to additionally consider as a mass-shift explanation, on top of Unimod modifications. Requiresfasta_file. Increases runtime combinatorially; keep this low (0-2).fasta_file(default:null): Path to a FASTA file with protein sequences, used to validate amino acid combination candidates. Required ifaa_combinationsis greater than 0.modification_file(default:null): Path to a restriction list of Unimod modifications to consider (TSV withunimod_id/name, and optionallyresidue, columns). Defaults to a curated subset bundled with Mumble. Ignored ifall_unimod_modificationsis true.all_unimod_modifications(default:false): Consider all Unimod modifications instead of the restricted default/modification_filelist. Substantially increases runtime and the risk of false-positive candidate modifications.
Caution
MS²Rescore always runs Mumble with include_original_psm and include_decoy_psm forced
to true, regardless of what is configured: both the original PSM and modified decoys are
needed for correct downstream rescoring and FDR control. Setting these two options manually
has no effect and can be omitted from the configuration.
How Mumble PSMs are filtered
Adding candidate PSMs for every matching modification can introduce many low-quality
candidates, especially with a larger combination_length or all_unimod_modifications
enabled. To limit this, MS²Rescore removes any Mumble-generated candidate PSM whose fraction of
matched fragment ions (matched_ions_pct) drops more than 50% below that of the original,
unmodified PSM, before rescoring. This keeps the candidate set focused on modifications that
are actually well-supported by the fragmentation spectrum, without requiring extra
configuration.
Mumble-generated candidates are also excluded from the DeepLC and IM2Deep calibration sets: since a candidate is an unconfirmed hypothesis about the peptide’s identity (it inherits the original PSM’s score and q-value verbatim, so it cannot be distinguished from a confirmed hit on those columns alone), only the original, non-Mumble PSMs are used to calibrate retention time and ion mobility predictions.
Caution
Ties at the top rank are broken arbitrarily. With the default max_psm_rank_output: 1,
MS²Rescore keeps only the single best-scoring PSM per spectrum. If several Mumble candidates
(and/or the original PSM) end up with an identical rescoring score for the same spectrum - not
uncommon, since near-isobaric or poorly discriminated modifications can score alike - which one
is kept as “the” top hit is not deterministic: it depends on the internal sort order of the
PSM list, not on any chemically meaningful tie-break. MS²Rescore logs a warning when this
situation can occur (Mumble enabled and max_psm_rank_output is 1). To inspect these cases
rather than silently pick one, set max_psm_rank_output to a value greater than 1 and review
same-spectrum, same-score groups in the output before drawing conclusions from the winning
peptidoform.
Tips and known limitations
Start with the default
modification_file(a curated subset of common modifications). Only switch toall_unimod_modificationsif you have a specific reason to search the full Unimod database, and be aware that this increases runtime and the risk of false-positive candidate modifications.Keep
combination_lengthandaa_combinationslow (1 and 0-2, respectively) unless you have a specific reason to expect multiple simultaneous modifications or sequence variants; both increase runtime combinatorially.Because Mumble is beta software, always inspect a subset of the rescoring results (for example with the HTML report, see Output files) to confirm that the added modifications are chemically sensible before trusting them in downstream analysis.
If Mumble raises an unexpected error, first try without
fasta_file/aa_combinationsand with the defaultmodification_fileto isolate whether the issue is related to the search space configuration, then report the issue (with a minimal reproducing example if possible) on the Mumble issue tracker.Mumble caches the parsed Unimod modification list on disk between runs. If you suspect the cache is stale (for example after switching
modification_file), clear it withmumble --clear-cache.
Standalone usage
Mumble can also be used independently of MS²Rescore, both through its own command line interface and its Python API. See the Mumble README for details.