change the model for representing paired reads and extend its usage to other commands

This commit is contained in:
2023-02-23 23:35:58 +01:00
parent ebb05fcdf7
commit 072b85e155
23 changed files with 598 additions and 338 deletions

View File

@@ -69,7 +69,7 @@ func WriteFasta(iterator obiiter.IBioSequence,
options ...WithOption) (obiiter.IBioSequence, error) {
opt := MakeOptions(options)
file,_ = goutils.CompressStream(file,opt.CompressedFile(),opt.CloseFile())
file, _ = goutils.CompressStream(file, opt.CompressedFile(), opt.CloseFile())
buffsize := iterator.BufferSize()
newIter := obiiter.MakeIBioSequence(buffsize)
@@ -136,7 +136,7 @@ func WriteFasta(iterator obiiter.IBioSequence,
}
file.Close()
log.Debugln("End of the fasta file writing")
obiiter.UnregisterPipe()
waitWriter.Done()
@@ -156,7 +156,6 @@ func WriteFastaToFile(iterator obiiter.IBioSequence,
filename string,
options ...WithOption) (obiiter.IBioSequence, error) {
opt := MakeOptions(options)
flags := os.O_WRONLY | os.O_CREATE
@@ -164,7 +163,6 @@ func WriteFastaToFile(iterator obiiter.IBioSequence,
flags |= os.O_APPEND
}
file, err := os.OpenFile(filename, flags, 0660)
if err != nil {
log.Fatalf("open file error: %v", err)
@@ -173,5 +171,18 @@ func WriteFastaToFile(iterator obiiter.IBioSequence,
options = append(options, OptionCloseFile())
return WriteFasta(iterator, file, options...)
iterator, err = WriteFasta(iterator, file, options...)
if opt.HaveToSavePaired() {
var revfile *os.File
revfile, err = os.OpenFile(opt.PairedFileName(), flags, 0660)
if err != nil {
log.Fatalf("open file error: %v", err)
return obiiter.NilIBioSequence, err
}
iterator, err = WriteFasta(iterator.PairedWith(), revfile, options...)
}
return iterator, err
}