From 6e36b22040a0288ffda43f00186fb36605b5c533 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Thu, 16 Feb 2023 13:31:49 +0100 Subject: [PATCH] Normalise the managment of speed measure --- cmd/obitools/obiannotate/main.go | 2 +- cmd/obitools/obiclean/main.go | 2 +- cmd/obitools/obicleandb/main.go | 22 ++++++++++++++++++++++ cmd/obitools/obicomplement/main.go | 2 +- cmd/obitools/obiconvert/main.go | 2 +- cmd/obitools/obigrep/main.go | 2 +- cmd/obitools/obimultiplex/main.go | 2 +- cmd/obitools/obipairing/main.go | 2 +- cmd/obitools/obipcr/main.go | 2 +- cmd/obitools/obirefidx/main.go | 2 +- cmd/obitools/obitag/main.go | 2 +- cmd/obitools/obiuniq/main.go | 2 +- pkg/obitools/obiconvert/options.go | 10 ++++++++-- pkg/obitools/obiconvert/sequence_writer.go | 5 ++++- pkg/obitools/obigrep/grep.go | 2 +- pkg/obitools/obimultiplex/demultiplex.go | 2 +- pkg/obitools/obitag/obitag.go | 2 +- 17 files changed, 48 insertions(+), 17 deletions(-) create mode 100644 cmd/obitools/obicleandb/main.go diff --git a/cmd/obitools/obiannotate/main.go b/cmd/obitools/obiannotate/main.go index 4d8bdb7..fc19cfd 100644 --- a/cmd/obitools/obiannotate/main.go +++ b/cmd/obitools/obiannotate/main.go @@ -36,7 +36,7 @@ func main() { sequences, _ := obiconvert.ReadBioSequences(args...) annotator := obiannotate.CLIAnnotationPipeline() - obiconvert.WriteBioSequences(sequences.Pipe(annotator).Speed(), true) + obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true) obiiter.WaitForLastPipe() diff --git a/cmd/obitools/obiclean/main.go b/cmd/obitools/obiclean/main.go index 2cbce97..1f345e5 100644 --- a/cmd/obitools/obiclean/main.go +++ b/cmd/obitools/obiclean/main.go @@ -19,7 +19,7 @@ func main() { cleaned := obiclean.IOBIClean(fs) - obiconvert.WriteBioSequences(cleaned, true) + obiconvert.CLIWriteBioSequences(cleaned, true) obiiter.WaitForLastPipe() diff --git a/cmd/obitools/obicleandb/main.go b/cmd/obitools/obicleandb/main.go new file mode 100644 index 0000000..f117283 --- /dev/null +++ b/cmd/obitools/obicleandb/main.go @@ -0,0 +1,22 @@ +package main + +import ( + "os" + + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obicleandb" + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" + + "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" +) + +func main() { + optionParser := obioptions.GenerateOptionParser(obicleandb.OptionSet) + + _, args, _ := optionParser(os.Args) + + fs, _ := obiconvert.ReadBioSequences(args...) + + cleaned := obicleandb.ICleanDB(fs) + + obiconvert.CLIWriteBioSequences(cleaned, true) +} diff --git a/cmd/obitools/obicomplement/main.go b/cmd/obitools/obicomplement/main.go index 2204ca9..75fc860 100644 --- a/cmd/obitools/obicomplement/main.go +++ b/cmd/obitools/obicomplement/main.go @@ -18,7 +18,7 @@ func main() { fs, _ := obiconvert.ReadBioSequences(args...) comp := fs.MakeIWorker(obiseq.ReverseComplementWorker(true)) - obiconvert.WriteBioSequences(comp, true) + obiconvert.CLIWriteBioSequences(comp, true) obiiter.WaitForLastPipe() diff --git a/cmd/obitools/obiconvert/main.go b/cmd/obitools/obiconvert/main.go index bfb9f60..39d245f 100644 --- a/cmd/obitools/obiconvert/main.go +++ b/cmd/obitools/obiconvert/main.go @@ -15,7 +15,7 @@ func main() { _, args, _ := optionParser(os.Args) fs, _ := obiconvert.ReadBioSequences(args...) - obiconvert.WriteBioSequences(fs, true) + obiconvert.CLIWriteBioSequences(fs, true) obiiter.WaitForLastPipe() diff --git a/cmd/obitools/obigrep/main.go b/cmd/obitools/obigrep/main.go index e17e12b..29eab13 100644 --- a/cmd/obitools/obigrep/main.go +++ b/cmd/obitools/obigrep/main.go @@ -36,7 +36,7 @@ func main() { sequences, _ := obiconvert.ReadBioSequences(args...) selected := obigrep.IFilterSequence(sequences) - obiconvert.WriteBioSequences(selected, true) + obiconvert.CLIWriteBioSequences(selected, true) obiiter.WaitForLastPipe() } diff --git a/cmd/obitools/obimultiplex/main.go b/cmd/obitools/obimultiplex/main.go index 638c597..bf56cda 100644 --- a/cmd/obitools/obimultiplex/main.go +++ b/cmd/obitools/obimultiplex/main.go @@ -31,7 +31,7 @@ func main() { sequences, _ := obiconvert.ReadBioSequences(args...) amplicons, _ := obimultiplex.IExtractBarcode(sequences) - obiconvert.WriteBioSequences(amplicons, true) + obiconvert.CLIWriteBioSequences(amplicons, true) amplicons.Wait() obiiter.WaitForLastPipe() diff --git a/cmd/obitools/obipairing/main.go b/cmd/obitools/obipairing/main.go index 731c033..f4d30c2 100644 --- a/cmd/obitools/obipairing/main.go +++ b/cmd/obitools/obipairing/main.go @@ -39,7 +39,7 @@ func main() { obipairing.WithStats(), obioptions.CLIParallelWorkers(), ) - obiconvert.WriteBioSequences(paired, true) + obiconvert.CLIWriteBioSequences(paired, true) obiiter.WaitForLastPipe() } diff --git a/cmd/obitools/obipcr/main.go b/cmd/obitools/obipcr/main.go index 2e7df29..8c65239 100644 --- a/cmd/obitools/obipcr/main.go +++ b/cmd/obitools/obipcr/main.go @@ -33,7 +33,7 @@ func main() { sequences, _ := obiconvert.ReadBioSequences(args...) amplicons, _ := obipcr.PCR(sequences) - obiconvert.WriteBioSequences(amplicons, true) + obiconvert.CLIWriteBioSequences(amplicons, true) obiiter.WaitForLastPipe() } diff --git a/cmd/obitools/obirefidx/main.go b/cmd/obitools/obirefidx/main.go index f469d75..9cde304 100644 --- a/cmd/obitools/obirefidx/main.go +++ b/cmd/obitools/obirefidx/main.go @@ -18,7 +18,7 @@ func main() { fs, _ := obiconvert.ReadBioSequences(args...) indexed := obirefidx.IndexReferenceDB(fs) - obiconvert.WriteBioSequences(indexed, true) + obiconvert.CLIWriteBioSequences(indexed, true) obiiter.WaitForLastPipe() } diff --git a/cmd/obitools/obitag/main.go b/cmd/obitools/obitag/main.go index f0bc2f8..d62b650 100644 --- a/cmd/obitools/obitag/main.go +++ b/cmd/obitools/obitag/main.go @@ -36,7 +36,7 @@ func main() { fs, _ := obiconvert.ReadBioSequences(args...) identified := obitag.AssignTaxonomy(fs) - obiconvert.WriteBioSequences(identified, true) + obiconvert.CLIWriteBioSequences(identified, true) obiiter.WaitForLastPipe() fmt.Println("") diff --git a/cmd/obitools/obiuniq/main.go b/cmd/obitools/obiuniq/main.go index ccc0440..12cf69b 100644 --- a/cmd/obitools/obiuniq/main.go +++ b/cmd/obitools/obiuniq/main.go @@ -36,7 +36,7 @@ func main() { sequences, _ := obiconvert.ReadBioSequences(args...) unique := obiuniq.Unique(sequences) - obiconvert.WriteBioSequences(unique, true) + obiconvert.CLIWriteBioSequences(unique, true) obiiter.WaitForLastPipe() diff --git a/pkg/obitools/obiconvert/options.go b/pkg/obitools/obiconvert/options.go index 5cfb747..85faacd 100644 --- a/pkg/obitools/obiconvert/options.go +++ b/pkg/obitools/obiconvert/options.go @@ -24,6 +24,8 @@ var __output_fastjson_format__ = false var __output_fastobi_format__ = false var __output_solexa_quality__ = false +var __no_progress_bar__ = false + func InputOptionSet(options *getoptions.GetOpt) { // options.IntVar(&__skipped_entries__, "skip", __skipped_entries__, // options.Description("The N first sequence records of the file are discarded from the analysis and not reported to the output file.")) @@ -67,8 +69,8 @@ func OutputOptionSet(options *getoptions.GetOpt) { options.Alias("O"), options.Description("output FASTA/FASTQ title line annotations follow OBI format.")) - options.BoolVar(&__output_solexa_quality__, "solexa-output", false, - options.Description("Encodes quality string according to the Solexa specification.")) + options.BoolVar(&__no_progress_bar__, "no-progressbar", false, + options.Description("Disable the progress bar printing")) } func OptionSet(options *getoptions.GetOpt) { @@ -154,3 +156,7 @@ func CLIOutputQualityShift() int { return 33 } } + +func CLIProgressBar() bool { + return !__no_progress_bar__ +} diff --git a/pkg/obitools/obiconvert/sequence_writer.go b/pkg/obitools/obiconvert/sequence_writer.go index 511acb0..fa13269 100644 --- a/pkg/obitools/obiconvert/sequence_writer.go +++ b/pkg/obitools/obiconvert/sequence_writer.go @@ -8,9 +8,12 @@ import ( "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" ) -func WriteBioSequences(iterator obiiter.IBioSequence, +func CLIWriteBioSequences(iterator obiiter.IBioSequence, terminalAction bool, filenames ...string) (obiiter.IBioSequence, error) { + if CLIProgressBar() { + iterator = iterator.Speed() + } var newIter obiiter.IBioSequence opts := make([]obiformats.WithOption, 0, 10) diff --git a/pkg/obitools/obigrep/grep.go b/pkg/obitools/obigrep/grep.go index 87277e9..61e6aec 100644 --- a/pkg/obitools/obigrep/grep.go +++ b/pkg/obitools/obigrep/grep.go @@ -22,7 +22,7 @@ func IFilterSequence(iterator obiiter.IBioSequence) obiiter.IBioSequence { obioptions.CLIBatchSize()) go func() { - _, err := obiconvert.WriteBioSequences(discarded, + _, err := obiconvert.CLIWriteBioSequences(discarded, true, CLIDiscardedFileName()) diff --git a/pkg/obitools/obimultiplex/demultiplex.go b/pkg/obitools/obimultiplex/demultiplex.go index aa8ff00..5ba527c 100644 --- a/pkg/obitools/obimultiplex/demultiplex.go +++ b/pkg/obitools/obimultiplex/demultiplex.go @@ -44,7 +44,7 @@ func IExtractBarcode(iterator obiiter.IBioSequence) (obiiter.IBioSequence, error obioptions.CLIBatchSize()) go func() { - _, err := obiconvert.WriteBioSequences(unidentified, + _, err := obiconvert.CLIWriteBioSequences(unidentified, true, CLIUnidentifiedFileName()) diff --git a/pkg/obitools/obitag/obitag.go b/pkg/obitools/obitag/obitag.go index fe249d7..7f6e916 100644 --- a/pkg/obitools/obitag/obitag.go +++ b/pkg/obitools/obitag/obitag.go @@ -192,5 +192,5 @@ func AssignTaxonomy(iterator obiiter.IBioSequence) obiiter.IBioSequence { worker := IdentifySeqWorker(references, refcounts, taxo, CLIRunExact()) - return iterator.Rebatch(17).MakeIWorker(worker, obioptions.CLIParallelWorkers(), 0).Speed("Annotated sequences").Rebatch(1000) + return iterator.Rebatch(17).MakeIWorker(worker, obioptions.CLIParallelWorkers(), 0).Rebatch(1000) }