36#include "../../config.h"
45 char *
const p =
reinterpret_cast<char *
>(&in);
46 for(
size_t i = 0; i <
sizeof(T) / 2; ++i)
47 std::swap(p[i], p[
sizeof(T) - i - 1]);
64 mp_output->m_monitor.count();
65 mp_output->writeQualifiedMassSpectrum(spectrum);
76 QIODevice *p_output_device)
123 writeHeader(p_msrunreader);
134 m_monitor.setTotalSteps(0);
141 mpa_outputStream->writeNamespace(
"http://www.w3.org/2001/XMLSchema-instance",
157 "xmlns",
"http://sashimi.sourceforge.net/schema_revision/mzXML_3.2");
159 "xsi:schemaLocation",
160 "http://sashimi.sourceforge.net/schema_revision/mzXML_3.2 "
161 "http://sashimi.sourceforge.net/schema_revision/mzXML_3.2/"
162 "mzXML_idx_3.2.xsd");
250 QStringList native_id_list = native_id.split(
"=");
251 if(native_id_list.size() < 2)
256 return native_id_list.back().toULong();
258 return std::numeric_limits<std::size_t>::max();
264 std::size_t scan_number =
266 if(scan_number == std::numeric_limits<std::size_t>::max())
277 std::size_t scan_number =
279 if(scan_number == std::numeric_limits<std::size_t>::max())
317 QString(
"%1").arg(spectrum.
size()));
319 if(spectrum.
size() > 0)
340 QString(
"PT%1S").arg(QString::number(spectrum.
getRtInSeconds(),
'f', 2)));
357 "precursorIntensity", QString::number(precursor_intensity,
'f', 4));
363 QString(
"%1").arg(charge));
369 QString::number(precursor_mz,
'f', 12));
390 QByteArray byte_array;
391 if(QSysInfo::ByteOrder == QSysInfo::LittleEndian)
397 byte_array.append((
char *)&swap, 8);
399 byte_array.append((
char *)&swap, 8);
407 byte_array.append((
char *)&peak.x, 8);
408 byte_array.append((
char *)&peak.y, 8);
std::size_t getSpectrumIndex() const
const QString & getNativeId() const
base class to read MSrun the only way to build a MsRunReader object is to use the MsRunReaderFactory
virtual std::size_t spectrumListSize() const =0
get the totat number of spectrum conained in the MSrun data file
virtual void readSpectrumCollection2(const MsRunReadConfig &config, SpectrumCollectionHandlerInterface &handler)=0
virtual void readSpectrumCollection(SpectrumCollectionHandlerInterface &handler)=0
function to visit an MsRunReader and get each Spectrum in a spectrum collection handler
const MsRunIdCstSPtr & getMsRunId() const
Translater(MzxmlOutput *p_mzxml_output)
virtual bool needPeakList() const override
tells if we need the peak list (if we want the binary data) for each spectrum
virtual void setQualifiedMassSpectrum(const QualifiedMassSpectrum &spectrum) override
void setReadAhead(bool read_ahead)
std::size_t getScanNumberFromNativeId(const QString &native_id) const
MzxmlOutput(UiMonitorInterface &monitor, QIODevice *p_output_device)
void write(MsRunReader *p_msrunreader)
UiMonitorInterface & m_monitor
std::size_t getScanNumber(const QualifiedMassSpectrum &spectrum) const
QXmlStreamWriter * mpa_outputStream
void writeQualifiedMassSpectrum(const QualifiedMassSpectrum &spectrum)
void maskMs1(bool mask_ms1)
std::size_t getPrecursorScanNumber(const QualifiedMassSpectrum &spectrum) const
void writeHeader(MsRunReader *p_msrunreader)
Class representing a fully specified mass spectrum.
uint getMsLevel() const
Get the mass spectrum level.
MassSpectrumCstSPtr getMassSpectrumCstSPtr() const
Get the MassSpectrumCstSPtr.
uint getPrecursorCharge(bool *ok=nullptr) const
get precursor charge
const QString & getPrecursorNativeId() const
pappso_double getPrecursorIntensity(bool *ok=nullptr) const
get precursor intensity
const MassSpectrumId & getMassSpectrumId() const
Get the MassSpectrumId.
bool isEmptyMassSpectrum() const
pappso_double getPrecursorMz(bool *ok=nullptr) const
get precursor mz
std::size_t getPrecursorSpectrumIndex() const
Get the scan number of the precursor ion.
pappso_double getRtInSeconds() const
Get the retention time in seconds.
virtual void setReadAhead(bool is_read_ahead) final
use threads to read a spectrum by batch of batch_size
virtual void setNeedMsLevelPeakList(unsigned int ms_level, bool want_peak_list) final
tells if we need the peak list given
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
#define PAPPSOMSPP_VERSION
write msrun peaks into mzxml output stream
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...