mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Produce less weird crash on non existing files
Former-commit-id: 74bb27bd53c685be530632994bd2ba24c1f362e1
This commit is contained in:
@ -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:
|
||||
|
@ -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":
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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 {
|
||||
|
Reference in New Issue
Block a user