Newer
Older
/*******************************************************************************
* 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"
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);
}
std::vector<ProteinMatch *> & IdentificationGroup::getProteinMatchList() {
return _protein_match_list;
}
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;
}
void IdentificationGroup::startGrouping (const GroupingType & grouping_type) {
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();