JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / io / PfamFile.js
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
5 function () {\r
6 Clazz.superConstructor (this, jalview.io.PfamFile, []);\r
7 });\r
8 Clazz.overrideMethod (c$, "parse", \r
9 function () {\r
10 var i = 0;\r
11 var line;\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
18 var id = "";\r
19 if (str.hasMoreTokens ()) {\r
20 id = str.nextToken ();\r
21 var tempseq;\r
22 if (seqhash.containsKey (id)) {\r
23 tempseq = seqhash.get (id);\r
24 } else {\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
31 }}}}}\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
42 } else {\r
43 System.err.println ("PFAM File reader: Can't find sequence for " + headers.elementAt (i));\r
44 }}\r
45 });\r
46 Clazz.defineMethod (c$, "print", \r
47 function (s) {\r
48 var out =  new StringBuffer ("");\r
49 var max = 0;\r
50 var maxid = 0;\r
51 var i = 0;\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
57 maxid = tmp.length;\r
58 }i++;\r
59 }\r
60 if (maxid < 15) {\r
61 maxid = 15;\r
62 }var j = 0;\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
67 j++;\r
68 }\r
69 out.append (this.newline);\r
70 return out.toString ();\r
71 }, "~A");\r
72 Clazz.defineMethod (c$, "print", \r
73 function () {\r
74 return this.print (this.getSeqsAsArray ());\r
75 });\r
76 });\r