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