JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / io / PileUpfile.js
1 Clazz.declarePackage ("jalview.io");\r
2 Clazz.load (["jalview.io.MSFfile"], "jalview.io.PileUpfile", ["jalview.util.Format", "java.lang.StringBuffer"], function () {\r
3 c$ = Clazz.declareType (jalview.io, "PileUpfile", jalview.io.MSFfile);\r
4 Clazz.makeConstructor (c$, \r
5 function () {\r
6 Clazz.superConstructor (this, jalview.io.PileUpfile, []);\r
7 });\r
8 Clazz.defineMethod (c$, "print", \r
9 function () {\r
10 return this.print (this.getSeqsAsArray ());\r
11 });\r
12 Clazz.defineMethod (c$, "print", \r
13 function (s) {\r
14 var out =  new StringBuffer ("PileUp");\r
15 out.append (this.newline);\r
16 out.append (this.newline);\r
17 var max = 0;\r
18 var maxid = 0;\r
19 var i = 0;\r
20 var bigChecksum = 0;\r
21 var checksums =  Clazz.newIntArray (s.length, 0);\r
22 while (i < s.length) {\r
23 checksums[i] = this.checkSum (s[i].getSequenceAsString ());\r
24 bigChecksum += checksums[i];\r
25 i++;\r
26 }\r
27 out.append ("   MSF: " + s[0].getSequence ().length + "   Type: P    Check:  " + bigChecksum % 10000 + "   ..");\r
28 out.append (this.newline);\r
29 out.append (this.newline);\r
30 out.append (this.newline);\r
31 i = 0;\r
32 while ((i < s.length) && (s[i] != null)) {\r
33 var seq = s[i].getSequenceAsString ();\r
34 out.append (" Name: " + this.printId (s[i]) + " oo  Len:  " + seq.length + "  Check:  " + checksums[i] + "  Weight:  1.00");\r
35 out.append (this.newline);\r
36 if (seq.length > max) {\r
37 max = seq.length;\r
38 }if (s[i].getName ().length > maxid) {\r
39 maxid = s[i].getName ().length;\r
40 }i++;\r
41 }\r
42 if (maxid < 10) {\r
43 maxid = 10;\r
44 }maxid++;\r
45 out.append (this.newline);\r
46 out.append (this.newline);\r
47 out.append ("//");\r
48 out.append (this.newline);\r
49 out.append (this.newline);\r
50 var len = 50;\r
51 var nochunks = (Clazz.doubleToInt (max / len)) + 1;\r
52 if ((max % len) == 0) {\r
53 nochunks--;\r
54 }for (i = 0; i < nochunks; i++) {\r
55 var j = 0;\r
56 while ((j < s.length) && (s[j] != null)) {\r
57 var name = this.printId (s[j]);\r
58 out.append ( new jalview.util.Format ("%-" + maxid + "s").form (name + " "));\r
59 for (var k = 0; k < 5; k++) {\r
60 var start = (i * 50) + (k * 10);\r
61 var end = start + 10;\r
62 if ((end < s[j].getSequence ().length) && (start < s[j].getSequence ().length)) {\r
63 out.append (s[j].getSequence (start, end));\r
64 if (k < 4) {\r
65 out.append (" ");\r
66 } else {\r
67 out.append (this.newline);\r
68 }} else {\r
69 if (start < s[j].getSequence ().length) {\r
70 out.append (s[j].getSequenceAsString ().substring (start));\r
71 out.append (this.newline);\r
72 } else {\r
73 if (k == 0) {\r
74 out.append (this.newline);\r
75 }}}}\r
76 j++;\r
77 }\r
78 out.append (this.newline);\r
79 }\r
80 return out.toString ();\r
81 }, "~A");\r
82 });\r