mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Big change iin the data model, and a first version of obiuniq
This commit is contained in:
@ -65,24 +65,24 @@ func _BuildAlignment(seqA, seqB []byte, path []int, gap byte, bufferA, bufferB *
|
||||
// In that case an arena will be allocated by the function but, it will not
|
||||
// be reusable for other alignments and desallocated at the BuildAlignment
|
||||
// return.
|
||||
func BuildAlignment(seqA, seqB obiseq.BioSequence,
|
||||
path []int, gap byte) (obiseq.BioSequence, obiseq.BioSequence) {
|
||||
func BuildAlignment(seqA, seqB *obiseq.BioSequence,
|
||||
path []int, gap byte) (*obiseq.BioSequence, *obiseq.BioSequence) {
|
||||
|
||||
bufferSA := obiseq.GetSlice()
|
||||
defer obiseq.RecycleSlice(bufferSA)
|
||||
defer obiseq.RecycleSlice(&bufferSA)
|
||||
|
||||
bufferSB := obiseq.GetSlice()
|
||||
defer obiseq.RecycleSlice(bufferSB)
|
||||
defer obiseq.RecycleSlice(&bufferSB)
|
||||
|
||||
_BuildAlignment(seqA.Sequence(), seqB.Sequence(), path, gap,
|
||||
&bufferSA,
|
||||
&bufferSB)
|
||||
|
||||
seqA = obiseq.MakeBioSequence(seqA.Id(),
|
||||
seqA = obiseq.NewBioSequence(seqA.Id(),
|
||||
bufferSA,
|
||||
seqA.Definition())
|
||||
|
||||
seqB = obiseq.MakeBioSequence(seqB.Id(),
|
||||
seqB = obiseq.NewBioSequence(seqB.Id(),
|
||||
bufferSB,
|
||||
seqB.Definition())
|
||||
|
||||
@ -110,15 +110,15 @@ func BuildAlignment(seqA, seqB obiseq.BioSequence,
|
||||
// In that case arenas will be allocated by the function but, they will not
|
||||
// be reusable for other alignments and desallocated at the BuildQualityConsensus
|
||||
// return.
|
||||
func BuildQualityConsensus(seqA, seqB obiseq.BioSequence, path []int) (obiseq.BioSequence, int) {
|
||||
func BuildQualityConsensus(seqA, seqB *obiseq.BioSequence, path []int) (*obiseq.BioSequence, int) {
|
||||
|
||||
bufferSA := obiseq.GetSlice()
|
||||
bufferSB := obiseq.GetSlice()
|
||||
defer obiseq.RecycleSlice(bufferSB)
|
||||
defer obiseq.RecycleSlice(&bufferSB)
|
||||
|
||||
bufferQA := obiseq.GetSlice()
|
||||
bufferQB := obiseq.GetSlice()
|
||||
defer obiseq.RecycleSlice(bufferQB)
|
||||
defer obiseq.RecycleSlice(&bufferQB)
|
||||
|
||||
_BuildAlignment(seqA.Sequence(), seqB.Sequence(), path, ' ',
|
||||
&bufferSA, &bufferSB)
|
||||
@ -178,7 +178,7 @@ func BuildQualityConsensus(seqA, seqB obiseq.BioSequence, path []int) (obiseq.Bi
|
||||
bufferQA[i] = q
|
||||
}
|
||||
|
||||
consSeq := obiseq.MakeBioSequence(
|
||||
consSeq := obiseq.NewBioSequence(
|
||||
seqA.Id(),
|
||||
bufferSA,
|
||||
seqA.Definition(),
|
||||
|
@ -57,7 +57,7 @@ var _FourBitsBaseDecode = []byte{
|
||||
// by the ambiguity set to 1.
|
||||
// A byte slice can be provided (buffer) to preveent allocation of a new
|
||||
// memory chunk by th function.
|
||||
func Encode4bits(seq obiseq.BioSequence, buffer []byte) []byte {
|
||||
func Encode4bits(seq *obiseq.BioSequence, buffer []byte) []byte {
|
||||
length := seq.Length()
|
||||
rawseq := seq.Sequence()
|
||||
|
||||
|
@ -220,7 +220,7 @@ func _FillMatrixPeRightAlign(seqA, qualA, seqB, qualB []byte, gap float64,
|
||||
return _GetMatrix(scoreMatrix, la, la-1, lb1)
|
||||
}
|
||||
|
||||
func PELeftAlign(seqA, seqB obiseq.BioSequence, gap float64,
|
||||
func PELeftAlign(seqA, seqB *obiseq.BioSequence, gap float64,
|
||||
arena PEAlignArena) (int, []int) {
|
||||
|
||||
if !_InitializedDnaScore {
|
||||
@ -244,7 +244,7 @@ func PELeftAlign(seqA, seqB obiseq.BioSequence, gap float64,
|
||||
return score, arena.pointer.path
|
||||
}
|
||||
|
||||
func PERightAlign(seqA, seqB obiseq.BioSequence, gap float64,
|
||||
func PERightAlign(seqA, seqB *obiseq.BioSequence, gap float64,
|
||||
arena PEAlignArena) (int, []int) {
|
||||
|
||||
if !_InitializedDnaScore {
|
||||
@ -268,7 +268,7 @@ func PERightAlign(seqA, seqB obiseq.BioSequence, gap float64,
|
||||
return score, arena.pointer.path
|
||||
}
|
||||
|
||||
func PEAlign(seqA, seqB obiseq.BioSequence,
|
||||
func PEAlign(seqA, seqB *obiseq.BioSequence,
|
||||
gap float64, delta int,
|
||||
arena PEAlignArena) (int, []int) {
|
||||
var score, shift int
|
||||
|
Reference in New Issue
Block a user