diff --git a/src/io/mzml/reader.rs b/src/io/mzml/reader.rs index 94146ba..e204383 100644 --- a/src/io/mzml/reader.rs +++ b/src/io/mzml/reader.rs @@ -151,36 +151,41 @@ pub trait SpectrumBuilding< } } 1002477 => { + self.current_array_mut().name = ArrayType::MeanDriftTimeArray; + self.current_array_mut().unit = param.unit(); + } + 1002816 => { self.current_array_mut().name = ArrayType::MeanIonMobilityArray; - self.current_array_mut().unit = Unit::Millisecond; + self.current_array_mut().unit = param.unit(); } 1003006 => { - self.current_array_mut().name = ArrayType::MeanIonMobilityArray; - self.current_array_mut().unit = Unit::VoltSecondPerSquareCentimeter; + self.current_array_mut().name = ArrayType::MeanInverseReducedIonMobilityArray; + self.current_array_mut().unit = param.unit(); } 1003007 => { - self.current_array_mut().name = ArrayType::IonMobilityArray; - self.current_array_mut().unit = Unit::Unknown; + self.current_array_mut().name = ArrayType::RawIonMobilityArray; + self.current_array_mut().unit = param.unit(); } 1003153 => { - self.current_array_mut().name = ArrayType::IonMobilityArray; - self.current_array_mut().unit = Unit::Unknown; + self.current_array_mut().name = ArrayType::RawDriftTimeArray; + self.current_array_mut().unit = param.unit(); } 1003156 => { - self.current_array_mut().name = ArrayType::IonMobilityArray; - self.current_array_mut().unit = Unit::Millisecond; + self.current_array_mut().name = ArrayType::DeconvolutedDriftTimeArray; + self.current_array_mut().unit = param.unit(); } 1003008 => { - self.current_array_mut().name = ArrayType::IonMobilityArray; - self.current_array_mut().unit = Unit::VoltSecondPerSquareCentimeter; + self.current_array_mut().name = ArrayType::RawInverseReducedIonMobilityArray; + self.current_array_mut().unit = param.unit(); } 1003154 => { - self.current_array_mut().name = ArrayType::DeconvolutedIonMobilityArray; - self.current_array_mut().unit = Unit::Millisecond; + self.current_array_mut().name = ArrayType::DeconvolutedDriftTimeArray; + self.current_array_mut().unit = param.unit(); } 1003155 => { - self.current_array_mut().name = ArrayType::DeconvolutedIonMobilityArray; - self.current_array_mut().unit = Unit::VoltSecondPerSquareCentimeter; + self.current_array_mut().name = + ArrayType::DeconvolutedInverseReducedIonMobilityArray; + self.current_array_mut().unit = param.unit(); } _ => { self.current_array_mut().add_param(param.into()); @@ -2744,34 +2749,42 @@ mod test { builder._reset(); } let pairs = [ - (1002477, ArrayType::MeanIonMobilityArray, Unit::Millisecond), + (1002477, ArrayType::MeanDriftTimeArray, Unit::Millisecond), ( 1003006, - ArrayType::MeanIonMobilityArray, + ArrayType::MeanInverseReducedIonMobilityArray, Unit::VoltSecondPerSquareCentimeter, ), - (1003007, ArrayType::IonMobilityArray, Unit::Unknown), - (1003153, ArrayType::IonMobilityArray, Unit::Unknown), - (1003156, ArrayType::IonMobilityArray, Unit::Millisecond), + (1003007, ArrayType::RawIonMobilityArray, Unit::Unknown), + (1003153, ArrayType::RawDriftTimeArray, Unit::Unknown), + ( + 1003156, + ArrayType::DeconvolutedDriftTimeArray, + Unit::Millisecond, + ), ( 1003008, - ArrayType::IonMobilityArray, + ArrayType::RawInverseReducedIonMobilityArray, Unit::VoltSecondPerSquareCentimeter, ), ( 1003154, - ArrayType::DeconvolutedIonMobilityArray, + ArrayType::DeconvolutedDriftTimeArray, Unit::Millisecond, ), ( 1003155, - ArrayType::DeconvolutedIonMobilityArray, + ArrayType::DeconvolutedInverseReducedIonMobilityArray, Unit::VoltSecondPerSquareCentimeter, ), ]; for (acc, term, unit) in pairs { - builder.fill_binary_data_array(ControlledVocabulary::MS.param(acc, term.to_string())); + builder.fill_binary_data_array( + ControlledVocabulary::MS + .param(acc, term.to_string()) + .with_unit_t(&unit), + ); assert_eq!(builder.current_array.name, term); assert_eq!(builder.current_array.unit, unit); builder._reset(); diff --git a/src/io/mzml/writer.rs b/src/io/mzml/writer.rs index 684a2d0..adb8ae7 100644 --- a/src/io/mzml/writer.rs +++ b/src/io/mzml/writer.rs @@ -23,10 +23,12 @@ use mzpeaks::{CentroidPeak, DeconvolutedPeak}; use crate::io::traits::IonMobilityFrameWriter; use crate::meta::{ - ComponentType, DataProcessing, FileDescription, InstrumentConfiguration, MSDataFileMetadata, MassSpectrometryRun, Sample, Software + ComponentType, DataProcessing, FileDescription, InstrumentConfiguration, MSDataFileMetadata, + MassSpectrometryRun, Sample, Software, }; use crate::params::{ - AccessionIntCode, ControlledVocabulary, Param, ParamCow, ParamDescribed, ParamDescribedRead, ParamLike, ParamValue, Unit, ValueRef + AccessionIntCode, ControlledVocabulary, Param, ParamCow, ParamDescribed, ParamDescribedRead, + ParamLike, ParamValue, Unit, ValueRef, }; use crate::spectrum::bindata::{ to_bytes, ArrayRetrievalError, ArrayType, BinaryArrayMap, BinaryCompressionType, @@ -985,7 +987,7 @@ where fn write_sample_list(&mut self) -> WriterResult { if self.samples.is_empty() { - return Ok(()) + return Ok(()); } let mut outer = bstart!("sampleList"); let count = self.samples.len().to_string(); @@ -1499,8 +1501,11 @@ where fn write_ms_level< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static - >(&mut self, spectrum: &S) -> WriterResult { + S: SpectrumLike + 'static, + >( + &mut self, + spectrum: &S, + ) -> WriterResult { let ms_level = spectrum.ms_level(); match ms_level { 1 => self.handle.write_param(&MS1_SPECTRUM)?, @@ -1519,8 +1524,11 @@ where fn write_polarity< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static - >(&mut self, spectrum: &S) -> WriterResult { + S: SpectrumLike + 'static, + >( + &mut self, + spectrum: &S, + ) -> WriterResult { match spectrum.polarity() { ScanPolarity::Negative => self.handle.write_param(&NEGATIVE_SCAN), ScanPolarity::Positive => self.handle.write_param(&POSITIVE_SCAN), @@ -1537,8 +1545,11 @@ where fn write_continuity< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static - >(&mut self, spectrum: &S) -> WriterResult { + S: SpectrumLike + 'static, + >( + &mut self, + spectrum: &S, + ) -> WriterResult { match spectrum.signal_continuity() { SignalContinuity::Profile => self.handle.write_param(&PROFILE_SPECTRUM), SignalContinuity::Unknown => { @@ -1555,7 +1566,7 @@ where fn write_signal_properties< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static + S: SpectrumLike + 'static, >( &mut self, spectrum: &S, @@ -1650,11 +1661,18 @@ where self.handle.write_param(&array.name.as_param_const())? } ArrayType::TimeArray - | ArrayType::RawIonMobilityArray - | ArrayType::MeanIonMobilityArray - | ArrayType::DeconvolutedIonMobilityArray => self + | ArrayType::TemperatureArray + | ArrayType::FlowRateArray + | ArrayType::PressureArray + | ArrayType::WavelengthArray + | ArrayType::IonMobilityArray => self .handle .write_param(&array.name.as_param_with_unit_const(array.unit))?, + x if x.is_ion_mobility() => { + self + .handle + .write_param(&array.name.as_param_with_unit_const(array.unit))? + }, ArrayType::NonStandardDataArray { name } => { let mut p = self.ms_cv @@ -1781,7 +1799,7 @@ where pub fn spectrum_has_summaries< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static + S: SpectrumLike + 'static, >( &self, spectrum: &S, @@ -1818,7 +1836,7 @@ where pub fn write_spectrum_descriptors< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static + S: SpectrumLike + 'static, >( &mut self, spectrum: &S, @@ -1852,7 +1870,7 @@ where pub fn write_spectrum< C1: CentroidLike + Default + BuildArrayMapFrom, D1: DeconvolutedCentroidLike + Default + BuildArrayMapFrom, - S: SpectrumLike + 'static + S: SpectrumLike + 'static, >( &mut self, spectrum: &S, diff --git a/src/io/mzmlb/writer.rs b/src/io/mzmlb/writer.rs index 3db3dec..389e43f 100644 --- a/src/io/mzmlb/writer.rs +++ b/src/io/mzmlb/writer.rs @@ -200,7 +200,7 @@ impl Display for BufferName { ArrayType::NonStandardDataArray { name } => Cow::Owned(name.replace(['/', ' '], "_")), ArrayType::BaselineArray => Cow::Borrowed("baseline"), ArrayType::ResolutionArray => Cow::Borrowed("resolution"), - _ => Cow::Owned(self.array_type.to_string()) + _ => Cow::Owned(self.array_type.to_string().replace(['/', ' '], "_").to_lowercase()) }; let dtype = match self.dtype { BinaryDataArrayType::Unknown => "unknown", diff --git a/src/io/tdf/arrays.rs b/src/io/tdf/arrays.rs index 3864116..c81aadb 100644 --- a/src/io/tdf/arrays.rs +++ b/src/io/tdf/arrays.rs @@ -106,7 +106,7 @@ impl<'a> FrameToArraysMapper<'a> { BinaryArrayMap3D::from_ion_mobility_dimension_and_arrays( im_dimension, - ArrayType::IonMobilityArray, + ArrayType::MeanInverseReducedIonMobilityArray, Unit::VoltSecondPerSquareCentimeter, arrays, ) diff --git a/src/io/tdf/reader.rs b/src/io/tdf/reader.rs index 966965c..411614d 100644 --- a/src/io/tdf/reader.rs +++ b/src/io/tdf/reader.rs @@ -5,17 +5,12 @@ use std::{ use chrono::DateTime; -use crate::{ - io::IntoIonMobilityFrameSource, - mzpeaks::{CentroidPeak, DeconvolutedPeak}, -}; - #[allow(unused)] use crate::io::checksum_file; use crate::{ curie, - io::{DetailLevel, IonMobilityFrameAccessError, OffsetIndex}, + io::{DetailLevel, IonMobilityFrameAccessError, OffsetIndex, IntoIonMobilityFrameSource}, meta::{ Component, ComponentType, DataProcessing, DetectorTypeTerm, DissociationMethodTerm::CollisionInducedDissociation, FileDescription, @@ -26,6 +21,7 @@ use crate::{ mzpeaks::{ feature::{ChargedFeature, Feature}, IonMobility, Mass, MZ, + CentroidPeak, DeconvolutedPeak }, params::{ControlledVocabulary, Unit, Value}, prelude::*, @@ -47,12 +43,14 @@ use timsrust::{ }; pub use super::arrays::FrameToArraysMapper; -use super::constants::{InstrumentSource, MsMsType}; -use super::sql::{ - FromSQL, PasefPrecursor, RawTDFSQLReader, SQLDIAFrameMsMsWindow, SQLFrame, SQLPasefFrameMsMs, - SQLPrecursor, TDFMSnFacet, +use super::{ + arrays::consolidate_peaks, + constants::{InstrumentSource, MsMsType}, + sql::{ + ChromatographyData, FromSQL, PasefPrecursor, RawTDFSQLReader, SQLDIAFrameMsMsWindow, + SQLFrame, SQLPasefFrameMsMs, SQLPrecursor, TDFMSnFacet, + }, }; -use super::{arrays::consolidate_peaks, sql::ChromatographyData}; const PEAK_MERGE_TOLERANCE: Tolerance = Tolerance::Da(0.01); diff --git a/src/spectrum/bindata/encodings.rs b/src/spectrum/bindata/encodings.rs index bd46703..478913d 100644 --- a/src/spectrum/bindata/encodings.rs +++ b/src/spectrum/bindata/encodings.rs @@ -42,10 +42,18 @@ pub enum ArrayType { SignalToNoiseArray, TimeArray, WavelengthArray, + IonMobilityArray, MeanIonMobilityArray, + MeanDriftTimeArray, + MeanInverseReducedIonMobilityArray, RawIonMobilityArray, + RawDriftTimeArray, + RawInverseReducedIonMobilityArray, DeconvolutedIonMobilityArray, + DeconvolutedDriftTimeArray, + DeconvolutedInverseReducedIonMobilityArray, + BaselineArray, ResolutionArray, PressureArray, @@ -63,6 +71,12 @@ impl Display for ArrayType { } impl ArrayType { + /// Get the data type that the array is compatible with in the + /// `mzdata` type expectations. + /// + /// By default, the m/z array is encoded using `Float64`, + /// the charge state array is encoded using `Int32`, and + /// all other arrays are encoded using `Float32`. pub const fn preferred_dtype(&self) -> BinaryDataArrayType { match self { ArrayType::MZArray => BinaryDataArrayType::Float64, @@ -72,6 +86,54 @@ impl ArrayType { } } + /// Convert an ion mobility array to its mean variant + pub const fn as_mean_ion_mobility(&self) -> Option { + Some(match self { + Self::RawDriftTimeArray + | Self::DeconvolutedDriftTimeArray + | Self::MeanDriftTimeArray => Self::MeanDriftTimeArray, + Self::RawInverseReducedIonMobilityArray + | Self::DeconvolutedInverseReducedIonMobilityArray + | Self::MeanInverseReducedIonMobilityArray => Self::MeanInverseReducedIonMobilityArray, + Self::RawIonMobilityArray + | Self::DeconvolutedIonMobilityArray + | Self::MeanIonMobilityArray => Self::MeanIonMobilityArray, + _ => return None, + }) + } + + /// Convert an ion mobility array to its raw variant + pub const fn as_raw_ion_mobility(&self) -> Option { + Some(match self { + Self::RawDriftTimeArray + | Self::DeconvolutedDriftTimeArray + | Self::MeanDriftTimeArray => Self::RawDriftTimeArray, + Self::RawInverseReducedIonMobilityArray + | Self::DeconvolutedInverseReducedIonMobilityArray + | Self::MeanInverseReducedIonMobilityArray => Self::RawInverseReducedIonMobilityArray, + Self::RawIonMobilityArray + | Self::DeconvolutedIonMobilityArray + | Self::MeanIonMobilityArray => Self::RawIonMobilityArray, + _ => return None, + }) + } + + /// Convert an ion mobility array to its deconvoluted variant + pub const fn as_deconvoluted_ion_mobility(&self) -> Option { + Some(match self { + Self::RawDriftTimeArray + | Self::DeconvolutedDriftTimeArray + | Self::MeanDriftTimeArray => Self::DeconvolutedDriftTimeArray, + Self::RawInverseReducedIonMobilityArray + | Self::DeconvolutedInverseReducedIonMobilityArray + | Self::MeanInverseReducedIonMobilityArray => Self::DeconvolutedInverseReducedIonMobilityArray, + Self::RawIonMobilityArray + | Self::DeconvolutedIonMobilityArray + | Self::MeanIonMobilityArray => Self::DeconvolutedIonMobilityArray, + _ => return None, + }) + } + /// Create a [`ArrayType::NonStandardDataArray`] with the provided name. pub fn nonstandard(name: S) -> ArrayType { ArrayType::NonStandardDataArray { @@ -85,8 +147,14 @@ impl ArrayType { self, Self::IonMobilityArray | Self::MeanIonMobilityArray - | Self::RawIonMobilityArray + | Self::MeanDriftTimeArray + | Self::MeanInverseReducedIonMobilityArray | Self::DeconvolutedIonMobilityArray + | Self::DeconvolutedDriftTimeArray + | Self::DeconvolutedInverseReducedIonMobilityArray + | Self::RawIonMobilityArray + | Self::RawDriftTimeArray + | Self::RawInverseReducedIonMobilityArray, ) } @@ -107,12 +175,34 @@ impl ArrayType { ArrayType::TimeArray => CV .const_param_ident_unit("time array", 1000595, unit.unwrap_or(Unit::Minute)) .into(), - ArrayType::WavelengthArray => CV.const_param_ident_unit("wavelength array", 1000617, Unit::Nanometer).into(), - ArrayType::SignalToNoiseArray => CV.const_param_ident("signal to noise array", 1000517).into(), - ArrayType::IonMobilityArray => CV.const_param_ident_unit("ion mobility array", 1002893, unit.unwrap_or_default()).into(), + ArrayType::WavelengthArray => CV + .const_param_ident_unit("wavelength array", 1000617, Unit::Nanometer) + .into(), + ArrayType::SignalToNoiseArray => CV + .const_param_ident("signal to noise array", 1000517) + .into(), + ArrayType::IonMobilityArray => CV + .const_param_ident_unit("ion mobility array", 1002893, unit.unwrap_or_default()) + .into(), + + ArrayType::RawDriftTimeArray => CV + .const_param_ident_unit( + "raw ion mobility drift time array", + 1003153, + unit.unwrap_or_default(), + ) + .into(), + ArrayType::RawInverseReducedIonMobilityArray => CV + .const_param_ident_unit( + "raw inverse reduced ion mobility array", + 1003008, + unit.unwrap_or_default(), + ) + .into(), ArrayType::RawIonMobilityArray => CV .const_param_ident_unit("raw ion mobility array", 1003007, unit.unwrap_or_default()) .into(), + ArrayType::MeanIonMobilityArray => CV .const_param_ident_unit( "mean ion mobility array", @@ -120,6 +210,21 @@ impl ArrayType { unit.unwrap_or_default(), ) .into(), + ArrayType::MeanDriftTimeArray => CV + .const_param_ident_unit( + "mean ion mobility drift time array", + 1002477, + unit.unwrap_or_default(), + ) + .into(), + ArrayType::MeanInverseReducedIonMobilityArray => CV + .const_param_ident_unit( + "mean inverse reduced ion mobility array", + 1003006, + unit.unwrap_or_default(), + ) + .into(), + ArrayType::DeconvolutedIonMobilityArray => CV .const_param_ident_unit( "deconvoluted ion mobility array", @@ -127,32 +232,43 @@ impl ArrayType { unit.unwrap_or_default(), ) .into(), + ArrayType::DeconvolutedDriftTimeArray => CV + .const_param_ident_unit( + "deconvoluted ion mobility drift time array", + 1003156, + unit.unwrap_or_default(), + ) + .into(), + ArrayType::DeconvolutedInverseReducedIonMobilityArray => CV + .const_param_ident_unit( + "deconvoluted inverse reduced ion mobility array", + 1003155, + unit.unwrap_or_default(), + ) + .into(), + ArrayType::NonStandardDataArray { name } => { let mut p = CV.param_val(1000786, "non-standard data array", name.to_string()); p.unit = unit.unwrap_or_default(); p } - ArrayType::BaselineArray => { - CV.const_param_ident("baseline array", 1002530).into() - }, - ArrayType::ResolutionArray => { - CV.const_param_ident("resolution array", 1002529).into() - }, + ArrayType::BaselineArray => CV.const_param_ident("baseline array", 1002530).into(), + ArrayType::ResolutionArray => CV.const_param_ident("resolution array", 1002529).into(), ArrayType::PressureArray => { let mut p = CV.const_param_ident("pressure array", 1000821); p.unit = unit.unwrap_or_default(); p.into() - }, + } ArrayType::TemperatureArray => { let mut p = CV.const_param_ident("temperature array", 1000822); p.unit = unit.unwrap_or_default(); p.into() - }, + } ArrayType::FlowRateArray => { let mut p = CV.const_param_ident("flow rate array", 1000820); p.unit = unit.unwrap_or_default(); p.into() - }, + } _ => { panic!("Could not determine how to name for array {}", self); } @@ -168,7 +284,9 @@ impl ArrayType { } ArrayType::ChargeArray => CV.const_param_ident("charge array", 1000516), ArrayType::TimeArray => CV.const_param_ident_unit("time array", 1000595, Unit::Minute), - ArrayType::WavelengthArray => CV.const_param_ident_unit("wavelength array", 1000617, Unit::Nanometer), + ArrayType::WavelengthArray => { + CV.const_param_ident_unit("wavelength array", 1000617, Unit::Nanometer) + } ArrayType::SignalToNoiseArray => CV.const_param_ident("signal to noise array", 1000517), ArrayType::IonMobilityArray => CV.const_param_ident("ion mobility array", 1002893), ArrayType::RawIonMobilityArray => { @@ -180,26 +298,49 @@ impl ArrayType { ArrayType::DeconvolutedIonMobilityArray => { CV.const_param_ident("deconvoluted ion mobility array", 1003154) } + ArrayType::RawDriftTimeArray => CV.const_param_ident_unit( + "raw ion mobility drift time array", + 1003153, + Unit::Unknown, + ), + ArrayType::RawInverseReducedIonMobilityArray => CV.const_param_ident_unit( + "raw inverse reduced ion mobility array", + 1003008, + Unit::VoltSecondPerSquareCentimeter, + ), + + ArrayType::MeanDriftTimeArray => CV.const_param_ident_unit( + "mean ion mobility drift time array", + 1002477, + Unit::Unknown, + ), + ArrayType::MeanInverseReducedIonMobilityArray => CV.const_param_ident_unit( + "mean inverse reduced ion mobility array", + 1003006, + Unit::VoltSecondPerSquareCentimeter, + ), + + ArrayType::DeconvolutedDriftTimeArray => CV.const_param_ident_unit( + "deconvoluted ion mobility drift time array", + 1003156, + Unit::Unknown, + ), + ArrayType::DeconvolutedInverseReducedIonMobilityArray => CV.const_param_ident_unit( + "deconvoluted inverse reduced ion mobility array", + 1003155, + Unit::VoltSecondPerSquareCentimeter, + ), + ArrayType::NonStandardDataArray { name: _name } => { panic!( "Cannot format NonStandardDataArray in a const context, please use `as_param`" ); } - ArrayType::BaselineArray => { - CV.const_param_ident("baseline array", 1002530) - }, - ArrayType::ResolutionArray => { - CV.const_param_ident("resolution array", 1002529) - }, - ArrayType::PressureArray => { - CV.const_param_ident("pressure array", 1000821) - }, - ArrayType::TemperatureArray => { - CV.const_param_ident("temperature array", 1000822) - }, - ArrayType::FlowRateArray => { - CV.const_param_ident("flow rate array", 1000820) - }, + ArrayType::BaselineArray => CV.const_param_ident("baseline array", 1002530), + ArrayType::ResolutionArray => CV.const_param_ident("resolution array", 1002529), + ArrayType::PressureArray => CV.const_param_ident("pressure array", 1000821), + ArrayType::TemperatureArray => CV.const_param_ident("temperature array", 1000822), + ArrayType::FlowRateArray => CV.const_param_ident("flow rate array", 1000820), _ => { panic!("Could not determine how to name for array"); } @@ -229,21 +370,41 @@ impl ArrayType { "Cannot format NonStandardDataArray in a const context, please use `as_param`" ); } - ArrayType::BaselineArray => { - CV.const_param_ident_unit("baseline array", 1002530, unit) - }, + + ArrayType::RawDriftTimeArray => { + CV.const_param_ident_unit("raw ion mobility drift time array", 1003153, unit) + } + ArrayType::RawInverseReducedIonMobilityArray => { + CV.const_param_ident_unit("raw inverse reduced ion mobility array", 1003008, unit) + } + + ArrayType::MeanDriftTimeArray => { + CV.const_param_ident_unit("mean ion mobility drift time array", 1002477, unit) + } + ArrayType::MeanInverseReducedIonMobilityArray => { + CV.const_param_ident_unit("mean inverse reduced ion mobility array", 1003006, unit) + } + + ArrayType::DeconvolutedDriftTimeArray => CV.const_param_ident_unit( + "deconvoluted ion mobility drift time array", + 1003156, + unit, + ), + ArrayType::DeconvolutedInverseReducedIonMobilityArray => CV.const_param_ident_unit( + "deconvoluted inverse reduced ion mobility array", + 1003155, + unit, + ), + + ArrayType::BaselineArray => CV.const_param_ident_unit("baseline array", 1002530, unit), ArrayType::ResolutionArray => { CV.const_param_ident_unit("resolution array", 1002529, unit) - }, - ArrayType::PressureArray => { - CV.const_param_ident_unit("pressure array", 1000821, unit) - }, + } + ArrayType::PressureArray => CV.const_param_ident_unit("pressure array", 1000821, unit), ArrayType::TemperatureArray => { CV.const_param_ident_unit("temperature array", 1000822, unit) - }, - ArrayType::FlowRateArray => { - CV.const_param_ident_unit("flow rate array", 1000820, unit) - }, + } + ArrayType::FlowRateArray => CV.const_param_ident_unit("flow rate array", 1000820, unit), _ => { panic!("Could not determine how to name for array"); } @@ -553,7 +714,7 @@ mod test { "MS-Numpress short logged float compression followed by zlib compression", 1002478, ), - _ => ("", 0), + _ => ("", 0), }; if let Some(p) = enc.as_param() { assert_eq!(p.name, reps.0);