30 #include "boost/shared_ptr.hpp"
31 #include "boost/iostreams/positioning.hpp"
41 using namespace pwiz::data;
64 const std::string _name =
"",
65 const std::string _location =
"");
107 Sample(
const std::string _id =
"",
108 const std::string _name =
"");
139 Component(CVID cvid,
int order) { define(cvid, order); }
141 void define(CVID cvid,
int order);
166 const Component& source(
size_t index)
const;
169 const Component& analyzer(
size_t index)
const;
172 const Component& detector(
size_t index)
const;
185 Software(
const std::string& _id =
"");
189 const std::string& _version);
298 explicit SelectedIon(
double mz,
double intensity, CVID intensityUnit);
300 explicit SelectedIon(
double mz,
double intensity,
int chargeState, CVID intensityUnit);
334 explicit Precursor(
double mz,
double intensity, CVID intensityUnit);
336 explicit Precursor(
double mz,
double intensity,
int chargeState, CVID intensityUnit);
362 ScanWindow(
double low,
double high, CVID unit);
426 :
mz(0), intensity(0)
430 : mz(mz), intensity(intensity)
450 : time(0), intensity(0)
454 : time(time), intensity(intensity)
534 return binaryDataArrayPtrs.size() &&
535 binaryDataArrayPtrs[0] &&
536 !binaryDataArrayPtrs[0]->data.empty();
540 void getMZIntensityPairs(std::vector<MZIntensityPair>& output)
const;
545 void getMZIntensityPairs(
MZIntensityPair* output,
size_t expectedSize)
const;
554 void setMZIntensityPairs(
const std::vector<MZIntensityPair>& input, CVID intensityUnits);
557 void setMZIntensityPairs(
const MZIntensityPair* input,
size_t size, CVID intensityUnits);
560 void setMZIntensityArrays(
const std::vector<double>& mzArray,
const std::vector<double>& intensityArray, CVID intensityUnits);
591 void getTimeIntensityPairs(std::vector<TimeIntensityPair>& output)
const;
596 void getTimeIntensityPairs(
TimeIntensityPair* output,
size_t expectedSize)
const;
605 void setTimeIntensityPairs(
const std::vector<TimeIntensityPair>& input, CVID timeUnits, CVID intensityUnits);
608 void setTimeIntensityPairs(
const TimeIntensityPair* input,
size_t size, CVID timeUnits, CVID intensityUnits);
611 void setTimeIntensityArrays(
const std::vector<double>& timeArray,
const std::vector<double>& intensityArray, CVID timeUnits, CVID intensityUnits);
656 virtual size_t size()
const = 0;
659 virtual bool empty()
const;
665 virtual size_t find(
const std::string&
id)
const;
668 virtual IndexList findNameValue(
const std::string& name,
const std::string&
value)
const;
671 virtual IndexList findSpotID(
const std::string& spotID)
const;
676 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData =
false)
const = 0;
682 return spectrum(seed->index, getBinaryData);
699 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
717 virtual size_t size()
const {
return spectra.size();}
718 virtual bool empty()
const {
return spectra.empty() && !dp.get();}
720 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData)
const;
721 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
755 virtual size_t size()
const = 0;
764 virtual size_t find(
const std::string&
id)
const;
769 virtual ChromatogramPtr chromatogram(
size_t index,
bool getBinaryData =
false)
const = 0;
773 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
791 virtual size_t size()
const {
return chromatograms.size();}
792 virtual bool empty()
const {
return chromatograms.empty() && !dp.get();}
794 virtual ChromatogramPtr chromatogram(
size_t index,
bool getBinaryData)
const;
795 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
834 Run& operator=(
const Run&);
838 namespace IO {
struct HandlerMSData;}
877 std::vector<DataProcessingPtr> allDataProcessingPtrs()
const;
889 const std::string& version()
const;
898 friend struct IO::HandlerMSData;
914 template<
typename value_type>
915 value_type
valueAs(
const std::string&
id,
const std::string& name)
917 std::string result =
value(
id, name);
919 : boost::lexical_cast<value_type>(0);
948 #endif // _MSDATA_HPP_