diff --git a/src/gui/export/export_masschroq_dialog/export_masschroq_dialog.ui b/src/gui/export/export_masschroq_dialog/export_masschroq_dialog.ui index 8f371534d102e9682474762cf3824bd089f5bc10..697456ff56fd9a216b4df399492ab3a8499b46a2 100644 --- a/src/gui/export/export_masschroq_dialog/export_masschroq_dialog.ui +++ b/src/gui/export/export_masschroq_dialog/export_masschroq_dialog.ui @@ -293,85 +293,6 @@ </item> </layout> </widget> - <widget class="QWidget" name="resultTab"> - <attribute name="title"> - <string>&Result files</string> - </attribute> - <layout class="QVBoxLayout" name="verticalLayout_4"> - <item> - <widget class="QWidget" name="widget" native="true"> - <layout class="QVBoxLayout" name="verticalLayout_3"> - <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Peptide quantification result file name</string> - </property> - </widget> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_2"> - <property name="spacing"> - <number>6</number> - </property> - <item> - <widget class="QLineEdit" name="outputFileEdit"/> - </item> - </layout> - </item> - <item> - <widget class="QGroupBox" name="comparFileGroupBox"> - <property name="title"> - <string>Compa&r file name</string> - </property> - <property name="checkable"> - <bool>true</bool> - </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_3"> - <property name="spacing"> - <number>6</number> - </property> - <item> - <widget class="QLineEdit" name="comparFileEdit"/> - </item> - <item> - <widget class="QComboBox" name="comparFileFormatComboBox"> - <item> - <property name="text"> - <string>ODS</string> - </property> - </item> - <item> - <property name="text"> - <string>TSV</string> - </property> - </item> - </widget> - </item> - </layout> - </item> - </layout> - </widget> - </item> - <item> - <spacer name="verticalSpacer"> - <property name="orientation"> - <enum>Qt::Vertical</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>20</width> - <height>40</height> - </size> - </property> - </spacer> - </item> - </layout> - </widget> - </item> - </layout> - </widget> </widget> </item> <item> @@ -398,7 +319,7 @@ </widget> </item> <item> - <widget class="QRadioButton" name="radioButton"> + <widget class="QRadioButton" name="compar_radioButton"> <property name="text"> <string>Compar file</string> </property> diff --git a/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp b/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp index e95b1f499af01baa03f5853a645760b2025a3164..8f673bb75cba5d253fef3d432bbde14375c28701 100644 --- a/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp +++ b/src/gui/export/export_masschroq_dialog/exportmasschroqdialog.cpp @@ -102,22 +102,13 @@ ExportMasschroqDialog::setMasschroqFileParameters( ui->zivyParamWidget->setZivyParams(zivy_params); - ui->outputFileEdit->setText(params.result_file_name); ui->outputFileFormatComboBox->setCurrentText("ODS"); if(params.result_file_format == TableFileFormat::tsv) { ui->outputFileFormatComboBox->setCurrentText("TSV"); } - ui->comparFileGroupBox->setChecked(params.export_compar_file); - - ui->comparFileEdit->setText(params.compar_file_name); - ui->comparFileFormatComboBox->setCurrentText("ODS"); - if(params.compar_file_format == TableFileFormat::tsv) - { - ui->comparFileFormatComboBox->setCurrentText("TSV"); - } - + ui->compar_radioButton->setChecked(params.export_compar_file); ui->timeCorrectionGroupBox->setChecked(params.write_alignment_times); ui->timeCorrectionDirectoryEdit->setText(params.alignment_times_directory); @@ -135,21 +126,21 @@ ExportMasschroqDialog::getMasschroqFileParameters() const { MasschroqFileParameters params; - params.result_file_name = ui->outputFileEdit->text(); params.result_file_format = TableFileFormat::ods; if(ui->outputFileFormatComboBox->currentText() == "TSV") { params.result_file_format = TableFileFormat::tsv; } - - params.export_compar_file = ui->comparFileGroupBox->isChecked(); - params.compar_file_name = ui->comparFileEdit->text(); - params.compar_file_format = TableFileFormat::ods; - if(ui->comparFileFormatComboBox->currentText() == "TSV") + for(int i = 0; i < mp_poModel->rowCount(); i++) { - params.compar_file_format = TableFileFormat::tsv; + qDebug() << mp_poModel->item(i, 0)->checkState(); + if(mp_poModel->item(i, 0)->checkState() == Qt::CheckState(Qt::Checked)) + { + params.alignment_groups.push_back(msp_alignmentGroups.at(i)); + } } + params.export_compar_file = ui->compar_radioButton->isChecked(); params.write_alignment_times = ui->timeCorrectionGroupBox->isChecked(); params.alignment_times_directory = ui->timeCorrectionDirectoryEdit->text(); @@ -190,19 +181,6 @@ void ExportMasschroqDialog::accept() { QString error_message; - if(ui->outputFileEdit->text().isEmpty()) - { - error_message = QString(tr("MassChroqML result file name must be set")); - } - if(ui->comparFileGroupBox->isChecked()) - { - if(ui->comparFileEdit->text().isEmpty()) - { - error_message = - QString(tr("MassChroqML compar file name must be set")); - } - } - if(ui->timeCorrectionGroupBox->isChecked()) { if(ui->timeCorrectionDirectoryEdit->text().isEmpty()) diff --git a/src/gui/export/export_masschroq_dialog/masschroqfileparameters.cpp b/src/gui/export/export_masschroq_dialog/masschroqfileparameters.cpp index 40eadbefec143b8cd004ac65eeea4168a29adcec..8fef08b58069ac2a15be50234f94be73bc47328f 100644 --- a/src/gui/export/export_masschroq_dialog/masschroqfileparameters.cpp +++ b/src/gui/export/export_masschroq_dialog/masschroqfileparameters.cpp @@ -35,19 +35,12 @@ void MasschroqFileParameters::save() const { QSettings settings; - settings.setValue("export_masschroqml/result_file_name", - QString("%1").arg(result_file_name)); settings.setValue("export_masschroqml/result_file_format", (std::uint8_t)result_file_format); settings.setValue("export_masschroqml/export_compar_file", QString("%1").arg(export_compar_file)); - settings.setValue("export_masschroqml/compar_file_name", - QString("%1").arg(compar_file_name)); - settings.setValue("export_masschroqml/compar_file_format", - (std::uint8_t)compar_file_format); - settings.setValue("export_masschroqml/write_alignment_times", write_alignment_times); @@ -73,9 +66,6 @@ void MasschroqFileParameters::load() { QSettings settings; - result_file_name = - settings.value("export_masschroqml/result_file_name", QString("results")) - .toString(); result_file_format = (TableFileFormat)settings .value("export_masschroqml/result_file_format", @@ -87,16 +77,6 @@ MasschroqFileParameters::load() settings .value("export_masschroqml/compar_file_name", QString("%1").arg(true)) .toBool(); - compar_file_name = - settings - .value("export_masschroqml/compar_file_name", QString("compar_results")) - .toString(); - compar_file_format = - (TableFileFormat)settings - .value("export_masschroqml/compar_file_format", - QString("%1").arg((std::uint8_t)TableFileFormat::ods)) - .toUInt(); - write_alignment_times = settings .value("export_masschroqml/write_alignment_times", diff --git a/src/gui/export/export_masschroq_dialog/masschroqfileparameters.h b/src/gui/export/export_masschroq_dialog/masschroqfileparameters.h index dca3303b7df1c62a828ac9d32223bb0372a39468..55b61563cd6b9e6ee3312fcb1e16306d1390305e 100644 --- a/src/gui/export/export_masschroq_dialog/masschroqfileparameters.h +++ b/src/gui/export/export_masschroq_dialog/masschroqfileparameters.h @@ -41,14 +41,14 @@ struct MasschroqFileParameters void load(); /** @brief quantification result output file name*/ - QString result_file_name; + // QString result_file_name; /** @brief quantification result output file type*/ TableFileFormat result_file_format = TableFileFormat::ods; bool export_compar_file = false; - QString compar_file_name; - TableFileFormat compar_file_format = TableFileFormat::ods; + // QString compar_file_name; + // TableFileFormat compar_file_format = TableFileFormat::ods; bool write_alignment_times; QString alignment_times_directory; @@ -62,4 +62,5 @@ struct MasschroqFileParameters pappso::XicExtractMethod xic_extraction_method; // sum or max MsRunSp msrun_alignment_reference; + std::vector<MsRunAlignmentGroupSp> alignment_groups; }; diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 55aaf40de92dc593c248ac4bef2d798d8e0961df..f3e9299961eb16f00a151cced1f0b153af167d7a 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -664,6 +664,7 @@ MainWindow::doAcceptedExportMasschroqDialog() MasschroqFileParameters params = _p_export_masschroq_dialog->getMasschroqFileParameters(); params.save(); + qDebug() << params.alignment_groups.size(); QSettings settings; QString default_location = settings.value("path/mcqfile", "").toString(); diff --git a/src/output/masschroqml.cpp b/src/output/masschroqml.cpp index c4ca988d1d67c0472b3a581a13ab2a6eeb21c584..6125a7d650bc402b6da881c6deb90a2859b24f86 100644 --- a/src/output/masschroqml.cpp +++ b/src/output/masschroqml.cpp @@ -199,7 +199,8 @@ MassChroQml::writeQuantificationResults() //<quantification_result output_file="result1" // format="tsv" /> _output_stream->writeStartElement("quantification_result"); - _output_stream->writeAttribute("output_file", m_params.result_file_name); + _output_stream->writeAttribute( + "output_file", "result_" + QFileInfo(*_output_file).baseName()); if(m_params.result_file_format == TableFileFormat::ods) { _output_stream->writeAttribute("format", "ods"); @@ -219,8 +220,9 @@ MassChroQml::writeQuantificationResults() if(m_params.export_compar_file) { _output_stream->writeStartElement("compar_result"); - _output_stream->writeAttribute("output_file", m_params.compar_file_name); - if(m_params.compar_file_format == TableFileFormat::ods) + _output_stream->writeAttribute( + "output_file", "compar_" + QFileInfo(*_output_file).baseName()); + if(m_params.result_file_format == TableFileFormat::ods) { _output_stream->writeAttribute("format", "ods"); } @@ -456,23 +458,27 @@ MassChroQml::writeAlignments() _output_stream->writeEndElement(); //<align group_id="G1" method_id="my_ms2" reference_data_id="samp0" /> //<align group_id="G2" method_id="my_obiwarp" reference_data_id="samp2" /> - _output_stream->writeStartElement("align"); - _output_stream->writeAttribute("group_id", "fractiona1"); - _output_stream->writeAttribute("method_id", "my_ms2"); - std::vector<MsRunSp> msrun_list = - _sp_project.get()->getMsRunStore().getMsRunList(); - if(m_params.msrun_alignment_reference == nullptr) - { - _output_stream->writeAttribute("reference_data_id", - msrun_list.front().get()->getXmlId()); - } - else + + for(MsRunAlignmentGroupSp group_sp : m_params.alignment_groups) { - _output_stream->writeAttribute( - "reference_data_id", - m_params.msrun_alignment_reference.get()->getXmlId()); + _output_stream->writeStartElement("align"); + _output_stream->writeAttribute("group_id", + group_sp->getMsRunAlignmentGroupName()); + _output_stream->writeAttribute("method_id", "my_ms2"); + if(group_sp->getMsRunReference() == nullptr) + { + _output_stream->writeAttribute( + "reference_data_id", + group_sp->getMsRunsInAlignmentGroup().front().get()->getXmlId()); + } + else + { + _output_stream->writeAttribute( + "reference_data_id", + group_sp->getMsRunReference().get()->getXmlId()); + } + _output_stream->writeEndElement(); } - _output_stream->writeEndElement(); //</alignments> _output_stream->writeEndElement(); } @@ -660,17 +666,20 @@ MassChroQml::writeGroups() //<groups> _output_stream->writeStartElement("groups"); //<group data_ids="samp0 samp1" id="G1" /> - _output_stream->writeStartElement("group"); - _output_stream->writeAttribute("id", QString("fractiona1")); - std::vector<MsRunSp> msrun_list = - _sp_project.get()->getMsRunStore().getMsRunList(); - QStringList list; - for(MsRunSp &msrun : msrun_list) + for(MsRunAlignmentGroupSp group_sp : m_params.alignment_groups) { - list << msrun.get()->getXmlId(); + _output_stream->writeStartElement("group"); + _output_stream->writeAttribute("id", + group_sp->getMsRunAlignmentGroupName()); + QStringList list; + for(MsRunSp &msrun : group_sp->getMsRunsInAlignmentGroup()) + { + list << msrun.get()->getXmlId(); + } + _output_stream->writeAttribute("data_ids", list.join(" ")); + _output_stream->writeEndElement(); } - _output_stream->writeAttribute("data_ids", list.join(" ")); - _output_stream->writeEndElement(); + //<group data_ids="samp2 samp3" id="G2" /> // </groups> _output_stream->writeEndElement();