X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FMSFfile.java;h=61b3528fff048fa3e262cd024272de6b1149273f;hb=141ad7e898f94594bacb1c77eabbcd837505409c;hp=7d9c07cf09a17a6eaa931ec49bd9f198a3a674f1;hpb=04011072920c5e2587a8d549869ee47e28ad7d81;p=jalview.git diff --git a/src/jalview/io/MSFfile.java b/src/jalview/io/MSFfile.java index 7d9c07c..61b3528 100755 --- a/src/jalview/io/MSFfile.java +++ b/src/jalview/io/MSFfile.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer -* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle +* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -145,7 +145,7 @@ public class MSFfile extends AlignFile // Replace ~ with a sensible gap character seq = seq.replace('~', '-'); - if (!isValidProteinSequence(seq)) + if (!isValidProteinSequence(seq.toCharArray())) { throw new IOException(AppletFormatAdapter. INVALID_CHARACTERS @@ -227,9 +227,11 @@ public class MSFfile extends AlignFile while ((i < seqs.length) && (seqs[i] != null)) { // Replace all internal gaps with . and external spaces with ~ - s[i] =new Sequence(seqs[i].getName(),seqs[i].getSequence().replace('-', '.')); + s[i] =new Sequence(seqs[i].getName(),seqs[i].getSequenceAsString().replace('-', '.')); + + StringBuffer sb = new StringBuffer(); + sb.append(s[i].getSequence()); - StringBuffer sb = new StringBuffer(s[i].getSequence()); for (int ii = 0; ii < sb.length(); ii++) { if (sb.charAt(ii) == '.') @@ -252,9 +254,9 @@ public class MSFfile extends AlignFile s[i].setSequence(sb.toString()); - if (s[i].getSequence().length() > max) + if (s[i].getSequence().length > max) { - max = s[i].getSequence().length(); + max = s[i].getSequence().length; } i++; @@ -270,13 +272,13 @@ public class MSFfile extends AlignFile int [] checksums = new int[s.length]; while ( i < s.length ) { - checksums[i] = checkSum(s[i].getSequence()); + checksums[i] = checkSum(s[i].getSequenceAsString()); bigChecksum += checksums[i]; i++; } long maxNB = 0; - out.append(" MSF: " + s[0].getSequence().length() + " Type: " + + out.append(" MSF: " + s[0].getSequence().length + " Type: " + (is_NA ? "N" : "P") + " Check: " + (bigChecksum%10000) + " ..\n\n\n"); String[] nameBlock = new String[s.length]; @@ -289,7 +291,7 @@ public class MSFfile extends AlignFile nameBlock[i] = new String(" Name: " + printId(s[i])+" "); idBlock[i] = new String("Len: " + - maxLenpad.form(s[i].getSequence().length()) + " Check: " + + maxLenpad.form(s[i].getSequence().length) + " Check: " + maxChkpad.form(checksums[i]) + " Weight: 1.00\n"); if (s[i].getName().length() > maxid) @@ -350,10 +352,10 @@ public class MSFfile extends AlignFile int start = (i * 50) + (k * 10); int end = start + 10; - if ((end < s[j].getSequence().length()) && - (start < s[j].getSequence().length())) + if ((end < s[j].getSequence().length) && + (start < s[j].getSequence().length)) { - out.append(s[j].getSequence().substring(start, end)); + out.append(s[j].getSequence(start, end)); if (k < 4) { @@ -366,9 +368,9 @@ public class MSFfile extends AlignFile } else { - if (start < s[j].getSequence().length()) + if (start < s[j].getSequence().length) { - out.append(s[j].getSequence().substring(start)); + out.append(s[j].getSequenceAsString().substring(start)); out.append("\n"); } else