libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
proteinpresenceabsencematrix.h
Go to the documentation of this file.
1/**
2 * \file protein/proteinpresenceabsencematrix.h
3 * \date 07/02/2024
4 * \author Olivier Langella
5 * \brief presence/absence matrix of amino acid code along the protein sequence
6 */
7
8/*******************************************************************************
9 * Copyright (c) 2024 Olivier Langella
10 *<Olivier.Langella@universite-paris-saclay.fr>.
11 *
12 * This file is part of PAPPSOms++.
13 *
14 * PAPPSOms++ is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * PAPPSOms++ is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with PAPPSOms++. If not, see <http://www.gnu.org/licenses/>.
26 *
27 ******************************************************************************/
28
29#pragma once
30
31#include "../exportinmportconfig.h"
32#include <vector>
33#include <boost/numeric/ublas/matrix.hpp>
34
35namespace pappso
36{
37
38class ProteinIntegerCode;
39
40/**
41 * @brief
42 */
44{
45 public:
46 /**
47 * Default constructor
48 */
50
51
52 /**
53 * copy constructor
54 */
56
57 /**
58 * Destructor
59 */
61
63 operator=(const ProteinPresenceAbsenceMatrix &other);
64
65 void fillMatrix(const pappso::ProteinIntegerCode &coded_protein,
66 const std::vector<uint32_t> &code_list_from_spectrum);
67
68 /** @brief process convolution of spectrum code list along protein sequence
69 */
70 std::vector<double> convolution() const;
71
72 enum class ProteinPresenceAbsenceMatrixElement : std::uint8_t
73 {
74 absent = 0, ///< the aa sequence code is not present
75 present = 1, ///< the aa sequence code is present
76 };
77
78
79 const boost::numeric::ublas::matrix<
81 getPresenceAbsenceMatrix() const;
82
83
84 private:
85 double convolutionKernel(std::size_t position) const;
86 double getScore(std::size_t seq_position, std::size_t aa_fragment_size) const;
87
88
89 private:
90 boost::numeric::ublas::matrix<ProteinPresenceAbsenceMatrixElement>
92};
93} // namespace pappso
boost::numeric::ublas::matrix< ProteinPresenceAbsenceMatrixElement > m_presenceAbsenceMatrix
#define PMSPP_LIB_DECL
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
Definition aa.cpp:39