/******************************************************************************* * 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 "identificationgroup.h" #include "project.h" #include "../utils/groupstore.h" IdentificationGroup::IdentificationGroup(Project * project) { _p_project = project; } IdentificationGroup::~IdentificationGroup() { auto it = _protein_match_list.begin(); while (it != _protein_match_list.end()) { delete (*it); it++; } } void IdentificationGroup::updateAutomaticFilters(const AutomaticFilterParameters & automatic_filter_parameters) { for (auto & p_protein_match : _protein_match_list) { p_protein_match->updateAutomaticFilters(automatic_filter_parameters); } if (_p_grp_experiment != nullptr) { } } void IdentificationGroup::addProteinMatch(ProteinMatch * protein_match) { _protein_match_list.push_back(protein_match); } void IdentificationGroup::addMsRunIdSp(pappso::MsRunIdSp ms_run_sp) { _ms_run_list.push_back(ms_run_sp); } const std::vector<pappso::MsRunIdSp> & IdentificationGroup::getMsRunIdSpList() const { return _ms_run_list; } std::vector<ProteinMatch *> & IdentificationGroup::getProteinMatchList() { return _protein_match_list; } size_t IdentificationGroup::countGrouped()const { size_t i=0; for (auto & p_protein_match : _protein_match_list) { if (p_protein_match->isGrouped()) { i++; } } return i; } size_t IdentificationGroup::countValidAndChecked()const { size_t i=0; for (auto & p_protein_match : _protein_match_list) { if (p_protein_match->isValidAndChecked()) { i++; } } return i; } size_t IdentificationGroup::countValid()const { size_t i=0; for (auto & p_protein_match : _protein_match_list) { if (p_protein_match->isValid()) { i++; } } return i; } std::size_t IdentificationGroup::countGroup()const { return _group_store.countGroup(); } std::size_t IdentificationGroup::countSubGroup()const { return _group_store.countSubGroup(); } void IdentificationGroup::startGrouping (const GroupingType & grouping_type) { qDebug() << "IdentificationGroup::startGrouping begin "; if (_p_grp_experiment != nullptr) { delete _p_grp_experiment; } _p_grp_experiment = GroupingExperiment::newInstance(grouping_type); for (auto & p_protein_match : _protein_match_list) { p_protein_match->setGroupingExperiment(_p_grp_experiment); } _p_grp_experiment->startGrouping(); _group_store.clear(); for (auto & p_protein_match : _protein_match_list) { p_protein_match->setGroupInstance(_group_store); } qDebug() << "IdentificationGroup::startGrouping end "; }