All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.63.4 - 2026-03-31
- Add
ChromatogramType::ElectromagneticRadiationChromatogram - Add additional metric length, hertz, and volume
Unit - Add
OrdandHashimpls toSpectrumType - Add
is_profileandis_centroidpredicates toSignalContinuity - Add finalized accession codes for Zstd based compression methods
- Add file-level metadata to the Python API
- Update
thermorawfilereaderto v0.6.0, add Excedion to the instrument database, addMZDATA_IGNORE_UNKNOWN_INSTRUMENTto support ignoring unknown instrument models
- Deprecate
main.rs, point tomzinfo.rsexample
- Start python bindings, vis wasm
0.63.3 - 2025-12-06
- Propagate units in
BinaryArrayMap3D::stack
0.63.2 - 2025-12-03
- Support latin1 in mzML param names and values too
0.63.1 - 2025-12-01
- Support latin1 characters for identifiers in spectra and chromatograms for mzML (#47)
- Fix trait method name on count_chromatograms for MzMLb reader
0.63.0 - 2025-11-22
- Add more chromatogram types to
ThermoRawReaderType - Add
ChromatogramSource::count_chromatograms
- Upgrade to PSI-MS CV 4.1.217
- Fix
ChromatogramType::Unknownaccession
0.62.1 - 2025-11-07
- Add units to Thermo reader arrays
0.62.0 - 2025-11-06
- Properly set units on Bruker TDF arrays
- Use a much faster algorithm in
BinaryArray3D::unstack
0.61.0 - 2025-11-02
- Add
MZReaderType::open_read_genericandMZReaderType::open_read_seek_genericto abstract away compression - Add
ConcurrentLoaderutility, still too low level - Add support for imzML (#36) contributed by @poshul
- Add more documentation for recent features
- Breaking change to make
PrecursorSelectionsafer with fewer precondition assumptions about the existence of selected ions
- Fix error in
BinaryArrayMap3D::unstackskipping some m/z values
- Breaking change that removes automatic
IonPropertiesimplementation from allPrecursorSelectionimplementation
0.60.3 - 2025-10-12
AsyncSpectrumSource::get_spectrum_by_indexno longer required to beSend
0.60.2 - 2025-10-12
- Add more detail about how mzML works with
DetailLevel::Lazy - Add
MZReaderType::open_spectrafor easily converting a collection of spectra into anMZReaderType
- Grammar
- Simplified curie macro (#39)
- Update the README example code to use
MZReaderinstead of themz_readmacro - Fix
async_partialcompilation
0.60.0 - 2025-10-07
- Document the feature flags
- Fix a collection of inconsistent function and trait documentation
- Make
mzmlbbuild again - Fix shorthand macros to work in scopes that do not return
io::Result - Do not test HDF5 static linkage on Windows
- Don't call fs::File::open on directories while inferring file format (#34)
- Refactored the units to use a macro for guarenteed round tripping (#35)
0.59.2 - 2025-09-21
- Add attribute to hold data processing method references to
DataArrayinstances. - Add precursor stack manipulation tools to
SpectrumLikeand similar.
0.59.1 - 2025-09-18
- Add charge state to all peptides in PROXI queries in tests, some servers appear to require them now
- Fix trait impl for mzMLb
- Fix PROXI clients for several backends that require HTTPS requests and which serve non-compliant error messages
0.59.0 - 2025-09-18
- Change
SpectrumDescription::precursorfromOption<Precursor>toVec<Precursor>, and same for related types.
0.58.2 - 2025-09-13
- Add
TryFrom<&BinaryArrayMap>forPeakDataLevel
0.58.1 - 2025-09-12
- Add MGF title parsing machinery to public API of
mzdata::io::mgf - Add conversion from
mzdata::params::Valuetoserde_json::Valuewhen the appropriate feature is enabled
- Expand on the tutorial documentation
- Update documentation
- Update documentation
0.58.0 - 2025-08-24
- Add configurable indexing and title parsing strategies for
MGFReaderTypeviaMGFIndexingtrait. - Add
from_accessionmethod toBinaryCompressionType - Add units to peak to array conversion
0.57.1 - 2025-08-17
- Add
SpectrumTypeand related machinery for spectrum classification
0.57.0 - 2025-08-03
- Add
get_data_arrays_fortoThermoRawReaderTypefor loading data arrays without the additional metadata - Add
iter_buffertoStreamingSpectrumIteratorto borrow the spectrum buffer
0.56.0 - 2025-07-20
- Fix bug in
BinaryArrayMap3D::unstack
0.55.0 - 2025-07-17
- Add
ChromatogramLiketo the prelude - Add
ArrayType::from_accessionandBinaryDataArrayType::from_accessionto convert from CURIEs - Add ISQ7000, Orbitrap Exploris GC 240, support multiple FAIMS voltages (#26)
-
Add Orbitrap Exploris GC 240, to supported instruments. Added some debugging statements to make diagnosing missing instrument types easier in the future
-
Add ISQ 7000, fix typo in reverse_transpose
-
remove unknown detector type, bump number of instruments
-
support multiple CompensationVoltageValues
-
Add handling of FAIMS start and end ramp, add warning if there are more than 2 faims voltages
-
Update Cargo.toml
- Add support for
ScanSettingssection; fix bug in decompression of Numpress
- Fix recognition of wavelength array in mzML
0.53.0 - 2025-05-26
- Add prototype Zstandard, Numpress, and dictionary-based binary data array compression methods (#24)
- add more
MS-Numpressencodings - feature: add units to common arrays
- change: change TDF peak collapsing to be off by default
- doc: document the behavior of
TDFSpectrumReaderType - feature: add byte shuffling to the dictionary encoding
- chore: pin Rust toolchain version in test to 1.86 due to hostfxr-sys + syn issue
0.52.0 - 2025-04-08
- Add temperature and pressure units
- Avoid attempting to serialize a parameter value that is a buffer.
- Change the order of merges in TDF peak flattening
- Change attribute newline detection to use
memchr - Do not try to marshal peaks if peaks already exist with
MultiLayerSpectrum::try_build_peaks - Do not include a tag when serializing
PROXIAccession - Fix comparison in
HasIonMobility
- Remove newline escaping in mzML attribute values, trust the XML library to escape what needs to be
0.51.0 - 2025-03-27
- Add temperature and pressure units
- Avoid attempting to serialize a parameter value that is a buffer.
- Change attribute newline detection to use
memchr
- Remove newline escaping in mzML attribute values, trust the XML library to escape what needs to be
0.50.0 - 2025-03-20
- Add a more efficient implementation of
nthto someSpectrumSource-based iterators and addget_group_by_indextoSpectrumSource - Add
MZReaderType::open_gzipped_read_seekto conveniently handle gzipped files - Add
MZReaderType::open_gzipped_readto read non-seek-able gzipped streams. Less efficient buffering but does the job.
- Change
BinaryArrayMap3D's serialization to serialize IM-array map pairs in an array instead of a map, requiringserde_with
0.49.0 - 2025-03-12
- Add basic tests for Bruker TDF file reading
- Changed
MZReaderType::Unknownto requireSync
0.48.3 - 2025-03-12
- Add BrukerTDF support to
MZReaderType::open_path
0.48.2 - 2025-02-20
- Add proper handling of TDF DIA windows
0.48.1 - 2025-02-19
- Fix reading of DIA TDF files
0.48.0 - 2025-02-18
- Add ion mobility unit propagation to
IonMobilityFrameLiketypes
- Upgrade minimum
mzsignalversion to fix malformed mz peak picking numerical errors - Formally use the expanded ion mobility
ArrayTypes, can't solve units
- Remove the requirement for
Defaulton peak types throughout the library
0.47.0 - 2025-02-15
- Add chromatogram data reader to
bruker_tdf
Generic3DIonMobilityFrameSource::nextwill skip spectra without ion mobility dimension
0.46.1 - 2025-02-11
- Add automatic item count caching prior to compressing a
DataArray
- Improve documentation about file format-related features
0.46.0 - 2025-02-09
- Fix
mz_readandmz_writemacro feature leakage
0.45.0 - 2025-02-08
- Refactor to allow completely disabling parser machinery and create proxy crate
mzdata-spectrato re-export the remaining symbols (#21)
0.44.0 - 2025-02-02
- Add
BuildArrayMap3DFromandBuildFromArrayMap3Dto the prelude
- Fix first instrument configuration to in TDF to count ID from 0
- Prevent TDF reader index-out-of-bounds slice in
FrameToArrayMapper
0.43.0 - 2025-02-01
- Add
IntoIonMobilityFrameSourceforStreamingSpectrumIterator
- Fix error in
is_tdf
0.42.0 - 2025-01-26
- Add
AsyncThermoRawReaderTypeandAsyncMZReaderType, with associated supporting types - Add support for more
ArrayTypes - Add optional arrays when available to Thermo data
- Add
MultiLayerIonMobilityFrame::try_build_features - Add
FileMetadataConfigto consolidateMSDataFileMetadatadetails into a single type that's easier to compose. - Async thermo import in doc-only mode
- Add ion mobility frame dispatch via
IntoIonMobilityFrameSourceandIMMZReaderType
- Fix off-by-one error in feature conversion
0.41.0 - 2025-01-02
- Add
AsyncSpectrumSourcetrait and addasync_partialfor WASM-compatibility - Add feature-gated
serdesupport formzdatatypes
- Make USI provenance identifer parsing more robust and abstract over repository codes
-
Fixed parsing bug for USI continaining a 'shielded' colon.
-
Changed USI parsing of provinances to use hardcoded provinance identifiers
-
Moved to rsplit_once
-
Handled provenance repositories better
0.40.0 - 2024-12-15
- Add
AsyncMGFReaderType
- Make mzML parser tolerate some misformatted XML attributes better
0.39.0 - 2024-11-30
- Add EFO, OBI, HANCESTRO and BFO controlled vocabularies
- Add NCIT, BTO, and PRIDE to
ControlledVocabulary
- Incrementally move towards decoupling
CURIEfromu32 - Fix
FileMetadataBuilderconsumption to set mzML spectrum count hint
0.38.0 - 2024-11-30
- Add
set_spectrum_count_hinttoMSDataFileMetadata
0.37.0 - 2024-11-29
- Add
detail_levelmanipulation toSpectrumSourceand equivalents - Add
has_ion_mobility_dimensiontoSpectrumLike - MSV collections appear to be unsupported by PROXI backends, and the MassiVE server is broken
- Add Bruker TDF support
- Add more documentation and tutorial
- MzML(b) readers attempt to eagerly instantiate peak lists with
try_build_peaks
- Include
source_file_nametodelegate_impl_metadata_trait - Thermo and MZReaderType time random access fixes
- Fix parameter conversion for mzML in
MassSpectrometryFormat::as_param - Fix typo in
ChromatogramLike::chromatogram_type - Fix FWHM assignment during reprofiling in
average_spectra(GH #17)
0.36.0 - 2024-11-11
- Adjust test using
extract_features_simplefor newmzsignalbehavior
- Upgrade to
mzpeaks v0.23.0andmzsignal v0.26.0and organize dependencies - Split the
thermoimplementation so it does not require a .NET library during documentation building - Refactor scan unit grouping trait locations, preserve import paths
- Upgrade to
mzsignal v0.27.0
0.35.0 - 2024-11-01
- Add
ParamBuilderto make buildingParameasier - Add
unit_muttoByteArrayViewMut - Add error handling logic to nativeID format parsing logic
- Add
MZReaderBuildertype to the public API - Add more metadata types to the public API
- Add
spectrum_referencetoScanEvent - Add source-manipulation functions to
Generic3DIonMobilityFrameSource - Added method to retrieve the raw spectrum from any USI (#15)
- Added
USI::download_spectrum_blockingandUSI::download_spectrum_asyncto retrieve the designated spectrum from a PROXI server
- Added
- Change the hashing function for
mzdata::spectrum::CollatortoIdentityHasher
- Fix multiple errors in
BinaryArrayMap3D
0.35.0 - 2024-11-01
- Add
ParamBuilderto make buildingParameasier - Add
unit_muttoByteArrayViewMut - Add error handling logic to nativeID format parsing logic
- Add
MZReaderBuildertype to the public API - Add more metadata types to the public API
- Add
spectrum_referencetoScanEvent - Add source-manipulation functions to
Generic3DIonMobilityFrameSource - Added method to retrieve the raw spectrum from any USI (#15)
- Added
USI::download_spectrum_blockingandUSI::download_spectrum_asyncto retrieve the designated spectrum from a PROXI server
- Added
- Change the hashing function for
mzdata::spectrum::CollatortoIdentityHasher
- Fix multiple errors in
BinaryArrayMap3D
0.34.0 - 2024-10-31
- Fix parsing precursor charge in MGF files (#13)
-
fix parsing precursor charge in MGF files
This fixes two issues:
- the charge value in the PEPMASS header can have the same suffixed format as the CHARGE header
- the order of the headers isn't determined, so the charge value should still be saved correctly if the CHARGE header is before the PEPMASS header
0.33.0 - 2024-10-17
- Fixed crash while mgf parsing (#12)
- Fixed rare crash while mgf parsing
- Fixed silent error that returns an unfinished spectrum
- Handle charge when the sign is at the tail
0.32.0 - 2024-10-14
- Add some Thermo scan trailer values to
ThermoRawReaderType - Add
NativeSpectrumIdentifierFormatTerm::format
- Upgraded
mzpeaksandmzsignaldependencies
0.31.0 - 2024-10-03
- Upgrade to
thermorawfilereaderv0.3.0
- Test on thermo feature instead of dependency (#10)
- Fix
mass_charge_ratioorder of operations error
0.30.0 - 2024-09-23
- Add
MZReaderBuilderto make configuringMZReaders easier - Add CV-derived dissociation methods and energies, update vendored PSI-MS CV
- Add more descriptive failure messages when parsing MGF files
- Add more descriptive errors and failure messages when encountering errors while parsing mzML files
- Publicly re-export
mzpeaksdependency to guaranteemz_readworks (#9) Prevent downstream users needing to declare a dependency on mzpeaks when using mz_read macro. This also prevents potential version mismatches.
0.29.0 - 2024-09-07
- Add PROXI format parser/serializer in
mzdata:io:proxi, no network request feature.
- Upgrade
thermorawfilereaderto v0.2.9, theoretically making an absent .NET framework to be non-fatal - Upgrade
mzsignaland enable new AVX feature
- Change
average_spectrato take an iterator overSpectrumLike(#6)
- Allowed average from an iterator and added more documentation
0.28.1 - 2024-09-01
- Revert
mzsignalchange to fix downstream crashes while averaging
0.28.0 - 2024-08-30
- Add
PeakDataIterDispatchto the public API - Add more descriptive documentation for
meta-metadata types.
- Upgraded
mzpeaksv0.20.0,mzsignalv0.21.0,thermorawfilereaderv0.2.7
0.27.0 - 2024-08-25
- Add dispatching implementation to
PeakDataIterandRefPeakDataIter - Add basic
USIparsing
- Do not
panicwhen requested MGF ID not in the index (#5) - Port #5 to all other reader types
0.26.0 - 2024-08-10
- Added
Unit::VoltSecondPerSquareCentimeter - Added
BinaryArrayMap3D::ion_mobility_unit - Add
getanditermethods forPeakDataLevelandRefPeakDataLevel - Add tutorial for spectrum types
- Add
Sampleto theMSDataFileMetadata - Add basic
usiparsing.
- Change
MzMLWriterTypemethods to be generic to peaks. All the writing methods are generic over peak types so long as they satisfy theBuildArrayMapFromconstraint. The type still needs type parameters for default behavior. This may cause parameter inference issues forRawSpectrumin which case useSpectrumWriter::write.
- More docs
- Fix mzpeaks API breakage
0.25.0 - 2024-07-26
- Add
NativeSpectrumIdentifierFormatTermandMassSpectrometerFileFormatTermenums for CV subsetsNativeSpectrumIdentifierFormatTermcorresponds to "native spectrum identifier format" and includes a regular expression from the controlled vocabulary for parsing ids.MassSpectrometerFileFormatTermcorresponds to "mass spectrometer file format". No extra behavior.
- Add
IonMobilityFrameGroupplus associated iterators and traits. - Add
BuildArrayMap3DFromandBuildFromArrayMap3Dtraits - Add
IonMobilityFrameWritertrait - Add
read_checksumtoMzMLReaderType - Add
BuildArrayMap3DFromandBuildFromArrayMap3Dto the public API - Add
IonMobilityFrameWriterimplementation for mzML and mzMLbFeatureDataLevelandRefFeatureDataLevelto mirror the peak set equivalents forIonMobilityFrameLike- Implement
From<MultiLayerIonMobilityFrame>forRawSpectrumto letIonMobilityFrameWriterre-use most ofSpectrumWriter.
- Change
RawSpectrumto beSpectrumLikeover all peak types. - Upgrade controlled vocabulary
- Rename methods of
IonMobilityFrameWriterto not clash withSpectrumWriter
- Fixed error in setting highest observed m/z in
SpectrumLike::update_summaries
0.24.0 - 2024-07-18
- Upgrade
mzsignalto v0.18.0
0.23.0 - 2024-07-17
- Upgraded
serde,rayon
- Don't write duplicate CV params about MS level
- Write the correct size of the chromatogram list in mzML
- Fix up type names in the spectrum documentation
0.22.0 - 2024-07-16
- Add owning variants for
write_allSpectrumWriter - Add
ChromatogramSourcetrait for producingChromatograms - Add
nameandunittoByteArrayView
- Change
OffsetIndexkey toBox<str>This reduces memory consumption. - Upgraded
mzsignalminimum version
- Fix error in search-by-time methods
0.21.0 - 2024-07-01
- Add Dimensionless to
Unitfor arrays without units - Add ion mobility stacked spectra support, initial build out of trait system.
- Add Boolean variant to
ParamValuetypes
- Fixed #3 empty spectrum from trailing newlines in MGF
0.20.0 - 2024-05-30
- Handle unknown mass analyzers slightly more gracefully.
- Actually use the fast path when pre-encoding arrays
0.19.0 - 2024-05-26
- Add more convenience methods for populating
InstrumentConfigurationandParamDescribedtypes - Support writing to STDOUT properly in
mzconvertexample
- Fixed the creation of
InstrumentConfigurationfrom Thermo RAW files
0.18.0 - 2024-05-25
- Upgraded
mzpeaksminimum version to 0.12.0,mzsignalminimum version to 0.13.0 - Change how spectrum summary descriptions are calculated
- Do not pre-emptively re-calculate summaries when writing to avoid decoding overhead.
- Added
update_summariestoSpectrumLikeandfetch_summariestoRefPeakDataLevelto do this work.
- Upgrade mzsignal minimum version to 0.14.0
- Fix changelog
0.17.0 - 2024-05-18
- Upgraded
mzpeaksminimum version to 0.12.0,mzsignalminimum version to 0.13.0 - Change how spectrum summary descriptions are calculated
- Do not pre-emptively re-calculate summaries when writing to avoid decoding overhead.
- Added
update_summariestoSpectrumLikeandfetch_summariestoRefPeakDataLevelto do this work.
- Fix changelog
0.16.0 - 2024-05-07
- Added Thermo instrument methods to Thermo instrumentConfiguration
- Add
Hashimplementation forParam,Value, and associated ref types - Add
referenceParamGroupinference forinstrumentConfigurationwhen writing mzML, and escape newlines inParamvalues
- Properly set compression in store_compressed
- Empty buffer coercion failure on Linux (#2)
- Prevent slice coercion from failing in coerce_mut
- Prevent potential unwrap failures in PeakData.base_peak when dealing with unorderable floats
0.15.0 - 2024-05-02
- Added
store_compressedtoDataArrayto support compression at-will - Added
encode_arrayto specify compression state of aDataArrayinBinaryArrayMap
- Export the utils module for convenience
- Add documentation for more of the param module
- Simplify and document peak type blanket traits
- Document new compression methods
- MGF spectra are properly classified as MS2 and centroid
- PeakDataLevel is now exported as was originally intended
- Use git-cliff
0.14.0 - 2024-04-25
- Added dependency on
chronoto parse thestartTimeStampin mzML(b), and the equivalent Thermo property. - Added more conversion convenience methods for parameter-like enums:
MassSpectrometryFormatFormatConversion
- Added
mzdata::meta::custom_software_nameconvenience for creating a CV parameter describing an unreleased tool. Helpers to deal with published tools will be worked on soon. - Added
MassSpectrometryRuntoThermoRawReaderType. - Added
ValueandValueReftypes which are used to holdcvParam/userParamvalues with eager parsing. While not an actual space savings, this removes the need to repeatedly parse values if they are accessed more than once. They support coercion via theParamValuetrait in the prelude.ParamandParamCowalso implement this trait and delegate it to theirvaluefield. - Added
ion_mobility,filter_string, andmass_resolutionmethods toScanEventthat performcvParamlook ups. - Added
MGFStyletraits and marker types that control how MGF spectrum headers are populated. The default behavior is now encapsulated in the default style,MZDataMGFStyle. - Added
SoftwareTermenumeration generated from thepsi-ms.obo.
- The
MassSpectrometryRun.start_timefield is now achrono::DateTimeinstead ofString. ParamandParamCownow store their values asValue/ValueRef, which eagerly parse their values to elide the parsing cost on repeated access.CURIEcan now be constructed with themzdata::curiemacroMGFWriterTypenow takes a fourth template parameter, a type implementing theMGFStyletrait. This is parameterized by default.- The
MGFWriterType's public API has been expanded and the internal responsibilities refactored so that thewrite_headerandwrite_peaksmethods are more succinct.
0.13.0 - 2024-03-28
MGFReaderTypeandMGFWriterTypeimplementMSDataFileMetadataThermoRawFileReaderhas been added to read Thermo RAW files when the .NET 8 runtime is available, usingthermorawfilereaderSourceandSinkalgebraic types to represent things that spectra can be read from or written to.mz_readandmz_writeare macros to open files for reading and writing in unboxed context, but which only live within a scoped closure.MassSpectrometryReadWriteProcesstrait for orchestrating reading from aSource, writing to aSink, and transforming the data through an arbitrary function specified as part of the trait implementation. Likemz_read/mz_write, the scope enclosed by the trait method.
MGFWriterTypenow generates a spectrum title when one is absent, rather than defaulting to the spectrum's native ID.CURIEcan now be compared toParam- Renamed
ScanWritertoSpectrumWriterandScanSourcetoSpectrumSourcefor consistency with other trait naming conventions. MZFileReader::open_filenow returns anio::Resultin keeping with the idea that reading aFilemight fail as well, even if it is already open, because it is the wrong type of file. This also allows file formats that cannot be read from arbitraryio::Readobjects to signal failure without crashing the whole system.Collator,std::sync::mpsc::{Sender, SyncSender}now implementSpectrumWriterwhen properly parameterized.PeakDataLevelhas been refactored into two types,PeakDataLevelis an owning type andRefPeakDataLevelis a borrowing type.
0.12.0 - 2024-01-29
- Require a newer version of
mzsignal, fixing the rather embarrassing error of swapping FWHM and SNR during peak picking. - Thicken the use of internal abstraction around
PrecursorSelectionfor the future of allowing more than oneSelectedIonperPrecursor.
0.11.0 - 2024-01-24
- Added an
hdf5_staticflag to build the HDF5 library from source at build time.
- Removed
SpectrumLikefrom the crate root, it is more appropriately imported with the rest of the prelude.
0.9.0 - 2024-01-20
RestartableGzDecoderadded tomzdata::ioto provide anio::Seekcompatible GZIP decompressor, with the caveat that seeking backwards requires re-reading everything read thus far and that seeks cannot be relative to the EOF.- Added documentation to more examples.
infer_from_streamhandles compressed streams correctly without triggering an unexpected EOF error.MGFWriterTypeproperly formats additional annotations.
0.8.0 - 2024-01-10
- Added
closeto theSpectrumWritertrait which "closes" the formatted structure of the file. As Rust lacks a notion of a "closed"io::Write, the underlying writer isn't actually "closed" until the whole struct is dropped. - Added
Dropimplementation forMzMLWriterTypeandMzMLbWriterTypewhich ensures that theclosemethod is called to make the resulting file well-formed. - Added new peak picking methods
MultiLayerSpectrum::pick_peaks_in_intervalsandRawSpectrum::pick_peaks_in_intervals_intothat pick peaks only in selected m/z regions. - Added
MassSpectrometryRunto record information found on or near the<run>element in mzML which includes several default values otherwise absent from the data model. It is accessible viaMSDataFileMetadata::run_descriptiontrait method, included in the prelude. - Added the
MSDataFileMetadata::spectrum_count_hintwhich returns the total number of spectra in the file, if available. - Added
MSDataFileMetadataimplementations forSpectrumIterator,StreamingSpectrumIterator, andSpectrumGroupingIteratorwhere their sources do. SpectrumGroupingIteratorand other such iterator supportRandomAccessSpectrumGroupingIterator.
SpectrumWriterno longer applies a lifespan requirement on individual writing operations.filenameis no longer a required dependency, it is only needed to useMzMLbReaderType::from_filewhich otherwise panics. It introduces unpredictable and difficult to diagnose compilation errors.MGFWriterTypeskips MS1 spectra automatically.
- Properly track whether the
spectrumListhas been finished by mzML parsers. - Iteration over
SpectrumGroupingwhen there are missing components has been fixed. - Binary data arrays may panic if empty on certain platforms with certain compression schemes.
0.7.0 - 2023-12-25
- Limited async mzML reader support
- mzMLb read and write support
- Reading mzML and MGF from
STDIN. HDF5, and ergo mzMLb is not supported on non-seek-able I/O devices. See thefrom_stdinexample. - Parsing of mzML
runandspectrumListmetadata, although they are still not a part of the common data model - Spectrum averaging now has eager
averagingandaveraging_deferredadapter implementations as iterator adapters onSpectrumGroupIterator. The deferred adapter is preferred for distributing the process withrayon. See theaveraging_writerexample. - Added ordered parallel iteration collation with
mzdata::spectrum::Collatorto make consumingrayoniterators easier while preserving the original order. Seeaveraging_writerexample. - The mzML and mzMLb writers now write the total ion chromatogram and base peak chromatogram
RandomAccessScanIteratormethods now return mutable references to self, making them actually useful in a chain.- Make some window size attributes smaller as they do not require double precision.
- Clean up the internal implementation of the various internal
SpectrumBuildertypes. - Factor up
mzdata::spectrum::signalto be less monolithic and a complete redesign of the traits used to convertmzpeaksto and from binary arrays. - Massive refactoring of
mzdata::io::traitsto make more traits depend uponSpectrumSourceinstead ofSpectrumIteratorand to make things slightly less verbose. - Switched the default
mzsignalbackend tonalgebrainstead ofintel-mklfor simplicity.
0.5.0 - 2021-09-22
- MzML writing via
mzdata::io::mzml::MzMLWriter - Added feature flags to allow the user to choose amongst more
flate2backends (zlib default, zlib-ng-compat, miniz_oxide) - Grouped iteration mode for connecting precursor and product spectra over an iterator stream using the
groupsmethod ofSpectrumSource.
- Re-structuring and renaming of the various iterator mechanisms for more
consistency.
ScanIterator->SpectrumIterator, et cetera. Minor refactoring of this sort expected to come forSpectrumSourceas responsibilities are worked out.
- Fixed documentation in several places, particularly where it was substantially out of date.