PhosphoRS (Phosphorylation site Ranking and Scoring) is a comprehensive algorithm for phosphorylation site localization that implements a Compomics-inspired scoring method. It provides detailed site-specific probability calculations and isomer analysis for confident phosphorylation site assignment.
PhosphoRS uses a sophisticated statistical approach:
P(X ≥ k) = Σ(i=k to n) C(n,i) * p^i * (1-p)^(n-i)
Where:
n = number of theoretical ionsk = number of matched ionsp = probability of random match| Parameter | Default | Description |
|---|---|---|
fragment_tolerance |
0.05 | Fragment mass tolerance in Da |
fragment_method_ppm |
False | Use ppm tolerance instead of Da |
add_precursor_peak |
False | Include precursor peaks in analysis |
add_ion_types |
(“b”, “y”) | Ion types to consider |
max_ion_charge |
2 | Maximum fragment charge state |
add_neutral_losses |
True | Include neutral losses |
add_decoys |
False | Include decoy sites for validation |
window_size |
100.0 | Window size for spectrum reduction |
max_depth |
8 | Maximum depth for intensity thresholds |
min_depth |
2 | Minimum depth for intensity thresholds |
The algorithm identifies ions that are unique to specific site assignments:
def _site_determining_ions(profiles, precursor_charge, add_neutral_losses):
"""
Identify site-determining ions that distinguish between different
phosphorylation site assignments.
"""
# Implementation details...
Optimizes spectrum reduction by selecting the best depth based on site-determining ion differences:
def _reduce_by_delta_selection(filtered_spec, profiles, fragment_tolerance, fragment_method_ppm):
"""
Reduce spectrum using delta-based depth selection with site-determining ions.
"""
# Implementation details...
Uses sophisticated statistical methods for probability calculation:
def binomial_tail_probability(k: int, n: int, p: float) -> float:
"""
Calculate cumulative binomial probability P(X >= k) for X~Bin(n,p).
"""
# Implementation details...
# Basic usage
onsite phosphors -in spectra.mzML -id identifications.idXML -out results.idXML
# With custom parameters
onsite phosphors -in spectra.mzML -id identifications.idXML -out results.idXML \
--fragment-mass-tolerance 0.05 \
--fragment-mass-unit Da \
--threads 1 \
--add-decoys
from onsite import calculate_phospho_localization_compomics_style
# Calculate phosphorylation site probabilities
site_probs, isomer_details = calculate_phospho_localization_compomics_style(
peptide_hit,
spectrum,
fragment_tolerance=0.05,
fragment_method_ppm=False,
add_neutral_losses=True
)
# Custom configuration
site_probs, isomer_details = calculate_phospho_localization_compomics_style(
peptide_hit,
spectrum,
modification_name="Phospho",
potential_sites={"S", "T", "Y"},
fragment_tolerance=0.05,
fragment_method_ppm=False,
add_precursor_peak=False,
add_ion_types=("b", "y"),
max_ion_charge=2,
add_neutral_losses=True,
add_decoys=False
)
# Process results
if site_probs is not None:
print("Site Probabilities:")
for site_index, probability in site_probs.items():
print(f" Site {site_index}: {probability:.4f}")
print("\nIsomer Details:")
for seq_str, score in isomer_details:
print(f" {seq_str}: {score:.4f}")
Returns a dictionary mapping site indices to probability scores:
{
0: 85.2, # Site 0 has 85.2% probability
3: 14.8, # Site 3 has 14.8% probability
7: 0.0 # Site 7 has 0% probability
}
Returns a list of tuples with sequence and score:
[
("PEPTIDE(Phospho)SEQUENCE", 0.95),
("PEPTIDESEQUENCE(Phospho)", 0.05)
]
Taus, T., Köcher, T., Pichler, P., Paschke, C., Schmidt, A., Henrich, C., & Mechtler, K. (2011). Universal and confident phosphorylation site localization using phosphoRS. Journal of Proteome Research, 10(12), 5354-5362.
DOI: 10.1021/pr200611n
Abstract: We present a new approach for confident phosphorylation site localization using phosphoRS, a method that combines the intensity information of site-determining fragment ions with a probability-based scoring scheme. The method is universally applicable to any type of mass spectrometric data and provides confident phosphorylation site localization with high accuracy.