synthetic-lcmsms-data-generation
Summary
Generate gold-standard synthetic LC-MS/MS datasets with known ground truth by simulating mass spectrometry runs for any biomolecule using chemical formula-based calculations, modular fragmentation models, and configurable noise injection. This enables controlled testing of MS algorithms and evaluation of co-elution/co-fragmentation challenges before performing actual experiments.
When to use
You need to create defined LC-MS/MS datasets with known molecular composition and fragmentation patterns for algorithm validation, method development, or evaluation of analytical challenges (e.g., co-elution prediction). Typical triggers: testing new MS data processing algorithms, benchmarking peak detection or quantification methods, or studying effects of co-fragmenting molecules on detection sensitivity where experimental ground truth is not readily available.
When NOT to use
- You need to process or analyze real experimental LC-MS/MS data—SMITER generates synthetic data only, not analysis tools.
- Your biomolecules cannot be accurately represented by chemical formulas (e.g., undefined posttranslational modifications not in the model).
- You already have reliable ground-truth LC-MS/MS datasets and do not need synthetic gold standards.
Inputs
- CSV file with molecular data (formula, retention time, intensity per molecule)
- Fragmentor class (e.g., PeptideFragmentor or NucleosideFragmentor)
- Noise generator object (e.g., UniformNoiseInjector)
- Simulation parameters (gradient_length, etc.)
Outputs
- mzML file containing simulated LC-MS/MS run with MS1 and MS2 spectra
- Synthetic peak list with isotopic patterns and fragmentation products
How to apply
Load biomolecule molecular data (chemical formulas, retention times, intensities) from a CSV file and convert to peak properties dictionary using smiter.lib.csv_to_peak_properties. Select an appropriate fragmentor module—either PeptideFragmentor for peptides or NucleosideFragmentor for nucleosides—since SMITER offers several peptide fragmentation methods and two nucleoside models. Choose a noise injector (e.g., UniformNoiseInjector or the default intensity-specific noise model). Define simulation parameters including LC gradient length. Execute the simulation via smiter.synthetic_mzml.write_mzml, passing the fragmentor, noise injector, peak properties, and gradient parameters. The tool generates mzML output with isotopic patterns calculated by pyQms, feature intensity scaling (Gaussian, gamma, or exponentially-modified Gaussian distributions), and m/z or intensity noise, producing a complete synthetic LC-MS/MS run.
Related tools
Examples
from smiter.lib import csv_to_peak_properties
from smiter.fragmentation_functions import NucleosideFragmentor
from smiter.noise_functions import UniformNoiseInjector
from smiter.synthetic_mzml import write_mzml
peak_props = csv_to_peak_properties('nucleosides.csv')
write_mzml(peak_properties=peak_props, fragmentor=NucleosideFragmentor(), noise_injector=UniformNoiseInjector(), gradient_length=30, output_path='synthetic_run.mzML')
Evaluation signals
- Output mzML file is valid and can be parsed by standard MS data readers (e.g., mzML validators).
- Generated LC-MS/MS spectra contain expected isotopic patterns consistent with input chemical formulas.
- MS2 fragmentation products match the selected fragmentor model (e.g., peptide backbone cleavages for peptides, nucleoside ring openings for nucleosides).
- Noise level and intensity distribution match configured noise model parameters (e.g., signal-to-noise ratio consistent with UniformNoiseInjector settings).
- Peak retention times and m/z values correspond to input molecular data within numerical precision.
Limitations
- Simulation accuracy depends on correctness of input chemical formulas and fragmentor model parameterization; errors in these inputs propagate to synthetic data.
- SMITER currently offers limited fragmentation models (several for peptides, two for nucleosides); other biomolecule types or unusual fragmentation patterns require custom fragmentor implementation.
- Synthetic datasets lack real-world complexity such as unexpected adducts, instrument artifacts, or rare fragmentation pathways not captured in the model.
- No changelog is available, limiting traceability of model updates or bug fixes across versions.
Evidence
- [readme] This allows for the facile creation of defined gold-standard-LC-MS/MS datasets for any type of experiment.: "This allows for the facile creation of defined gold-standard-LC-MS/MS datasets for any type of experiment."
- [other] SMITER offers two models for nucleoside fragmentation alongside several peptide fragmentation methods, enabling modular selection of fragmentation strategies for different biomolecule types.: "SMITER offers several methods for peptide fragmentation or two models for nucleoside fragmentation."
- [other] Workflow steps from the indexed article for nucleoside simulation.: "Create a peak properties dictionary from input CSV containing nucleoside molecular data using smiter.lib.csv_to_peak_properties"
- [readme] It enables the simulation of any biomolecule since all calculations are based on the chemical formulas.: "It enables the simulation of any biomolecule since all calculations are based on the chemical formulas."
- [readme] As SMITER features a modular design, noise and fragmentation models can easily be implemented or adapted.: "As SMITER features a modular design, noise and fragmentation models can easily be implemented or adapted."
- [other] Specification of the final mzML writing step in the workflow.: "Run the simulation and write the resulting mzML using
smiter.synthetic_mzml.write_mzml"
1---2name: synthetic-lcmsms-data-generation3description: Use when you need to create defined LC-MS/MS datasets with known molecular composition and fragmentation patterns for algorithm validation, method development, or evaluation of analytical challenges (e.g., co-elution prediction).4license: CC-BY-4.05---67# synthetic-lcmsms-data-generation89## Summary1011Generate gold-standard synthetic LC-MS/MS datasets with known ground truth by simulating mass spectrometry runs for any biomolecule using chemical formula-based calculations, modular fragmentation models, and configurable noise injection. This enables controlled testing of MS algorithms and evaluation of co-elution/co-fragmentation challenges before performing actual experiments.1213## When to use1415You need to create defined LC-MS/MS datasets with known molecular composition and fragmentation patterns for algorithm validation, method development, or evaluation of analytical challenges (e.g., co-elution prediction). Typical triggers: testing new MS data processing algorithms, benchmarking peak detection or quantification methods, or studying effects of co-fragmenting molecules on detection sensitivity where experimental ground truth is not readily available.1617## When NOT to use1819- You need to process or analyze real experimental LC-MS/MS data—SMITER generates synthetic data only, not analysis tools.20- Your biomolecules cannot be accurately represented by chemical formulas (e.g., undefined posttranslational modifications not in the model).21- You already have reliable ground-truth LC-MS/MS datasets and do not need synthetic gold standards.2223## Inputs2425- CSV file with molecular data (formula, retention time, intensity per molecule)26- Fragmentor class (e.g., PeptideFragmentor or NucleosideFragmentor)27- Noise generator object (e.g., UniformNoiseInjector)28- Simulation parameters (gradient_length, etc.)2930## Outputs3132- mzML file containing simulated LC-MS/MS run with MS1 and MS2 spectra33- Synthetic peak list with isotopic patterns and fragmentation products3435## How to apply3637Load biomolecule molecular data (chemical formulas, retention times, intensities) from a CSV file and convert to peak properties dictionary using `smiter.lib.csv_to_peak_properties`. Select an appropriate fragmentor module—either PeptideFragmentor for peptides or NucleosideFragmentor for nucleosides—since SMITER offers several peptide fragmentation methods and two nucleoside models. Choose a noise injector (e.g., `UniformNoiseInjector` or the default intensity-specific noise model). Define simulation parameters including LC gradient length. Execute the simulation via `smiter.synthetic_mzml.write_mzml`, passing the fragmentor, noise injector, peak properties, and gradient parameters. The tool generates mzML output with isotopic patterns calculated by pyQms, feature intensity scaling (Gaussian, gamma, or exponentially-modified Gaussian distributions), and m/z or intensity noise, producing a complete synthetic LC-MS/MS run.3839## Related tools4041- **SMITER** (Command-line and Python library for simulation of LC-MS/MS runs and mzML file generation) — https://github.com/LeidelLab/SMITER42- **pyQms** (Provides highly-accurate isotopic pattern calculations used within SMITER) — https://github.com/pyQms/pyqms43- **Python** (Runtime environment and scripting language for SMITER workflows)4445## Examples4647```48from smiter.lib import csv_to_peak_properties49from smiter.fragmentation_functions import NucleosideFragmentor50from smiter.noise_functions import UniformNoiseInjector51from smiter.synthetic_mzml import write_mzml52peak_props = csv_to_peak_properties('nucleosides.csv')53write_mzml(peak_properties=peak_props, fragmentor=NucleosideFragmentor(), noise_injector=UniformNoiseInjector(), gradient_length=30, output_path='synthetic_run.mzML')54```5556## Evaluation signals5758- Output mzML file is valid and can be parsed by standard MS data readers (e.g., mzML validators).59- Generated LC-MS/MS spectra contain expected isotopic patterns consistent with input chemical formulas.60- MS2 fragmentation products match the selected fragmentor model (e.g., peptide backbone cleavages for peptides, nucleoside ring openings for nucleosides).61- Noise level and intensity distribution match configured noise model parameters (e.g., signal-to-noise ratio consistent with UniformNoiseInjector settings).62- Peak retention times and m/z values correspond to input molecular data within numerical precision.6364## Limitations6566- Simulation accuracy depends on correctness of input chemical formulas and fragmentor model parameterization; errors in these inputs propagate to synthetic data.67- SMITER currently offers limited fragmentation models (several for peptides, two for nucleosides); other biomolecule types or unusual fragmentation patterns require custom fragmentor implementation.68- Synthetic datasets lack real-world complexity such as unexpected adducts, instrument artifacts, or rare fragmentation pathways not captured in the model.69- No changelog is available, limiting traceability of model updates or bug fixes across versions.7071## Evidence7273- [readme] This allows for the facile creation of defined gold-standard-LC-MS/MS datasets for any type of experiment.: "This allows for the facile creation of defined gold-standard-LC-MS/MS datasets for any type of experiment."74- [other] SMITER offers two models for nucleoside fragmentation alongside several peptide fragmentation methods, enabling modular selection of fragmentation strategies for different biomolecule types.: "SMITER offers several methods for peptide fragmentation or two models for nucleoside fragmentation."75- [other] Workflow steps from the indexed article for nucleoside simulation.: "Create a peak properties dictionary from input CSV containing nucleoside molecular data using smiter.lib.csv_to_peak_properties"76- [readme] It enables the simulation of any biomolecule since all calculations are based on the chemical formulas.: "It enables the simulation of any biomolecule since all calculations are based on the chemical formulas."77- [readme] As SMITER features a modular design, noise and fragmentation models can easily be implemented or adapted.: "As SMITER features a modular design, noise and fragmentation models can easily be implemented or adapted."78- [other] Specification of the final mzML writing step in the workflow.: "Run the simulation and write the resulting mzML using `smiter.synthetic_mzml.write_mzml`"