# Bruker Solarix Format Parsing

> Use when you have acquired Bruker Solarix FT-ICR-MS raw data (e.g., ESI_NEG_SRFA.d) and need to programmatically access the transient time-domain signal and metadata for zero-filling, apodization windowing (e.g., Hanning), or mass calibration.

- Skill: `holobiomicslab/bruker-solarix-format-parsing` (Agent Skill)
- Install (CLI): `npx skillmds@latest add holobiomicslab/bruker-solarix-format-parsing`
- Raw SKILL.md: https://api.skillmd.com/api/skills/holobiomicslab/bruker-solarix-format-parsing/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-4.0
- Author: HolobiomicsLab (https://skillmd.com/u/holobiomicslab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/holobiomicslab/bruker-solarix-format-parsing

---


# bruker-solarix-format-parsing

## Summary

Parse and load raw Bruker Solarix FT-ICR transient data files (.d directories containing ser/fid files) into an in-memory mass spectrum object. This skill enables downstream signal processing, apodization, and peak detection on vendor-specific FTICR formats without manual format conversion.

## When to use

You have acquired Bruker Solarix FT-ICR-MS raw data (e.g., ESI_NEG_SRFA.d) and need to programmatically access the transient time-domain signal and metadata for zero-filling, apodization windowing (e.g., Hanning), or mass calibration. Use this when raw vendor files must be loaded into a unified Python object model rather than exported to intermediate formats.

## When NOT to use

- Input is already a centroided or processed mass list (CSV, mzML, or Excel); use generic mass list import instead.
- Raw transient file is corrupted or metadata is missing; pre-validate .d directory structure and ser/fid file integrity.
- You require access to all isotopic fine structure or need multi-scan averaging beyond what the transient acquisition provides.

## Inputs

- Bruker Solarix .d directory (containing ser or fid transient file and metadata)
- File path string to .d directory
- CoreMS MSParameters configuration object

## Outputs

- CoreMS MassSpectrum object with m/z peaks, abundances, and metadata
- Processed FT-magnitude spectrum (m/z array, abundance array)
- Spectrum quality metrics (resolving power, peak count, m/z range)

## How to apply

Import the ReadBrukerSolarix class from corems.transient.input.brukerSolarix and instantiate it with the file path to the .d directory. The parser reads the transient (ser/fid) file and metadata, populating a mass spectrum object with time-domain signal, acquisition parameters, and instrument configuration. Configure CoreMS MSParameters (e.g., apodization window function, zero-fill settings) before calling the processing pipeline to generate the final m/z-domain spectrum. The resulting object contains detected m/z peaks, abundances, and resolving power metrics suitable for molecular formula assignment or spectral quality evaluation.

## Related tools

- **CoreMS** (Provides ReadBrukerSolarix class to parse Bruker Solarix transient files and MassSpectrum object model for signal processing and peak detection.) — https://github.com/EMSL-Computing/CoreMS
- **numpy** (Array manipulation and mathematical operations on transient time-domain signal during apodization and FFT.)
- **Bruker Solarix instrument** (Source of raw .d directory format and transient acquisition parameters.)

## Examples

```
from corems.transient.input.brukerSolarix import ReadBrukerSolarix
ms = ReadBrukerSolarix('tests/tests_data/ftms/ESI_NEG_SRFA.d').mass_spectrum
print(f'Peaks: {len(ms.peaks)}, m/z range: {ms.min_mz:.2f}-{ms.max_mz:.2f}')
```

## Evaluation signals

- MassSpectrum object is successfully instantiated with non-empty m/z and abundance arrays after parsing.
- Detected m/z range matches expected analyte region (e.g., 155.87 to 999.66 m/z for SRFA ESI-MS).
- Peak count is consistent with prior acquisitions or expected complexity (e.g., 10588 peaks for ESI_NEG_SRFA.d with stated parameters).
- Metadata fields (instrument model, acquisition date, transient length) are correctly extracted and accessible.
- Apodization window and zero-fill parameters are reflected in the processed spectrum properties without errors.

## Limitations

- Parser supports Bruker Solarix CompassXtract and raw transient formats (ser/fid) in FT magnitude mode only; does not support phase-corrected or other vendor formats.
- Requires Bruker .d directory structure to be intact; partial or reorganized files will fail to load.
- No automatic retry or recovery for incomplete or corrupted transient data; user must validate file integrity before parsing.
- Performance depends on transient file size and system memory; very large transients (>1 GB) may require in-memory management.

## Evidence

- [other] Import the ReadBrukerSolarix class from CoreMS and load the ESI_NEG_SRFA.d transient file.: "from corems.transient.input.brukerSolarix import ReadBrukerSolarix"
- [readme] Bruker Solarix transient data loading capability.: "Bruker Solarix transients, ser and fid (FT magnitude mode only)"
- [other] Result of parsing: 10588 detected m/z peaks spanning from 155.87 to 999.66.: "Using Hanning apodization with zero fill settings on ESI_NEG_SRFA.d produces a mass spectrum with 10588 detected m/z peaks spanning from m/z 155.87 to m/z 999.66."
- [readme] Framework supports vendor data format access.: "CoreMS supports direct access for almost all vendors' data formats, allowing for the centralization and automation of all data processing workflows"
- [readme] Self-containing hierarchical data structure design.: "The data structures were designed with an intuitive, mass spectrometric hierarchical structure, thus allowing organized and easy access to the data"

