Open a spectrum
Format mzspec:<dataset>:<run>:scan:<number>. The spectrum is fetched from the selected public repository; ProteomeCentral forwards the request to whichever repository holds the dataset. ProteomeCentral
MGF, MS2, MSP, mzML (centroid or profile) or mzSpecLib (text or JSON), optionally gzip-compressed. Files ending in .txt, .json or .gz are recognised by their content. For mzSpecLib entries the library peptide is filled in for annotation. The file is read in this browser tab and is not uploaded.
A peak-list record, or one peak per line as m/z intensity (space, tab or comma separated; lines starting with # are skipped).
Paste a spectrl.v3. token from “Copy spectrum token”, or a complete share link.
Examples
Public spectra are fetched through ProteomeCentral; the two built-in spectra need no network.About this tool / Methods
Input. A USI is resolved through the repository's
PROXI /spectra endpoint and parsed with
spxtacular.spectrum_from_proxi_response(). Files and pasted text are read with spxtacular's
MgfReader, Ms2Reader, MspReader, MzmlReader (via mzmlpy) and
MzSpecLibReader; up to 5,000 spectra per file are listed.
Share links. “Copy share link” encodes the spectrum currently shown (after processing) as a
spectrl token with spxtacular.spectrl_bridge.to_spectrl_token().
Peak values use lossy MS-Numpress compression to keep the link short. The #spectrl.v3.… token is kept in the URL fragment,
which browsers do not send to the server, and opening the link restores the spectrum without fetching it again.
Links made with older token versions (v1) can no longer be read.
Specifications: USI, mzSpecLib, mzPAF, ProForma 2.0.
Spectrum
–- Peaks
- Precursor m/z
- Precursor charge
- Spectrum type
- MS level
- Polarity
Process spectrum
Optional. Tick the steps to run; they are applied in the order listed, always starting from the spectrum as loaded.
Profile-mode spectra only.
Keep peaks inside an m/z range, above an intensity, or the N most intense.
Drops peaks below an estimated noise threshold.
Compresses the dynamic range.
Needs precursor information. Removes the precursor and its isotope peaks.
Combines peaks within the tolerance into one.
Collapses isotope envelopes to monoisotopic peaks and assigns charge.
Needs charges, so it also ticks Deconvolute isotopes.
Steps to run:
About processing / Methods
Each step calls a spxtacular.Spectrum method on the spectrum as loaded:
- Centroid:
centroid()fits a Gaussian to each local maximum of the profile. The noise floor is a median-absolute-deviation estimate (median + 3 × spread). - Filter:
filter(). Remove noise peaks:denoise()removes peaks belowestimate_noise_level(); every method except “5th percentile” returns centre + 3 × spread, while the percentile method uses the 5th-percentile intensity itself. - Normalize:
normalize()divides by the maximum, the sum or the median intensity. Transform:scale_intensity(). - Remove precursor peaks:
remove_precursor_peak()uses the precursor m/z and charge recorded with the spectrum. - Merge:
merge()works from the most intense peak down; merged peaks get the intensity-weighted mean m/z and the summed intensity. - Deconvolute:
deconvolute()matches peaks against averaged isotope profiles for the chosen molecule class, scores each envelope by profile similarity, and reports the monoisotopic m/z with the summed envelope intensity. Profile data are centroided first. - Convert to neutral mass:
decharge()converts each charged peak to neutral mass (protonation, or deprotonation for negative-mode spectra). Peaks without an assigned charge are dropped.
Annotate a peptide
Match the theoretical fragment ions of a peptide against the spectrum shown above.
Modifications by name, accession or mass in brackets: [Phospho], [UNIMOD:35], [+15.995].
Positive ion charges
Advanced options
About annotation / Methods
The peptide is parsed and fragmented with peptacular (ProFormaAnnotation.fragment()) for the ticked ion series and charges;
neutral losses add at most one loss per fragment. The full-length backbone ions (bn, yn, …) are left out because they
are not cleavage products, and immonium ions are kept once per residue at charge 1.
Fragments are matched to peaks with spxtacular.matching.match_fragments(): a fragment matches when a peak lies within the tolerance
of its m/z, and the closest (or most intense) such peak is used. The lower plot shows the mass error of each match in ppm, marker size scaled by peak intensity.
In the fragment table, row i holds the N-terminal ion bi and the C-terminal ion yn−i+1. Matched cells are shaded by summed matched intensity and carry the matched charges as a superscript. For neutral-mass spectra, fragments are compared as neutral masses and charge is ignored.
After Annotate, “Download” writes the matched fragments as mzPAF peak annotations, and mzSpecLib files also record the peptide.
Reporter ions
Read TMT or iTRAQ reporter-ion intensities from the spectrum shown above.
About reporter ions / Methods
spxtacular.extract_reporter_ions() takes, for each channel, the most intense peak within ± the window of the channel's reporter m/z
(reporter masses from tacular's isobaric-tag table). Missing channels report zero. No isotope-impurity correction is applied.
“Share (%)” is each channel's intensity divided by the sum over all channels; the error column is (observed − expected) / expected × 106.
“Detect automatically” tries every label and keeps the one with the most channels found (ties go to the smaller plex). It reports no label unless at least two channels and at least half of that plex's channels are found. Labels whose windows would overlap at the chosen width (for example TMT 10-plex 127N/127C above about 25 ppm) are skipped. Profile data must be centroided first.