inline void QTrimImpl ( FORMAT<TUPLETYPE>& fq ) { std::vector< float > sum_qscores; MapQualityToSumScore ( std::get<3>(fq.data), sum_qscores ); size_t read_length ( std::get<1>(fq.data).size() ); size_t cut_pos(0); while ( read_length > quality_score_trait_.min_read_length_ ) { if ( sum_qscores[read_length-1] < quality_score_trait_.q_table_[read_length-1] ) { ++cut_pos; --read_length; } else break; } std::get<1>(fq.data).resize ( std::get<1>(fq.data).size() - cut_pos ); std::get<3>(fq.data).resize ( std::get<3>(fq.data).size() - cut_pos ); }
Token Tokenizer::next_long_comment() { return cut_pos(Token_LongComment,ScanLongComment(text)); }
Token Tokenizer::next_space() { return cut_pos(Token_Space,ScanSpace(text)); }