Skip to content

Expand elastase|P cleavage specificity#1100

Open
trishorts wants to merge 1 commit into
smith-chem-wisc:masterfrom
trishorts:expand-elastase-specificity
Open

Expand elastase|P cleavage specificity#1100
trishorts wants to merge 1 commit into
smith-chem-wisc:masterfrom
trishorts:expand-elastase-specificity

Conversation

@trishorts

@trishorts trishorts commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

What

Expands the cleavage specificity of elastase|P in proteases.tsv from six P1 residues to fourteen based on substantial work I have done analyzing samples digested with elastase.

P1 residues
Before A, V, S, G, L, I
After I, S, L, V, N, T, K, A, G, Y, Q, R, F, D

Added: 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. The full specificity, blank PSI-MS accession and Elastase PSI-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/I rule 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, Skyline GVLIA, and PSI-MS MS:1001915 uses ALIV; Comet and Mascot ship no elastase entry at all. This change makes mzLib's elastase deliberately broader than any of them.

Impact

elastase|P is 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 following P), P, and H — so the decoy becomes KAYHPSRGVLDIN rather than NADHRSPGVLYIK.

The new expected value was derived by hand from the algorithm in PeptideWithSetModifications.GetReverseDecoyFromTarget and 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|P cites MS:1001312, which is actually TrypChymo ((?<=[FYWLKR])(?!P)). PSI-MS has no subtilisin term, so this should probably be blank.
  • trypsin and trypsin|P both cite MS:1001313. The proline-blocking variant should likely be MS:1001251.
  • singleN/singleC cite MS:1001957/MS:1001958, which are regex terms rather than cleavage-agent names.
  • elastase|P has no accession, though MS:1001915 exists.
  • TestDigestionMotif.cs:49-50 hard-codes F[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.

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

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.50%. Comparing base (525cb7c) to head (978ad52).

Additional details and impacted files

Impacted file tree graph

@@           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:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants