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