Universal MS/MS spectrum annotation tool for glycopeptides and crosslinked peptides.
🚀 Try the Live Demo - No installation required!
User Manual - Detailed installation and usage guide for Windows, macOS, and Linux
- O-glycans: Core 1-4 structures, sialylated, phosphorylated, sulfated variants
- N-glycans: High-mannose, complex, hybrid structures
- Y ion series: Complete glycan ladder (Y0, Y1, Y2, ..., Y(core), Y(intact))
- Oxonium ions: Comprehensive diagnostic ion library
- MS-cleavable: DSSO, DSBSO with stub mass identification
- Non-cleavable: BS3, DSS
- ProForma notation: Full support for crosslink annotation
- False Match Rate: Spectrum shifting method (Schulte et al., Anal. Chem. 2025)
- Annotation statistics: Coverage, matched peaks, intensity
- Web Interface (No coding required) - Interactive browser-based annotation
- Python API - For batch processing and pipeline integration
See the User Manual for step-by-step instructions.
pip install spectrum-annotator-ddzbygit clone https://github.com/lfu46/GlycoSpectrumAnnotator.git
cd GlycoSpectrumAnnotator
pip install -e .pip install spectrum-annotator-ddzby[streamlit]from spectrum_annotator_ddzby import (
FragmentCalculator,
SpectrumAnnotator,
O_GLYCAN_COMPOSITIONS,
N_GLYCAN_COMPOSITIONS,
CROSSLINKERS,
generate_crosslink_fragments,
)
# Glycopeptide annotation
calc = FragmentCalculator(
peptide="PEPTIDEK",
modifications={"5": "HexNAc"},
precursor_charge=3,
glycan_type="O-GlcNAc"
)
fragments = calc.calculate_all_fragments()
# Access glycan library
print(O_GLYCAN_COMPOSITIONS['Sialyl-T'].mass) # 656.2276 Da
# Crosslinked peptide fragments
xl_fragments = generate_crosslink_fragments(
peptide1_mass=1000.0,
peptide2_mass=1200.0,
crosslinker=CROSSLINKERS['DSBSO'],
precursor_charge=4
)# Run the web app
streamlit run app.pyOr visit the hosted version at: glycospectrumannotator.streamlit.app
| Name | Composition | Mass (Da) |
|---|---|---|
| Tn (O-GlcNAc) | HexNAc(1) | 203.08 |
| T-antigen | HexNAc(1)Hex(1) | 365.13 |
| Sialyl-Tn | HexNAc(1)NeuAc(1) | 494.17 |
| Sialyl-T | HexNAc(1)Hex(1)NeuAc(1) | 656.23 |
| Core 2 | HexNAc(2)Hex(1) | 568.21 |
| ... | ... | ... |
| Name | Composition | Mass (Da) |
|---|---|---|
| Man5 | HexNAc(2)Hex(5) | 1216.42 |
| Man9 | HexNAc(2)Hex(9) | 1864.63 |
| A2G2F | HexNAc(4)Hex(5)Fuc(1) | 1768.64 |
| A2G2FS2 | HexNAc(4)Hex(5)Fuc(1)NeuAc(2) | 2350.83 |
| Name | Type | Spacer | Stub Masses |
|---|---|---|---|
| DSSO | MS-cleavable | 10.1 Å | A: 54.01, T: 85.98, S: 103.99 |
| DSBSO | MS-cleavable | 12.5 Å | A: 54.01, T: 85.98, S: 103.99 |
| BS3 | Non-cleavable | 11.4 Å | - |
| DSS | Non-cleavable | 11.4 Å | - |
| Ion Type | Color | Description |
|---|---|---|
| b | Blue | N-terminal HCD ions |
| y | Red | C-terminal HCD ions |
| c | Green | N-terminal ETD ions |
| z | Orange | C-terminal ETD ions |
| Y | Purple | Glycopeptide Y ions |
| Oxonium | Brown | Glycan diagnostic ions |
| XL-stub | Cyan | Crosslinker stubs |
- Sequence Coverage: Fraction of peptide bonds with fragment ions
- FMR (peaks): False match rate based on peak count
- FMR (intensity): False match rate based on intensity
- Peaks Annotated: Fraction of experimental peaks matched
- Intensity Annotated: Fraction of total intensity matched
- Schulte, D. et al. "A Universal Spectrum Annotator for Complex Peptidoforms in Mass Spectrometry-Based Proteomics." Analytical Chemistry 2025, 97, 23120-23130.
- Brademan, D.R., Riley, N.M., Kwiecien, N.W., and Coon, J.J. "Interactive Peptide Spectral Annotator: A Versatile Web-based Tool for Proteomic Applications." Molecular & Cellular Proteomics 2019, 18(8 Suppl 1), S193-S201. DOI: 10.1074/mcp.TIR118.001209
- MSFragger Human O-glycan database
If you use this tool in your research, please cite:
Fu, L. (2026). Spectrum Annotator Ddzby: Universal MS/MS spectrum annotation tool.
GitHub: https://github.com/lfu46/GlycoSpectrumAnnotator
MIT License - see LICENSE for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Author: Longping Fu
- Email: lpfu46@gatech.edu
- GitHub: @lfu46