35 std::size_t model_max_size,
37 : m_aaCode(aa_code), m_aaCodec(aa_code)
41 std::vector<pappso::CodeToMass> code_to_mass =
44 for(
auto &code_mass : code_to_mass)
47 aaCodeMassRange.
code = code_mass.code;
48 double delta = precision->
delta(code_mass.mass);
50 aaCodeMassRange.
mz = code_mass.mass;
51 aaCodeMassRange.
mz_range_up = code_mass.mass + delta;
60 return a.mz_range_low < b.mz_range_low;
66 : m_aaCode(other.m_aaCode), m_aaCodec(other.m_aaCode)
77 std::vector<double> &mass_list)
const
79 std::sort(mass_list.begin(), mass_list.end(), [](
double a,
double b) {
82 std::vector<uint32_t> aa_code_list;
84 auto it_aacode = m_codeMassList.begin();
85 auto it_mass = mass_list.begin();
87 while((it_aacode != m_codeMassList.end()) && (it_mass != mass_list.end()))
89 if(*it_mass < it_aacode->mz_range_low)
95 if(*it_mass <= it_aacode->mz_range_up)
97 aa_code_list.push_back(it_aacode->code);
111 std::vector<uint32_t> &code_list)
const
113 std::sort(code_list.begin(), code_list.end(), [](uint32_t
a, uint32_t
b) {
116 std::vector<uint32_t> filtered_aa_code_list;
118 std::vector<uint8_t> aa_ok;
120 auto it = code_list.begin();
123 aa_ok.push_back((uint8_t)*it);
129 for(uint32_t code : code_list)
131 if(m_aaCodec.codeOnlyContains(code, aa_ok))
133 filtered_aa_code_list.push_back(code);
136 return filtered_aa_code_list;
code and decodefrom amino acid string to integer
convert mass list to amino acid string code list
collection of integer code for each amino acid 0 => null 1 to 20 => amino acid sorted by there mass (...
std::size_t getSize() const
std::vector< aaCodeAndMassRange > m_codeMassList
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 r...
~AaStringCodeMassMatching()
AaStringCodeMassMatching(const AaCode &aa_code, std::size_t model_max_size, PrecisionPtr precision)
std::vector< uint32_t > getAaCodeFromMassList(std::vector< double > &mass_list) const
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
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...