Skip to content

Commit

Permalink
Improvement to performance of fastqread
Browse files Browse the repository at this point in the history
  • Loading branch information
nickzoic committed Jul 4, 2023
1 parent c82cb73 commit 499d701
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/fqfa/fastq/fastqread.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

from dataclasses import dataclass, field, InitVar
from typing import List, Optional, ClassVar, Callable, Match
from statistics import mean
from fqfa.util.nucleotide import reverse_complement
from fqfa.validator.create import create_validator
from fqfa.constants.iupac.dna import DNA_BASES
Expand Down Expand Up @@ -99,7 +98,10 @@ def __post_init__(self, quality_string: str) -> None:
# mypy false positive: https://github.com/python/mypy/issues/5485
raise ValueError("unexpected characters in sequence")

self.quality = [ord(c) - self.quality_encoding_value for c in quality_string]
quality_string_bytes = quality_string.encode('ascii')
qev = self.quality_encoding_value
self.quality = [qsb - qev for qsb in quality_string_bytes]

if min(self.quality) < 0:
raise ValueError("sequence quality value below 0")
if max(self.quality) > 93:
Expand Down Expand Up @@ -139,7 +141,7 @@ def average_quality(self) -> float:
Mean quality value.
"""
return mean(self.quality)
return sum(self.quality)/len(self.quality)

def min_quality(self) -> int:
"""Calculates and returns the read's minimum quality value.
Expand Down

0 comments on commit 499d701

Please sign in to comment.