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;
131 virtual void fromXY(
const ValueType in,
Peak1D& p)
const = 0;
135 virtual void fromXY(
const ValueType in,
MobilityPeak1D& p)
const = 0;
137 virtual void fromXY(
const ValueType in,
MobilityPeak2D& p)
const = 0;
162 String formattedValue(
const ValueType value)
const;
168 int valuePrecision()
const;
181 std::unique_ptr<DimBase>
clone()
const override 183 return std::make_unique<DimRT>();
204 return chrom[index].getRT();
218 res.reserve(chrom.size());
219 for (
const auto& p : chrom)
221 res.push_back(p.getRT());
256 out.RangeRT::operator=(in);
287 std::unique_ptr<DimBase>
clone()
const override 289 return std::make_unique<DimMZ>();
319 return spec[index].getMZ();
333 res.reserve(spec.size());
334 for (
const auto& p : spec)
336 res.push_back(p.getMZ());
362 out.RangeMZ::operator=(in);
394 std::unique_ptr<DimBase>
clone()
const override 396 return std::make_unique<DimINT>();
413 return it->getIntensity();
426 return spec[index].getIntensity();
430 return chrom[index].getIntensity();
434 return mb[index].getIntensity();
440 res.reserve(spec.size());
441 for (
const auto& p : spec)
443 res.push_back(p.getIntensity());
451 res.reserve(chrom.size());
452 for (
const auto& p : chrom)
454 res.push_back(p.getIntensity());
476 out.RangeIntensity::operator=(in);
507 std::unique_ptr<DimBase>
clone()
const override 509 return std::make_unique<DimIM>(*this);
557 return mb[index].getMobility();
577 out.RangeMobility::operator=(in);
636 std::array<std::unique_ptr<const DimBase>, N_DIM> dims_tmp;
637 for (
int i = 0; i < N_DIM; ++i)
639 dims_tmp[i] =
create_(units[i]);
644 static_assert(N_DIM >= 1);
645 static_assert(N_DIM <= 3);
657 for (
int i = 0; i < N_DIM; ++i)
dims_[i] = rhs.
dims_[i]->clone();
665 for (
int i = 0; i < N_DIM; ++i)
679 template <
typename T>
683 for (
int i = 0; i < N_DIM; ++i) pr[i] =
dims_[i]->
map(data);
687 template<
typename Container>
691 for (
int i = 0; i < N_DIM; ++i)
697 template<
typename ...Ranges>
703 for (
int i = 0; i < N_DIM; ++i)
715 template<
typename... Ranges>
718 for (
int i = 0; i < N_DIM; ++i)
730 template<
typename... Ranges>
733 for (
int i = 0; i < N_DIM; ++i)
735 dims_[i]->setRange({in[i], in[i]}, output);
745 for (
int i = 0; i < N_DIM; ++i)
747 dims_[i]->fromXY(in[i], out);
757 for (
int i = 0; i < N_DIM; ++i)
759 dims_[i]->setRange({in[i], in[i]}, output);
767 assert((
int)d <= N_DIM);
768 return *
dims_[(int)d];
778 return std::make_unique<DimRT>();
780 return std::make_unique<DimMZ>();
782 return std::make_unique<DimINT>();
786 return std::make_unique<DimIM>(u);
792 std::array<std::unique_ptr<const DimBase>, N_DIM>
dims_;
823 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:533
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:581
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:920
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:312
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:296
A more convenient string class.
Definition: String.h:58
DimINT()
Definition: DimMapper.h:392
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:360
AreaXYType visible_area_
Definition: DimMapper.h:921
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:372
ValueType map(const ChromatogramPeak &p) const override
Definition: DimMapper.h:407
const Area & setArea(const AreaXYType &data)
Set the area using axis data (X and Y)
Definition: DimMapper.h:859
ValueType map(const BaseFeature &) const override
Definition: DimMapper.h:560
std::string_view getDimName() const
Name of the dimension, e.g. 'RT [s]'.
Definition: DimMapper.h:140
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:555
void fromXY(const ValueType, Peak1D &) const override
set the RT of a Peak1D (throws)
Definition: DimMapper.h:260
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:598
ValueType map(const Peak1D &p) const override
Definition: DimMapper.h:292
DIM_UNIT unit_
the unit of this dimension
Definition: DimMapper.h:171
ValueType map(const Mobilogram &, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:325
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:399
ValueTypes map(const MSSpectrum &) const override
Definition: DimMapper.h:524
ValueType map(const MSChromatogram &chrom, const Size index) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:428
const Area & setArea(const RangeAllType &data)
Set the area using unit data (RT, m/z, ...)
Definition: DimMapper.h:846
ValueType map(const MSChromatogram &chrom, const Size index) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:202
Allows dynamical switching (at runtime) between a dimension (RT, m/z, int, IM, etc) and X...
Definition: DimMapper.h:625
DimRT()
Definition: DimMapper.h:179
void pushInto(const RangeAllType &sandbox)
Push the area into a sandbox (if its outside the sandbox). See UnitRange::pushInto() ...
Definition: DimMapper.h:905
std::unique_ptr< DimBase > clone() const override
Copy derived objects to avoid slicing when dealing with pointers to DimBase.
Definition: DimMapper.h:394
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:194
Area()=delete
No default C'tor.
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:190
const RangeAllType & getAreaUnit() const
Definition: DimMapper.h:872
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:634
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:587
void fromXY(const ValueType in, ChromatogramPeak &p) const override
set the intensity of a ChromatogramPeak
Definition: DimMapper.h:486
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:411
void fromXY(const ValueType in, MobilityPeak2D &p) const override
set the intensity of a MobilityPeak2D
Definition: DimMapper.h:496
DimMZ()
Definition: DimMapper.h:285
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:565
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:244
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:424
ValueType map(const Peak2D &) const override
Definition: DimMapper.h:516
const Precursor & getPrecursor() const
returns a const reference to the precursors
DimMapper & operator=(const DimMapper &rhs)
Assignment operator.
Definition: DimMapper.h:655
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:181
ValueType map(const MobilityPeak2D &) const override
Definition: DimMapper.h:234
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:512
Area & operator=(const Area &rhs)
Assignment operator - which checks for identical DimMappers and throws otherwise. ...
Definition: DimMapper.h:818
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:520
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:287
A basic LC-MS feature.
Definition: BaseFeature.h:58
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:239
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:593
void fromXY(const Point &in, T &out) const
Definition: DimMapper.h:743
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:570
RangeAllType fromXY(const Point &in) const
Definition: DimMapper.h:754
Definition: DimMapper.h:389
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:355
DimMapper(const DimMapper &rhs)
Copy C'tor.
Definition: DimMapper.h:649
static std::unique_ptr< const DimBase > create_(DIM_UNIT u)
a minimal factory
Definition: DimMapper.h:773
void fromXY(const Point &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:731
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:266
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:419
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:680
static String prefix(const String &this_s, size_t length)
Definition: StringUtilsSimple.h:147
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:230
bool operator!=(const Area &rhs) const
Definition: DimMapper.h:836
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:474
ValueType map(const Mobilogram &mb, const Size index) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:432
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:276
Representation of a coordinate in D-dimensional space.
Definition: DPosition.h:53
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:345
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:528
void clear()
empty all dimensions
Definition: DimMapper.h:913
bool operator==(const DimMapper &rhs) const
Equality.
Definition: DimMapper.h:662
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:575
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:765
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:894
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:383
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:688
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:304
void setIntensity(IntensityType intensity)
Sets data point intensity (height)
Definition: MobilityPeak2D.h:170
ValueType map(const PeptideIdentification &pi) const override
Definition: DimMapper.h:350
std::vector< ValueType > ValueTypes
Definition: DimMapper.h:70
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:215
ValueType map(const PeptideIdentification &) const override
Definition: DimMapper.h:464
bool operator!=(const DimMapper &rhs) const
Inequality.
Definition: DimMapper.h:673
ValueType map(const MSChromatogram &, const Size) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:551
std::array< std::unique_ptr< const DimBase >, N_DIM > dims_
mappers for the X,Y,Z... dimension
Definition: DimMapper.h:792
ValueType map(const MSSpectrum &spec, const Size) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:547
FAIMS compensation voltage.
DIM
Definition: DimMapper.h:607
void setRange(const RangeBase &in, RangeAllType &out) const override
Set the min/max (range) in out for a certain dimension.
Definition: DimMapper.h:254
ion mobility milliseconds
Definition: DimMapper.h:176
ValueTypes map(const MSChromatogram &) const override
Definition: DimMapper.h:340
ValueType map(const MobilityPeak2D &p) const override
Definition: DimMapper.h:542
ValueTypes map(const MSSpectrum &spec) const override
Definition: DimMapper.h:330
ValueType map(const MSSpectrum &spec, const Size index) const override
obtain value from a certain point in a spectrum
Definition: DimMapper.h:317
CoordinateType getRT() const
Returns the RT coordinate (index 0)
Definition: Peak2D.h:210
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:415
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:437
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:146
ValueType map(const Peak2D &p) const override
Definition: DimMapper.h:403
void fromXY(const ValueType, MobilityPeak1D &) const override
set the MZ of a MobilityPeak1D (throws)
Definition: DimMapper.h:378
DIM_UNIT getUnit() const
The unit of the dimension.
Definition: DimMapper.h:152
ValueType map(const BaseFeature &bf) const override
Definition: DimMapper.h:459
ValueType map(const MobilityPeak1D &p) const override
Definition: DimMapper.h:538
const DimMapper< N_DIM > * mapper_
and a mapper (non-owning pointer) to translate between the two
Definition: DimMapper.h:923
Definition: DimMapper.h:282
ValueType map(const MSChromatogram &chrom, const Size) const override
obtain value from a certain point in a chromatogram
Definition: DimMapper.h:321
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:198
double getMin() const
only useful if isEmpty() returns false
Definition: RangeManager.h:148
Definition: DimMapper.h:799
DimMapper()=delete
No default c'tor (we need dimensions)
ValueType map(const ChromatogramPeak &) const override
Definition: DimMapper.h:300
void fromXY(const ValueType in, Peak1D &p) const override
set the intensity of a Peak1D
Definition: DimMapper.h:480
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:867
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:211
ValueType map(const Mobilogram &mb, const Size) const override
obtain value from a certain point in a mobilogram
Definition: DimMapper.h:206
void fromXY(const ValueType in, Peak1D &p) const override
set the MZ of a Peak1D
Definition: DimMapper.h:366
Area(const DimMapper< N_DIM > *const dims)
Custom C'tor with a mapper (non owning pointer)
Definition: DimMapper.h:809
RangeBase map(const RangeAllType &rm) const override
Return the min/max (range) for a certain dimension.
Definition: DimMapper.h:469
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:249
ValueTypes map(const MSChromatogram &chrom) const override
Definition: DimMapper.h:448
A 1-dimensional raw data point or peak for chromatograms.
Definition: ChromatogramPeak.h:53
bool operator==(const Area &rhs) const
Definition: DimMapper.h:830
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:505
ValueType map(const MobilityPeak1D &) const override
Definition: DimMapper.h:308
void fromXY(const DRange< N_DIM > &in, RangeManager< Ranges... > &output) const
Definition: DimMapper.h:716
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:698
ValueType map(const MSExperiment::ConstAreaIterator &it) const override
Definition: DimMapper.h:226
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:507
RangeAllType data_range_
range in units
Definition: DimMapper.h:920
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:491
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:271
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:186
Definition: DimMapper.h:502
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:882
PositionType const & minPosition() const
Accessor to minimum position.
Definition: DIntervalBase.h:124