JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / bin / jalview / io / PhylipFile.js
index 74e851f..0cd22ea 100644 (file)
-Clazz.declarePackage ("jalview.io");\r
-Clazz.load (["jalview.io.AlignFile"], "jalview.io.PhylipFile", ["java.io.IOException", "java.lang.StringBuffer"], function () {\r
-c$ = Clazz.declareType (jalview.io, "PhylipFile", jalview.io.AlignFile);\r
-Clazz.overrideMethod (c$, "parse", \r
-function () {\r
-try {\r
-var line = this.nextLine ();\r
-var lineElements = line.trim ().$plit ("\\s+");\r
-if (lineElements.length < 2) {\r
-throw  new java.io.IOException ("First line must contain the number of specifies and number of characters");\r
-}var numberSpecies = Integer.parseInt (lineElements[0]);\r
-var numberCharacters = Integer.parseInt (lineElements[1]);\r
-if (numberSpecies <= 0) {\r
-return;\r
-}var sequenceElements =  new Array (numberSpecies);\r
-var sequences =  new Array (numberSpecies);\r
-for (var i = 0; i < numberSpecies; i++) {\r
-line = this.nextLine ();\r
-var potentialName = line.substring (0, 10);\r
-var tabIndex = potentialName.indexOf ('\t');\r
-if (tabIndex == -1) {\r
-sequenceElements[i] = this.parseId (this.validateName (potentialName));\r
-sequences[i] =  new StringBuffer (this.removeWhitespace (line.substring (10)));\r
-} else {\r
-sequenceElements[i] = this.parseId (this.validateName (potentialName.substring (0, tabIndex)));\r
-sequences[i] =  new StringBuffer (this.removeWhitespace (line.substring (tabIndex)));\r
-}}\r
-if ((sequences[0]).length () != numberCharacters) {\r
-var i = 0;\r
-for (line = this.nextLine (); line != null; line = this.nextLine ()) {\r
-if (line.length > 0) {\r
-sequences[i++].append (this.removeWhitespace (line));\r
-}if (i == sequences.length) {\r
-i = 0;\r
-}}\r
-}for (var i = 0; i < numberSpecies; i++) {\r
-if (sequences[i].length () != numberCharacters) {\r
-throw  new java.io.IOException (sequenceElements[i].getName () + " sequence is incorrect length - should be " + numberCharacters + " but is " + sequences[i].length ());\r
-}sequenceElements[i].setSequence (sequences[i].toString ());\r
-this.seqs.add (sequenceElements[i]);\r
-}\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, java.io.IOException)) {\r
-System.err.println ("Exception parsing PHYLIP file " + e);\r
-e.printStackTrace (System.err);\r
-throw e;\r
-} else {\r
-throw e;\r
-}\r
-}\r
-});\r
-Clazz.defineMethod (c$, "removeWhitespace", \r
-($fz = function (txt) {\r
-return txt.replaceAll ("\\s*", "");\r
-}, $fz.isPrivate = true, $fz), "~S");\r
-Clazz.defineMethod (c$, "validateName", \r
-($fz = function (name) {\r
-var invalidCharacters =  Clazz.newCharArray (-1, ['(', ')', '[', ']', ':', ';', ',']);\r
-for (var c, $c = 0, $$c = invalidCharacters; $c < $$c.length && ((c = $$c[$c]) || true); $c++) {\r
-if (name.indexOf (c) > -1) {\r
-throw  new java.io.IOException ("Species name contains illegal character " + c);\r
-}}\r
-return name;\r
-}, $fz.isPrivate = true, $fz), "~S");\r
-Clazz.overrideMethod (c$, "print", \r
-function () {\r
-var sb =  new StringBuffer (Integer.toString (this.seqs.size ()));\r
-sb.append (" ");\r
-sb.append ((this.seqs.size () > 0) ? Integer.toString (this.seqs.get (0).getSequence ().length) : "0").append (this.newline);\r
-var sequential = false;\r
-var numInterleavedColumns = 60;\r
-var sequenceLength = 0;\r
-for (var s, $s = this.seqs.iterator (); $s.hasNext () && ((s = $s.next ()) || true);) {\r
-var name = s.getName ();\r
-if (name.length > 10) {\r
-name = name.substring (0, 10);\r
-} else {\r
-name = String.format ("%1$-10s", [s.getName ()]);\r
-}sb.append (name);\r
-if (sequential) {\r
-sb.append (s.getSequence ());\r
-} else {\r
-sequenceLength = s.getSequence ().length;\r
-sb.append (s.getSequence (0, Math.min (numInterleavedColumns, sequenceLength)));\r
-}sb.append (this.newline);\r
-}\r
-if (!sequential && sequenceLength > numInterleavedColumns) {\r
-var numMatrics = Clazz.doubleToInt (sequenceLength / numInterleavedColumns);\r
-if ((sequenceLength % numInterleavedColumns) > 0) {\r
-numMatrics++;\r
-}for (var i = 1; i < numMatrics; i++) {\r
-sb.append (this.newline);\r
-var start = i * numInterleavedColumns;\r
-for (var s, $s = this.seqs.iterator (); $s.hasNext () && ((s = $s.next ()) || true);) {\r
-sb.append (s.getSequence (start, Math.min (start + numInterleavedColumns, sequenceLength))).append (this.newline);\r
-}\r
-}\r
-}return sb.toString ();\r
-});\r
-Clazz.defineStatics (c$,\r
-"FILE_EXT", "phy",\r
-"FILE_DESC", "PHYLIP");\r
-});\r
+Clazz.declarePackage ("jalview.io");
+Clazz.load (["jalview.io.AlignFile"], "jalview.io.PhylipFile", ["java.io.IOException", "java.lang.StringBuffer"], function () {
+c$ = Clazz.declareType (jalview.io, "PhylipFile", jalview.io.AlignFile);
+Clazz.overrideMethod (c$, "parse", 
+function () {
+try {
+var line = this.nextLine ();
+var lineElements = line.trim ().$plit ("\\s+");
+if (lineElements.length < 2) {
+throw  new java.io.IOException ("First line must contain the number of specifies and number of characters");
+}var numberSpecies = Integer.parseInt (lineElements[0]);
+var numberCharacters = Integer.parseInt (lineElements[1]);
+if (numberSpecies <= 0) {
+return;
+}var sequenceElements =  new Array (numberSpecies);
+var sequences =  new Array (numberSpecies);
+for (var i = 0; i < numberSpecies; i++) {
+line = this.nextLine ();
+var potentialName = line.substring (0, 10);
+var tabIndex = potentialName.indexOf ('\t');
+if (tabIndex == -1) {
+sequenceElements[i] = this.parseId (this.validateName (potentialName));
+sequences[i] =  new StringBuffer (this.removeWhitespace (line.substring (10)));
+} else {
+sequenceElements[i] = this.parseId (this.validateName (potentialName.substring (0, tabIndex)));
+sequences[i] =  new StringBuffer (this.removeWhitespace (line.substring (tabIndex)));
+}}
+if ((sequences[0]).length () != numberCharacters) {
+var i = 0;
+for (line = this.nextLine (); line != null; line = this.nextLine ()) {
+if (line.length > 0) {
+sequences[i++].append (this.removeWhitespace (line));
+}if (i == sequences.length) {
+i = 0;
+}}
+}for (var i = 0; i < numberSpecies; i++) {
+if (sequences[i].length () != numberCharacters) {
+throw  new java.io.IOException (sequenceElements[i].getName () + " sequence is incorrect length - should be " + numberCharacters + " but is " + sequences[i].length ());
+}sequenceElements[i].setSequence (sequences[i].toString ());
+this.seqs.add (sequenceElements[i]);
+}
+} catch (e) {
+if (Clazz.exceptionOf (e, java.io.IOException)) {
+System.err.println ("Exception parsing PHYLIP file " + e);
+e.printStackTrace (System.err);
+throw e;
+} else {
+throw e;
+}
+}
+});
+Clazz.defineMethod (c$, "removeWhitespace", 
+($fz = function (txt) {
+return txt.replaceAll ("\\s*", "");
+}, $fz.isPrivate = true, $fz), "~S");
+Clazz.defineMethod (c$, "validateName", 
+($fz = function (name) {
+var invalidCharacters =  Clazz.newCharArray (-1, ['(', ')', '[', ']', ':', ';', ',']);
+for (var c, $c = 0, $$c = invalidCharacters; $c < $$c.length && ((c = $$c[$c]) || true); $c++) {
+if (name.indexOf (c) > -1) {
+throw  new java.io.IOException ("Species name contains illegal character " + c);
+}}
+return name;
+}, $fz.isPrivate = true, $fz), "~S");
+Clazz.overrideMethod (c$, "print", 
+function () {
+var sb =  new StringBuffer (Integer.toString (this.seqs.size ()));
+sb.append (" ");
+sb.append ((this.seqs.size () > 0) ? Integer.toString (this.seqs.get (0).getSequence ().length) : "0").append (this.newline);
+var sequential = false;
+var numInterleavedColumns = 60;
+var sequenceLength = 0;
+for (var s, $s = this.seqs.iterator (); $s.hasNext () && ((s = $s.next ()) || true);) {
+var name = s.getName ();
+if (name.length > 10) {
+name = name.substring (0, 10);
+} else {
+name = String.format ("%1$-10s", [s.getName ()]);
+}sb.append (name);
+if (sequential) {
+sb.append (s.getSequence ());
+} else {
+sequenceLength = s.getSequence ().length;
+sb.append (s.getSequence (0, Math.min (numInterleavedColumns, sequenceLength)));
+}sb.append (this.newline);
+}
+if (!sequential && sequenceLength > numInterleavedColumns) {
+var numMatrics = Clazz.doubleToInt (sequenceLength / numInterleavedColumns);
+if ((sequenceLength % numInterleavedColumns) > 0) {
+numMatrics++;
+}for (var i = 1; i < numMatrics; i++) {
+sb.append (this.newline);
+var start = i * numInterleavedColumns;
+for (var s, $s = this.seqs.iterator (); $s.hasNext () && ((s = $s.next ()) || true);) {
+sb.append (s.getSequence (start, Math.min (start + numInterleavedColumns, sequenceLength))).append (this.newline);
+}
+}
+}return sb.toString ();
+});
+Clazz.defineStatics (c$,
+"FILE_EXT", "phy",
+"FILE_DESC", "PHYLIP");
+});