Skip to content
Snippets Groups Projects
Commit 608dea92 authored by Langella Olivier's avatar Langella Olivier
Browse files

export MassChroqPRM files

parent 95a18154
No related branches found
No related tags found
No related merge requests found
......@@ -101,6 +101,7 @@ SET(CPP_FILES
output/ods/simplesheet.cpp
output/ods/spectrasheet.cpp
output/masschroqml.cpp
output/masschroqprm.cpp
output/proticdbml.cpp
output/xpip.cpp
utils/fastafilestore.cpp
......
......@@ -67,6 +67,7 @@
</property>
<addaction name="actionFasta"/>
<addaction name="actionMassChroQ"/>
<addaction name="actionMassChroqPRM"/>
<addaction name="actionSpreadsheet"/>
<addaction name="actionProticDb"/>
<addaction name="action_spectral_counting_mcq"/>
......@@ -163,7 +164,12 @@
</action>
<action name="action_save_project">
<property name="text">
<string>Save project</string>
<string>&amp;Save project</string>
</property>
</action>
<action name="actionMassChroqPRM">
<property name="text">
<string>MassChroqPRM</string>
</property>
</action>
</widget>
......@@ -427,6 +433,22 @@
</hint>
</hints>
</connection>
<connection>
<sender>actionMassChroqPRM</sender>
<signal>triggered()</signal>
<receiver>Main</receiver>
<slot>doActionMassChroqPRM()</slot>
<hints>
<hint type="sourcelabel">
<x>-1</x>
<y>-1</y>
</hint>
<hint type="destinationlabel">
<x>231</x>
<y>191</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>selectXpipFile()</slot>
......@@ -442,5 +464,6 @@
<slot>doActionAbout()</slot>
<slot>doActionTandemRun()</slot>
<slot>doActionSaveProject()</slot>
<slot>doActionMassChroqPRM()</slot>
</slots>
</ui>
......@@ -464,6 +464,34 @@ void MainWindow::doActionMassChroQ() {
qDebug() << "MainWindow::doActionMassChroQ end";
}
void MainWindow::doActionMassChroqPRM() {
qDebug() << "MainWindow::doActionMassChroqPRM begin";
try {
_project_sp.get()->checkPsimodCompliance();
QSettings settings;
QString default_location = settings.value("path/mcqprmfile", "").toString();
QString filename = QFileDialog::getSaveFileName(this, tr("Save MassChroqPRM file"),
QString("%1/untitled.masschroqprm").arg(default_location),
tr("MassChroqPRM (*.masschroqprm)"));
if (filename.isEmpty()) {
return;
}
settings.setValue("path/mcqprmfile", QFileInfo(filename).absolutePath());
showWaitingMessage(tr("Writing %1 MassChroqPRM file").arg(QFileInfo(filename).fileName()));
emit operateWritingMassChroqPrmFile(filename, _project_sp);
//emit operateXpipFile(filename);
}
catch (pappso::PappsoException & error) {
viewError(tr("Error while writing MassChroqML file :\n%1").arg(error.qwhat()));
}
qDebug() << "MainWindow::doActionMassChroqPRM end";
}
void MainWindow::doActionProticDb() {
qDebug() << "MainWindow::doActionProticDb begin";
try {
......
......@@ -69,6 +69,7 @@ public slots:
void doActionQuit();
void doActionFasta();
void doActionMassChroQ();
void doActionMassChroqPRM();
void doActionProticDb();
void doActionLabelingMethods();
void doActionTandemRun();
......@@ -99,6 +100,7 @@ signals:
void operateWritingXpipFile(QString filename, ProjectSp project_sp);
void operateWritingOdsFile(QString filename, ProjectSp project_sp);
void operateWritingMassChroqFile(QString filename, ProjectSp project_sp);
void operateWritingMassChroqPrmFile(QString filename, ProjectSp project_sp);
void operateWritingProticFile(QString filename, ProjectSp project_sp);
void operateGrouping(ProjectSp project_sp);
void operateRunningXtandem(TandemRunBatch tandem_run_batch);
......
......@@ -32,6 +32,7 @@
#include <pappsomspp/pappsoexception.h>
#include <QDebug>
#include "../output/masschroqml.h"
#include "../output/masschroqprm.h"
#include "../output/proticdbml.h"
#include "../output/ods/odsexport.h"
#include "../output/xpip.h"
......@@ -73,6 +74,7 @@ WorkerThread::WorkerThread(MainWindow * p_main_window)
connect(this, &WorkerThread::groupingFinished, p_main_window,&MainWindow::doGroupingFinished);
//masschroq write
connect(p_main_window, &MainWindow::operateWritingMassChroqFile, this,&WorkerThread::doWritingMassChroqFile);
connect(p_main_window, &MainWindow::operateWritingMassChroqPrmFile, this,&WorkerThread::doWritingMassChroqPrmFile);
//protic write
connect(p_main_window, &MainWindow::operateWritingProticFile, this,&WorkerThread::doWritingProticFile);
//writing ODS file :
......@@ -306,6 +308,20 @@ void WorkerThread::doWritingMassChroqFile(QString filename, ProjectSp project_sp
}
}
void WorkerThread::doWritingMassChroqPrmFile(QString filename, ProjectSp project_sp) {
try {
emit loadingMessage(tr("writing MassChroqPRM file, please wait"));
MassChroqPrm output(filename);
output.write(project_sp);
output.close();
emit operationFinished();
}
catch (pappso::PappsoException & error) {
emit operationFailed(tr("Error while writing MassChroqPRM file :\n%1").arg(error.qwhat()));
}
}
void WorkerThread::doWritingProticFile(QString filename, ProjectSp project_sp) {
try {
......
......@@ -61,6 +61,7 @@ public slots:
void doWritingXpipFile(QString filename, ProjectSp project_sp);
void doWritingOdsFile(QString filename, ProjectSp project_sp);
void doWritingMassChroqFile(QString filename, ProjectSp project_sp);
void doWritingMassChroqPrmFile(QString filename, ProjectSp project_sp);
void doWritingProticFile(QString filename, ProjectSp project_sp);
void doGrouping(ProjectSp project_sp);
void doGroupingOnIdentification(IdentificationGroup * p_identification_group, GroupingType grouping_type);
......
......@@ -29,6 +29,7 @@
#include "masschroqprm.h"
#include <pappsomspp/pappsoexception.h>
#include <pappsomspp/utils.h>
MassChroqPrm::MassChroqPrm(const QString & out_filename) {
//_p_digestion_pipeline = p_digestion_pipeline;
......@@ -73,7 +74,7 @@ void MassChroqPrm::write(ProjectSp sp_project) {
//<masschroq>
_output_stream->writeStartElement("masschroqprm");
/*
*
*
<parameters>
<parentIonMassTolerance>
<daltonPrecision value="1.5"/>
......@@ -102,6 +103,7 @@ void MassChroqPrm::write(ProjectSp sp_project) {
}
void MassChroqPrm::writePeptides() {
/*
*
*
......@@ -112,36 +114,42 @@ void MassChroqPrm::writePeptides() {
_output_stream->writeStartElement("peptideList");
for (IdentificationGroup * p_ident_group : _sp_project.get()->getIdentificationGroupList()) {
for () {
PeptideMassSet pepMassSet = new PeptideMassSet();
logger.debug("pepMassSet size : " + pepMassSet.size());
logger.debug("pepMassSet numbering");
pepMassSet.numberingGetPepMass2PeptideList(group);
// iterated current pepid to write buffer peptide element
for (PeptideMass pepMass : pepMassSet) {
_output_stream->writeStartElement("peptide");
_output_stream->writeAttribute("id",
Utils.getPappsoPeptideMassId(group, pepMass));
Peptide bestPeptide = pepMass.getBestEvaluePeptide();
_output_stream->writeAttribute("seq", bestPeptide.getSequence());
ArrayList<Modifs> arrModif = bestPeptide.get_Modifs();
for (Modifs modif : arrModif) {
_output_stream->writeStartElement("psimod");
_output_stream->writeAttribute("at", "" + modif.get_posi());
_output_stream->writeAttribute("acc", ""
+ modif.getPsiMod().getAccession());
_output_stream->writeEndElement();
for (IdentificationDataSourceSp identification_data_source_sp :_sp_project.get()->getIdentificationDataSourceStore().getIdentificationDataSourceList()) {
for (const PeptideEvidenceSp & peptide_evidence_sp: identification_data_source_sp.get()->getPeptideEvidenceStore().getPeptideEvidenceList()) {
const pappso::GrpPeptide * p_grp_peptide =peptide_evidence_sp.get()->getGrpPeptideSp().get();
if (p_grp_peptide != nullptr) {
std::set<const pappso::GrpPeptide *> _already_writed;
if (_already_writed.find(p_grp_peptide) == _already_writed.end()) {
_already_writed.insert(p_grp_peptide);
PeptideXtp * p_peptide = peptide_evidence_sp.get()->getPeptideXtpSp().get();
_output_stream->writeStartElement("peptide");
_output_stream->writeAttribute("id",p_grp_peptide->getGroupingId());
_output_stream->writeAttribute("seq", p_peptide->getSequence());
unsigned int i=0;
for (const pappso::Aa & amino_acid: *p_peptide) {
std::list<pappso::AaModificationP> aa_modif_list = amino_acid.getModificationList();
for (auto && aa_modif : aa_modif_list) {
if (!aa_modif->isInternal()) {
_output_stream->writeStartElement("psimod");
_output_stream->writeAttribute("acc", aa_modif->getAccession());
_output_stream->writeAttribute("at", QString ("%1").arg(i));
_output_stream->writeEndElement();// mod
}
}
i++;
}
_output_stream->writeEndElement();
}
}
_output_stream->writeEndElement();
}
}
//peptideList
_output_stream->writeEndElement();
}
catch (pappso::PappsoException &error)
......@@ -152,6 +160,5 @@ void MassChroqPrm::writePeptides() {
{
throw pappso::PappsoException(QObject::tr("Error in MassChroqPrm::writePeptides stdex :\n%1").arg(error.what()));
}
}
}
......@@ -45,16 +45,7 @@ class MassChroqPrm
void write(ProjectSp sp_project);
void close();
private:
void writeGroups();
void writeProteinList();
void writePeptideList();
void writePeptideListInGroup(const GroupingGroup * p_group);
void writeIsotopeLabelList();
void writeAlignments();
void writeQuantificationMethods();
void writeQuantificationResults();
void writeQuantificationTraces();
void writeQuantify();
void writePeptides();
private :
QFile * _output_file;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment