-\r
- while ((line = nextLine()) != null) {\r
-\r
- if (line.length() > 0) {\r
-\r
- // Do we have an id line?\r
-\r
- if (line.substring(0,1).equals(">")) {\r
-\r
- if (count != 0) {\r
- if (sstart != 0) {\r
- seqs.addElement(new Sequence(id,seq.toString().toUpperCase(),sstart,send));\r
- } else {\r
- seqs.addElement(new Sequence(id,seq.toString().toUpperCase(),1,seq.length()));\r
- }\r
- }\r
-\r
- count++;\r
-\r
- StringTokenizer str = new StringTokenizer(line," ");\r
-\r
- id = str.nextToken();\r
- id = id.substring(1);\r
-\r
- if (id.indexOf("/") > 0 ) {\r
-\r
- StringTokenizer st = new StringTokenizer(id,"/");\r
- if (st.countTokens() == 2) {\r
- id = st.nextToken();\r
- String tmp = st.nextToken();\r
-\r
- st = new StringTokenizer(tmp,"-");\r
-\r
- if (st.countTokens() == 2) {\r
- sstart = Integer.valueOf(st.nextToken()).intValue();\r
- send = Integer.valueOf(st.nextToken()).intValue();\r
- }\r
- }\r
- }\r
-\r
- seq = new StringBuffer();\r
-\r
- } else {\r
- seq = seq.append(line);\r
- }\r
- }\r
+ Sequence seq = null;\r
+\r
+ boolean annotation = false;\r
+\r
+ while ( (line = nextLine()) != null)\r
+ {\r
+ line = line.trim();\r
+ if (line.length() > 0)\r
+ {\r
+ if (line.charAt(0) == '>')\r
+ {\r
+ if (line.startsWith(">#_"))\r
+ {\r
+ if (annotation)\r
+ {\r
+ Annotation[] anots = new Annotation[sb.length()];\r
+ String anotString = sb.toString();\r
+ for (int i = 0; i < sb.length(); i++)\r
+ {\r
+ anots[i] = new Annotation(anotString.substring(i, i + 1),\r
+ null,\r
+ ' ', 0);\r
+ }\r
+ AlignmentAnnotation aa = new AlignmentAnnotation(\r
+ seq.getName().substring(2), seq.getDescription(),\r
+ anots);\r
+\r
+ annotations.addElement(aa);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ annotation = false;\r
+ }\r
+\r
+ if (!firstLine)\r
+ {\r
+ seq.setSequence(sb.toString());\r
+\r
+ if (!annotation)\r
+ {\r
+ seqs.addElement(seq);\r
+ }\r
+ }\r
+\r
+ seq = parseId(line.substring(1));\r
+ firstLine = false;\r
+\r
+ sb = new StringBuffer();\r
+\r
+ if (line.startsWith(">#_"))\r
+ {\r
+ annotation = true;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ sb.append(line);\r
+ }\r