1 Clazz.declarePackage ("jalview.io");
\r
2 Clazz.load (["jalview.io.AlignFile"], "jalview.io.PfamFile", ["jalview.util.Format", "$.MessageManager", "java.io.IOException", "java.lang.StringBuffer", "java.util.Hashtable", "$.StringTokenizer", "$.Vector"], function () {
\r
3 c$ = Clazz.declareType (jalview.io, "PfamFile", jalview.io.AlignFile);
\r
4 Clazz.makeConstructor (c$,
\r
6 Clazz.superConstructor (this, jalview.io.PfamFile, []);
\r
8 Clazz.overrideMethod (c$, "parse",
\r
12 var seqhash = new java.util.Hashtable ();
\r
13 var headers = new java.util.Vector ();
\r
14 while ((line = this.nextLine ()) != null) {
\r
15 if (line.indexOf (" ") != 0) {
\r
16 if (line.indexOf ("#") != 0) {
\r
17 var str = new java.util.StringTokenizer (line, " ");
\r
19 if (str.hasMoreTokens ()) {
\r
20 id = str.nextToken ();
\r
22 if (seqhash.containsKey (id)) {
\r
23 tempseq = seqhash.get (id);
\r
25 tempseq = new StringBuffer ();
\r
26 seqhash.put (id, tempseq);
\r
27 }if (!(headers.contains (id))) {
\r
28 headers.addElement (id);
\r
29 }if (str.hasMoreTokens ()) {
\r
30 tempseq.append (str.nextToken ());
\r
32 this.noSeqs = headers.size ();
\r
33 if (this.noSeqs < 1) {
\r
34 throw new java.io.IOException (jalview.util.MessageManager.getString ("exception.pfam_no_sequences_found"));
\r
35 }for (i = 0; i < headers.size (); i++) {
\r
36 if (seqhash.get (headers.elementAt (i)) != null) {
\r
37 if (this.maxLength < seqhash.get (headers.elementAt (i)).toString ().length) {
\r
38 this.maxLength = seqhash.get (headers.elementAt (i)).toString ().length;
\r
39 }var newSeq = this.parseId (headers.elementAt (i).toString ());
\r
40 newSeq.setSequence (seqhash.get (headers.elementAt (i).toString ()).toString ());
\r
41 this.seqs.addElement (newSeq);
\r
43 System.err.println ("PFAM File reader: Can't find sequence for " + headers.elementAt (i));
\r
46 Clazz.defineMethod (c$, "print",
\r
48 var out = new StringBuffer ("");
\r
52 while ((i < s.length) && (s[i] != null)) {
\r
53 var tmp = this.printId (s[i]);
\r
54 if (s[i].getSequence ().length > max) {
\r
55 max = s[i].getSequence ().length;
\r
56 }if (tmp.length > maxid) {
\r
63 while ((j < s.length) && (s[j] != null)) {
\r
64 out.append ( new jalview.util.Format ("%-" + maxid + "s").form (this.printId (s[j]) + " "));
\r
65 out.append (s[j].getSequenceAsString ());
\r
66 out.append (this.newline);
\r
69 out.append (this.newline);
\r
70 return out.toString ();
\r
72 Clazz.defineMethod (c$, "print",
\r
74 return this.print (this.getSeqsAsArray ());
\r