Reduce redundante call to bytes.ToLower and substitute the last call by an home made version doing the conversion in place

Former-commit-id: d9ea22f649d97be352f8dbb37acc1495df830118
This commit is contained in:
2023-03-28 11:43:04 +07:00
parent e8a8f746d3
commit bc82422bc5
6 changed files with 18 additions and 10 deletions

View File

@ -1,7 +1,6 @@
package obiformats
import (
"bytes"
"compress/gzip"
"encoding/csv"
"fmt"
@ -70,7 +69,7 @@ func __read_ecopcr_bioseq__(file *__ecopcr_file__) (*obiseq.BioSequence, error)
comment = strings.TrimSpace(record[19])
}
bseq := obiseq.NewBioSequence(name, bytes.ToLower(sequence), comment)
bseq := obiseq.NewBioSequence(name, sequence, comment)
annotation := bseq.Annotations()
annotation["ac"] = name

View File

@ -141,7 +141,7 @@ func _ParseEmblFile(source string, input <-chan _FileChunk, out obiiter.IBioSequ
}
case line == "//":
sequence := obiseq.NewBioSequence(id,
bytes.ToLower(seqBytes.Bytes()),
seqBytes.Bytes(),
defBytes.String())
sequence.SetSource(source)

View File

@ -7,7 +7,6 @@ package obiformats
import "C"
import (
"bytes"
"fmt"
"os"
"path"
@ -42,7 +41,7 @@ func _FastseqReader(source string,
comment = ""
}
rep := obiseq.NewBioSequence(name, bytes.ToLower(sequence), comment)
rep := obiseq.NewBioSequence(name, sequence, comment)
rep.SetSource(source)
if s.qual.l > C.ulong(0) {
cquality := unsafe.Slice(s.qual.s, C.int(s.qual.l))

View File

@ -69,7 +69,7 @@ func _ParseGenbankFile(source string,
case line == "//":
log.Debugln("Total lines := ", nl)
sequence := obiseq.NewBioSequence(id,
bytes.ToLower(seqBytes.Bytes()),
seqBytes.Bytes(),
defBytes.String())
sequence.SetSource(source)
state = inHeader

View File

@ -11,10 +11,10 @@
package obiseq
import (
"bytes"
"crypto/md5"
"sync/atomic"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiutils"
log "github.com/sirupsen/logrus"
)
@ -210,7 +210,6 @@ func (s *BioSequence) Source() string {
return s.source
}
// Returning the MD5 hash of the sequence.
func (s *BioSequence) MD5() [16]byte {
return md5.Sum(s.sequence)
@ -244,7 +243,7 @@ func (s *BioSequence) SetSequence(sequence []byte) {
if s.sequence != nil {
RecycleSlice(&s.sequence)
}
s.sequence = bytes.ToLower(sequence)
s.sequence = obiutils.InPlaceToLower(sequence)
}
// Setting the qualities of the BioSequence.

11
pkg/obiutils/bytes.go Normal file
View File

@ -0,0 +1,11 @@
package obiutils
func InPlaceToLower(data []byte) []byte {
for i,l := range data {
if l >= 'A' && l <='Z' {
data[i]|=32
}
}
return data
}