def get_min_window_qscore(quals, window_size):
"""
Returns the minimum mean qscore over a sliding window.
"""
quals = [q - 33 for q in quals] # covert to numbers
current_window_qscore = statistics.mean(quals[:window_size])
shift_count = len(quals) - window_size
if shift_count < 1:
return current_window_qscore
min_window_qscore = current_window_qscore
for i in range(shift_count):
leaving_window = quals[i]
entering_window = quals[i + window_size]
current_window_qscore += (entering_window - leaving_window) / window_size
if current_window_qscore < min_window_qscore:
min_window_qscore = current_window_qscore
return min_window_qscore
评论列表
文章目录