84 virtual ~
DimBase() noexcept = default;
89 return unit_ == rhs.
unit_;
93 virtual std::unique_ptr<DimBase> clone()
const = 0;
95 virtual ValueType map(
const Peak1D& p)
const = 0;
96 virtual ValueType map(
const Peak2D& p)
const = 0;
103 virtual ValueType map(
const MSSpectrum& spec,
const Size index)
const = 0;
107 virtual ValueType map(
const Mobilogram& mb,
const Size index)
const = 0;
111 virtual ValueTypes map(
const MSSpectrum& spec)
const = 0;
117 virtual ValueType map(
const BaseFeature& bf)
const = 0;
134 virtual void fromXY(
const ValueType in,
Peak1D& p)
const = 0;
138 virtual void fromXY(
const ValueType in,
MobilityPeak1D& p)
const = 0;
140 virtual void fromXY(
const ValueType in,
MobilityPeak2D& p)
const = 0;
165 String formattedValue(
const ValueType value)
const;
171 int valuePrecision()
const;
184 std::unique_ptr<DimBase>
clone()
const override 186 return std::make_unique<DimRT>();
207 return chrom[index].getRT();
221 res.reserve(chrom.size());
222 for (
const auto& p : chrom)
224 res.push_back(p.getRT());
263 out.RangeRT::operator=(in);
294 std::unique_ptr<DimBase>
clone()
const override 296 return std::make_unique<DimMZ>();
326 return spec[index].getMZ();
340 res.reserve(spec.size());
341 for (
const auto& p : spec)
343 res.push_back(p.getMZ());
373 out.RangeMZ::operator=(in);
405 std::unique_ptr<DimBase>
clone()
const override 407 return std::make_unique<DimINT>();
424 return it->getIntensity();
437 return spec[index].getIntensity();
441 return chrom[index].getIntensity();
445 return mb[index].getIntensity();
451 res.reserve(spec.size());
452 for (
const auto& p : spec)
454 res.push_back(p.getIntensity());
462 res.reserve(chrom.size());
463 for (
const auto& p : chrom)
465 res.push_back(p.getIntensity());
491 out.RangeIntensity::operator=(in);
522 std::unique_ptr<DimBase>
clone()
const override 524 return std::make_unique<DimIM>(*this);
572 return mb[index].getMobility();
596 out.RangeMobility::operator=(in);
655 std::array<std::unique_ptr<const DimBase>, N_DIM> dims_tmp;
656 for (
int i = 0; i < N_DIM; ++i)
658 dims_tmp[i] =
create_(units[i]);
663 static_assert(N_DIM >= 1);
664 static_assert(N_DIM <= 3);
676 for (
int i = 0; i < N_DIM; ++i)
dims_[i] = rhs.
dims_[i]->clone();
684 for (
int i = 0; i < N_DIM; ++i)
698 template <
typename T>
702 for (
int i = 0; i < N_DIM; ++i) pr[i] =
dims_[i]->
map(data);
706 template<
typename Container>
710 for (
int i = 0; i < N_DIM; ++i)
716 template<
typename ...Ranges>
722 for (
int i = 0; i < N_DIM; ++i)
734 template<
typename... Ranges>
737 for (
int i = 0; i < N_DIM; ++i)
749 template<
typename... Ranges>
752 for (
int i = 0; i < N_DIM; ++i)
754 dims_[i]->setRange({in[i], in[i]}, output);
764 for (
int i = 0; i < N_DIM; ++i)
766 dims_[i]->fromXY(in[i], out);
776 for (
int i = 0; i < N_DIM; ++i)
778 dims_[i]->setRange({in[i], in[i]}, output);
786 assert((
int)d <= N_DIM);
787 return *
dims_[(int)d];
797 return std::make_unique<DimRT>();
799 return std::make_unique<DimMZ>();
801 return std::make_unique<DimINT>();
805 return std::make_unique<DimIM>(u);
811 std::array<std::unique_ptr<const DimBase>, N_DIM>
dims_;
842 throw Exception::Precondition(__FILE__, __LINE__, OPENMS_PRETTY_FUNCTION,
"Assignment of Areas using different mappers!");
void setRT(CoordinateType rt)
Mutable access to RT.
Definition: ChromatogramPeak.h:121
double getRT() const noexcept
Definition: Mobilogram.h:262
void pushInto(const RangeManager< RangeBasesOther... > &sandbox)
Definition: RangeManager.h:704
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:548
CoordinateType getDriftTime() const
returns the ion mobility time of the current scan
Definition: AreaIterator.h:251
void fromXY(const ValueType, Peak1D &) const override
set the IM of a Peak1D (throws)
Definition: DimMapper.h:600
std::string_view DIM_NAMES_SHORT[(int) DIM_UNIT::SIZE_OF_DIM_UNITS]
Definition: CommonEnums.h:56
RangeManager< RangeRT, RangeMZ, RangeIntensity, RangeMobility > RangeAllType
Range which contains all known dimensions.
Definition: RangeManager.h:923
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:319
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:303
A more convenient string class.
Definition: String.h:58
DimINT()
Definition: DimMapper.h:403
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:371
AreaXYType visible_area_
Definition: DimMapper.h:940
A 2-dimensional raw data point or peak.
Definition: Peak2D.h:54
void fromXY(const ValueType, ChromatogramPeak &) const override
set the MZ of a ChromatogramPeak (throws)
Definition: DimMapper.h:383
ValueType map(const ChromatogramPeak &p) const override
Definition: DimMapper.h:418
const Area & setArea(const AreaXYType &data)
Set the area using axis data (X and Y)
Definition: DimMapper.h:878
ValueType map(const BaseFeature &) const override
Definition: DimMapper.h:575
std::string_view getDimName() const
Name of the dimension, e.g. 'RT [s]'.
Definition: DimMapper.h:143
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:570
void fromXY(const ValueType, Peak1D &) const override
set the RT of a Peak1D (throws)
Definition: DimMapper.h:267
The representation of a chromatogram.
Definition: MSChromatogram.h:53
void fromXY(const ValueType in, MobilityPeak2D &p) const override
set the IM of a MobilityPeak2D
Definition: DimMapper.h:617
ValueType map(const Peak1D &p) const override
Definition: DimMapper.h:299
DIM_UNIT unit_
the unit of this dimension
Definition: DimMapper.h:174
ValueType map(const Mobilogram &, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:332
IntensityType getIntensity() const
Definition: MobilityPeak1D.h:105
CoordinateType getMZ() const
Non-mutable access to m/z.
Definition: Peak1D.h:113
ValueType map(const Peak1D &p) const override
Definition: DimMapper.h:410
ValueTypes map(const MSSpectrum &) const override
Definition: DimMapper.h:539
ValueType map(const MSChromatogram &chrom, const Size index) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:439
const Area & setArea(const RangeAllType &data)
Set the area using unit data (RT, m/z, ...)
Definition: DimMapper.h:865
ValueType map(const MSChromatogram &chrom, const Size index) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:205
Allows dynamical switching (at runtime) between a dimension (RT, m/z, int, IM, etc) and X...
Definition: DimMapper.h:644
DimRT()
Definition: DimMapper.h:182
void pushInto(const RangeAllType &sandbox)
Push the area into a sandbox (if its outside the sandbox). See UnitRange::pushInto() ...
Definition: DimMapper.h:924
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:405
Forward iterator for an area of peaks in an experiment.
Definition: AreaIterator.h:61
A 2-dimensional raw data point or peak.
Definition: MobilityPeak2D.h:54
bool isEmpty() const
is the range empty (i.e. min > max)?
Definition: RangeManager.h:108
ValueType map(const ChromatogramPeak &p) const override
Definition: DimMapper.h:197
Area()=delete
No default C'tor.
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:193
const RangeAllType & getAreaUnit() const
Definition: DimMapper.h:891
DimMapper(const DIM_UNIT(&units)[N_DIM])
Custom C'tor with given dimensions to map to (the order is assumed to be X, Y, Z, ...
Definition: DimMapper.h:653
double getDriftTime() const
Returns the ion mobility drift time (MSSpectrum::DRIFTTIME_NOT_SET means it is not set) ...
void setMobility(CoordinateType mobility)
Mutable access to mobility.
Definition: MobilityPeak1D.h:122
void fromXY(const ValueType, ChromatogramPeak &) const override
set the IM of a ChromatogramPeak (throws)
Definition: DimMapper.h:606
void fromXY(const ValueType in, ChromatogramPeak &p) const override
set the intensity of a ChromatogramPeak
Definition: DimMapper.h:501
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:422
void fromXY(const ValueType in, MobilityPeak2D &p) const override
set the intensity of a MobilityPeak2D
Definition: DimMapper.h:511
DimMZ()
Definition: DimMapper.h:292
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:580
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:247
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:435
ValueType map(const Peak2D &) const override
Definition: DimMapper.h:531
const Precursor & getPrecursor() const
returns a const reference to the precursors
DimMapper & operator=(const DimMapper &rhs)
Assignment operator.
Definition: DimMapper.h:674
bool isEmpty() const
Definition: DIntervalBase.h:242
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:47
void setMZ(CoordinateType mz)
Mutable access to m/z.
Definition: Peak1D.h:119
void setIntensity(IntensityType intensity)
Mutable access to the data point intensity (height)
Definition: Peak1D.h:110
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:184
ValueType map(const MobilityPeak2D &) const override
Definition: DimMapper.h:237
DIM_UNIT
Definition: CommonEnums.h:45
Precondition failed exception.
Definition: Exception.h:157
IntensityType getIntensity() const
Definition: Peak2D.h:168
RangeBase & map(RangeAllType &rm) const override
Return the min/max (range) for a certain dimension (i.e. a reference to the base class of rm) ...
Definition: DimMapper.h:366
ValueType map(const Peak1D &) const override
Definition: DimMapper.h:527
Area & operator=(const Area &rhs)
Assignment operator - which checks for identical DimMappers and throws otherwise. ...
Definition: DimMapper.h:837
std::string_view DIM_NAMES[(int) DIM_UNIT::SIZE_OF_DIM_UNITS]
Definition: CommonEnums.h:55
ValueType map(const ChromatogramPeak &) const override
Definition: DimMapper.h:535
double getMax() const
only useful if isEmpty() returns false
Definition: RangeManager.h:154
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:294
A basic LC-MS feature.
Definition: BaseFeature.h:58
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:242
PositionType const & maxPosition() const
Accessor to maximum position.
Definition: DIntervalBase.h:130
RangeBase & map(RangeAllType &rm) const override
Return the min/max (range) for a certain dimension (i.e. a reference to the base class of rm) ...
Definition: DimMapper.h:484
double getMZ() const
returns the MZ of the MS2 spectrum
void fromXY(const ValueType in, MobilityPeak1D &p) const override
set the IM of a MobilityPeak1D
Definition: DimMapper.h:612
void fromXY(const Point &in, T &out) const
Definition: DimMapper.h:762
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:585
RangeAllType fromXY(const Point &in) const
Definition: DimMapper.h:773
Definition: DimMapper.h:400
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:362
DimMapper(const DimMapper &rhs)
Copy C'tor.
Definition: DimMapper.h:668
static std::unique_ptr< const DimBase > create_(DIM_UNIT u)
a minimal factory
Definition: DimMapper.h:792
void fromXY(const Point &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:750
void setMobility(CoordinateType coordinate)
Mutable access to the IM coordinate (index 0)
Definition: MobilityPeak2D.h:212
The representation of a 1D spectrum.
Definition: MSSpectrum.h:66
void fromXY(const ValueType in, ChromatogramPeak &p) const override
set the RT of a ChromatogramPeak
Definition: DimMapper.h:273
void setDimMinMax(UInt dim, const DIntervalBase< 1 > &min_max)
only set interval for a single dimension
Definition: DIntervalBase.h:254
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:430
auto & assign(const RangeManager< RangeBasesOther... > &rhs)
Definition: RangeManager.h:612
Point map(const T &data) const
convert an OpenMS datatype (such as Feature) to an N_DIM-dimensional point
Definition: DimMapper.h:699
static String prefix(const String &this_s, size_t length)
Definition: StringUtilsSimple.h:147
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:233
bool operator!=(const Area &rhs) const
Definition: DimMapper.h:855
CoordinateType getMZ() const
Returns the m/z coordinate (index 1)
Definition: Peak2D.h:198
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:489
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:443
double getRT() const
returns the RT of the MS2 spectrum where the identification occurred
void fromXY(const ValueType, MobilityPeak2D &) const override
set the RT of a MobilityPeak2D (throws)
Definition: DimMapper.h:283
Representation of a coordinate in D-dimensional space.
Definition: DPosition.h:54
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:352
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:543
void clear()
empty all dimensions
Definition: DimMapper.h:932
bool operator==(const DimMapper &rhs) const
Equality.
Definition: DimMapper.h:681
Base class for a simple range with minimum and maximum.
Definition: RangeManager.h:63
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:594
CoordinateType getRT() const
Non-mutable access to RT.
Definition: ChromatogramPeak.h:115
A 1-dimensional raw data point or peak.
Definition: Peak1D.h:53
const DimBase & getDim(DIM d) const
obtain unit/name for X/Y/Z dimension.
Definition: DimMapper.h:784
Area cloneWith(const RangeAllType &data) const
Clone the current object, set the area of the clone using unit data (RT, m/z, ...) and return the clo...
Definition: DimMapper.h:913
A base class for a dimension which represents a certain unit (e.g. RT or m/z). Derived classes implem...
Definition: DimMapper.h:66
void fromXY(const ValueType in, MobilityPeak2D &p) const override
set the MZ of a MobilityPeak2D (throws)
Definition: DimMapper.h:394
Point map(const Container &data, const Size index) const
convert an OpenMS datapoint in a container (such as MSSpectrum) to an N_DIM-dimensional point ...
Definition: DimMapper.h:707
RangeBase & map(RangeAllType &rm) const override
Return the min/max (range) for a certain dimension (i.e. a reference to the base class of rm) ...
Definition: DimMapper.h:256
RangeBase & map(RangeAllType &rm) const override
Return the min/max (range) for a certain dimension (i.e. a reference to the base class of rm) ...
Definition: DimMapper.h:589
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:311
void setIntensity(IntensityType intensity)
Sets data point intensity (height)
Definition: MobilityPeak2D.h:170
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:357
std::vector< ValueType > ValueTypes
Definition: DimMapper.h:70
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:218
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:475
bool operator!=(const DimMapper &rhs) const
Inequality.
Definition: DimMapper.h:692
ValueType map(const MSChromatogram &, const Size) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:566
std::array< std::unique_ptr< const DimBase >, N_DIM > dims_
mappers for the X,Y,Z... dimension
Definition: DimMapper.h:811
ValueType map(const MSSpectrum &spec, const Size) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:562
FAIMS compensation voltage.
DIM
Definition: DimMapper.h:626
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:261
ion mobility milliseconds
Definition: DimMapper.h:179
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:347
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:557
ValueTypes map(const MSSpectrum &spec) const override
Definition: DimMapper.h:337
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:324
CoordinateType getRT() const
Returns the RT coordinate (index 0)
Definition: Peak2D.h:210
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:426
void setMZ(CoordinateType coordinate)
Mutable access to the m/z coordinate (index 1)
Definition: MobilityPeak2D.h:200
ValueTypes map(const MSSpectrum &spec) const override
Definition: DimMapper.h:448
CoordinateType getMobility() const
Returns the IM coordinate (index 0)
Definition: MobilityPeak2D.h:206
std::string_view getDimNameShort() const
Name of the dimension, e.g. 'RT'.
Definition: DimMapper.h:149
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:414
void fromXY(const ValueType, MobilityPeak1D &) const override
set the MZ of a MobilityPeak1D (throws)
Definition: DimMapper.h:389
DIM_UNIT getUnit() const
The unit of the dimension.
Definition: DimMapper.h:155
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:470
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:553
const DimMapper< N_DIM > * mapper_
and a mapper (non-owning pointer) to translate between the two
Definition: DimMapper.h:942
Definition: DimMapper.h:289
ValueType map(const MSChromatogram &chrom, const Size) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:328
Invalid range exception.
Definition: Exception.h:276
void setIntensity(IntensityType intensity)
Mutable access to the data point intensity (height)
Definition: ChromatogramPeak.h:112
CoordinateType getRT() const
returns the retention time of the current scan
Definition: AreaIterator.h:245
ValueType map(const MSSpectrum &spec, const Size) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:201
double getMin() const
only useful if isEmpty() returns false
Definition: RangeManager.h:148
Definition: DimMapper.h:818
DimMapper()=delete
No default c'tor (we need dimensions)
ValueType map(const ChromatogramPeak &) const override
Definition: DimMapper.h:307
void fromXY(const ValueType in, Peak1D &p) const override
set the intensity of a Peak1D
Definition: DimMapper.h:495
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:127
const AreaXYType & getAreaXY() const
Definition: DimMapper.h:886
A 1-dimensional raw data mobility point or peak. The unit (ms, 1/K_0, etc) is implicit.
Definition: MobilityPeak1D.h:50
ValueTypes map(const MSSpectrum &) const override
Definition: DimMapper.h:214
ValueType map(const Mobilogram &mb, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:209
void fromXY(const ValueType in, Peak1D &p) const override
set the MZ of a Peak1D
Definition: DimMapper.h:377
Area(const DimMapper< N_DIM > *const dims)
Custom C'tor with a mapper (non owning pointer)
Definition: DimMapper.h:828
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:480
IntensityType getIntensity() const
Definition: MobilityPeak2D.h:164
CoordinateType getMZ() const
Returns the m/z coordinate (index 1)
Definition: MobilityPeak2D.h:194
const RangeBase & getRangeForDim(MSDim dim) const
obtain a range dimension at runtime using dim
Definition: RangeManager.h:748
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:252
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:459
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:53
bool operator==(const Area &rhs) const
Definition: DimMapper.h:849
IntensityType getIntensity() const
Non-mutable access to the data point intensity (height)
Definition: ChromatogramPeak.h:110
DimIM(const DIM_UNIT im_unit)
Definition: DimMapper.h:520
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:315
void fromXY(const DRange< N_DIM > &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:735
DRange< N_DIM > mapRange(const RangeManager< Ranges... > &ranges) const
Convert Range to an N_DIM-dimensional area (min and max for each dimension)
Definition: DimMapper.h:717
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:229
static DIntervalBase const empty
empty instance
Definition: DIntervalBase.h:284
volt-second per square centimeter (i.e. 1/K_0)
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:522
RangeAllType data_range_
range in units
Definition: DimMapper.h:939
void setIntensity(IntensityType intensity)
Mutable access to the data point intensity (height)
Definition: MobilityPeak1D.h:110
The representation of a 1D ion mobilogram.
Definition: Mobilogram.h:54
void fromXY(const ValueType in, MobilityPeak1D &p) const override
set the intensity of a MobilityPeak1D
Definition: DimMapper.h:506
DimBase(DIM_UNIT unit)
Custom c'tor with unit.
Definition: DimMapper.h:76
void fromXY(const ValueType, MobilityPeak1D &) const override
set the RT of a MobilityPeak1D (throws)
Definition: DimMapper.h:278
Not implemented exception.
Definition: Exception.h:428
CoordinateType getMobility() const
Non-mutable access to m/z.
Definition: MobilityPeak1D.h:116
ValueType map(const Peak1D &) const override
Definition: DimMapper.h:189
Definition: DimMapper.h:517
Represents the peptide hits for a spectrum.
Definition: PeptideIdentification.h:63
IntensityType getIntensity() const
Definition: Peak1D.h:108
Area cloneWith(const AreaXYType &data) const
Clone the current object, set the area of the clone using axis data (X and Y) and return the clone...
Definition: DimMapper.h:901
PositionType const & minPosition() const
Accessor to minimum position.
Definition: DIntervalBase.h:124