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

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

View File

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

View File

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

View File

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