34 const QString &xml_prefix)
37 QFile file(file_name);
40 .arg(QFileInfo(file_name).absoluteFilePath())));
46 "No nativeID format indicates that the file tagged with this term does not "
47 "contain spectra that can have a nativeID format.";
85 term.
m_name =
"SCIEX TOF/TOF T2D format";
87 "Applied Biosystems/MDS Analytical Technologies TOF/TOF instrument "
92 term.
m_name =
"ABI WIFF format";
93 term.
m_definition =
"Applied Biosystems WIFF file format.";
97 term.
m_name =
"Agilent MassHunter format";
99 "A data file format found in an Agilent MassHunter directory which "
100 "contains raw data acquired by an Agilent mass spectrometer.";
106 term.
m_name =
"Bruker FID format";
111 term.
m_name =
"Bruker TDF format";
116 term.
m_name =
"Bruker/Agilent YEP format";
121 term.
m_name =
"Mascot MGF format";
128 term.
m_name =
"mz5 format";
129 term.
m_definition =
"mz5 file format, modelled after mzML.";
133 term.
m_name =
"mzML format";
135 "Proteomics Standards Inititative mzML file format.";
141 term.
m_name =
"mzML format";
143 "Proteomics Standards Inititative mzML file format.";
147 term.
m_name =
"ISB mzXML format";
148 term.
m_definition =
"Institute of Systems Biology mzXML file format.";
155 term.
m_name =
"Thermo RAW format";
156 term.
m_definition =
"Thermo Scientific RAW file format.";
162 term.
m_name =
"Waters raw format";
164 "Waters data file format found in a Waters RAW directory, generated "
165 "from an MS acquisition.";
169 term.
m_name =
"BafAscii text format";
171 "Simple text file format obtained by exporting Bruker Baf to ascii "
172 "using Bruker software";
176 term.
m_name =
"text format";
178 "Simple text file format of \"m/z<separator>intensity\" value pairs "
179 "for a single mass spectrum, a PMF (or single MS2) search.";
196std::vector<MsRunIdCstSPtr>
202 std::vector<MsRunIdCstSPtr> ms_run_ids;
210 qDebug() <<
"sure, this is mzcbor";
222 if(ms_run_ids.size())
224 qDebug() <<
"Might well be handled using the Pwiz code.";
247 if(!QFileInfo(tims_dir).isDir())
249 tims_dir = QFileInfo(
m_fileName).absolutePath();
256 if(ms_run_ids.size())
292 if(ms_run_ids.size())
324 if(ms_run_ids.size())
348 std::pair<Enums::MsDataFormat, Enums::FileReaderType>(format, reader_type));
353 ret.first->second = reader_type;
395 if(!QFileInfo(tims_dir).isDir())
397 tims_dir = QFileInfo(
m_fileName).absolutePath();
401 std::vector<MsRunIdCstSPtr> ms_run_ids =
404 if(ms_run_ids.size())
411 return std::make_shared<TimsMsRunReaderMs2>(ms_run_ids.front());
416 QObject::tr(
"Unable to read mz data directory %1 with TimsTOF reader.")
431 QObject::tr(
"The MsRunId instance must have the name file name as the "
432 "MsFileAccessor. %1 != %2")
434 .arg(ms_run_id->getFileName())));
438 qDebug() <<
"Returning a MzcborMsRunReader.";
440 return std::make_shared<MzcborMsRunReader>(ms_run_id);
445 qDebug() <<
"Returning a PwizMsRunReader.";
446 auto pwiz_reader = std::make_shared<PwizMsRunReader>(ms_run_id);
448 pwiz_reader->getOboPsiModTermNativeIDFormat();
455 return std::make_shared<XyMsRunReader>(ms_run_id);
460 qDebug() <<
"Returning a TimsMsRunReader Enums::FileReaderType::tims";
461 return std::make_shared<TimsMsRunReader>(ms_run_id);
466 qDebug() <<
"Returning a TimsFramesMsRunReader "
467 "Enums::FileReaderType::tims_frames.";
469 return std::make_shared<TimsFramesMsRunReader>(ms_run_id);
475 <<
"Returning a TimsMsRunReaderMs2 Enums::FileReaderType::tims_ms2";
477 return std::make_shared<TimsMsRunReaderMs2>(ms_run_id);
482 qDebug() <<
"Returning a Enums::FileReaderType::tims_dia";
485 return std::make_shared<TimsMsRunReaderDia>(ms_run_id);
492 return std::make_shared<BafAsciiMsRunReader>(ms_run_id);
498 return std::make_shared<XyMsRunReader>(ms_run_id);
502 auto pwiz_reader = std::make_shared<PwizMsRunReader>(ms_run_id);
504 pwiz_reader->getOboPsiModTermNativeIDFormat();
519 std::vector<MsRunIdCstSPtr> ms_run_ids =
getMsRunIds();
520 if(ms_run_id_index >= ms_run_ids.size())
521 throw PappsoException(QObject::tr(
"MsRunId request out-of-bound error."));
544 QFile file(ms_run_id.get()->getFileName());
547 QObject::tr(
"unable to build a reader : file %1 not found.")
548 .arg(QFileInfo(ms_run_id.get()->getFileName()).absoluteFilePath())));
556 return std::make_shared<XyMsRunReader>(ms_run_id);
562 return std::make_shared<BafAsciiMsRunReader>(ms_run_id);
567 QObject::tr(
"unable to build a reader for %1 : unknown file format")
568 .arg(QFileInfo(ms_run_id.get()->getFileName()).absoluteFilePath())));
575 return std::make_shared<TimsMsRunReader>(ms_run_id);
579 return std::make_shared<TimsMsRunReaderMs2>(ms_run_id);
584 <<
"returning std::make_shared<TimsFramesMsRunReader>(ms_run_id).";
585 return std::make_shared<TimsFramesMsRunReader>(ms_run_id);
588 return std::make_shared<TimsMsRunReader>(ms_run_id);
592 return std::make_shared<MzcborMsRunReader>(ms_run_id);
597 return std::make_shared<PwizMsRunReader>(ms_run_id);
603 const QString &xml_id)
605 std::vector<MsRunIdCstSPtr> run_list =
getMsRunIds();
609 if(original_run_id.get()->getRunId() == run_id)
611 MsRunId new_run_id(*original_run_id.get());
618 if((run_id.isEmpty()) && (run_list.size() == 1))
620 MsRunId new_run_id(*run_list[0].get());
627 if(reader_sp ==
nullptr)
632 .arg(QFileInfo(
m_fileName).absoluteFilePath())));
virtual Enums::MsDataFormat getFileFormat() override
virtual std::vector< MsRunIdCstSPtr > getMsRunIds(const QString &run_prefix) override
excetion to use when an item type is not recognized
const OboPsiModTerm & getOboPsiModTermNativeIDFormat() const
get OboPsiModTerm corresponding to the nativeID format format of mz data
MsRunIdCstSPtr getSelectedMsRunId() const
MsRunReaderSPtr msRunReaderSPtr(MsRunIdCstSPtr ms_run_id)
const QString m_xmlPrefix
Enums::FileReaderType m_fileReaderType
Enums::MsDataFormat m_fileFormat
void setPreferredFileReaderType(Enums::MsDataFormat format, Enums::FileReaderType reader_type)
given an mz format, explicitly set the preferred reader
virtual ~MsFileAccessor()
Enums::MsDataFormat getFileFormat() const
get the raw format of mz data
Enums::FileReaderType getFileReaderType() const
get the file reader type
MsRunReaderSPtr msRunReaderSPtrForSelectedMsRunId()
MsRunIdCstSPtr mcsp_selectedMsRunId
std::vector< MsRunIdCstSPtr > getMsRunIds()
OboPsiModTerm m_oboPsiModTermNativeIDFormat
void setSelectedMsRunId(MsRunIdCstSPtr ms_run_id_csp)
const OboPsiModTerm getOboPsiModTermFileFormat() const
get OboPsiModTerm corresponding to the raw format of mz data
MsRunReaderSPtr getMsRunReaderSPtrByRunId(const QString &run_id, const QString &xml_id)
get an msrun reader by finding the run_id in file
Enums::FileReaderType getpreferredFileReaderType(Enums::MsDataFormat format)
MsFileAccessor(const QString &file_name, const QString &xml_prefix)
static MsRunReaderSPtr buildMsRunReaderSPtr(MsRunIdCstSPtr ms_run_id)
get an MsRunReader directly from a valid MsRun ID
std::map< Enums::MsDataFormat, Enums::FileReaderType > m_preferredFileReaderTypeMap
TimsMsRunReaderMs2SPtr buildTimsMsRunReaderMs2SPtr()
if possible, builds directly a dedicated Tims TOF tdf file reader
const QString & getFileName() const
MS run identity MsRunId identifies an MS run with a unique ID (XmlId) and contains eventually informa...
void setXmlId(const QString &xml_id)
set an XML unique identifier for this MsRunId
virtual std::vector< MsRunIdCstSPtr > getMsRunIds(const QString &run_prefix) override
virtual Enums::MsDataFormat getFileFormat() override
void setAccession(const QString &accession)
virtual std::vector< MsRunIdCstSPtr > getMsRunIds(const QString &run_prefix) override
virtual Enums::MsDataFormat getFileFormat() override
virtual Enums::MsDataFormat getFileFormat() override
virtual std::vector< MsRunIdCstSPtr > getMsRunIds(const QString &run_prefix) override
virtual std::vector< MsRunIdCstSPtr > getMsRunIds(const QString &run_prefix) override
virtual Enums::MsDataFormat getFileFormat() override
MSrun file reader for mzcbor.
@ tims
TimsMsRunReader : each scan is returned as a mass spectrum.
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< MsRunReader > MsRunReaderSPtr
std::shared_ptr< TimsMsRunReaderMs2 > TimsMsRunReaderMs2SPtr
std::shared_ptr< const MsRunId > MsRunIdCstSPtr