Skip to content

LangeLab/pepVet

Repository files navigation


pepVet logo

pepVet

Evaluate proteolytic digests for LC-MS/MS proteomics. Score peptides, compare enzymes, triage proteins, and plan your workflow before any sample reaches the instrument.

v0.99.0 R >= 4.6 Bioconductor 3.23 R CMD check Codecov coverage MIT pkgdown docs


What pepVet does

Enzyme choice affects the peptide set available to a bottom-up proteomics workflow. Frequent cleavage can produce many short fragments, while sparse cleavage can leave long products. pepVet compares enzyme-digest combinations using explicit length, coverage, peptide-count, hydrophobicity, and charge criteria. The resulting scores are intended for pre-acquisition ranking and review, not as predictions of peptide identification or experimental success.

Quick start

library(pepVet)

bsa <- system.file("extdata", "P02769.fasta", package = "pepVet")

# One-call evaluation with a compact console report
result <- pepvet_check(bsa, enzyme = "trypsin", missed_cleavages = 1L)
result$scores

# Multi-enzyme comparison
comp <- compare_digests(bsa,
  enzymes = c("trypsin", "lysc", "glutamyl endopeptidase", "asp-n endopeptidase")
)
digest_report(comp)
recommend_enzyme(bsa, enzymes = c("trypsin", "lysc"))

Visualization

pepVet provides 14 ggplot2-based plot functions for digest diagnostics, enzyme comparison, physicochemical distributions, and proteome-scale overviews. Every function returns a ggplot or patchwork object that can be customized further.

Single-protein diagnostic: plot_digest_profile() called on BSA (P02769.fasta) digested with trypsin at one missed cleavage gives a four-panel figure showing length distribution, GRAVY hydrophobicity, sequence coverage, and component scores:

BSA trypsin digest profile

Proteome-scale enzyme comparison: plot_batch_comparison() called on the 50-protein fixture (small_proteome_50_proteins.fasta) evaluated against 10 enzymes (trypsin, Lys-C, chymotrypsin, Asp-N, Glu-C, Arg-C, thermolysin, pepsin, Staphylococcal peptidase I, proteinase K) gives verdict summaries, score distributions, component heatmaps, and per-protein win rates:

10-enzyme batch comparison on 50 proteins

See the Visualising Digest Quality article for the 12 general-purpose plots. The Score Diagnostics and Weight Sensitivity Analysis articles cover the remaining two plots.

Features

Digest simulation

  • digest_protein() simulates cleavage of any protein sequence with any of 40 cleaver-compatible enzyme rules and returns theoretical products with coordinates and missed-cleavage counts.
  • annotate_cleavage_sites() applies the package's high, medium, or low cleavage-efficiency categories to trypsin-family sites using local P1-P1' sequence context.

Scoring

  • score_peptides() summarises a peptide set into five component scores (S_length, S_coverage, S_count, S_hydro, S_charge) plus an optional sixth (S_unique) when a background proteome digest is supplied.
  • pepvet_preset() returns workflow-specific parameter sets for DDA, DIA, targeted, membrane, FFPE/degraded, and fractionated workflows.

Evaluation and comparison

  • evaluate_digest() wraps digest and scoring into one call and returns a named list with scores, peptides, and resolved parameters.
  • compare_digests() runs across a vector of enzymes for a single protein and returns a ranked tibble.
  • recommend_enzyme() returns the enzyme or tied enzymes with the highest composite score under the selected settings.

Batch workflows

  • batch_evaluate() evaluates every protein in a multi-FASTA independently and returns a flat tibble with one row per protein, including all score columns, verdicts, and four difficulty flags.
  • summarize_batch() computes proteome-level verdict distribution, composite score statistics, per-component means, and heuristic enzyme-switch candidates.
  • triage_proteins() appends an action column (proceed, consider_alternative, try_other_enzyme, skip) to the batch tibble.

Valid-count and hydrophobicity flags follow the active scoring ranges. Short-protein and low-complexity flags remain sequence-level heuristics.

Reporting and export

  • digest_report() renders an ASCII-safe console summary for single-protein or multi-enzyme results and adapts comparison tables to the terminal width.
  • export_peptide_list() filters valid peptides and exports as Skyline-compatible CSV, generic annotated CSV, or FASTA.

Peptide properties

  • calculate_peptide_mass() computes monoisotopic neutral mass and m/z.
  • calculate_pI() computes isoelectric point using a Lehninger-style pKa set.

Scoring model

Six components, one weighted composite, one advisory verdict.

Score What it measures Role in the package model
S_length Fraction of peptides in the active length window [7, 25] aa Applies the selected peptide-length prior
S_coverage Fraction of the protein covered by valid peptides Rewards valid-peptide coverage across the source sequence
S_count Valid count relative to enzyme-aware expected density Compares the digest with an enzyme-specific count prior
S_hydro Fraction of valid peptides in the active GRAVY window [-1.0, 0.6] Applies the selected hydrophobicity prior
S_charge Valid peptides with non-terminal K/R/H Records a basic-residue heuristic
S_unique Fraction of valid peptides unique in a supplied proteome digest Rewards absence from the supplied background digest

Default documented expert-prior weights: S_length 0.200, S_coverage 0.348, S_count 0.226, S_hydro 0.138, S_charge 0.088. These values were not fitted to experimental outcomes.

Verdict thresholds: Good >= 0.65, Moderate >= 0.40, Poor < 0.40. These are heuristic ranking labels, not calibrated probabilities.

A zero S_count triggers the package's hard-fail rule. pepVet sets the composite score to zero and the verdict to Poor when an enzyme produces no cleavage sites or no peptides inside the active length window, regardless of the other component values.

Workflow presets

Each preset records a valid-length window, GRAVY range, component weights, and pI flag. Presets with a nonzero S_unique weight also require a supplied background digest.

preset <- pepvet_preset("fractionated")
do.call(evaluate_digest, c(list(sequence = bsa, enzyme = "trypsin"), preset))
Preset Intended context Package settings
standard Routine DDA [7,25] aa, GRAVY [-1,0.6], default weights
dia DIA and SWATH [7,30] aa, GRAVY [-1,0.8], larger coverage weight
targeted SRM, PRM, MRM [8,20] aa, GRAVY [-0.8,0.4], S_unique 30%
membrane Hydrophobic proteins GRAVY [-1.0,2.0], S_hydro 5%
ffpe_degraded Degraded samples [6,30] aa, larger S_count weight
fractionated SCX / high-pH RP Standard settings with include_pI = TRUE

These presets are editable package priors. They do not establish experimental suitability for a sample or acquisition method.

Installation

Install pepVet from Bioconductor:

if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("pepVet")

Install the development version from GitHub with:

if (!requireNamespace("remotes", quietly = TRUE))
  install.packages("remotes")
remotes::install_github("LangeLab/pepVet", dependencies = TRUE)

Reference FASTA fixtures

The package ships pinned FASTA files for reproducible examples and regression tests.

File Protein Test or example role
P02769.fasta BSA (607 aa) Reference digestion fixture
P68431.fasta Histone H3.1 (136 aa) Basic-protein digestion fixture
P56817.fasta BACE1 (501 aa) Membrane-protein fixture
P00698.fasta Lysozyme C (147 aa) Small globular-protein fixture
Q8WZ42.fasta Titin (34350 aa) Long-sequence scale fixture
P0CG48.fasta Polyubiquitin-C precursor (685 aa) Repeated-sequence fixture
P37840_isoforms.fasta Alpha-synuclein isoforms (3 seqs) Proteome-aware uniqueness example
small_proteome_50_proteins.fasta 50 human proteins Batch workflow fixture

Scope

pepVet is not a peptide detectability predictor. It is a rule-based, multi-criteria digest-ranking model for pre-acquisition planning. Scores are interpretable rankings within a given enzyme-workflow combination, not calibrated probabilities. The model does not account for PTMs, chromatographic gradients, or instrument-specific fragmentation parameters.

Documentation

Citation

citation("pepVet")

License

MIT. See LICENSE.md.

Contributing

Pull requests, bug reports, and documentation fixes are welcome. See CONTRIBUTING.md for the review workflow and CODE_OF_CONDUCT.md for community standards.

About

pepVet is an R package for proteolytic digest simulation, peptide-set scoring, enzyme comparison, and workflow preset selection for bottom-up proteomics.

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages