public class PfamFile\r
extends AlignFile\r
{\r
- Vector ids;\r
\r
public PfamFile()\r
{\r
public void initData()\r
{\r
super.initData();\r
- ids = new Vector();\r
}\r
\r
- public void parse()\r
- throws IOException\r
+ public void parse() throws IOException\r
{\r
int i = 0;\r
String line;\r
.length();\r
}\r
\r
- String head = headers.elementAt(i).toString();\r
- int start = 1;\r
- int end = -1;\r
-\r
- if (head.indexOf("/") > 0)\r
- {\r
- StringTokenizer st = new StringTokenizer(head, "/");\r
-\r
- if (st.countTokens() == 2)\r
- {\r
- ids.addElement(st.nextToken());\r
\r
- String tmp = st.nextToken();\r
- st = new StringTokenizer(tmp, "-");\r
-\r
- if (st.countTokens() == 2)\r
- {\r
- start = Integer.valueOf(st.nextToken()).intValue();\r
- end = Integer.valueOf(st.nextToken()).intValue();\r
- }\r
- }\r
- else\r
- {\r
- ids.addElement(headers.elementAt(i));\r
- }\r
- }\r
- else\r
- {\r
- ids.addElement(headers.elementAt(i));\r
- }\r
-\r
- Sequence newSeq = null;\r
-\r
- newSeq = new Sequence(ids.elementAt(i).toString(),\r
- seqhash.get(headers.elementAt(i).toString())\r
- .toString(), start, end);\r
+ Sequence newSeq = parseId(headers.elementAt(i).toString());\r
+ newSeq.setSequence( seqhash.get(headers.elementAt(i).toString()).toString());\r
seqs.addElement(newSeq);\r
\r
-\r
if (!isValidProteinSequence(newSeq.getSequence()))\r
{\r
- throw new IOException(\r
- "Not a valid protein sequence - (PFAM input)");\r
+ throw new IOException(AppletFormatAdapter.INVALID_CHARACTERS\r
+ +" : "+ newSeq.getName()\r
+ +" : "+invalidCharacter);\r
}\r
}\r
else\r
}\r
}\r
\r
- public static String print(SequenceI[] s)\r
+ public String print(SequenceI[] s)\r
{\r
StringBuffer out = new StringBuffer("");\r
\r
\r
while ( (i < s.length) && (s[i] != null))\r
{\r
- String tmp = s[i].getName() + "/" + s[i].getStart() + "-" +\r
- s[i].getEnd();\r
+ String tmp = printId(s[i]);\r
\r
if (s[i].getSequence().length() > max)\r
{\r
\r
while ( (j < s.length) && (s[j] != null))\r
{\r
- out.append(new Format("%-" + maxid + "s").form(s[j].getName() +\r
- "/" + s[j].getStart() + "-" + s[j].getEnd()) + " ");\r
+ out.append(new Format("%-" + maxid + "s").form( printId(s[j])+" "));\r
\r
out.append(s[j].getSequence() + "\n");\r
j++;\r