1 #ifndef GENESIS_SEQUENCE_FUNCTIONS_QUALITY_H_ 2 #define GENESIS_SEQUENCE_FUNCTIONS_QUALITY_H_ 48 class BaseInputSource;
108 std::string
const& quality_codes,
131 if( phred_score > 93 ) {
133 phred_score = std::min( phred_score, static_cast<unsigned char>(93) );
135 throw std::invalid_argument(
136 "Cannot encode phred score outside of [0, 93] to Sanger format." 140 return static_cast<char>( phred_score + 33 );
149 std::vector<unsigned char>
const& phred_scores,
152 auto qualities = std::string( phred_scores.size(),
' ' );
153 for(
size_t i = 0; i < phred_scores.size(); ++i ) {
203 #endif // include guard
unsigned char solexa_score_to_phred_score(signed char solexa_score)
unsigned char quality_decode_to_phred_score(char quality_code, QualityEncoding encoding)
Decode a single quality score char (for example coming from a fastq file) to a phred score...
std::string quality_encode_from_phred_score(std::vector< unsigned char > const &phred_scores, bool clamp=true)
Encode phred scores into quality chars, using the Sanger convention.
unsigned char error_probability_to_phred_score(double error_probability)
signed char error_probability_to_solexa_score(double error_probability)
Container namespace for all symbols of genesis in order to keep them separate when used as a library...
std::string quality_encoding_name(QualityEncoding encoding)
Return a readable name for each of the encoding types.
double solexa_score_to_error_probability(signed char solexa_score)
QualityEncoding guess_fastq_quality_encoding(std::array< size_t, 128 > const &char_counts)
Guess the quality score encoding, based on counts of how often each char appeared in the quality stri...
double phred_score_to_error_probability(unsigned char phred_score)
QualityEncoding
List of quality encodings for which we support decoding.
signed char phred_score_to_solexa_score(unsigned char phred_score)