Prototype for reading mzPeak files in .NET.
using MZPeak.Reader;
// Open an mzPeak file
var reader = new MzPeakReader("path/to/file.mzpeak");
// Access file-level metadata
Console.WriteLine($"{reader.SpectrumCount} spectra, {reader.ChromatogramCount} chromatograms");
Console.WriteLine($"Storage format: {reader.SpectrumDataFormat}");
// Iterate over spectra asynchronously
await foreach (var (description, data) in reader.EnumerateSpectraAsync())
{
Console.WriteLine($"Spectrum {description.Index}: {description.Id}");
Console.WriteLine($" Time: {description.Time}");
Console.WriteLine($" Points: {data.Length}");
Console.WriteLine($" Profile: {description.IsProfile}, Centroid: {description.IsCentroid}");
// Access scan information
foreach (var scan in description.Scans)
{
Console.WriteLine($" Scan config: {scan.InstrumentConfigurationRef}");
}
// Access precursor information (for MS2+ spectra)
foreach (var precursor in description.Precursors)
{
Console.WriteLine($" Precursor index: {precursor.PrecursorIndex}");
}
}
// Iterate over chromatograms asynchronously
await foreach (var (description, data) in reader.EnumerateChromatogramsAsync())
{
Console.WriteLine($"Chromatogram {description.Index}: {description.Id}");
Console.WriteLine($" Points: {data.Length}");
}TODO: Code sample
See [MZPeakNet.AppTest/Program.cs] TranscodeFile or ThermoTranslate
- Reading
- Array indices
- File-level metadata
- Spectrum metadata
- Chromatogram metadata
- Spectrum data arrays
- Point Layout
- Chunked Layout
- Basic encoding
- Delta encoding
- Numpress and opaque chunk transforms
- Chromatogram data arrays
- Spectrum peak arrays
- Auxiliary arrays
- ZIP archive storage
- Directory storage
- Writing
- File-level metadata
- Spectrum metadata
- Chromatogram metadata
- Data Arrays
- Point Layout
- Chunked Layout
- Spectrum peak arrays
- Auxiliary arrays
- ZIP archive storage
- Directory storage