PSMBasedQuantification turns the identifications from PSMStatistics into peptide ion intensities. For every identified peptide ion (sequence, modification state and charge) it takes the scan times of its MS/MS identifications, extracts an ion chromatogram of the monoisotopic m/z in a window around them, detects the peaks in that trace and fits the peak closest to the identification. The fitted area is the reported quantity. For metabolically labeled samples the tool computes the m/z of the partner ion (the heavy form of a light identification, or the other way round) and quantifies that trace as well, so every row can carry a light and a heavy value.
Flag |
Meaning |
Comes from |
|---|---|---|
|
one or more |
|
|
one or more |
|
|
the SQLite peptide database |
|
|
the output directory, created when missing |
|
|
the parameter file in JSON |
this page |
|
switch: pair files by base name instead of by position |
|
|
switch: write diagnostic charts |
|
|
switch: pack the chart directory into a zip file and delete it |
|
|
number of runs quantified at the same time, default 1 |
The input must be .mzlite. A directory given to -i is also scanned for .mzML, but the tool opens every file with the mzlite reader and fails on anything else, so convert first.
With one file per flag the pair is used as given. With lists, the n-th mzlite file is paired with the n-th qpsm file unless you pass -mf, which pairs files by their base name (run1.mzlite with run1.qpsm) and skips mzlite files without a partner.
For every run the tool writes run.quant, tab separated with a header and one row per quantified peptide ion. Next to the identifiers and the best q-value and PEP value of the ion it reports the fitted quantity (Quant_Light, Quant_Heavy), the apex intensity, the fit parameters, the difference between identification and fitted scan time, the extracted traces and the isotope pattern for both channels.
QuantBasedAlignment, AlignmentBasedQuantification, AlignmentBasedQuantStatistics and JoinQuantPepIonsWithProteins read .quant files.
With -dc the tool writes one chart per peptide ion into run_plots, plus mzErrorAndCorrection.html and precMzCorrected.html for the m/z calibration it derives from the identifications. -z packs that directory into run_plots.zip and deletes it. Delete an existing run.quant in the output directory before a rerun, the tool appends to it. Logs go to PSMBasedQuantification_log.txt and run_log.txt in the output directory.
Parameter |
Default |
Meaning |
|---|---|---|
|
|
|
|
|
Marks qpsm input in the FragPipe layout, which PSMBasedQuantificationTIMs reads. Keep it at |
|
|
Half width of the scan time window around the identification that is extracted and searched for the peak, in the scan time unit of the run. |
|
|
Half width of the m/z window of the trace, in Da. |
|
|
Peak detection on the trace. The wavelet parameters are listed below. |
|
|
|
|
|
Asymmetric least squares baseline subtraction on the trace before peak detection. |
The wavelet parameters:
Parameter |
Default |
Meaning |
|---|---|---|
|
|
Number of points padded at both ends of the trace. |
|
|
How the border points are filled ( |
|
|
How small gaps inside the trace are filled. |
|
|
How gaps longer than |
|
|
Gap length from which a gap counts as huge. |
|
|
Peaks closer than this are merged. |
|
|
Smallest peak width the wavelet scales start at. |
|
|
Largest peak width the wavelet scales go up to. |
|
|
Quantile of the wavelet correlation used as noise level. |
|
|
A peak needs a correlation above |
The default file is QuantificationParams.json. To run without baseline correction set BaseLineCorrection = None in the script below.
open ProteomIQon
open ProteomIQon.Domain
open FSharp.Stats.Signal
let waveletParams : WaveletParameters =
{
Borderpadding = None
BorderPadMethod = Padding.BorderPaddingMethod.Random
InternalPaddingMethod = Padding.InternalPaddingMethod.LinearInterpolation
HugeGapPaddingMethod = Padding.HugeGapPaddingMethod.Zero
HugeGapPaddingDistance = 100.
MinPeakDistance = None
MinPeakLength = Some 0.1
MaxPeakLength = 1.5
NoiseQuantile = 0.01
MinSNR = 0.01
}
let quantificationParams : Dto.QuantificationParams =
{
PerformLabeledQuantification = Labeling.N15Labeling
FragPipe = false
XicExtraction =
{
ScanTimeWindow = 2.
MzWindow_Da = Window.Estimate
XicProcessing = XicProcessing.Wavelet waveletParams
TopKPSMs = None
}
BaseLineCorrection = Some { MaxIterations = 10; Lambda = 6; P = 0.05 }
}
// Replace the temp folder with your project folder.
let outputPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "QuantificationParams.json")
Json.serializeAndWrite outputPath quantificationParams
The resulting .quant file is generated as a tab-delimited text file.
These columns can be inspected individually to examine specific search results, scoring metrics, and identification parameters.
Column |
Description |
|---|---|
StringSequence |
Amino Acid sequence (one-letter code) from PeptideDB which matches the psm candidate |
GlobalMod |
Indicator, if a peptide ion species is labeled or unlabeled |
Charge |
Precursor ion charge state |
PepSequenceID |
Unique identifier of the unmodified peptide sequence, which points to PeptideDB |
ModSequenceID |
Unique identifier of the modified peptide sequence (including PTMs, e.g., methylation), which points to PeptideDB |
PrecursorMZ |
Precursor ion mass-to-charge ratio (m/z) |
MeasuredMass |
Measured mass of precursor ions in Dalton |
TheoMass |
Theoretical peptide mass in the spectrum (based on amino acid composition) in Dalton |
AbsDeltaMass |
Absolute mass deviation between theoretical and measured mass (mass error) |
MeanPercolatorScore |
The peptide spectrum matches (PSMs) are re-scored based on several parameters. This value corresponds to the average consensus score determined in the process |
QValue |
Q-value (False-Discovery-Rate) based on combined model scores |
PEPValue |
Posterior Error Probability |
ProteinNames |
Protein Names out of the PeptideDB |
QuantMZ_Light |
Mass-to-charge ratio from the extracted XIC of the unlabeled peptide ion |
Quant_Light |
Peak area from the extracted XIC of the unlabeled peptide ion |
MeasuredApex_Light |
Measured Apex of unlabeled peak |
Seo_Light |
Standard Error of Prediction for quantification |
Params_Light |
Describes the shape of the fitted peak for the unlabeled version of a peptide. Contains information about peak height, estimated peak time, and peak width. |
Diffrence_SearchRT_FittedRT_Light |
Difference between the retention time originally determined using PSMs and the retention time calculated from the measured peak |
KLDiv_Observed_Theoretical_Light |
Describes how well the measured unlabeled isotope pattern matches the theoretically expected pattern. |
KLDiv_CorrectObserved_Theoretical_Light |
Corrected Kullback-Leiber divergence of isotopic pattern of unlabeled peptide ion versus the measured pattern |
QuantMZ_Heavy |
Mass-to-charge ratio from the extracted XIC of the labeled peptide ion |
Quant_Heavy |
Peak area from the extracted XIC of the labeled peptide ion |
MeasuredApex_Heavy |
Measured Apex of labeled peak |
Seo_Heavy |
Standard Error of Prediction of quantification |
Params_Heavy |
Describes the shape of the fitted peak for the labeled version of a peptide. Contains information about peak height, estimated peak time, and peak width. |
Diffrence_SearchRT_FittedRT_Heavy |
Difference between the retention time originally determined using PSMs and the retention time calculated from the measured peak |
KLDiv_Observed_Theoretical_Heavy |
Describes how well the measured labeled isotope pattern matches the theoretically expected pattern. |
KLDiv_CorrectObserved_Theoretical_Heavy |
Corrected Kullback-Leiber divergence of isotopic pattern of labeled peptide ion versus the measured pattern |
Correlation_Light_Heavy |
Correlation calculated based on Pearson between unlabeled and labeled peaks |
QuantificationSource |
If spectra are found over Alignments or Peptide Spectrum Matching |
IsotopicPatternMz_Light |
M/z-distribution of isotope cluster in spectra for unlabeled peaks |
IsotopicPatternIntensity_Observed_Light |
Observed intensity distribution of unlabeled isotopic clusters |
IsotopicPatternIntensity_Corrected_Light |
Corrected intensity distribution of unlabeled isotopic clusters |
RtTrace_Light |
Retention Time Profile of unlabeled peptide ion |
IntensityTrace_Observed_Light |
Intensity trace over for an observed unlabeled isotopic peak cluster |
IntensityTrace_Corrected_Light |
Corrected intensity trace between an unlabeled peak and a measured isotopic peak cluster |
IsotopicPatternMZ_Heavy |
M/z-distribution of isotope cluster in spectra for labeled peaks |
IsotopicPatternIntensity_Observed_Heavy |
Observed intensity distribution of labeled isotopic clusters |
IsotopicPatternIntensity_Corrected_Heavy |
Corrected intensity distribution of labeled isotopic clusters |
RtTrace_Heavy |
Retention Time Profile of labeled peptide ion |
IntensityTrace_Observed_Heavy |
Intensity trace for an observed labeled isotopic peak cluster |
IntensityTrace_Corrected_Heavy |
Corrected intensity trace between a labeled peak and a measured isotopic peak cluster |
AlignmentScore |
Actual known alignments compared with the observed alignments |
AlignmentQValue |
Q-value, which is calculated based on the alignment score |
Install with dotnet tool install --global ProteomIQon.PSMBasedQuantification, then quantify one run:
|
Several runs, paired by position in the two lists, three in parallel:
|
Two directories, paired by file name:
|
All flags:
|