Skip to content
Snippets Groups Projects
identificationgroup.cpp 3.59 KiB
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"
Olivier Langella's avatar
Olivier Langella committed
#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;
}
Olivier Langella's avatar
Olivier Langella committed
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;
}

Olivier Langella's avatar
Olivier Langella committed
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) {
Olivier Langella's avatar
Olivier Langella committed
    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);
Olivier Langella's avatar
Olivier Langella committed
    qDebug() << "IdentificationGroup::startGrouping end ";