Newer
Older
/**
* \file gui/edit_tandem_preset_dialog/edittandempresetdialog.cpp
* \date 30/9/2017
* \author Olivier Langella
* \brief edit tandem preset dialog
*/
/*******************************************************************************
* Copyright (c) 2017 Olivier Langella <olivier.langella@u-psud.fr>.
*
* This file is part of XTPcpp.
*
* XTPcpp is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* XTPcpp is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XTPcpp. If not, see <http://www.gnu.org/licenses/>.
*
* Contributors:
* Olivier Langella <olivier.langella@u-psud.fr> - initial API and
*implementation
******************************************************************************/
#include "edittandempresetdialog.h"
#include <QDebug>
#include <pappsomspp/exception/exceptionnotfound.h>
#include "ui_edit_tandem_preset_dialog.h"
EditTandemPresetDialog::EditTandemPresetDialog(QWidget *parent)
: QDialog(parent), ui(new Ui::EditTandemPresetView)
qDebug() << "EditTandemPresetDialog::EditTandemPresetDialog begin";
ui->setupUi(this);
this->setModal(true);
ui->splitter->setStretchFactor(0, 1);
qDebug() << "EditTandemPresetDialog::EditTandemPresetDialog end";
}
EditTandemPresetDialog::~EditTandemPresetDialog()
{
delete ui;
if(_p_tandem_preset_file != nullptr)
delete _p_tandem_preset_file;
void
EditTandemPresetDialog::setTandemParametersFile(
const TandemParametersFile &tandem_preset_file)
if(tandem_preset_file.exists())
_p_tandem_preset_file = new TandemParametersFile(tandem_preset_file);
_preset_directory =
_p_tandem_preset_file->getAbsoluteDir().absolutePath();
_tandem_params = _p_tandem_preset_file->getTandemParameters();
_p_tandem_preset_file = new TandemParametersFile(
":/tandem/resources/model/QExactive_analysis_FDR_nosemi.xml");
_tandem_params = _p_tandem_preset_file->getTandemParameters();
QSettings settings;
_preset_directory =
settings.value("path/tandemrun_preset_directory", "").toString();
_p_tandem_preset_file->setDirectory(QDir(_preset_directory));
catch(pappso::PappsoException &error)
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
QMessageBox::warning(
this, tr("Error"), tr("Error :\n %1").arg(error.qwhat()));

Langella Olivier
committed
fillPresetComboBox();
populate();
void
EditTandemPresetDialog::doCopy()
{
ui->method_name_line_edit->setText("untitled");
readUi();
if(_p_tandem_preset_file == nullptr)
throw pappso::PappsoException(
QObject::tr("_p_tandem_preset_file == nullptr"));
delete _p_tandem_preset_file;
_p_tandem_preset_file =
new TandemParametersFile(QString("%1/untitled.xml").arg(_preset_directory));
void
EditTandemPresetDialog::doSelectDir()
{
QString directory = QFileDialog::getExistingDirectory(
this, tr("Choose preset directory"), _preset_directory);
QFileInfo my_dir(directory);
if(!directory.isEmpty() && !directory.isNull())
if(!my_dir.isWritable())
throw pappso::PappsoException(
QObject::tr(
"this directory is not writable, check permissions (%1)")
.arg(my_dir.absoluteFilePath()));
_preset_directory = directory;
fillPresetComboBox();
catch(pappso::PappsoException &error)
QMessageBox::warning(
this,
tr("Error :"),
tr("Error choosing preset directory : %1").arg(error.qwhat()));
void
EditTandemPresetDialog::doSave()
{
readUi();
if(_p_tandem_preset_file == nullptr)
throw pappso::PappsoException(
QObject::tr("_p_tandem_preset_file == nullptr"));
_p_tandem_preset_file->setDirectory(QDir(_preset_directory));
_p_tandem_preset_file->setTandemParameters(_tandem_params);
fillPresetComboBox();
populate();
void
EditTandemPresetDialog::doLoad()
{
int index = ui->preset_combo_box->currentIndex();
if(index != -1)
{ // -1 for not found
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
TandemParametersFile *p_tandem_preset_file = new TandemParametersFile(
ui->preset_combo_box->itemData(index).value<QString>());
if(p_tandem_preset_file->isTandemPresetFile())
{
if(_p_tandem_preset_file == nullptr)
throw pappso::PappsoException(
QObject::tr("_p_tandem_preset_file == nullptr"));
delete _p_tandem_preset_file;
_p_tandem_preset_file = p_tandem_preset_file;
try
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
_tandem_params = _p_tandem_preset_file->getTandemParameters();
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
populate();
catch(pappso::PappsoException &error)
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
QMessageBox::warning(
this,
tr("Error :"),
tr("Error reading %1 X!Tandem parameter file:\n %2")
.arg(p_tandem_preset_file->getAbsoluteFilePath())
.arg(error.qwhat()));
QMessageBox::warning(
this,
tr("Error :"),
tr("%1 is not an X!Tandem parameter file")
.arg(p_tandem_preset_file->getAbsoluteFilePath()));
const TandemParametersFile &
EditTandemPresetDialog::getTandemParametersFile() const
{
if(_p_tandem_preset_file == nullptr)
throw pappso::PappsoException(
QObject::tr("_p_tandem_preset_file == nullptr"));
if(!_p_tandem_preset_file->exists())
throw pappso::PappsoException(
QObject::tr("preset file %1 does not exists")
.arg(_p_tandem_preset_file->getAbsoluteFilePath()));
return *_p_tandem_preset_file;
void
EditTandemPresetDialog::fillPresetComboBox()
{
ui->preset_combo_box->clear();
QString default_preset_name = _tandem_params.getMethodName();
QDir preset_dir(_preset_directory);
QStringList filters;
filters << "*.xml";
preset_dir.setNameFilters(filters);
for(QFileInfo file_info : preset_dir.entryInfoList())
ui->preset_combo_box->addItem(file_info.baseName(),
QVariant(file_info.absoluteFilePath()));
int index = ui->preset_combo_box->findText(default_preset_name);
if(index != -1)
{ // -1 for not found
ui->preset_combo_box->setCurrentIndex(index);
void
EditTandemPresetDialog::doEdit(QString value)
{
QObject *senderObj = sender();
QString senderObjName = senderObj->objectName();
qDebug() << "EditTandemPresetDialog::doEdit begin " << senderObjName << " "
<< value;
qDebug() << "EditTandemPresetDialog::doEdit end " << senderObjName;
void
EditTandemPresetDialog::doHelp()
{
QObject *senderObj = sender();
QString senderObjName = senderObj->objectName();
qDebug() << "EditTandemPresetDialog::doHelp begin " << senderObjName;
QFile html_doc;
if(senderObjName == "spmmeu_push_button")
// spmmeu.html
html_doc.setFileName(":/tandem/resources/html_doc/spmmeu.html");
if(senderObjName == "smpc_push_button")
// spmmeu.html
html_doc.setFileName(":/tandem/resources/html_doc/smpc.html");
if(senderObjName == "spmmem_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/spmmem.html");
if(senderObjName == "spmmep_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/spmmep.html");
if(senderObjName == "spmmie_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/spmmie.html");
if(senderObjName == "sfmt_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sfmt.html");
if(senderObjName == "sfmmeu_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sfmmeu.html");
if(senderObjName == "sfmme_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sfmme.html");
if(senderObjName == "sunlw_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sunlw.html");
if(senderObjName == "snlm_push_button")

Langella Olivier
committed
{
html_doc.setFileName(":/tandem/resources/html_doc/snlm.html");

Langella Olivier
committed
}
if(senderObjName == "snlw_push_button")

Langella Olivier
committed
{
html_doc.setFileName(":/tandem/resources/html_doc/snlw.html");

Langella Olivier
committed
}
if(senderObjName == "suns_push_button")

Langella Olivier
committed
{
html_doc.setFileName(":/tandem/resources/html_doc/suns.html");

Langella Olivier
committed
}
if(senderObjName == "sdr_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sdr.html");
if(senderObjName == "stp_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/stp.html");
if(senderObjName == "smp_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/smp.html");
if(senderObjName == "smfmz_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/smfmz.html");
if(senderObjName == "smpmh_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/smpmh.html");
if(senderObjName == "spsbs_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/spsbs.html");
if(senderObjName == "suca_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/suca.html");
if(senderObjName == "st_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/st.html");
if(senderObjName == "pcs_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pcs.html");
if(senderObjName == "pcsemi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pcsemi.html");
if(senderObjName == "pcctmc_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pcctmc.html");
if(senderObjName == "pcntmc_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pcntmc.html");
if(senderObjName == "pctrmm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pctrmm.html");
if(senderObjName == "pntrmm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pntrmm.html");
if(senderObjName == "pqa_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pqa.html");
if(senderObjName == "pqp_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pqp.html");
if(senderObjName == "pstpb_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pstpb.html");
if(senderObjName == "pmrmf_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/pmrmf.html");
if((senderObjName == "rmm_push_button") ||
(senderObjName == "rmm1_push_button") ||
(senderObjName == "rmm2_push_button"))
html_doc.setFileName(":/tandem/resources/html_doc/rmm.html");
if(senderObjName == "rpmm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rpmm.html");
if(senderObjName == "rpmmotif_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rpmmotif.html");
if(senderObjName == "smic_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/smic.html");
if(senderObjName == "smmcs_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/smmcs.html");
if(senderObjName == "scp_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/scp.html");
if(senderObjName == "sir_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sir.html");
if(senderObjName == "syi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/syi.html");
if(senderObjName == "sbi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sbi.html");
if(senderObjName == "sci_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sci.html");
if(senderObjName == "szi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/szi.html");
if(senderObjName == "sai_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sai.html");
if(senderObjName == "sxi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/sxi.html");
if(senderObjName == "refine_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/refine.html");
if(senderObjName == "rmvev_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rmvev.html");
if(senderObjName == "refpntm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/refpntm.html");
if(senderObjName == "refpctm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/refpctm.html");
if((senderObjName == "refmm_push_button") ||
(senderObjName == "refmm1_push_button") ||
(senderObjName == "refmm2_push_button"))
html_doc.setFileName(":/tandem/resources/html_doc/refmm.html");
if((senderObjName == "refpmm_push_button") ||
(senderObjName == "refpmm1_push_button") ||
(senderObjName == "refpmm2_push_button"))
html_doc.setFileName(":/tandem/resources/html_doc/refpmm.html");
if((senderObjName == "refpmmotif_push_button") ||
(senderObjName == "refpmmotif1_push_button") ||
(senderObjName == "refpmmotif2_push_button"))
html_doc.setFileName(":/tandem/resources/html_doc/refpmmotif.html");
if(senderObjName == "rupmffr_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rupmffr.html");
if(senderObjName == "rcsemi_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rcsemi.html");
if(senderObjName == "ruc_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/ruc.html");
if(senderObjName == "rss_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rss.html");
if(senderObjName == "rpm_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/rpm.html");
if((senderObjName == "omvev_push_button") ||
(senderObjName == "omvpev_push_button"))
html_doc.setFileName(":/tandem/resources/html_doc/omvev.html");
if(senderObjName == "oresu_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oresu.html");
if(senderObjName == "osrb_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/osrb.html");
if(senderObjName == "oprot_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oprot.html");
if(senderObjName == "oseq_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oseq.html");
if(senderObjName == "oosc_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oosc.html");
if(senderObjName == "ospec_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/ospec.html");
if(senderObjName == "opara_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/opara.html");
if(senderObjName == "ohist_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/ohist.html");
if(senderObjName == "ohcw_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/ohcw.html");
if(senderObjName == "oph_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oph.html");
if(senderObjName == "oxp_push_button")
html_doc.setFileName(":/tandem/resources/html_doc/oxp.html");
if(html_doc.open(QFile::ReadOnly | QFile::Text))
QTextStream in(&html_doc);
ui->doc_plain_text_edit->setHtml(in.readAll());
qDebug() << "EditTandemPresetDialog::doHelp doc " << in.readAll();
qDebug() << "EditTandemPresetDialog::doHelp doc not found";
qDebug() << "EditTandemPresetDialog::doHelp end " << senderObjName;
void
EditTandemPresetDialog::readUi()
{
_tandem_params.setMethodName(ui->method_name_line_edit->text());
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass error units", "Daltons");
if(ui->spmmeu_ppm_radio_button->isChecked())
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass error units", "ppm");
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass error minus",
ui->parent_ion_lower_window_edit->text());
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass error plus",
ui->parent_ion_upper_window_edit->text());
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass isotope error", "no");
if(ui->spmmie_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue(
"spectrum, parent monoisotopic mass isotope error", "yes");
_tandem_params.setParamLabelValue("spectrum, maximum parent charge",
ui->smpc_edit->text());
_tandem_params.setParamLabelValue("spectrum, fragment mass type",
ui->sfmt_combo_box->currentText());
_tandem_params.setParamLabelValue(
"spectrum, fragment monoisotopic mass error units", "Daltons");
if(ui->sfmmeu_ppm_radio_button->isChecked())
_tandem_params.setParamLabelValue(
"spectrum, fragment monoisotopic mass error units", "ppm");
_tandem_params.setParamLabelValue(
"spectrum, fragment monoisotopic mass error", ui->sfmme_edit->text());
_tandem_params.setParamLabelValue("spectrum, use neutral loss window",
"no");
if(ui->sunlw_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("spectrum, use neutral loss window",
"yes");
_tandem_params.setParamLabelValue("spectrum, neutral loss mass",
ui->snlm_edit->text());
_tandem_params.setParamLabelValue("spectrum, neutral loss window",
ui->snlw_edit->text());
_tandem_params.setParamLabelValue("spectrum, use noise suppression",
"no");
if(ui->suns_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("spectrum, use noise suppression",
"yes");

Langella Olivier
committed
}
_tandem_params.setParamLabelValue("spectrum, dynamic range",
ui->sdr_edit->text());
_tandem_params.setParamLabelValue("spectrum, total peaks",
ui->stp_edit->text());
_tandem_params.setParamLabelValue("spectrum, minimum peaks",
ui->smp_edit->text());
_tandem_params.setParamLabelValue("spectrum, minimum fragment mz",
ui->smfmz_edit->text());
_tandem_params.setParamLabelValue("spectrum, minimum parent m+h",
ui->smpmh_edit->text());
_tandem_params.setParamLabelValue("spectrum, sequence batch size",
ui->spsbs_edit->text());
_tandem_params.setParamLabelValue("spectrum, use contrast angle", "no");
if(ui->suca_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("spectrum, use contrast angle",
"yes");
_tandem_params.setParamLabelValue("spectrum, threads",
ui->st_edit->text());
_tandem_params.setParamLabelValue("protein, cleavage site",
ui->pcs_edit->text());
_tandem_params.setParamLabelValue("protein, cleavage semi", "no");
if(ui->pcsemi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("protein, cleavage semi", "yes");
_tandem_params.setParamLabelValue(
"protein, cleavage C-terminal mass change", ui->pcctmc_edit->text());
_tandem_params.setParamLabelValue(
"protein, cleavage N-terminal mass change", ui->pcntmc_edit->text());
_tandem_params.setParamLabelValue("protein, quick acetyl", "no");
if(ui->pqa_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("protein, quick acetyl", "yes");
_tandem_params.setParamLabelValue("protein, quick pyrolidone", "no");
if(ui->pqp_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("protein, quick pyrolidone", "yes");
_tandem_params.setParamLabelValue("protein, stP bias", "no");
if(ui->pstpb_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("protein, stP bias", "yes");
_tandem_params.setParamLabelValue("protein, modified residue mass file",
ui->pmrmf_edit->text());
_tandem_params.setParamLabelValue("residue, modification mass",
ui->rmm_edit->text());
_tandem_params.setParamLabelValue("residue, modification mass 1",
ui->rmm1_edit->text());
_tandem_params.setParamLabelValue("residue, modification mass 2",
ui->rmm2_edit->text());
_tandem_params.setParamLabelValue("residue, potential modification mass",
ui->rpmm_edit->text());
_tandem_params.setParamLabelValue("residue, potential modification motif",
ui->rpmmotif_edit->text());
_tandem_params.setParamLabelValue(
"scoring, maximum missed cleavage sites", ui->smmcs_edit->text());
_tandem_params.setParamLabelValue("scoring, cyclic permutation", "no");
if(ui->scp_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, cyclic permutation",
"yes");
_tandem_params.setParamLabelValue("scoring, include reverse", "no");
if(ui->sir_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, include reverse", "yes");
_tandem_params.setParamLabelValue("scoring, minimum ion count",
ui->smic_edit->text());
_tandem_params.setParamLabelValue("scoring, y ions", "no");
if(ui->syi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, y ions", "yes");
_tandem_params.setParamLabelValue("scoring, b ions", "no");
if(ui->sbi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, b ions", "yes");
_tandem_params.setParamLabelValue("scoring, c ions", "no");
if(ui->sci_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, c ions", "yes");
_tandem_params.setParamLabelValue("scoring, z ions", "no");
if(ui->szi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, z ions", "yes");
_tandem_params.setParamLabelValue("scoring, a ions", "no");
if(ui->sai_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, a ions", "yes");
_tandem_params.setParamLabelValue("scoring, x ions", "no");
if(ui->sxi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("scoring, x ions", "yes");
_tandem_params.setParamLabelValue("refine", "no");
if(ui->refine_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("refine", "yes");
_tandem_params.setParamLabelValue(
"refine, maximum valid expectation value", ui->rmvev_edit->text());
_tandem_params.setParamLabelValue(
"refine, potential N-terminus modifications", ui->refpntm_edit->text());
_tandem_params.setParamLabelValue(
"refine, potential C-terminus modifications", ui->refpctm_edit->text());
_tandem_params.setParamLabelValue("refine, modification mass",
ui->refmm_edit->text());
_tandem_params.setParamLabelValue("refine, modification mass 1",
ui->refmm1_edit->text());
_tandem_params.setParamLabelValue("refine, modification mass 2",
ui->refmm2_edit->text());
_tandem_params.setParamLabelValue("refine, potential modification mass",
ui->refpmm_edit->text());
_tandem_params.setParamLabelValue("refine, potential modification mass 1",
ui->refpmm1_edit->text());
_tandem_params.setParamLabelValue("refine, potential modification mass 2",
ui->refpmm2_edit->text());
_tandem_params.setParamLabelValue("refine, potential modification motif",
ui->refpmmotif_edit->text());
_tandem_params.setParamLabelValue(
"refine, potential modification motif 1", ui->refpmmotif1_edit->text());
_tandem_params.setParamLabelValue(
"refine, potential modification motif 2", ui->refpmmotif2_edit->text());
_tandem_params.setParamLabelValue(
"refine, use potential modifications for full refinement", "no");
if(ui->rupmffr_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue(
"refine, use potential modifications for full refinement", "yes");
_tandem_params.setParamLabelValue("refine, cleavage semi", "no");
if(ui->rcsemi_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("refine, cleavage semi", "yes");
_tandem_params.setParamLabelValue("refine, unanticipated cleavage", "no");
if(ui->ruc_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("refine, unanticipated cleavage",
"yes");
_tandem_params.setParamLabelValue("refine, spectrum synthesis", "no");
if(ui->rss_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("refine, spectrum synthesis",
"yes");
_tandem_params.setParamLabelValue("refine, point mutations", "no");
if(ui->rpm_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("refine, point mutations", "yes");
_tandem_params.setParamLabelValue(
"output, maximum valid expectation value", ui->omvev_edit->text());
_tandem_params.setParamLabelValue(
"output, maximum valid protein expectation value",
ui->omvpev_edit->text());
_tandem_params.setParamLabelValue("output, results", "valid");
if(ui->oresu_all_radio_button->isChecked())
_tandem_params.setParamLabelValue("output, results", "all");
if(ui->oresu_stochastic_radio_button->isChecked())
_tandem_params.setParamLabelValue("output, results", "stochastic");
_tandem_params.setParamLabelValue("output, spectra", "no");
if(ui->ospec_yes_radio_button->isChecked())
_tandem_params.setParamLabelValue("output, spectra", "yes");
_tandem_params.setParamLabelValue("output, histogram column width", "30");
_tandem_params.setParamLabelValue("output, xsl path",
ui->oxp_edit->text());
catch(pappso::PappsoException &error)
QMessageBox::warning(this, tr("Error in parameters :"), error.qwhat());
void
EditTandemPresetDialog::populate()
{
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
try
{
ui->method_name_line_edit->setText(_tandem_params.getMethodName());
/*
* <note type="input" label="spectrum, parent monoisotopic mass error
* units">ppm</note>
* */
ui->spmmeu_daltons_radio_button->setChecked(true);
ui->spmmeu_ppm_radio_button->setChecked(false);
if(_tandem_params.getValue(
"spectrum, parent monoisotopic mass error units") == "ppm")
{ // -1 for not found
ui->spmmeu_daltons_radio_button->setChecked(false);
ui->spmmeu_ppm_radio_button->setChecked(true);
}
//<note type="input" label="spectrum, parent monoisotopic mass error
// minus">10</note>
ui->parent_ion_lower_window_edit->setText(_tandem_params.getValue(
"spectrum, parent monoisotopic mass error minus"));
//<note type="input" label="spectrum, parent monoisotopic mass error
// plus">10</note>
ui->parent_ion_upper_window_edit->setText(_tandem_params.getValue(
"spectrum, parent monoisotopic mass error plus"));
//<note type="input" label="spectrum, parent monoisotopic mass isotope
// error">yes</note>
ui->spmmie_yes_radio_button->setChecked(true);
ui->spmmie_no_radio_button->setChecked(false);
if(_tandem_params.getValue(
"spectrum, parent monoisotopic mass isotope error") == "no")
{ // -1 for not found
ui->spmmie_yes_radio_button->setChecked(false);
ui->spmmie_no_radio_button->setChecked(true);
}
//<note type="input" label="spectrum, maximum parent charge">4</note>
ui->smpc_edit->setText(
_tandem_params.getValue("spectrum, maximum parent charge"));
//<note type="input" label="spectrum, fragment mass
// type">monoisotopic</note>
auto index = ui->sfmt_combo_box->findText("monoisotopic");
if(index != -1)
{ // -1 for not found
ui->sfmt_combo_box->setCurrentIndex(index);
}
//<note type="input" label="spectrum, fragment monoisotopic mass error
// units">Daltons</note>
ui->sfmmeu_daltons_radio_button->setChecked(true);
ui->sfmmeu_ppm_radio_button->setChecked(false);
if(_tandem_params.getValue(
"spectrum, fragment monoisotopic mass error units") == "ppm")
{ // -1 for not found
ui->sfmmeu_daltons_radio_button->setChecked(false);
ui->sfmmeu_ppm_radio_button->setChecked(true);
}
//<note type="input" label="spectrum, fragment monoisotopic mass
// error">0.02</note>
ui->sfmme_edit->setText(
_tandem_params.getValue("spectrum, fragment monoisotopic mass error"));
//<note type="input" label="spectrum, use neutral loss window">yes</note>
ui->sunlw_yes_radio_button->setChecked(true);
ui->sunlw_no_radio_button->setChecked(false);
try
{
if(_tandem_params.getValue("spectrum, use neutral loss window") ==
"no")
{ // -1 for not found
ui->sunlw_yes_radio_button->setChecked(false);
ui->sunlw_no_radio_button->setChecked(true);
catch(pappso::ExceptionNotFound &error)
ui->sunlw_yes_radio_button->setChecked(false);
ui->sunlw_no_radio_button->setChecked(true);

Langella Olivier
committed
//<note type="input" label="spectrum, neutral loss
// mass">18.01057</note>
ui->snlm_edit->setText(
_tandem_params.getValue("spectrum, neutral loss mass"));
catch(pappso::ExceptionNotFound &error)
ui->snlm_edit->setText("18.01057");
//<note type="input" label="spectrum, neutral loss window">0.02</note>
ui->snlw_edit->setText(
_tandem_params.getValue("spectrum, neutral loss window"));
catch(pappso::ExceptionNotFound &error)
ui->snlm_edit->setText("0.02");
//<note type="input" label="spectrum, use noise suppression">yes</note>
ui->suns_yes_radio_button->setChecked(true);
ui->suns_no_radio_button->setChecked(false);
if(_tandem_params.getValue("spectrum, use noise suppression") == "no")
{ // -1 for not found
ui->suns_yes_radio_button->setChecked(false);
ui->suns_no_radio_button->setChecked(true);

Langella Olivier
committed
}
//<note type="input" label="spectrum, dynamic range">100.0</note>
ui->sdr_edit->setText(_tandem_params.getValue("spectrum, dynamic range"));
//<note type="input" label="spectrum, total peaks">100</note>
ui->stp_edit->setText(_tandem_params.getValue("spectrum, total peaks"));
ui->smp_edit->setText(_tandem_params.getValue("spectrum, minimum peaks"));
//<note type="input" label="spectrum, minimum fragment mz">150.0</note>
ui->smfmz_edit->setText(
_tandem_params.getValue("spectrum, minimum fragment mz"));
//<note type="input" label="spectrum, minimum parent m+h">500.0</note>
ui->smpmh_edit->setText(
_tandem_params.getValue("spectrum, minimum parent m+h"));
//<note type="input" label="spectrum, sequence batch size">1000</note>
ui->spsbs_edit->setText(
_tandem_params.getValue("spectrum, sequence batch size"));
//<note type="input" label="spectrum, use contrast angle">no</note>
ui->suca_yes_radio_button->setChecked(true);
ui->suca_no_radio_button->setChecked(false);
if(_tandem_params.getValue("spectrum, use contrast angle") == "no")
{ // -1 for not found
ui->suca_yes_radio_button->setChecked(false);
ui->suca_no_radio_button->setChecked(true);
catch(pappso::ExceptionNotFound &error)
ui->suca_yes_radio_button->setChecked(false);
ui->suca_no_radio_button->setChecked(true);
//<note type="input" label="spectrum, threads">1</note>
ui->st_edit->setText(_tandem_params.getValue("spectrum, threads"));
//<note type="input" label="protein, cleavage site">[RK]|{P}</note>
ui->pcs_edit->setText(_tandem_params.getValue("protein, cleavage site"));
//<note type="input" label="protein, cleavage semi">no</note>
ui->pcsemi_yes_radio_button->setChecked(true);
ui->pcsemi_no_radio_button->setChecked(false);
if(_tandem_params.getValue("protein, cleavage semi") == "no")
{ // -1 for not found
ui->pcsemi_yes_radio_button->setChecked(false);
ui->pcsemi_no_radio_button->setChecked(true);
//<note type="input" label="protein, cleavage C-terminal mass
// change">+17.00305</note>
ui->pcctmc_edit->setText(_tandem_params.getValue(
"protein, cleavage C-terminal mass change"));
catch(pappso::ExceptionNotFound &error)
ui->pcctmc_edit->setText("+17.00305");
//<note type="input" label="protein, cleavage N-terminal mass
// change">+1.00794</note>
ui->pcntmc_edit->setText(_tandem_params.getValue(
"protein, cleavage N-terminal mass change"));
catch(pappso::ExceptionNotFound &error)
ui->pcntmc_edit->setText("+1.00794");
//<note type="input" label="protein, C-terminal residue modification
// mass">0.0</note>
ui->pctrmm_edit->setText(_tandem_params.getValue(
"protein, C-terminal residue modification mass"));
//<note type="input" label="protein, N-terminal residue modification
// mass">0.0</note>
ui->pntrmm_edit->setText(_tandem_params.getValue(
"protein, N-terminal residue modification mass"));
//<note type="input" label="protein, quick acetyl">yes</note>
ui->pqa_yes_radio_button->setChecked(true);
ui->pqa_no_radio_button->setChecked(false);
if(_tandem_params.getValue("protein, quick acetyl") == "no")
{ // -1 for not found
ui->pqa_yes_radio_button->setChecked(false);
ui->pqa_no_radio_button->setChecked(true);
//<note type="input" label="protein, quick pyrolidone">yes</note>
ui->pqp_yes_radio_button->setChecked(true);
ui->pqp_no_radio_button->setChecked(false);
if(_tandem_params.getValue("protein, quick pyrolidone") == "no")
{ // -1 for not found
ui->pqp_yes_radio_button->setChecked(false);
ui->pqp_no_radio_button->setChecked(true);
//<note type="input" label="protein, stP bias">yes</note>
ui->pstpb_yes_radio_button->setChecked(true);
ui->pstpb_no_radio_button->setChecked(false);
try
if(_tandem_params.getValue("protein, stP bias") == "no")
{ // -1 for not found
ui->pstpb_yes_radio_button->setChecked(false);
ui->pstpb_no_radio_button->setChecked(true);
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
catch(pappso::ExceptionNotFound &error)
{
}
//<note type="input" label="protein, modified residue mass file"></note>
ui->pmrmf_edit->setText(
_tandem_params.getValue("protein, modified residue mass file"));
//<note type="input" label="residue, modification mass">57.02146@C</note>
ui->rmm_edit->setText(
_tandem_params.getValue("residue, modification mass"));
try
{
//<note type="input" label="residue, modification mass 1"></note>
ui->rmm1_edit->setText(
_tandem_params.getValue("residue, modification mass 1"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->rmm1_edit->setText("");
}
try
{
//<note type="input" label="residue, modification mass 2"></note>
ui->rmm2_edit->setText(
_tandem_params.getValue("residue, modification mass 2"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->rmm2_edit->setText("");
}
//<note type="input" label="residue, potential modification
// mass">15.99491@M</note>
ui->rpmm_edit->setText(
_tandem_params.getValue("residue, potential modification mass"));
//<note type="input" label="residue, potential modification motif"></note>
ui->rpmmotif_edit->setText(
_tandem_params.getValue("residue, potential modification motif"));
//<note type="input" label="scoring, minimum ion count">4</note>
ui->smic_edit->setText(
_tandem_params.getValue("scoring, minimum ion count"));
//<note type="input" label="scoring, maximum missed cleavage
// sites">1</note>
ui->smmcs_edit->setText(
_tandem_params.getValue("scoring, maximum missed cleavage sites"));
//<note type="input" label="scoring, cyclic permutation">yes</note>
ui->scp_yes_radio_button->setChecked(true);
ui->scp_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, cyclic permutation") == "no")
{ // -1 for not found
ui->scp_yes_radio_button->setChecked(false);
ui->scp_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, include reverse">yes</note>
ui->sir_yes_radio_button->setChecked(true);
ui->sir_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, include reverse") == "no")
{ // -1 for not found
ui->sir_yes_radio_button->setChecked(false);
ui->sir_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, y ions">yes</note>
ui->syi_yes_radio_button->setChecked(true);
ui->syi_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, y ions") == "no")
{ // -1 for not found
ui->syi_yes_radio_button->setChecked(false);
ui->syi_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, b ions">yes</note>
ui->sbi_yes_radio_button->setChecked(true);
ui->sbi_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, b ions") == "no")
{ // -1 for not found
ui->sbi_yes_radio_button->setChecked(false);
ui->sbi_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, c ions">no</note>
ui->sci_yes_radio_button->setChecked(true);
ui->sci_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, c ions") == "no")
{ // -1 for not found
ui->sci_yes_radio_button->setChecked(false);
ui->sci_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, z ions">no</note>
ui->szi_yes_radio_button->setChecked(true);
ui->szi_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, z ions") == "no")
{ // -1 for not found
ui->szi_yes_radio_button->setChecked(false);
ui->szi_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, a ions">no</note>
ui->sai_yes_radio_button->setChecked(true);
ui->sai_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, a ions") == "no")
{ // -1 for not found
ui->sai_yes_radio_button->setChecked(false);
ui->sai_no_radio_button->setChecked(true);
}
//<note type="input" label="scoring, x ions">no</note>
ui->sxi_yes_radio_button->setChecked(true);
ui->sxi_no_radio_button->setChecked(false);
if(_tandem_params.getValue("scoring, x ions") == "no")
{ // -1 for not found
ui->sxi_yes_radio_button->setChecked(false);
ui->sxi_no_radio_button->setChecked(true);
}
//<note type="input" label="refine">yes</note>
ui->refine_yes_radio_button->setChecked(true);
ui->refine_no_radio_button->setChecked(false);
if(_tandem_params.getValue("refine") == "no")
{ // -1 for not found
ui->refine_yes_radio_button->setChecked(false);
ui->refine_no_radio_button->setChecked(true);
}
//<note type="input" label="refine, maximum valid expectation
// value">0.01</note>
ui->rmvev_edit->setText(
_tandem_params.getValue("refine, maximum valid expectation value"));
//<note type="input" label="refine, potential N-terminus
// modifications">+42.01056@[</note>
ui->refpntm_edit->setText(
_tandem_params.getValue("refine, potential N-terminus modifications"));
//<note type="input" label="refine, potential C-terminus
// modifications"></note>
ui->refpctm_edit->setText(
_tandem_params.getValue("refine, potential C-terminus modifications"));
//<note type="input" label="refine, modification mass">57.02146@C</note>
ui->refmm_edit->setText(
_tandem_params.getValue("refine, modification mass"));
try
{
//<note type="input" label="refine, modification mass 1"></note>
ui->refmm1_edit->setText(
_tandem_params.getValue("refine, modification mass 1"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->refmm1_edit->setText("");
}
try
{
//<note type="input" label="refine, modification mass 2"></note>
ui->refmm2_edit->setText(
_tandem_params.getValue("refine, modification mass 2"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->refmm2_edit->setText("");
}
//<note type="input" label="refine, potential modification
// mass">15.99491@M</note>
ui->refpmm_edit->setText(
_tandem_params.getValue("refine, potential modification mass"));
try
{
//<note type="input" label="refine, potential modification mass
// 1"></note>
ui->refpmm1_edit->setText(
_tandem_params.getValue("refine, potential modification mass 1"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->refpmm1_edit->setText("");
}
try
{
//<note type="input" label="refine, potential modification mass
// 2"></note>
ui->refpmm2_edit->setText(
_tandem_params.getValue("refine, potential modification mass 2"));
}
catch(pappso::ExceptionNotFound &error)
{
ui->refpmm2_edit->setText("");
}
//<note type="input" label="refine, potential modification motif"></note>
ui->refpmmotif_edit->setText(
_tandem_params.getValue("refine, potential modification motif"));
try
{
//<note type="input" label="refine, potential modification motif
// 1"></note>
ui->refpmmotif1_edit->setText(
_tandem_params.getValue("refine, potential modification motif 1"));
catch(pappso::ExceptionNotFound &error)
ui->refpmmotif1_edit->setText("");
//<note type="input" label="refine, potential modification motif
// 2"></note>
ui->refpmmotif2_edit->setText(
_tandem_params.getValue("refine, potential modification motif 2"));
catch(pappso::ExceptionNotFound &error)
ui->refpmmotif2_edit->setText("");
//<note type="input" label="refine, use potential modifications for full
// refinement">yes</note>
ui->rupmffr_yes_radio_button->setChecked(true);
ui->rupmffr_no_radio_button->setChecked(false);
if(_tandem_params.getValue(
"refine, use potential modifications for full refinement") == "no")
{ // -1 for not found
ui->rupmffr_yes_radio_button->setChecked(false);
ui->rupmffr_no_radio_button->setChecked(true);
//<note type="input" label="refine, cleavage semi">no</note>
ui->rcsemi_yes_radio_button->setChecked(true);
ui->rcsemi_no_radio_button->setChecked(false);
try
if(_tandem_params.getValue("refine, cleavage semi") == "no")
{ // -1 for not found
ui->rcsemi_yes_radio_button->setChecked(false);
ui->rcsemi_no_radio_button->setChecked(true);
catch(pappso::ExceptionNotFound &error)
//<note type="input" label="refine, unanticipated cleavage">no</note>
ui->ruc_yes_radio_button->setChecked(true);
ui->ruc_no_radio_button->setChecked(false);
if(_tandem_params.getValue("refine, unanticipated cleavage") == "no")
{ // -1 for not found
ui->ruc_yes_radio_button->setChecked(false);
ui->ruc_no_radio_button->setChecked(true);
//<note type="input" label="refine, spectrum synthesis">yes</note>
ui->rss_yes_radio_button->setChecked(true);
ui->rss_no_radio_button->setChecked(false);
if(_tandem_params.getValue("refine, spectrum synthesis") == "no")
{ // -1 for not found
ui->rss_yes_radio_button->setChecked(false);
ui->rss_no_radio_button->setChecked(true);
//<note type="input" label="refine, point mutations">no</note>
ui->rpm_yes_radio_button->setChecked(true);
ui->rpm_no_radio_button->setChecked(false);
if(_tandem_params.getValue("refine, point mutations") == "no")
{ // -1 for not found
ui->rpm_yes_radio_button->setChecked(false);
ui->rpm_no_radio_button->setChecked(true);
//<note type="input" label="output, maximum valid expectation
// value">0.05</note>
ui->omvev_edit->setText(
_tandem_params.getValue("output, maximum valid expectation value"));
catch(pappso::ExceptionNotFound &error)
ui->omvev_edit->setText("0.01");
//<note type="input" label="output, maximum valid protein expectation
// value">0.05</note>
ui->omvpev_edit->setText(_tandem_params.getValue(
"output, maximum valid protein expectation value"));
catch(pappso::ExceptionNotFound &error)
ui->omvpev_edit->setText("0.01");
//<note type="input" label="output, results">valid</note>
ui->oresu_all_radio_button->setChecked(false);
ui->oresu_valid_radio_button->setChecked(true);
ui->oresu_stochastic_radio_button->setChecked(false);
if(_tandem_params.getValue("output, results") == "all")
{ // -1 for not found
ui->oresu_all_radio_button->setChecked(true);
ui->oresu_valid_radio_button->setChecked(false);
ui->oresu_stochastic_radio_button->setChecked(false);
if(_tandem_params.getValue("output, results") == "stochastic")
{ // -1 for not found
ui->oresu_all_radio_button->setChecked(false);
ui->oresu_valid_radio_button->setChecked(false);
ui->oresu_stochastic_radio_button->setChecked(true);
//<note type="input" label="output, sort results by">spectrum</note>
//<note type="input" label="output, proteins">yes</note>
//<note type="input" label="output, sequences">yes</note>
//<note type="input" label="output, one sequence copy">yes</note>
//<note type="input" label="output, spectra">yes</note>
ui->ospec_yes_radio_button->setChecked(true);
ui->ospec_no_radio_button->setChecked(false);
if(_tandem_params.getValue("output, spectra") == "no")
{ // -1 for not found
ui->ospec_yes_radio_button->setChecked(false);
ui->ospec_no_radio_button->setChecked(true);
//<note type="input" label="output, parameters">yes</note>
//<note type="input" label="output, performance">yes</note>
//<note type="input" label="output, histograms">yes</note>
//<note type="input" label="output, histogram column width">30</note>
//<note type="input" label="output, path hashing">no</note>
//<note type="input" label="output, xsl path">tandem-style.xsl</note>
ui->oxp_edit->setText(_tandem_params.getValue("output, xsl path"));
catch(pappso::ExceptionNotFound &error)
QMessageBox::warning(this, tr("Parameter not found :"), error.qwhat());
catch(pappso::PappsoException &error)
QMessageBox::warning(this, tr("Error in parameters :"), error.qwhat());
qDebug() << __FILE__ << " " << __FUNCTION__ << " " << __LINE__;
void
EditTandemPresetDialog::done(int r)
if(QDialog::Accepted == r) // ok was pressed
readUi();
if(!_p_tandem_preset_file->exists())
QMessageBox::warning(
this,
tr("Save parameters"),
tr("Parameters file does not exists.\nPlease save it before "
"pressing ok or cancel edition"));
return;
TandemParameters ref_params =
_p_tandem_preset_file->getTandemParameters();
if(ref_params.equals(_tandem_params)) // validate the data somehow
QDialog::done(r);
return;
QMessageBox::warning(
this,
tr("Save parameters"),
tr("Parameters modified but not saved.\nPlease save it before "
"pressing ok or cancel edition"));
return;
else // cancel, close or exc was pressed
QDialog::done(r);
return;