libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::psm::SageFileReader Class Reference

#include <sagefilereader.h>

Public Member Functions

 SageFileReader (pappso::UiMonitorInterface *p_monitor, pappso::cbor::CborStreamWriter *p_output, const QFileInfo &sage_json_file)
 main function to convert Sage results to CBOR output
virtual ~SageFileReader ()
const QJsonDocument & getJsonDocument () const
QString getMsRunSpWithFileName (const QString &msrun_filename) const

Private Member Functions

void readJson ()

Private Attributes

const QFileInfo m_sageJsonFile
QJsonDocument m_jsonData
std::map< QString, QString > m_mapFilePath2MsRunSp
QString m_sageVersion
pappso::cbor::CborStreamWritermp_cborWriter
QString m_decoyTag
bool m_generateDecoy = false
QStringList m_targetFastaFile

Detailed Description

Todo
write docs

Definition at line 47 of file sagefilereader.h.

Constructor & Destructor Documentation

◆ SageFileReader()

pappso::cbor::psm::SageFileReader::SageFileReader ( pappso::UiMonitorInterface * p_monitor,
pappso::cbor::CborStreamWriter * p_output,
const QFileInfo & sage_json_file )

main function to convert Sage results to CBOR output

given the Sage JSON result file, this class reads the TSV output and convert the Sage PSMs to the PSMcbor format

Parameters
p_monitorpointer to monitor read progress
p_outputcbor output pointer
sage_json_fileSage JSON result file

Definition at line 47 of file sagefilereader.cpp.

50 : m_sageJsonFile(sage_json_file)
51{
52 qDebug() << m_sageJsonFile.absoluteFilePath() << "'";
53 try
54 {
55
56 mp_cborWriter = p_output;
57
58 mp_cborWriter->startMap();
59 mp_cborWriter->writeInformations(
60 "sage_file_reader", Utils::getVersion(), "psm", "sage reader");
61
62 QDir::setCurrent(sage_json_file.absolutePath());
63 readJson();
64 mp_cborWriter->append("parameter_map");
65 mp_cborWriter->startMap();
66 mp_cborWriter->append("sage");
67 QCborValue::fromJsonValue(m_jsonData.object()).toCbor(*mp_cborWriter);
68 mp_cborWriter->endMap();
69
70 p_monitor->setStatus(
71 QObject::tr("reading Sage json file %1").arg(sage_json_file.absoluteFilePath()));
72
73 // "decoy_tag": "rev_",
74 // "generate_decoys": true,
75 // "target_fasta_files": ["zea_mays.fasta", "contaminant.fasta"],
76 //"decoy_fasta_files": ["rev_zea_mays.fasta", "rev_contaminant.fasta"],
77
78 mp_cborWriter->append("target_fasta_files");
80
81 SageReader sage_reader(p_monitor, mp_cborWriter, *this, sage_json_file.absoluteFilePath());
82 sage_reader.read();
83
84 // mp_cborWriter->append("protein_map");
85 // sage_reader.getPsmProteinMap().
86
87 mp_cborWriter->endMap();
88 }
89 catch(pappso::ExceptionNotRecognized &err)
90 {
91 throw err;
92 }
93 catch(pappso::PappsoException &other_err)
94 {
95 throw pappso::PappsoException(QObject::tr("Error reading Sage JSON file %1:\n%2")
96 .arg(m_sageJsonFile.absoluteFilePath())
97 .arg(other_err.qwhat()));
98 }
99}
virtual const QString & qwhat() const
virtual void setStatus(const QString &status)=0
current status of the process
static QString getVersion()
Definition utils.cpp:650
pappso::cbor::CborStreamWriter * mp_cborWriter

References pappso::Utils::getVersion(), m_jsonData, m_sageJsonFile, m_targetFastaFile, mp_cborWriter, pappso::PappsoException::qwhat(), pappso::cbor::psm::SageReader::read(), readJson(), and pappso::UiMonitorInterface::setStatus().

◆ ~SageFileReader()

pappso::cbor::psm::SageFileReader::~SageFileReader ( )
virtual

Destructor

Definition at line 102 of file sagefilereader.cpp.

103{
104}

Member Function Documentation

◆ getJsonDocument()

const QJsonDocument & pappso::cbor::psm::SageFileReader::getJsonDocument ( ) const

Definition at line 160 of file sagefilereader.cpp.

161{
162 return m_jsonData;
163}

References m_jsonData.

◆ getMsRunSpWithFileName()

QString pappso::cbor::psm::SageFileReader::getMsRunSpWithFileName ( const QString & msrun_filename) const

Definition at line 167 of file sagefilereader.cpp.

168{
169 auto it = m_mapFilePath2MsRunSp.find(msrun_filename);
170 if(it != m_mapFilePath2MsRunSp.end())
171 return it->second;
172
173
174 throw pappso::PappsoException(QObject::tr("msrun filename %1 not found").arg(msrun_filename));
175}
std::map< QString, QString > m_mapFilePath2MsRunSp

References m_mapFilePath2MsRunSp.

◆ readJson()

void pappso::cbor::psm::SageFileReader::readJson ( )
private

Definition at line 108 of file sagefilereader.cpp.

109{
110 QFile mfile(m_sageJsonFile.absoluteFilePath());
111 if(!mfile.open(QFile::ReadOnly))
112 {
113 throw pappso::ExceptionNotRecognized(
114 QObject::tr("Unable to read Sage JSON file %1").arg(m_sageJsonFile.absoluteFilePath()));
115 }
116 QByteArray iContents = mfile.readAll();
117
118 QJsonParseError parseError;
119 m_jsonData = QJsonDocument::fromJson(iContents, &parseError);
120 if(parseError.error != QJsonParseError::NoError)
121 {
122 throw pappso::ExceptionNotRecognized(QObject::tr("Error reading Sage JSON file %1 at %2:%3")
123 .arg(m_sageJsonFile.absoluteFilePath())
124 .arg(parseError.offset)
125 .arg(parseError.errorString()));
126 }
127
128 QJsonValue mzml_value = m_jsonData.object().value("mzml_paths");
129
130 if(mzml_value.isNull())
131 {
132 throw pappso::ExceptionNotRecognized(
133 QObject::tr("Sage JSON file %1 does not contain mzml_paths")
134 .arg(m_sageJsonFile.absoluteFilePath()));
135 }
136 for(const QJsonValue &value : m_jsonData.object().value("mzml_paths").toArray())
137 {
138 qDebug() << value.toString();
139
140 // MsRunSp msrun_sp = p_project->getMsRunStore().getInstance(value.toString());
142 {QFileInfo(value.toString()).fileName(), QFileInfo(value.toString()).absoluteFilePath()});
143 }
144
145
146 m_sageVersion = m_jsonData.object().value("version").toString();
147
148
149 QJsonObject sage_object = m_jsonData.object();
150
151
152 QJsonObject database = sage_object.value("database").toObject();
153
154 m_decoyTag = database.value("decoy_tag").toString();
155 m_generateDecoy = database.value("generate_decoy").toBool();
156 m_targetFastaFile << database.value("fasta").toString();
157}

References m_decoyTag, m_generateDecoy, m_jsonData, m_mapFilePath2MsRunSp, m_sageJsonFile, m_sageVersion, and m_targetFastaFile.

Referenced by SageFileReader().

Member Data Documentation

◆ m_decoyTag

QString pappso::cbor::psm::SageFileReader::m_decoyTag
private

Definition at line 80 of file sagefilereader.h.

Referenced by readJson().

◆ m_generateDecoy

bool pappso::cbor::psm::SageFileReader::m_generateDecoy = false
private

Definition at line 81 of file sagefilereader.h.

Referenced by readJson().

◆ m_jsonData

QJsonDocument pappso::cbor::psm::SageFileReader::m_jsonData
private

Definition at line 75 of file sagefilereader.h.

Referenced by SageFileReader(), getJsonDocument(), and readJson().

◆ m_mapFilePath2MsRunSp

std::map<QString, QString> pappso::cbor::psm::SageFileReader::m_mapFilePath2MsRunSp
private

Definition at line 77 of file sagefilereader.h.

Referenced by getMsRunSpWithFileName(), and readJson().

◆ m_sageJsonFile

const QFileInfo pappso::cbor::psm::SageFileReader::m_sageJsonFile
private

Definition at line 74 of file sagefilereader.h.

Referenced by SageFileReader(), and readJson().

◆ m_sageVersion

QString pappso::cbor::psm::SageFileReader::m_sageVersion
private

Definition at line 78 of file sagefilereader.h.

Referenced by readJson().

◆ m_targetFastaFile

QStringList pappso::cbor::psm::SageFileReader::m_targetFastaFile
private

Definition at line 82 of file sagefilereader.h.

Referenced by SageFileReader(), and readJson().

◆ mp_cborWriter

pappso::cbor::CborStreamWriter* pappso::cbor::psm::SageFileReader::mp_cborWriter
private

Definition at line 79 of file sagefilereader.h.

Referenced by SageFileReader().


The documentation for this class was generated from the following files: