X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FFastaFile.java;h=3a7197fb92560bae173cf32b76cada7753998b61;hb=dfa04e77181fccfa6229ffef1591fc9c622d9b39;hp=1cb016c93179ac277f45ca502fb5743a25bbbe1b;hpb=3a993bbe274824870c78bd7695c42fa93908cb30;p=jalview.git
diff --git a/src/jalview/io/FastaFile.java b/src/jalview/io/FastaFile.java
index 1cb016c..3a7197f 100755
--- a/src/jalview/io/FastaFile.java
+++ b/src/jalview/io/FastaFile.java
@@ -1,20 +1,20 @@
/*
- * Jalview - A Sequence Alignment Editor and Viewer
- * Copyright (C) 2007 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
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.io;
@@ -24,12 +24,11 @@ import jalview.datamodel.*;
/**
* DOCUMENT ME!
- *
+ *
* @author $author$
* @version $Revision$
*/
-public class FastaFile
- extends AlignFile
+public class FastaFile extends AlignFile
{
/**
* Length of a sequence line
@@ -47,14 +46,16 @@ public class FastaFile
/**
* Creates a new FastaFile object.
- *
- * @param inFile DOCUMENT ME!
- * @param type DOCUMENT ME!
- *
- * @throws IOException DOCUMENT ME!
+ *
+ * @param inFile
+ * DOCUMENT ME!
+ * @param type
+ * DOCUMENT ME!
+ *
+ * @throws IOException
+ * DOCUMENT ME!
*/
- public FastaFile(String inFile, String type)
- throws IOException
+ public FastaFile(String inFile, String type) throws IOException
{
super(inFile, type);
}
@@ -66,23 +67,23 @@ public class FastaFile
/**
* DOCUMENT ME!
- *
- * @throws IOException DOCUMENT ME!
+ *
+ * @throws IOException
+ * DOCUMENT ME!
*/
- public void parse()
- throws IOException
+ public void parse() throws IOException
{
StringBuffer sb = new StringBuffer();
boolean firstLine = true;
- String line;
+ String line,uline;
Sequence seq = null;
boolean annotation = false;
- while ( (line = nextLine()) != null)
+ while ((uline = nextLine()) != null)
{
- line = line.trim();
+ line = uline.trim();
if (line.length() > 0)
{
if (line.charAt(0) == '>')
@@ -91,19 +92,7 @@ public class FastaFile
{
if (annotation)
{
- Annotation[] anots = new Annotation[sb.length()];
- String anotString = sb.toString();
- for (int i = 0; i < sb.length(); i++)
- {
- anots[i] = new Annotation(anotString.substring(i, i + 1),
- null,
- ' ', 0);
- }
- AlignmentAnnotation aa = new AlignmentAnnotation(
- seq.getName().substring(2), seq.getDescription(),
- anots);
-
- annotations.addElement(aa);
+ annotations.addElement(makeAnnotation(seq, sb));
}
}
else
@@ -133,26 +122,14 @@ public class FastaFile
}
else
{
- sb.append(line);
+ sb.append(annotation ? uline : line);
}
}
}
if (annotation)
{
- Annotation[] anots = new Annotation[sb.length()];
- String anotString = sb.toString();
- for (int i = 0; i < sb.length(); i++)
- {
- anots[i] = new Annotation(anotString.substring(i, i + 1),
- null,
- ' ', 0);
- }
- AlignmentAnnotation aa = new AlignmentAnnotation(
- seq.getName().substring(2), seq.getDescription(),
- anots);
-
- annotations.addElement(aa);
+ annotations.addElement(makeAnnotation(seq, sb));
}
else if (!firstLine)
@@ -161,11 +138,27 @@ public class FastaFile
seqs.addElement(seq);
}
}
-
+ private AlignmentAnnotation makeAnnotation(SequenceI seq, StringBuffer sb)
+ {
+ Annotation[] anots = new Annotation[sb.length()];
+ char cb;
+ for (int i=0;i" + printId(s[i]));
if (s[i].getDescription() != null)
@@ -203,7 +200,7 @@ public class FastaFile
out.append(" " + s[i].getDescription());
}
- out.append("\n");
+ out.append(newline);
int nochunks = (s[i].getLength() / len) + 1;
@@ -214,11 +211,12 @@ public class FastaFile
if (end < s[i].getLength())
{
- out.append(s[i].getSequenceAsString(start, end) + "\n");
+ out.append(s[i].getSequenceAsString(start, end) + newline);
}
else if (start < s[i].getLength())
{
- out.append(s[i].getSequenceAsString(start, s[i].getLength()) + "\n");
+ out.append(s[i].getSequenceAsString(start, s[i].getLength())
+ + newline);
}
}
@@ -230,7 +228,7 @@ public class FastaFile
/**
* DOCUMENT ME!
- *
+ *
* @return DOCUMENT ME!
*/
public String print()