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;
105 virtual ValueType map(
const Mobilogram& mb,
const Size index)
const = 0;
109 virtual ValueTypes map(
const MSSpectrum& spec)
const = 0;
115 virtual ValueType map(
const BaseFeature& bf)
const = 0;
129 virtual void fromXY(
const ValueType in,
Peak1D& p)
const = 0;
133 virtual void fromXY(
const ValueType in,
MobilityPeak1D& p)
const = 0;
135 virtual void fromXY(
const ValueType in,
MobilityPeak2D& p)
const = 0;
160 String formattedValue(
const ValueType value)
const;
166 int valuePrecision()
const;
179 std::unique_ptr<DimBase>
clone()
const override 181 return std::make_unique<DimRT>();
212 res.reserve(chrom.size());
213 for (
const auto& p : chrom)
215 res.push_back(p.getRT());
250 out.RangeRT::operator=(in);
281 std::unique_ptr<DimBase>
clone()
const override 283 return std::make_unique<DimMZ>();
313 return spec[index].getMZ();
323 res.reserve(spec.size());
324 for (
const auto& p : spec)
326 res.push_back(p.getMZ());
352 out.RangeMZ::operator=(in);
384 std::unique_ptr<DimBase>
clone()
const override 386 return std::make_unique<DimINT>();
403 return it->getIntensity();
416 return spec[index].getIntensity();
420 return mb[index].getIntensity();
426 res.reserve(spec.size());
427 for (
const auto& p : spec)
429 res.push_back(p.getIntensity());
437 res.reserve(chrom.size());
438 for (
const auto& p : chrom)
440 res.push_back(p.getIntensity());
462 out.RangeIntensity::operator=(in);
493 std::unique_ptr<DimBase>
clone()
const override 495 return std::make_unique<DimIM>(*this);
539 return mb[index].getMobility();
559 out.RangeMobility::operator=(in);
618 std::array<std::unique_ptr<const DimBase>, N_DIM> dims_tmp;
619 for (
int i = 0; i < N_DIM; ++i)
621 dims_tmp[i] =
create_(units[i]);
626 static_assert(N_DIM >= 1);
627 static_assert(N_DIM <= 3);
639 for (
int i = 0; i < N_DIM; ++i)
dims_[i] = rhs.
dims_[i]->clone();
647 for (
int i = 0; i < N_DIM; ++i)
661 template <
typename T>
665 for (
int i = 0; i < N_DIM; ++i) pr[i] =
dims_[i]->
map(data);
669 template<
typename Container>
673 for (
int i = 0; i < N_DIM; ++i)
679 template<
typename ...Ranges>
685 for (
int i = 0; i < N_DIM; ++i)
697 template<
typename... Ranges>
700 for (
int i = 0; i < N_DIM; ++i)
712 template<
typename... Ranges>
715 for (
int i = 0; i < N_DIM; ++i)
717 dims_[i]->setRange({in[i], in[i]}, output);
727 for (
int i = 0; i < N_DIM; ++i)
729 dims_[i]->fromXY(in[i], out);
739 for (
int i = 0; i < N_DIM; ++i)
741 dims_[i]->setRange({in[i], in[i]}, output);
749 assert((
int)d <= N_DIM);
750 return *
dims_[(int)d];
760 return std::make_unique<DimRT>();
762 return std::make_unique<DimMZ>();
764 return std::make_unique<DimINT>();
768 return std::make_unique<DimIM>(u);
774 std::array<std::unique_ptr<const DimBase>, N_DIM>
dims_;
805 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:727
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:519
CoordinateType getDriftTime() const
returns the ion mobility time of the current scan
Definition: AreaIterator.h:259
void fromXY(const ValueType, Peak1D &) const override
set the IM of a Peak1D (throws)
Definition: DimMapper.h:563
std::string_view DIM_NAMES_SHORT[(int) DIM_UNIT::SIZE_OF_DIM_UNITS]
Definition: CommonEnums.h:56
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:306
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:290
A more convenient string class.
Definition: String.h:58
DimINT()
Definition: DimMapper.h:382
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:350
AreaXYType visible_area_
Definition: DimMapper.h:897
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:362
ValueType map(const ChromatogramPeak &p) const override
Definition: DimMapper.h:397
const Area & setArea(const AreaXYType &data)
Set the area using axis data (X and Y)
Definition: DimMapper.h:841
ValueType map(const BaseFeature &) const override
Definition: DimMapper.h:542
std::string_view getDimName() const
Name of the dimension, e.g. 'RT [s]'.
Definition: DimMapper.h:138
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:537
void fromXY(const ValueType, Peak1D &) const override
set the RT of a Peak1D (throws)
Definition: DimMapper.h:254
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:580
ValueType map(const Peak1D &p) const override
Definition: DimMapper.h:286
DIM_UNIT unit_
the unit of this dimension
Definition: DimMapper.h:169
ValueType map(const Mobilogram &, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:315
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:389
ValueTypes map(const MSSpectrum &) const override
Definition: DimMapper.h:510
const Area & setArea(const RangeAllType &data)
Set the area using unit data (RT, m/z, ...)
Definition: DimMapper.h:828
Allows dynamical switching (at runtime) between a dimension (RT, m/z, int, IM, etc) and X...
Definition: DimMapper.h:607
DimRT()
Definition: DimMapper.h:177
void pushInto(const RangeAllType &sandbox)
Push the area into a sandbox (if its outside the sandbox). See UnitRange::pushInto() ...
Definition: DimMapper.h:887
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:384
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:94
ValueType map(const ChromatogramPeak &p) const override
Definition: DimMapper.h:192
Area()=delete
No default C'tor.
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:188
const RangeAllType & getAreaUnit() const
Definition: DimMapper.h:854
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:616
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:569
void fromXY(const ValueType in, ChromatogramPeak &p) const override
set the intensity of a ChromatogramPeak
Definition: DimMapper.h:472
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:401
void fromXY(const ValueType in, MobilityPeak2D &p) const override
set the intensity of a MobilityPeak2D
Definition: DimMapper.h:482
DimMZ()
Definition: DimMapper.h:279
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:547
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:238
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:414
ValueType map(const Peak2D &) const override
Definition: DimMapper.h:502
DimMapper & operator=(const DimMapper &rhs)
Assignment operator.
Definition: DimMapper.h:637
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:179
ValueType map(const MobilityPeak2D &) const override
Definition: DimMapper.h:228
DIM_UNIT
Definition: CommonEnums.h:45
Precondition failed exception.
Definition: Exception.h:157
IntensityType getIntensity() const
Definition: Peak2D.h:168
ValueType map(const Peak1D &) const override
Definition: DimMapper.h:498
Area & operator=(const Area &rhs)
Assignment operator - which checks for identical DimMappers and throws otherwise. ...
Definition: DimMapper.h:800
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:506
double getMax() const
only useful if isEmpty() returns false
Definition: RangeManager.h:140
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:281
A basic LC-MS feature.
Definition: BaseFeature.h:58
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:233
PositionType const & maxPosition() const
Accessor to maximum position.
Definition: DIntervalBase.h:130
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:575
void fromXY(const Point &in, T &out) const
Definition: DimMapper.h:725
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:552
RangeAllType fromXY(const Point &in) const
Definition: DimMapper.h:736
Definition: DimMapper.h:379
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:345
DimMapper(const DimMapper &rhs)
Copy C'tor.
Definition: DimMapper.h:631
static std::unique_ptr< const DimBase > create_(DIM_UNIT u)
a minimal factory
Definition: DimMapper.h:755
void fromXY(const Point &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:713
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:260
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:409
auto & assign(const RangeManager< RangeBasesOther... > &rhs)
Definition: RangeManager.h:635
Point map(const T &data) const
convert an OpenMS datatype (such as Feature) to an N_DIM-dimensional point
Definition: DimMapper.h:662
static String prefix(const String &this_s, size_t length)
Definition: StringUtilsSimple.h:147
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:224
bool operator!=(const Area &rhs) const
Definition: DimMapper.h:818
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:460
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:418
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:270
Representation of a coordinate in D-dimensional space.
Definition: DPosition.h:53
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:335
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:514
bool operator==(const DimMapper &rhs) const
Equality.
Definition: DimMapper.h:644
Base class for a simple range with minimum and maximum.
Definition: RangeManager.h:58
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:557
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:747
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:876
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:373
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:670
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:298
void setIntensity(IntensityType intensity)
Sets data point intensity (height)
Definition: MobilityPeak2D.h:170
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:340
std::vector< ValueType > ValueTypes
Definition: DimMapper.h:70
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:209
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:450
bool operator!=(const DimMapper &rhs) const
Inequality.
Definition: DimMapper.h:655
std::array< std::unique_ptr< const DimBase >, N_DIM > dims_
mappers for the X,Y,Z... dimension
Definition: DimMapper.h:774
ValueType map(const MSSpectrum &spec, const Size) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:533
FAIMS compensation voltage.
DIM
Definition: DimMapper.h:589
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:248
ion mobility milliseconds
Definition: DimMapper.h:174
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:330
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:528
ValueTypes map(const MSSpectrum &spec) const override
Definition: DimMapper.h:320
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:311
CoordinateType getRT() const
Returns the RT coordinate (index 0)
Definition: Peak2D.h:210
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:405
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:423
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:144
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:393
void fromXY(const ValueType, MobilityPeak1D &) const override
set the MZ of a MobilityPeak1D (throws)
Definition: DimMapper.h:368
DIM_UNIT getUnit() const
The unit of the dimension.
Definition: DimMapper.h:150
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:445
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:524
const DimMapper< N_DIM > * mapper_
and a mapper (non-owning pointer) to translate between the two
Definition: DimMapper.h:899
Definition: DimMapper.h:276
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:253
ValueType map(const MSSpectrum &spec, const Size) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:196
double getMin() const
only useful if isEmpty() returns false
Definition: RangeManager.h:134
Definition: DimMapper.h:781
DimMapper()=delete
No default c'tor (we need dimensions)
ValueType map(const ChromatogramPeak &) const override
Definition: DimMapper.h:294
void fromXY(const ValueType in, Peak1D &p) const override
set the intensity of a Peak1D
Definition: DimMapper.h:466
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:849
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:205
ValueType map(const Mobilogram &mb, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:200
void fromXY(const ValueType in, Peak1D &p) const override
set the MZ of a Peak1D
Definition: DimMapper.h:356
Area(const DimMapper< N_DIM > *const dims)
Custom C'tor with a mapper (non owning pointer)
Definition: DimMapper.h:791
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:455
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:771
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:243
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:434
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:53
bool operator==(const Area &rhs) const
Definition: DimMapper.h:812
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:491
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:302
void fromXY(const DRange< N_DIM > &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:698
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:680
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:220
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:493
RangeAllType data_range_
range in units
Definition: DimMapper.h:896
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:477
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:265
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:184
Definition: DimMapper.h:488
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:864
PositionType const & minPosition() const
Accessor to minimum position.
Definition: DIntervalBase.h:124