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
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
10 Clazz.makeConstructor (c$,
\r
12 Clazz.superConstructor (this, jalview.io.PIRFile, []);
\r
14 Clazz.overrideMethod (c$, "parse",
\r
19 while ((line = this.nextLine ()) != null) {
\r
20 if (line.length == 0) {
\r
22 }if (line.indexOf ("C;") == 0 || line.indexOf ("#") == 0) {
\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
33 }if (line.indexOf ("*") > -1) {
\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
44 Clazz.defineMethod (c$, "print",
\r
46 return this.print (this.getSeqsAsArray ());
\r
48 Clazz.defineMethod (c$, "print",
\r
50 var is_NA = jalview.util.Comparison.isNucleotide (s);
\r
52 var out = new StringBuffer ();
\r
55 while ((i < s.length) && (s[i] != null)) {
\r
56 var seq = s[i].getSequenceAsString ();
\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
66 out.append (s[i].getDescription ());
\r
67 out.append (this.newline);
\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
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
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
97 return out.toString ();
\r
99 Clazz.defineStatics (c$,
\r
100 "useModellerOutput", false);
\r