libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::AaStringCodeMassMatching Class Reference

#include <aastringcodemassmatching.h>

Classes

struct  aaCodeAndMassRange
 

Public Member Functions

 AaStringCodeMassMatching (const AaCode &aa_code, std::size_t model_max_size, PrecisionPtr precision)
 
 AaStringCodeMassMatching (const AaStringCodeMassMatching &other)
 
 ~AaStringCodeMassMatching ()
 
std::vector< uint32_t > getAaCodeFromMassList (std::vector< double > &mass_list) const
 
std::vector< uint32_t > filterCodeList (std::vector< uint32_t > &code_list) const
 filter a list of amino acid string code find elementary amino acids (one base only) in the list and retrieve 2 or more amino acid string containing only basic aminio acid found
 

Private Attributes

const AaCodem_aaCode
 
AaStringCodec m_aaCodec
 
uint32_t m_base = 0
 
std::vector< aaCodeAndMassRangem_codeMassList
 

Detailed Description

Definition at line 40 of file aastringcodemassmatching.h.

Constructor & Destructor Documentation

◆ AaStringCodeMassMatching() [1/2]

AaStringCodeMassMatching::AaStringCodeMassMatching ( const AaCode aa_code,
std::size_t  model_max_size,
PrecisionPtr  precision 
)

Default constructor

Definition at line 34 of file aastringcodemassmatching.cpp.

37 : m_aaCode(aa_code), m_aaCodec(aa_code)
38{
39 m_base = m_aaCode.getSize() + 1;
40
41 std::vector<pappso::CodeToMass> code_to_mass =
43
44 for(auto &code_mass : code_to_mass)
45 {
46 aaCodeAndMassRange aaCodeMassRange;
47 aaCodeMassRange.code = code_mass.code;
48 double delta = precision->delta(code_mass.mass);
49 aaCodeMassRange.mz_range_low = code_mass.mass - delta;
50 aaCodeMassRange.mz = code_mass.mass;
51 aaCodeMassRange.mz_range_up = code_mass.mass + delta;
52
53 m_codeMassList.push_back(aaCodeMassRange);
54 }
55
56
57 std::sort(m_codeMassList.begin(),
58 m_codeMassList.end(),
59 [](const aaCodeAndMassRange &a, const aaCodeAndMassRange &b) {
60 return a.mz_range_low < b.mz_range_low;
61 });
62}
std::size_t getSize() const
Definition aacode.cpp:74
std::vector< aaCodeAndMassRange > m_codeMassList
std::vector< CodeToMass > generateLlcCodeListUpToMaxPeptideSize(std::size_t size) const
generates all possible combination of llc code mass llc : the lowest common code denominator for a gi...
virtual pappso_double delta(pappso_double value) const =0

References pappso::a, pappso::b, pappso::AaStringCodeMassMatching::aaCodeAndMassRange::code, pappso::PrecisionBase::delta(), pappso::AaStringCodec::generateLlcCodeListUpToMaxPeptideSize(), pappso::AaCode::getSize(), m_aaCode, m_aaCodec, m_base, m_codeMassList, pappso::AaStringCodeMassMatching::aaCodeAndMassRange::mz, pappso::AaStringCodeMassMatching::aaCodeAndMassRange::mz_range_low, and pappso::AaStringCodeMassMatching::aaCodeAndMassRange::mz_range_up.

◆ AaStringCodeMassMatching() [2/2]

AaStringCodeMassMatching::AaStringCodeMassMatching ( const AaStringCodeMassMatching other)

Copy constructor

Parameters
otherTODO

Definition at line 64 of file aastringcodemassmatching.cpp.

66 : m_aaCode(other.m_aaCode), m_aaCodec(other.m_aaCode)
67{
68 m_base = m_aaCode.getSize() + 1;
69}

References pappso::AaCode::getSize(), m_aaCode, and m_base.

◆ ~AaStringCodeMassMatching()

AaStringCodeMassMatching::~AaStringCodeMassMatching ( )

Destructor

Definition at line 71 of file aastringcodemassmatching.cpp.

72{
73}

Member Function Documentation

◆ filterCodeList()

std::vector< uint32_t > pappso::AaStringCodeMassMatching::filterCodeList ( std::vector< uint32_t > &  code_list) const

filter a list of amino acid string code find elementary amino acids (one base only) in the list and retrieve 2 or more amino acid string containing only basic aminio acid found

Definition at line 110 of file aastringcodemassmatching.cpp.

112{
113 std::sort(code_list.begin(), code_list.end(), [](uint32_t a, uint32_t b) {
114 return a < b;
115 });
116 std::vector<uint32_t> filtered_aa_code_list;
117
118 std::vector<uint8_t> aa_ok;
119
120 auto it = code_list.begin();
121 while(*it < m_base)
122 {
123 aa_ok.push_back((uint8_t)*it);
124 // qDebug() << (uint8_t)*it << " "
125 // << m_aaCode.getAa((uint8_t)*it).getLetter();
126 it++;
127 }
128
129 for(uint32_t code : code_list)
130 {
131 if(m_aaCodec.codeOnlyContains(code, aa_ok))
132 {
133 filtered_aa_code_list.push_back(code);
134 }
135 }
136 return filtered_aa_code_list;
137}
bool codeOnlyContains(uint32_t code, const std::vector< uint8_t > &aa_ok) const

References pappso::a, and pappso::b.

◆ getAaCodeFromMassList()

std::vector< uint32_t > pappso::AaStringCodeMassMatching::getAaCodeFromMassList ( std::vector< double > &  mass_list) const

Definition at line 76 of file aastringcodemassmatching.cpp.

78{
79 std::sort(mass_list.begin(), mass_list.end(), [](double a, double b) {
80 return a < b;
81 });
82 std::vector<uint32_t> aa_code_list;
83
84 auto it_aacode = m_codeMassList.begin();
85 auto it_mass = mass_list.begin();
86
87 while((it_aacode != m_codeMassList.end()) && (it_mass != mass_list.end()))
88 {
89 if(*it_mass < it_aacode->mz_range_low)
90 {
91 it_mass++;
92 }
93 else
94 {
95 if(*it_mass <= it_aacode->mz_range_up)
96 {
97 aa_code_list.push_back(it_aacode->code);
98 it_aacode++;
99 }
100 else
101 {
102 it_aacode++;
103 }
104 }
105 }
106 return aa_code_list;
107}

References pappso::a, and pappso::b.

Member Data Documentation

◆ m_aaCode

const AaCode& pappso::AaStringCodeMassMatching::m_aaCode
private

◆ m_aaCodec

AaStringCodec pappso::AaStringCodeMassMatching::m_aaCodec
private

Definition at line 79 of file aastringcodemassmatching.h.

Referenced by AaStringCodeMassMatching().

◆ m_base

uint32_t pappso::AaStringCodeMassMatching::m_base = 0
private

◆ m_codeMassList

std::vector<aaCodeAndMassRange> pappso::AaStringCodeMassMatching::m_codeMassList
private

Definition at line 92 of file aastringcodemassmatching.h.

Referenced by AaStringCodeMassMatching().


The documentation for this class was generated from the following files: