X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FGenBankFile.java;h=ba7b4b44358965eb92f32456c4916f260bbcd8ff;hb=a295d36e6ea504fc436cb534887c80a5f5dc6c3a;hp=798876453bdc183775e35ce89d4a73269bd6e112;hpb=9527f18e0ba0625e0e4fd8e7bcb41369812dbbe2;p=jalview.git diff --git a/src/jalview/io/GenBankFile.java b/src/jalview/io/GenBankFile.java index 7988764..ba7b4b4 100644 --- a/src/jalview/io/GenBankFile.java +++ b/src/jalview/io/GenBankFile.java @@ -2,8 +2,6 @@ package jalview.io; import java.io.IOException; -import jalview.bin.Cache; - /** * A class that provides selective parsing of the GenBank flatfile format. *

@@ -47,7 +45,11 @@ public class GenBankFile extends FlatFile String line = nextLine(); while (line != null) { - if (line.startsWith(DEFINITION)) + if (line.startsWith("LOCUS")) + { + line = parseLocus(line); + } + else if (line.startsWith(DEFINITION)) { line = parseDefinition(line); } @@ -89,45 +91,25 @@ public class GenBankFile extends FlatFile */ String parseLocus(String line) throws IOException { - String[] tokens = line.substring(2).split(";"); + String[] tokens = line.split(WHITESPACE); /* - * first is primary accession + * first should be "LOCUS" */ - String token = tokens[0].trim(); - if (!token.isEmpty()) + if (tokens.length < 2 || !"LOCUS".equals(tokens[0])) { - this.accession = token; + return nextLine(); } - /* - * second token is 'SV versionNo' + * second is primary accession */ - if (tokens.length > 1) + String token = tokens[1].trim(); + if (!token.isEmpty()) { - token = tokens[1].trim(); - if (token.startsWith("SV")) - { - String[] bits = token.trim().split(WHITESPACE); - this.version = bits[bits.length - 1]; - } + this.accession = token; } - /* - * seventh token is 'length BP' - */ - if (tokens.length > 6) - { - token = tokens[6].trim(); - String[] bits = token.trim().split(WHITESPACE); - try - { - this.length = Integer.valueOf(bits[0]); - } catch (NumberFormatException e) - { - Cache.log.error("bad length read in flatfile, line: " + line); - } - } + // not going to guess the rest just yet, but third is length with unit (bp) return nextLine(); }