From bc1d7b26a9f8c76aa2ff97b7bfee8352a3f65eb9 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Tue, 1 Feb 2022 18:04:11 +0100 Subject: [PATCH] adds missing file --- pkg/obitools/obimultiplex/demultiplex.go | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pkg/obitools/obimultiplex/demultiplex.go diff --git a/pkg/obitools/obimultiplex/demultiplex.go b/pkg/obitools/obimultiplex/demultiplex.go new file mode 100644 index 0000000..1de9802 --- /dev/null +++ b/pkg/obitools/obimultiplex/demultiplex.go @@ -0,0 +1,40 @@ +package obimultiplex + +import ( + "log" + + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obingslibrary" + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq" +) + +func IExtractBarcodeBatches(iterator obiseq.IBioSequenceBatch) (obiseq.IBioSequenceBatch, error) { + + opts := make([]obingslibrary.WithOption, 0, 10) + + opts = append(opts, + obingslibrary.OptionAllowedMismatches(CLIAllowedMismatch()), + obingslibrary.OptionUnidentified(CLIUnidentifiedFileName()), + obingslibrary.OptionDiscardErrors(!CLIConservedErrors()), + obingslibrary.OptionParallelWorkers(obioptions.CLIParallelWorkers()), + obingslibrary.OptionBatchSize(obioptions.CLIBatchSize()), + obingslibrary.OptionBufferSize(obioptions.CLIBufferSize()), + ) + + ngsfilter, err := CLINGSFIlter() + if err != nil { + log.Fatalf("%v", err) + } + + worker := obingslibrary.ExtractBarcodeSliceWorker(ngsfilter, opts...) + + newIter := iterator.MakeISliceWorker(worker) + + if !CLIConservedErrors() { + newIter = newIter.Rebatch(obioptions.CLIBatchSize()) + } + + log.Printf("Sequence demultiplexing using %d workers\n", obioptions.CLIParallelWorkers()) + + return newIter, nil +}