Expand elastase|P cleavage specificity#1100
Open
trishorts wants to merge 1 commit into
Open
Conversation
Broaden elastase|P from the six-residue set (A, V, S, G, L, I) to a fourteen-residue set, adding N, T, K, Y, Q, R, F and D. All motifs keep the existing X[P]| form, so the not-before-proline restriction is unchanged. The previous set matched the reagent vendor description of porcine pancreatic elastase. The expanded set reflects the much broader range of P1 residues observed empirically in elastase digests, where the enzyme behaves closer to semi-specific than its textbook A/V/S/G/L/I rule suggests. Update the elastase reverse-decoy expectation in PeptideWithSetModsDecoyTests accordingly. Decoy generation pins cleavage-site residues in place and reverses the remainder, so a larger motif set pins more positions: for KAYVPSRGHLDIN only V (blocked by the following P), P and H remain unpinned, giving KAYHPSRGVLDIN. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1100 +/- ##
=======================================
Coverage 91.50% 91.50%
=======================================
Files 439 439
Lines 53542 53542
Branches 6511 6511
=======================================
Hits 48995 48995
Misses 3275 3275
Partials 1272 1272 🚀 New features to boost your workflow:
|
nbollis
approved these changes
Jul 20, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Expands the cleavage specificity of
elastase|Pinproteases.tsvfrom six P1 residues to fourteen based on substantial work I have done analyzing samples digested with elastase.A, V, S, G, L, II, S, L, V, N, T, K, A, G, Y, Q, R, F, DAdded: N, T, K, Y, Q, R, F, D. Nothing was removed.
All motifs keep the existing
X[P]|form, so the "do not cleave before proline" restriction is unchanged. Thefullspecificity, blank PSI-MS accession andElastasePSI-MS name are untouched.Why
The previous six-residue set corresponds to the reagent-vendor description of porcine pancreatic elastase. In practice elastase digests show a considerably wider range of P1 residues, and the enzyme behaves much closer to semi-specific than the textbook
A/V/S/G/L/Irule implies. Restricting the definition to six residues means genuine elastase peptides are not generated during in-silico digestion and therefore cannot be identified.Worth being explicit for reviewers: this is a deliberate move away from the strict enzymological definition toward observed cleavage behaviour. For reference, other tools sit at or below the previous set — MSFragger uses
AGILV, SkylineGVLIA, and PSI-MSMS:1001915usesALIV; Comet and Mascot ship no elastase entry at all. This change makes mzLib's elastase deliberately broader than any of them.Impact
elastase|Pis opt-in, so nothing changes for users of other proteases. For users who do select it, this produces more (and shorter) candidate peptides and a correspondingly larger search space.Test changes
One existing expectation changed, in
PeptideWithSetModsDecoyTests.TestReverseDecoyFromTarget.Reverse-decoy generation pins cleavage-site residues in place and reverses everything else, so a larger motif set pins more positions. For the test protein
KAYVPSRGHLDIN, only three positions are now unpinned —V(blocked by the followingP),P, andH— so the decoy becomesKAYHPSRGVLDINrather thanNADHRSPGVLYIK.The new expected value was derived by hand from the algorithm in
PeptideWithSetModifications.GetReverseDecoyFromTargetand then confirmed against the implementation, rather than copied from the observed output.This incidentally illustrates a real property of near-nonspecific proteases: reverse decoys degrade as the motif set grows, because most residues get pinned and the decoy ends up close to the target. Not addressed here, but it may be worth considering whether scrambled decoys are more appropriate for broad-specificity enzymes.
Full suite green locally: 5267 passed, 0 failed, 29 skipped.
Notes for a follow-up (not in this PR)
While reviewing this file a few unrelated issues surfaced that are worth separate PRs:
subtilisin|PcitesMS:1001312, which is actually TrypChymo ((?<=[FYWLKR])(?!P)). PSI-MS has no subtilisin term, so this should probably be blank.trypsinandtrypsin|Pboth citeMS:1001313. The proline-blocking variant should likely beMS:1001251.singleN/singleCciteMS:1001957/MS:1001958, which are regex terms rather than cleavage-agent names.elastase|Phas no accession, thoughMS:1001915exists.TestDigestionMotif.cs:49-50hard-codesF[P]|,W[P]|,Y[P]|and asserts a count of 3 for chymotrypsin. It parses a literal string rather than reading the tsv, so it silently went stale when leucine was added in Add leucine to chymo cleavage motif #759 and the real entry became four motifs.