Loading...
Searching...
No Matches
scenario.h
Go to the documentation of this file.
/**
* \file pappsomspp/processing/specpeptidoms/scenario.h
* \date 24/03/2025
* \author Aurélien Berthier
* \brief backtracking of 2nd alignment
*
* C++ implementation of the SpecPeptidOMS algorithm described in :
* (1) Benoist, É.; Jean, G.; Rogniaux, H.; Fertin, G.; Tessier, D. SpecPeptidOMS Directly and
* Rapidly Aligns Mass Spectra on Whole Proteomes and Identifies Peptides That Are Not Necessarily
* Tryptic: Implications for Peptidomics. J. Proteome Res. 2025.
* https://doi.org/10.1021/acs.jproteome.4c00870.
*/
/*
* Copyright (c) 2025 Aurélien Berthier
* <aurelien.berthier@ls2n.fr>
*
* This program 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.
*
* This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <cstddef>
#include <vector>
#include "pappsomspp/core/processing/specpeptidoms/types.h"
namespace pappso
{
namespace specpeptidoms
{
struct ScenarioCell
{
std::size_t previous_row, previous_column;
AlignType alignment_type;
};
// struct InterpretationCell
// {
// uint8_t aa;
// double shift;
// bool found_aa;
// };
class Scenario
{
public:
/**
* Constructor
*/
Scenario();
/**
* Destructor
*/
~Scenario();
/**
* @brief Stores the origin (cell location and alignment type) of the provided cell in the
* backtracking matrix
*/
void saveOrigin(std::size_t current_row,
std::size_t current_column,
std::size_t previous_row,
std::size_t previous_column,
int score,
AlignType alignment_type);
/**
* @brief Allocate new storage to the backtracking matrix if needed
*/
void reserve(std::size_t n_rows, std::size_t n_columns);
/**
* @brief Returns the scenario cells corresponding to the best alignment and the best alignment's
* score
*/
std::pair<std::vector<ScenarioCell>, int> getBestAlignment() const;
int getBestScore() const;
void resetScenario();
void clear();
private:
std::vector<std::vector<ScenarioCell>> m_origin_matrix;
std::pair<ScenarioCell, int> m_best_alignment = {{0, 0, AlignType::init}, -15};
};
} // namespace specpeptidoms
} // namespace pappso
pappso::specpeptidoms::Scenario::Scenario
Scenario()
Definition scenario.cpp:75
pappso::specpeptidoms::Scenario::saveOrigin
void saveOrigin(std::size_t current_row, std::size_t current_column, std::size_t previous_row, std::size_t previous_column, int score, AlignType alignment_type)
Stores the origin (cell location and alignment type) of the provided cell in the backtracking matrix.
Definition scenario.cpp:42
pappso::specpeptidoms::Scenario::m_best_alignment
std::pair< ScenarioCell, int > m_best_alignment
Definition scenario.h:98
pappso::specpeptidoms::Scenario::getBestScore
int getBestScore() const
Definition scenario.cpp:107
pappso::specpeptidoms::Scenario::clear
void clear()
Definition scenario.cpp:120
pappso::specpeptidoms::Scenario::m_origin_matrix
std::vector< std::vector< ScenarioCell > > m_origin_matrix
Definition scenario.h:97
pappso::specpeptidoms::Scenario::resetScenario
void resetScenario()
Definition scenario.cpp:113
pappso::specpeptidoms::Scenario::reserve
void reserve(std::size_t n_rows, std::size_t n_columns)
Allocate new storage to the backtracking matrix if needed.
Definition scenario.cpp:84
pappso::specpeptidoms::Scenario::~Scenario
~Scenario()
Definition scenario.cpp:79
pappso::specpeptidoms::Scenario::getBestAlignment
std::pair< std::vector< ScenarioCell >, int > getBestAlignment() const
Returns the scenario cells corresponding to the best alignment and the best alignment's score.
Definition scenario.cpp:91
pappso::specpeptidoms
Definition correctiontree.h:40
pappso::specpeptidoms::AlignType
AlignType
Definition types.h:51
pappso::specpeptidoms::AlignType::init
@ init
Definition types.h:56
pappso
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39
types.h
pappso::specpeptidoms::ScenarioCell
Definition scenario.h:43
pappso::specpeptidoms::ScenarioCell::alignment_type
AlignType alignment_type
Definition scenario.h:45
pappso::specpeptidoms::ScenarioCell::previous_column
std::size_t previous_column
Definition scenario.h:44
pappso::specpeptidoms::ScenarioCell::previous_row
std::size_t previous_row
Definition scenario.h:44