1 #ifndef LOCARNA_RIBOSUM_HH
2 #define LOCARNA_RIBOSUM_HH
15 #include "alphabet.hh"
36 explicit Ribosum(
const std::string &filename);
104 friend std::ostream &
326 const std::string &header,
339 write_ICC_code(std::ostream &out,
const std::string &ribname)
const;
352 const std::string &name,
355 friend std::ostream &
369 write_CC_matrix(std::ostream &out,
370 const std::string &ribname,
371 const std::string &matname,
378 read_frequencies(std::istream &in);
387 auto siz = alph.size();
391 while (std::getline(in, line) && line ==
"")
395 std::istringstream linestream(line);
397 for (
size_t i = 0; i < siz; i++) {
402 throw(std::ifstream::failure(
403 "Expecting correct table header. Found: " + line));
408 for (
size_t i = 0; i < siz; i++) {
409 std::getline(in, line);
410 std::istringstream linestream(line);
414 throw(std::ifstream::failure(
"Expecting base name " +
415 alph[i] +
" as row header"));
417 for (
size_t j = 0; j <= i; j++) {
419 linestream >> number;
420 mat(i, j) = mat(j, i) = number;
431 out << alph << std::endl;
432 out << mat << std::endl;
void resize(size_type xdim, size_type ydim)
Definition: matrix.hh:102
Represents ribosum similarity matrices including raw frequencies.
Definition: ribosum.hh:190
std::ostream & write_matrix(std::ostream &out, const std::string &name, const Matrix< double > &mat) const
Definition: ribosum.cc:201
matrix_t base_probs_
matrix of base probabilities
Definition: ribosum.hh:361
const matrix_t & get_basematch_probs() const
Definition: ribosum.hh:263
double base_nonstruct_prob(char i) const
Definition: ribosum.hh:216
matrix_t base_nonstruct_probs_
Definition: ribosum.hh:362
const matrix_t & get_base_nonstruct_probs() const
Definition: ribosum.hh:231
double base_prob(char i) const
Definition: ribosum.hh:207
matrix_t arcmatch_probs_
matrix of arc match probabilities
Definition: ribosum.hh:366
const matrix_t & get_arcmatch_probs() const
Definition: ribosum.hh:284
matrix_t basematch_probs_
matrix of base match probabilties
Definition: ribosum.hh:365
double arcmatch_prob(char i, char j, char k, char l) const
Definition: ribosum.hh:276
void read_matrix(std::istream &in, const std::string &header, matrix_t &mat, size_t xdim, size_t ydim)
Definition: ribosum.cc:170
const matrix_t & get_basepair_probs() const
Definition: ribosum.hh:247
double basematch_prob(char i, char j) const
Definition: ribosum.hh:256
matrix_t basepair_probs_
matrix of base pair probabilities
Definition: ribosum.hh:364
friend std::ostream & operator<<(std::ostream &out, const RibosumFreq &ribosum)
Definition: ribosum.cc:218
void print_basematch_scores_corrected(std::ostream &out) const
Print the corrected score of base matches.
Definition: ribosum.cc:334
double basematch_score_corrected(char i, char j) const
Get corrected score for a base match.
Definition: ribosum.cc:325
double base_unpaired_prob(char i) const
probability that a nucleotide/base occurs unpaired
void write_ICC_code(std::ostream &out, const std::string &ribname) const
Definition: ribosum.cc:259
double basepair_prob(char i, char j) const
Definition: ribosum.hh:240
const matrix_t & get_base_probs() const
Definition: ribosum.hh:223
Represents ribosum similarity matrices.
Definition: ribosum.hh:24
char_alphabet_type char_basename_alphabet_
alphabet of base names as characters
Definition: ribosum.hh:116
std::ostream & write_matrix(std::ostream &out, const matrix_t &mat, const Alphabet< std::string, N > &alph) const
Definition: ribosum.hh:428
Alphabet< std::string, 4 > base_alphabet_type
type of alphabet
Definition: ribosum.hh:27
virtual ~Ribosum()
virtual destructor
Definition: ribosum.cc:39
matrix_t am_
16x16 matrix
Definition: ribosum.hh:109
void read_ribosum(std::istream &in)
Definition: ribosum.cc:42
std::istream & read_matrix(std::istream &in, matrix_t &mat, const Alphabet< std::string, N > &names) const
Definition: ribosum.hh:384
base_alphabet_type basename_alphabet_
alphabet of base names
Definition: ribosum.hh:112
void set_basename_alphabet(const std::array< std::string, 4 > &a)
Definition: ribosum.hh:167
Alphabet< char, 4 > char_alphabet_type
type of alphabet
Definition: ribosum.hh:28
char_alphabet_type make_char_alphabet() const
transform the basename alphabet to alphabet over characters
Definition: ribosum.cc:88
const std::string & get_name() const
Definition: ribosum.hh:76
std::string name_
name of ribosum
Definition: ribosum.hh:107
Ribosum()
Construct empty.
Definition: ribosum.cc:31
Matrix< double > matrix_t
type of a matrix
Definition: ribosum.hh:26
friend std::ostream & operator<<(std::ostream &out, const Ribosum &ribosum)
Definition: ribosum.cc:106
double arcmatch_score(char i, char j, char k, char l) const
Get arc match score.
Definition: ribosum.hh:99
Alphabet< std::string, 16 > arc_alphabet_type
type of alphabet
Definition: ribosum.hh:29
const char_alphabet_type & alphabet() const
Definition: ribosum.hh:69
arc_alphabet_type arcname_alphabet_
alphabet of arc names
Definition: ribosum.hh:113
double basematch_score(char i, char j) const
Get base match score.
Definition: ribosum.hh:86
const matrix_t & get_basematch_scores() const
Get base match scores.
Definition: ribosum.hh:46
void set_arcname_alphabet(const std::array< std::string, 16 > &a)
Definition: ribosum.hh:179
matrix_t bm_
scores for base matches, 4x4 matrix
Definition: ribosum.hh:108
const matrix_t & get_arcmatch_scores() const
Definition: ribosum.hh:55
const base_alphabet_type & string_alphabet() const
Definition: ribosum.hh:62
Definition: aligner.cc:15