mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
FASTQ Opt: Eliminate a few extra calls to is_ascii_encoded.
Kept 135848 of 250000 reads (54.34%).
117127015 function calls (116877015 primitive calls) in 38.632 seconds
Down from 39.416 seconds on previous changeset. Main Difference
(ncalls|tottime|percall|cumtime|percall|filename:lineno(function))
385848 11.289 0.000 15.499 0.000 fastq.py:91(get_decimal_quality_scores)
1271696 0.716 0.000 0.716 0.000 fastq.py:71(is_ascii_encoded)
250000 0.185 0.000 10.434 0.000 fastq.py:107(get_decimal_quality_scores)
385848 11.380 0.000 15.368 0.000 fastq.py:109(__get_decimal_quality_scores)
1135848 0.649 0.000 0.649 0.000 fastq.py:71(is_ascii_encoded)
This commit is contained in:
@@ -105,7 +105,9 @@ class fastqSequencingRead( SequencingRead ):
|
||||
else:
|
||||
return 0
|
||||
def get_decimal_quality_scores( self ):
|
||||
if self.is_ascii_encoded():
|
||||
return self.__get_decimal_quality_scores(self.is_ascii_encoded())
|
||||
def __get_decimal_quality_scores( self, ascii ):
|
||||
if ascii:
|
||||
to_quality = self.quality_min - self.ascii_min
|
||||
return [ ord( val ) + to_quality for val in self.quality ]
|
||||
else:
|
||||
@@ -128,15 +130,16 @@ class fastqSequencingRead( SequencingRead ):
|
||||
else:
|
||||
new_read.sequence = self.convert_color_to_base_space( self.sequence )
|
||||
new_read.description = self.description
|
||||
is_ascii = self.is_ascii_encoded()
|
||||
if self.score_system != new_read.score_system:
|
||||
if self.score_system == 'phred':
|
||||
score_list = self.convert_score_phred_to_solexa( self.get_decimal_quality_scores() )
|
||||
score_list = self.convert_score_phred_to_solexa( self.__get_decimal_quality_scores(is_ascii) )
|
||||
else:
|
||||
score_list = self.convert_score_solexa_to_phred( self.get_decimal_quality_scores() )
|
||||
score_list = self.convert_score_solexa_to_phred( self.__get_decimal_quality_scores(is_ascii) )
|
||||
else:
|
||||
score_list = self.get_decimal_quality_scores()
|
||||
score_list = self.__get_decimal_quality_scores(is_ascii)
|
||||
if force_quality_encoding is None:
|
||||
if self.is_ascii_encoded():
|
||||
if is_ascii:
|
||||
new_encoding = 'ascii'
|
||||
else:
|
||||
new_encoding = 'decimal'
|
||||
|
||||
Reference in New Issue
Block a user