From a0a9fb461c2d95d0b7c7e455772823c55cd2e29d Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Tue, 4 Jun 2024 16:50:07 +0200 Subject: [PATCH] trial on rewriting obimultiplex Former-commit-id: d00f3353d83760dc878c6411ad344d96216096a7 --- cmd/obitools/obimultiplex2/main.go | 56 ++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 cmd/obitools/obimultiplex2/main.go diff --git a/cmd/obitools/obimultiplex2/main.go b/cmd/obitools/obimultiplex2/main.go new file mode 100644 index 0000000..6edb181 --- /dev/null +++ b/cmd/obitools/obimultiplex2/main.go @@ -0,0 +1,56 @@ +package main + +import ( + "fmt" + "os" + + log "github.com/sirupsen/logrus" + + "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obiiter" + "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obioptions" + "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obiconvert" + "git.metabarcoding.org/obitools/obitools4/obitools4/pkg/obitools/obimultiplex2" +) + +func main() { + + // f, err := os.Create("cpu.pprof") + // if err != nil { + // log.Fatal(err) + // } + // pprof.StartCPUProfile(f) + // defer pprof.StopCPUProfile() + + // ftrace, err := os.Create("cpu.trace") + // if err != nil { + // log.Fatal(err) + // } + // trace.Start(ftrace) + // defer trace.Stop() + + optionParser := obioptions.GenerateOptionParser(obimultiplex2.OptionSet) + + _, args := optionParser(os.Args) + + if obimultiplex2.CLIAskConfigTemplate() { + fmt.Print(obimultiplex2.CLIConfigTemplate()) + os.Exit(0) + } + + if !obimultiplex2.CLIHasNGSFilterFile() { + log.Error("You must provide a tag list file following the NGSFilter format") + os.Exit(1) + } + + sequences, err := obiconvert.CLIReadBioSequences(args...) + + if err != nil { + log.Errorf("Cannot open file (%v)", err) + os.Exit(1) + } + amplicons, _ := obimultiplex2.IExtractBarcode(sequences) + obiconvert.CLIWriteBioSequences(amplicons, true) + amplicons.Wait() + obiiter.WaitForLastPipe() + +}