mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-12-08 16:50:27 +00:00
Adds the command obimultiplex
This commit is contained in:
@@ -81,14 +81,14 @@ func ReadBioSequencesBatch(filenames ...string) (obiseq.IBioSequenceBatch, error
|
||||
opts = append(opts, obiformats.OptionsFastSeqHeaderParser(obiformats.ParseGuessedFastSeqHeader))
|
||||
}
|
||||
|
||||
nworkers := obioptions.ParallelWorkers() / 4
|
||||
nworkers := obioptions.CLIParallelWorkers() / 4
|
||||
if nworkers < 2 {
|
||||
nworkers = 2
|
||||
}
|
||||
|
||||
opts = append(opts, obiformats.OptionsParallelWorkers(nworkers))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.BufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.BatchSize()))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.CLIBufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.CLIBatchSize()))
|
||||
|
||||
opts = append(opts, obiformats.OptionsQualityShift(InputQualityShift()))
|
||||
|
||||
|
||||
@@ -24,14 +24,14 @@ func WriteBioSequences(iterator obiseq.IBioSequence, filenames ...string) error
|
||||
opts = append(opts, obiformats.OptionsFastSeqHeaderFormat(obiformats.FormatFastSeqJsonHeader))
|
||||
}
|
||||
|
||||
nworkers := obioptions.ParallelWorkers() / 4
|
||||
nworkers := obioptions.CLIParallelWorkers() / 4
|
||||
if nworkers < 2 {
|
||||
nworkers = 2
|
||||
}
|
||||
|
||||
opts = append(opts, obiformats.OptionsParallelWorkers(nworkers))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.BufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.BatchSize()))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.CLIBufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.CLIBatchSize()))
|
||||
|
||||
opts = append(opts, obiformats.OptionsQualityShift(OutputQualityShift()))
|
||||
|
||||
@@ -84,14 +84,14 @@ func WriteBioSequencesBatch(iterator obiseq.IBioSequenceBatch,
|
||||
opts = append(opts, obiformats.OptionsFastSeqHeaderFormat(obiformats.FormatFastSeqJsonHeader))
|
||||
}
|
||||
|
||||
nworkers := obioptions.ParallelWorkers() / 4
|
||||
nworkers := obioptions.CLIParallelWorkers() / 4
|
||||
if nworkers < 2 {
|
||||
nworkers = 2
|
||||
}
|
||||
|
||||
opts = append(opts, obiformats.OptionsParallelWorkers(nworkers))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.BufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.BatchSize()))
|
||||
opts = append(opts, obiformats.OptionsBufferSize(obioptions.CLIBufferSize()))
|
||||
opts = append(opts, obiformats.OptionsBatchSize(obioptions.CLIBatchSize()))
|
||||
|
||||
opts = append(opts, obiformats.OptionsQualityShift(OutputQualityShift()))
|
||||
|
||||
|
||||
@@ -1 +1,77 @@
|
||||
package obimultiplex
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiformats"
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obingslibrary"
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
|
||||
"github.com/DavidGamba/go-getoptions"
|
||||
)
|
||||
|
||||
var _NGSFilterFile = ""
|
||||
var _UnidentifiedFile = ""
|
||||
var _AllowedMismatch = int(2)
|
||||
var _ConservedError = false
|
||||
|
||||
// PCROptionSet defines every options related to a simulated PCR.
|
||||
//
|
||||
// The function adds to a CLI every options proposed to the user
|
||||
// to tune the parametters of the PCR simulation algorithm.
|
||||
//
|
||||
// Parameters
|
||||
//
|
||||
// - option : is a pointer to a getoptions.GetOpt instance normaly
|
||||
// produced by the
|
||||
func MultiplexOptionSet(options *getoptions.GetOpt) {
|
||||
options.StringVar(&_NGSFilterFile, "tag-list", _NGSFilterFile,
|
||||
options.Alias("t"),
|
||||
options.Required("You must provide a tag list file following the NGSFilter format"),
|
||||
options.Description("File name of the NGSFilter file describing PCRs."))
|
||||
|
||||
options.BoolVar(&_ConservedError, "keep-errors", _ConservedError,
|
||||
options.Description("Prints symbol counts."))
|
||||
|
||||
options.StringVar(&_UnidentifiedFile, "unidentified", _UnidentifiedFile,
|
||||
options.Alias("u"),
|
||||
options.Description("Filename used to store the sequences unassigned to any sample."))
|
||||
|
||||
options.IntVar(&_AllowedMismatch, "allowed-mismatches", _AllowedMismatch,
|
||||
options.Alias("e"),
|
||||
options.Description("Used to specify the number of errors allowed for matching primers."))
|
||||
|
||||
}
|
||||
|
||||
func OptionSet(options *getoptions.GetOpt) {
|
||||
obiconvert.OptionSet(options)
|
||||
MultiplexOptionSet(options)
|
||||
}
|
||||
|
||||
func CLIAllowedMismatch() int {
|
||||
return _AllowedMismatch
|
||||
}
|
||||
|
||||
func CLIUnidentifiedFileName() string {
|
||||
return _UnidentifiedFile
|
||||
}
|
||||
|
||||
func CLIConservedErrors() bool {
|
||||
return _UnidentifiedFile != "" || _ConservedError
|
||||
}
|
||||
|
||||
func CLINGSFIlter() (obingslibrary.NGSLibrary, error) {
|
||||
file, err := os.Open(_NGSFilterFile)
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("open file error: %v", err)
|
||||
}
|
||||
|
||||
ngsfiler, err := obiformats.ReadNGSFilter(file)
|
||||
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("NGSfilter reading file error: %v", err)
|
||||
}
|
||||
|
||||
return ngsfiler, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user