56const boost::numeric::ublas::matrix<
66 const std::vector<uint32_t> &code_list_from_spectrum)
68 const std::vector<std::uint8_t> &seq_aa_code = coded_protein.
getSeqAaCode();
71 std::vector<std::uint8_t>::const_iterator it_aa = seq_aa_code.begin();
77 for(std::size_t i = 0; i < seq_aa_code.size(); i++)
79 if(std::binary_search(
80 code_list_from_spectrum.begin(), code_list_from_spectrum.end(), (std::uint32_t)(*it_aa)))
89 if(std::binary_search(
90 code_list_from_spectrum.begin(), code_list_from_spectrum.end(), *it_couple))
99 if(std::binary_search(
100 code_list_from_spectrum.begin(), code_list_from_spectrum.end(), *it_trio))
109 if(std::binary_search(
110 code_list_from_spectrum.begin(), code_list_from_spectrum.end(), *it_quatro))
119 if(std::binary_search(
120 code_list_from_spectrum.begin(), code_list_from_spectrum.end(), *it_cinqo))
142 std::vector<double> convolution_score;
149 return convolution_score;
154 std::size_t aa_fragment_size)
const
159 switch(aa_fragment_size)
178 switch(aa_fragment_size)
204 double single_score = 0;
205 std::size_t endpos = std::min(position + 5, size_seq);
206 for(std::size_t ipos = position; ipos < endpos; ipos++)
212 double duo_score = 0;
213 endpos = std::min(position + 4, size_seq);
214 for(std::size_t ipos = position; ipos < endpos; ipos++)
221 double trio_score = 0;
222 endpos = std::min(position + 3, size_seq);
223 for(std::size_t ipos = position; ipos < endpos; ipos++)
230 double quatro_score = 0;
231 endpos = std::min(position + 2, size_seq);
232 for(std::size_t ipos = position; ipos < endpos; ipos++)
239 return score * single_score * duo_score * trio_score * quatro_score;
const std::vector< std::uint32_t > & getPeptideCodedFragment(std::size_t size) const
const std::vector< std::uint8_t > & getSeqAaCode() const
std::vector< double > convolution() const
process convolution of spectrum code list along protein sequence
virtual ~ProteinPresenceAbsenceMatrix()
double getScore(std::size_t seq_position, std::size_t aa_fragment_size) const
ProteinPresenceAbsenceMatrix & operator=(const ProteinPresenceAbsenceMatrix &other)
ProteinPresenceAbsenceMatrix()
ProteinPresenceAbsenceMatrixElement
@ present
the aa sequence code is present
@ absent
the aa sequence code is not present
double convolutionKernel(std::size_t position) const
void fillMatrix(const pappso::ProteinIntegerCode &coded_protein, const std::vector< uint32_t > &code_list_from_spectrum)
boost::numeric::ublas::matrix< ProteinPresenceAbsenceMatrixElement > m_presenceAbsenceMatrix
const boost::numeric::ublas::matrix< pappso::ProteinPresenceAbsenceMatrix::ProteinPresenceAbsenceMatrixElement > & getPresenceAbsenceMatrix() const
transform protein amino acid sequence into vectors of amino acid codes
presence/absence matrix of amino acid code along the protein sequence