JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / io / PIRFile.js
1 Clazz.declarePackage ("jalview.io");\r
2 Clazz.load (["jalview.io.AlignFile", "java.util.Vector"], "jalview.io.PIRFile", ["jalview.io.ModellerDescription", "jalview.util.Comparison", "java.lang.StringBuffer"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.words = null;\r
5 Clazz.instantialize (this, arguments);\r
6 }, jalview.io, "PIRFile", jalview.io.AlignFile);\r
7 Clazz.prepareFields (c$, function () {\r
8 this.words =  new java.util.Vector ();\r
9 });\r
10 Clazz.makeConstructor (c$, \r
11 function () {\r
12 Clazz.superConstructor (this, jalview.io.PIRFile, []);\r
13 });\r
14 Clazz.overrideMethod (c$, "parse", \r
15 function () {\r
16 var sequence;\r
17 var line = null;\r
18 var md;\r
19 while ((line = this.nextLine ()) != null) {\r
20 if (line.length == 0) {\r
21 continue;\r
22 }if (line.indexOf ("C;") == 0 || line.indexOf ("#") == 0) {\r
23 continue;\r
24 }var newSeq = this.parseId (line.substring (line.indexOf (";") + 1));\r
25 sequence =  new StringBuffer ();\r
26 newSeq.setDescription (this.nextLine ());\r
27 var starFound = false;\r
28 while (!starFound) {\r
29 line = this.nextLine ();\r
30 sequence.append (line);\r
31 if (line == null) {\r
32 break;\r
33 }if (line.indexOf ("*") > -1) {\r
34 starFound = true;\r
35 }}\r
36 if (sequence.length () > 0) {\r
37 sequence.setLength (sequence.length () - 1);\r
38 newSeq.setSequence (sequence.toString ());\r
39 this.seqs.addElement (newSeq);\r
40 md =  new jalview.io.ModellerDescription (newSeq.getDescription ());\r
41 md.updateSequenceI (newSeq);\r
42 }}\r
43 });\r
44 Clazz.defineMethod (c$, "print", \r
45 function () {\r
46 return this.print (this.getSeqsAsArray ());\r
47 });\r
48 Clazz.defineMethod (c$, "print", \r
49 function (s) {\r
50 var is_NA = jalview.util.Comparison.isNucleotide (s);\r
51 var len = 72;\r
52 var out =  new StringBuffer ();\r
53 var i = 0;\r
54 var md;\r
55 while ((i < s.length) && (s[i] != null)) {\r
56 var seq = s[i].getSequenceAsString ();\r
57 seq = seq + "*";\r
58 if (is_NA) {\r
59 out.append (">N1;" + s[i].getName ());\r
60 out.append (this.newline);\r
61 if (s[i].getDescription () == null) {\r
62 out.append (s[i].getName () + " " + (s[i].getEnd () - s[i].getStart () + 1));\r
63 out.append (is_NA ? " bases" : " residues");\r
64 out.append (this.newline);\r
65 } else {\r
66 out.append (s[i].getDescription ());\r
67 out.append (this.newline);\r
68 }} else {\r
69 if (jalview.io.PIRFile.useModellerOutput) {\r
70 out.append (">P1;" + s[i].getName ());\r
71 out.append (this.newline);\r
72 md =  new jalview.io.ModellerDescription (s[i]);\r
73 out.append (md.getDescriptionLine ());\r
74 out.append (this.newline);\r
75 } else {\r
76 out.append (">P1;" + this.printId (s[i]));\r
77 out.append (this.newline);\r
78 if (s[i].getDescription () != null) {\r
79 out.append (s[i].getDescription ());\r
80 out.append (this.newline);\r
81 } else {\r
82 out.append (s[i].getName () + " " + (s[i].getEnd () - s[i].getStart () + 1) + " residues");\r
83 out.append (this.newline);\r
84 }}}var nochunks = (Clazz.doubleToInt (seq.length / len)) + 1;\r
85 for (var j = 0; j < nochunks; j++) {\r
86 var start = j * len;\r
87 var end = start + len;\r
88 if (end < seq.length) {\r
89 out.append (seq.substring (start, end));\r
90 out.append (this.newline);\r
91 } else if (start < seq.length) {\r
92 out.append (seq.substring (start));\r
93 out.append (this.newline);\r
94 }}\r
95 i++;\r
96 }\r
97 return out.toString ();\r
98 }, "~A");\r
99 Clazz.defineStatics (c$,\r
100 "useModellerOutput", false);\r
101 });\r