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 46 of file sagefilereader.cpp.

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

102{
103}

Member Function Documentation

◆ getJsonDocument()

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

Definition at line 159 of file sagefilereader.cpp.

160{
161 return m_jsonData;
162}

References m_jsonData.

◆ getMsRunSpWithFileName()

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

Definition at line 166 of file sagefilereader.cpp.

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

References m_mapFilePath2MsRunSp.

◆ readJson()

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

Definition at line 107 of file sagefilereader.cpp.

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

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: