Produce less weird crash on non existing files

Former-commit-id: 74bb27bd53c685be530632994bd2ba24c1f362e1
This commit is contained in:
2023-03-07 17:34:25 +07:00
parent fbfed52508
commit b3922c3896
21 changed files with 147 additions and 32 deletions

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -34,7 +35,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
sequences, _ := obiconvert.CLIReadBioSequences(args...) sequences, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
annotator := obiannotate.CLIAnnotationPipeline() annotator := obiannotate.CLIAnnotationPipeline()
obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true) obiconvert.CLIWriteBioSequences(sequences.Pipe(annotator), true)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiclean" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiclean"
@ -15,7 +16,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
cleaned := obiclean.IOBIClean(fs) cleaned := obiclean.IOBIClean(fs)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obicleandb" "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/obitools/obiconvert"
@ -14,7 +15,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
cleaned := obicleandb.ICleanDB(fs) cleaned := obicleandb.ICleanDB(fs)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
@ -15,7 +16,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
comp := fs.MakeIWorker(obiseq.ReverseComplementWorker(true)) comp := fs.MakeIWorker(obiseq.ReverseComplementWorker(true))
obiconvert.CLIWriteBioSequences(comp, true) obiconvert.CLIWriteBioSequences(comp, true)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
@ -14,7 +15,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
obiconvert.CLIWriteBioSequences(fs, true) obiconvert.CLIWriteBioSequences(fs, true)
obiiter.WaitForLastPipe() obiiter.WaitForLastPipe()

View File

@ -3,6 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obicount" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obicount"
@ -33,7 +34,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
nvariant, nread, nsymbol := fs.Count(true) nvariant, nread, nsymbol := fs.Count(true)
if obicount.CLIIsPrintingVariantCount() { if obicount.CLIIsPrintingVariantCount() {

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -14,7 +15,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
obicsv.CLIWriteCSV(fs, true) obicsv.CLIWriteCSV(fs, true)
obiiter.WaitForLastPipe() obiiter.WaitForLastPipe()

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
@ -15,7 +16,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
obidistribute.DistributeSequence(fs) obidistribute.DistributeSequence(fs)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -34,7 +35,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
sequences, _ := obiconvert.CLIReadBioSequences(args...) sequences, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
selected := obigrep.CLIFilterSequence(sequences) selected := obigrep.CLIFilterSequence(sequences)
obiconvert.CLIWriteBioSequences(selected, true) obiconvert.CLIWriteBioSequences(selected, true)
obiiter.WaitForLastPipe() obiiter.WaitForLastPipe()

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -29,7 +30,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
sequences, _ := obiconvert.CLIReadBioSequences(args...) sequences, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
amplicons, _ := obimultiplex.IExtractBarcode(sequences) amplicons, _ := obimultiplex.IExtractBarcode(sequences)
obiconvert.CLIWriteBioSequences(amplicons, true) obiconvert.CLIWriteBioSequences(amplicons, true)
amplicons.Wait() amplicons.Wait()

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -30,7 +31,13 @@ func main() {
optionParser := obioptions.GenerateOptionParser(obipairing.OptionSet) optionParser := obioptions.GenerateOptionParser(obipairing.OptionSet)
optionParser(os.Args) optionParser(os.Args)
pairs, _ := obipairing.CLIPairedSequence() pairs, err := obipairing.CLIPairedSequence()
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
paired := obipairing.IAssemblePESequencesBatch(pairs, paired := obipairing.IAssemblePESequencesBatch(pairs,
obipairing.CLIGapPenality(), obipairing.CLIGapPenality(),
obipairing.CLIDelta(), obipairing.CLIDelta(),

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -31,7 +32,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
sequences, _ := obiconvert.CLIReadBioSequences(args...) sequences, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
amplicons, _ := obipcr.PCR(sequences) amplicons, _ := obipcr.PCR(sequences)
obiconvert.CLIWriteBioSequences(amplicons, true) obiconvert.CLIWriteBioSequences(amplicons, true)
obiiter.WaitForLastPipe() obiiter.WaitForLastPipe()

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
@ -15,7 +16,12 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
indexed := obirefidx.IndexReferenceDB(fs) indexed := obirefidx.IndexReferenceDB(fs)
obiconvert.CLIWriteBioSequences(indexed, true) obiconvert.CLIWriteBioSequences(indexed, true)

View File

@ -3,6 +3,7 @@ package main
import ( import (
"fmt" "fmt"
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obitools/obiconvert"
@ -33,7 +34,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
fs, _ := obiconvert.CLIReadBioSequences(args...) fs, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
identified := obitag.AssignTaxonomy(fs) identified := obitag.AssignTaxonomy(fs)
obiconvert.CLIWriteBioSequences(identified, true) obiconvert.CLIWriteBioSequences(identified, true)

View File

@ -2,6 +2,7 @@ package main
import ( import (
"os" "os"
log "github.com/sirupsen/logrus"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obiiter"
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions" "git.metabarcoding.org/lecasofts/go/obitools/pkg/obioptions"
@ -34,7 +35,13 @@ func main() {
_, args := optionParser(os.Args) _, args := optionParser(os.Args)
sequences, _ := obiconvert.CLIReadBioSequences(args...) sequences, err := obiconvert.CLIReadBioSequences(args...)
if err != nil {
log.Errorf("Cannot open file (%v)",err)
os.Exit(1)
}
unique := obiuniq.Unique(sequences) unique := obiuniq.Unique(sequences)
obiconvert.CLIWriteBioSequences(unique, true) obiconvert.CLIWriteBioSequences(unique, true)

6
go.mod
View File

@ -11,7 +11,7 @@ require (
github.com/klauspost/pgzip v1.2.5 github.com/klauspost/pgzip v1.2.5
github.com/rrethy/ahocorasick v1.0.0 github.com/rrethy/ahocorasick v1.0.0
github.com/schollz/progressbar/v3 v3.8.6 github.com/schollz/progressbar/v3 v3.8.6
github.com/sirupsen/logrus v1.8.1 github.com/sirupsen/logrus v1.9.0
github.com/tevino/abool/v2 v2.0.1 github.com/tevino/abool/v2 v2.0.1
gonum.org/v1/gonum v0.11.0 gonum.org/v1/gonum v0.11.0
scientificgo.org/special v0.0.0 scientificgo.org/special v0.0.0
@ -23,7 +23,7 @@ require (
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
github.com/rivo/uniseg v0.2.0 // indirect github.com/rivo/uniseg v0.2.0 // indirect
golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 // indirect golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838 // indirect
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 // indirect golang.org/x/exp v0.0.0-20230306221820-f0f767cdffd6 // indirect
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect golang.org/x/sys v0.1.0 // indirect
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect
) )

11
go.sum
View File

@ -37,10 +37,14 @@ github.com/schollz/progressbar/v3 v3.8.6 h1:QruMUdzZ1TbEP++S1m73OqRJk20ON11m6Wqv
github.com/schollz/progressbar/v3 v3.8.6/go.mod h1:W5IEwbJecncFGBvuEh4A7HT1nZZ6WNIL2i3qbnI0WKY= github.com/schollz/progressbar/v3 v3.8.6/go.mod h1:W5IEwbJecncFGBvuEh4A7HT1nZZ6WNIL2i3qbnI0WKY=
github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0=
github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/tevino/abool/v2 v2.0.1 h1:OF7FC5V5z3yAWyixbc32ecEzrgAJCsPkVOsPM2qoZPI= github.com/tevino/abool/v2 v2.0.1 h1:OF7FC5V5z3yAWyixbc32ecEzrgAJCsPkVOsPM2qoZPI=
github.com/tevino/abool/v2 v2.0.1/go.mod h1:+Lmlqk6bHDWHqN1cbxqhwEAwMPXgc8I1SDEamtseuXY= github.com/tevino/abool/v2 v2.0.1/go.mod h1:+Lmlqk6bHDWHqN1cbxqhwEAwMPXgc8I1SDEamtseuXY=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@ -50,6 +54,8 @@ golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3 h1:n9HxLrNxWWtEb1cA950nuEEj3QnKbtsCJ6KjcgisNUs=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/exp v0.0.0-20230306221820-f0f767cdffd6 h1:3p+wVC0x0TCIPgd3LCQlpgVlEtjziEC5v42w7+B8t8M=
golang.org/x/exp v0.0.0-20230306221820-f0f767cdffd6/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
@ -67,8 +73,11 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@ -79,6 +88,8 @@ golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtn
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E=
gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
scientificgo.org/special v0.0.0 h1:P6WJkECo6tgtvZAEfNXl+KEB9ReAatjKAeX8U07mjSc= scientificgo.org/special v0.0.0 h1:P6WJkECo6tgtvZAEfNXl+KEB9ReAatjKAeX8U07mjSc=
scientificgo.org/special v0.0.0/go.mod h1:LoGVh9tS431RLTJo7gFlYDKFWq44cEb7QqL+M0EKtZU= scientificgo.org/special v0.0.0/go.mod h1:LoGVh9tS431RLTJo7gFlYDKFWq44cEb7QqL+M0EKtZU=
scientificgo.org/testutil v0.0.0 h1:y356DHRo0tAz9zIFmxlhZoKDlHPHaWW/DCm9k3PhIMA= scientificgo.org/testutil v0.0.0 h1:y356DHRo0tAz9zIFmxlhZoKDlHPHaWW/DCm9k3PhIMA=

View File

@ -47,7 +47,7 @@ func _ParseGenbankFile(input <-chan _FileChunk, out obiiter.IBioSequence) {
nl++ nl++
line := scanner.Text() line := scanner.Text()
switch { switch {
case state==inDefinition && ! strings.HasPrefix(line, " "): case state == inDefinition && !strings.HasPrefix(line, " "):
state = inEntry state = inEntry
fallthrough fallthrough
case strings.HasPrefix(line, "LOCUS "): case strings.HasPrefix(line, "LOCUS "):
@ -61,7 +61,7 @@ func _ParseGenbankFile(input <-chan _FileChunk, out obiiter.IBioSequence) {
case strings.HasPrefix(line, "FEATURES "): case strings.HasPrefix(line, "FEATURES "):
featBytes.WriteString(line) featBytes.WriteString(line)
state = inFeature state = inFeature
case strings.HasPrefix(line, "ORIGIN "): case strings.HasPrefix(line, "ORIGIN"):
state = inSequence state = inSequence
case line == "//": case line == "//":
log.Debugln("Total lines := ", nl) log.Debugln("Total lines := ", nl)
@ -76,12 +76,15 @@ func _ParseGenbankFile(input <-chan _FileChunk, out obiiter.IBioSequence) {
annot["scientific_name"] = scientificName annot["scientific_name"] = scientificName
annot["taxid"] = taxid annot["taxid"] = taxid
// log.Println(FormatFasta(sequence, FormatFastSeqJsonHeader)) // log.Println(FormatFasta(sequence, FormatFastSeqJsonHeader))
log.Debugf("Read sequences %s: %dbp (%d)", sequence.Id(),
sequence.Len(), seqBytes.Len())
sequences = append(sequences, sequence) sequences = append(sequences, sequence)
defBytes = new(bytes.Buffer) defBytes = new(bytes.Buffer)
featBytes = new(bytes.Buffer) featBytes = new(bytes.Buffer)
seqBytes = new(bytes.Buffer) seqBytes = new(bytes.Buffer)
nl=0 nl = 0
sl=0 sl = 0
default: default:
switch state { switch state {
case inDefinition: case inDefinition:

View File

@ -85,8 +85,8 @@ func ReadSequencesFromFile(filename string,
switch filetype { switch filetype {
case "fastq", "fasta": case "fastq", "fasta":
file.Close() file.Close()
is, _ := ReadFastSeqFromFile(filename, options...) is, err := ReadFastSeqFromFile(filename, options...)
return is, nil return is, err
case "ecopcr": case "ecopcr":
return ReadEcoPCR(reader, options...), nil return ReadEcoPCR(reader, options...), nil
case "embl": case "embl":

View File

@ -90,7 +90,7 @@ func AnnotationClassifier(key string, na string) *BioSequenceClassifier {
return AnnotationClassifier(key, na) return AnnotationClassifier(key, na)
} }
c := BioSequenceClassifier{code, value, reset, clone,"AnnotationClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "AnnotationClassifier"}
return &c return &c
} }
@ -127,7 +127,7 @@ func DualAnnotationClassifier(key1, key2 string, na string) *BioSequenceClassifi
val2 = fmt.Sprint(value) val2 = fmt.Sprint(value)
} }
} else { } else {
val2=na val2 = na
} }
} }
} }
@ -173,7 +173,7 @@ func DualAnnotationClassifier(key1, key2 string, na string) *BioSequenceClassifi
return DualAnnotationClassifier(key1, key2, na) return DualAnnotationClassifier(key1, key2, na)
} }
c := BioSequenceClassifier{code, value, reset, clone,"DualAnnotationClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "DualAnnotationClassifier"}
return &c return &c
} }
@ -206,7 +206,7 @@ func PredicateClassifier(predicate SequencePredicate) *BioSequenceClassifier {
return PredicateClassifier(predicate) return PredicateClassifier(predicate)
} }
c := BioSequenceClassifier{code, value, reset, clone,"PredicateClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "PredicateClassifier"}
return &c return &c
} }
@ -228,7 +228,7 @@ func HashClassifier(size int) *BioSequenceClassifier {
return HashClassifier(size) return HashClassifier(size)
} }
c := BioSequenceClassifier{code, value, reset, clone,"HashClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "HashClassifier"}
return &c return &c
} }
@ -283,7 +283,7 @@ func SequenceClassifier() *BioSequenceClassifier {
return SequenceClassifier() return SequenceClassifier()
} }
c := BioSequenceClassifier{code, value, reset, clone,"SequenceClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "SequenceClassifier"}
return &c return &c
} }
@ -313,7 +313,6 @@ func RotateClassifier(size int) *BioSequenceClassifier {
return RotateClassifier(size) return RotateClassifier(size)
} }
c := BioSequenceClassifier{code, value, reset, clone,"RotateClassifier"} c := BioSequenceClassifier{code, value, reset, clone, "RotateClassifier"}
return &c return &c
} }

View File

@ -1,6 +1,7 @@
package obiconvert package obiconvert
import ( import (
"fmt"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@ -20,6 +21,9 @@ func _ExpandListOfFiles(check_ext bool, filenames ...string) ([]string, error) {
err = filepath.Walk(fn, err = filepath.Walk(fn,
func(path string, info os.FileInfo, err error) error { func(path string, info os.FileInfo, err error) error {
var e error var e error
if info == nil {
return fmt.Errorf("cannot open path")
}
for info.Mode()&os.ModeSymlink == os.ModeSymlink { for info.Mode()&os.ModeSymlink == os.ModeSymlink {
path, e = filepath.EvalSymlinks(path) path, e = filepath.EvalSymlinks(path)
if e != nil { if e != nil {