30 #include "boost/shared_ptr.hpp"
31 #include "boost/iostreams/positioning.hpp"
42 using namespace pwiz::data;
65 const std::string _name =
"",
66 const std::string _location =
"");
108 Sample(
const std::string _id =
"",
109 const std::string _name =
"");
140 Component(CVID cvid,
int order) { define(cvid, order); }
142 void define(CVID cvid,
int order);
167 const Component& source(
size_t index)
const;
170 const Component& analyzer(
size_t index)
const;
173 const Component& detector(
size_t index)
const;
186 Software(
const std::string& _id =
"");
190 const std::string& _version);
299 explicit SelectedIon(
double mz,
double intensity, CVID intensityUnit);
301 explicit SelectedIon(
double mz,
double intensity,
int chargeState, CVID intensityUnit);
335 explicit Precursor(
double mz,
double intensity, CVID intensityUnit);
337 explicit Precursor(
double mz,
double intensity,
int chargeState, CVID intensityUnit);
363 ScanWindow(
double low,
double high, CVID unit);
427 :
mz(0), intensity(0)
431 : mz(mz), intensity(intensity)
451 : time(0), intensity(0)
455 : time(time), intensity(intensity)
535 return binaryDataArrayPtrs.size() &&
536 binaryDataArrayPtrs[0] &&
537 !binaryDataArrayPtrs[0]->data.empty();
541 void getMZIntensityPairs(std::vector<MZIntensityPair>& output)
const;
546 void getMZIntensityPairs(
MZIntensityPair* output,
size_t expectedSize)
const;
555 void setMZIntensityPairs(
const std::vector<MZIntensityPair>& input, CVID intensityUnits);
558 void setMZIntensityPairs(
const MZIntensityPair* input,
size_t size, CVID intensityUnits);
561 void setMZIntensityArrays(
const std::vector<double>& mzArray,
const std::vector<double>& intensityArray, CVID intensityUnits);
592 void getTimeIntensityPairs(std::vector<TimeIntensityPair>& output)
const;
597 void getTimeIntensityPairs(
TimeIntensityPair* output,
size_t expectedSize)
const;
606 void setTimeIntensityPairs(
const std::vector<TimeIntensityPair>& input, CVID timeUnits, CVID intensityUnits);
609 void setTimeIntensityPairs(
const TimeIntensityPair* input,
size_t size, CVID timeUnits, CVID intensityUnits);
612 void setTimeIntensityArrays(
const std::vector<double>& timeArray,
const std::vector<double>& intensityArray, CVID timeUnits, CVID intensityUnits);
657 virtual size_t size()
const = 0;
660 virtual bool empty()
const;
666 virtual size_t find(
const std::string&
id)
const;
669 virtual IndexList findNameValue(
const std::string& name,
const std::string&
value)
const;
672 virtual IndexList findSpotID(
const std::string& spotID)
const;
677 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData =
false)
const = 0;
683 return spectrum(seed->index, getBinaryData);
700 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
703 void warn_once(
const char *msg)
const;
724 virtual size_t size()
const {
return spectra.size();}
725 virtual bool empty()
const {
return spectra.empty() && !dp.get();}
727 virtual SpectrumPtr spectrum(
size_t index,
bool getBinaryData)
const;
728 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
762 virtual size_t size()
const = 0;
771 virtual size_t find(
const std::string&
id)
const;
776 virtual ChromatogramPtr chromatogram(
size_t index,
bool getBinaryData =
false)
const = 0;
780 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
798 virtual size_t size()
const {
return chromatograms.size();}
799 virtual bool empty()
const {
return chromatograms.empty() && !dp.get();}
801 virtual ChromatogramPtr chromatogram(
size_t index,
bool getBinaryData)
const;
802 virtual const boost::shared_ptr<const DataProcessing> dataProcessingPtr()
const;
841 Run& operator=(
const Run&);
845 namespace IO {
struct HandlerMSData;}
884 std::vector<DataProcessingPtr> allDataProcessingPtrs()
const;
896 const std::string& version()
const;
909 friend struct IO::HandlerMSData;
926 template<
typename value_type>
927 value_type
valueAs(
const std::string&
id,
const std::string& name)
929 std::string result =
value(
id, name);
931 : boost::lexical_cast<value_type>(0);
960 #endif // _MSDATA_HPP_