libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
msrunxicextractorfactory.cpp
Go to the documentation of this file.
1/**
2 * \file pappsomspp/xicextractor/msrunxicextractorfactory.cpp
3 * \date 07/05/2018
4 * \author Olivier Langella
5 * \brief factory to build XIC extractor on an MsRun file
6 */
7
8/*******************************************************************************
9 * Copyright (c) 2018 Olivier Langella <Olivier.Langella@u-psud.fr>.
10 *
11 * This file is part of the PAPPSOms++ library.
12 *
13 * PAPPSOms++ is free software: you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation, either version 3 of the License, or
16 * (at your option) any later version.
17 *
18 * PAPPSOms++ is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
25 *
26 * Contributors:
27 * Olivier Langella <Olivier.Langella@u-psud.fr> - initial API and
28 *implementation
29 ******************************************************************************/
30
37
38namespace pappso
39{
40
41
43
49
50
57
58void
60{
61 m_tmpDirName = dir_name;
62}
63void
68
71{
72
73 pappso::TimsMsRunReaderMs2 *tims2_reader =
74 dynamic_cast<pappso::TimsMsRunReaderMs2 *>(msrun_reader.get());
75 if(tims2_reader == nullptr)
76 {
77 // NO TIMS
80 {
81 std::shared_ptr<MsRunXicExtractor> msrun_xic_extractor_sp =
82 std::make_shared<MsRunXicExtractor>(MsRunXicExtractor(msrun_reader));
83 return (msrun_xic_extractor_sp);
84 }
86 {
87
88 std::shared_ptr<MsRunXicExtractorDisk> msrun_xic_extractor_sp =
89 std::make_shared<MsRunXicExtractorDisk>(
90 MsRunXicExtractorDisk(msrun_reader, QDir(m_tmpDirName)));
91
92 msrun_xic_extractor_sp.get()->prepareExtractor();
93 return (msrun_xic_extractor_sp);
94 }
96 {
97
98 std::shared_ptr<MsRunXicExtractorDiskBuffer> msrun_xic_extractor_sp =
99 std::make_shared<MsRunXicExtractorDiskBuffer>(
100 MsRunXicExtractorDiskBuffer(msrun_reader, QDir(m_tmpDirName)));
101 msrun_xic_extractor_sp.get()->prepareExtractor();
102 return (msrun_xic_extractor_sp);
103 }
104 }
105 else
106 {
107 // TIMS
108 std::shared_ptr<TimsDirectXicExtractor> msrun_xic_extractor_sp =
109 std::make_shared<TimsDirectXicExtractor>(msrun_reader);
110 return (msrun_xic_extractor_sp);
111 }
112 return nullptr;
113}
114
115
116} // namespace pappso
factory to build different kinds of XIC extractors
MsRunXicExtractorFactoryType m_type
void setTmpDir(const QString &dir_name)
set the temporary working directory
MsRunXicExtractorInterfaceSp buildMsRunXicExtractorSp(MsRunReaderSPtr &msrun_reader) const
build a simple XIC extractor that directly uses Proeowizard library to read and extract XICs building...
static MsRunXicExtractorFactory & getInstance()
singleton to get the only instance of the factory
void setMsRunXicExtractorFactoryType(pappso::MsRunXicExtractorFactoryType type)
sets the xic extractor type
static MsRunXicExtractorFactory m_instance
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
std::shared_ptr< MsRunReader > MsRunReaderSPtr
Definition msrunreader.h:57
std::shared_ptr< MsRunXicExtractorInterface > MsRunXicExtractorInterfaceSp