-/*\r
-* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
-*\r
-* This program is free software; you can redistribute it and/or\r
-* modify it under the terms of the GNU General Public License\r
-* as published by the Free Software Foundation; either version 2\r
-* of the License, or (at your option) any later version.\r
-*\r
-* This program is distributed in the hope that it will be useful,\r
-* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-* GNU General Public License for more details.\r
-*\r
-* You should have received a copy of the GNU General Public License\r
-* along with this program; if not, write to the Free Software\r
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
-*/\r
-package jalview.io;\r
-\r
-import jalview.datamodel.*;\r
-\r
-import java.io.*;\r
-\r
-import java.util.*;\r
-\r
-\r
-/**\r
- * DOCUMENT ME!\r
- *\r
- * @author $author$\r
- * @version $Revision$\r
- */\r
-public abstract class AlignFile extends FileParse\r
-{\r
- int noSeqs = 0;\r
- int maxLength = 0;\r
- Vector seqs;\r
- Vector headers;\r
- long start;\r
- long end;\r
- boolean jvSuffix = true;\r
-\r
- /**\r
- * Creates a new AlignFile object.\r
- */\r
- public AlignFile()\r
- {\r
- }\r
-\r
-\r
- /**\r
- * Constructor which parses the data from a file of some specified type.\r
- * @param inFile Filename to read from.\r
- * @param type What type of file to read from (File, URL)\r
- */\r
- public AlignFile(String inFile, String type) throws IOException\r
- {\r
- super(inFile, type);\r
-\r
- initData();\r
-\r
- parse();\r
- }\r
-\r
- /**\r
- * Return the seqs Vector\r
- */\r
- public Vector getSeqs()\r
- {\r
- return seqs;\r
- }\r
-\r
- /**\r
- * Return the Sequences in the seqs Vector as an array of Sequences\r
- */\r
- public SequenceI[] getSeqsAsArray()\r
- {\r
- SequenceI[] s = new SequenceI[seqs.size()];\r
-\r
- for (int i = 0; i < seqs.size(); i++)\r
- {\r
- s[i] = (SequenceI) seqs.elementAt(i);\r
- }\r
-\r
- return s;\r
- }\r
-\r
- /**\r
- * Initialise objects to store sequence data in.\r
- */\r
- protected void initData()\r
- {\r
- seqs = new Vector();\r
- headers = new Vector();\r
- }\r
-\r
- /**\r
- * DOCUMENT ME!\r
- *\r
- * @param s DOCUMENT ME!\r
- */\r
- protected void setSeqs(SequenceI[] s)\r
- {\r
- seqs = new Vector();\r
-\r
- for (int i = 0; i < s.length; i++)\r
- {\r
- seqs.addElement(s[i]);\r
- }\r
- }\r
-\r
- // Checks whether sequence is valid aa characters\r
- protected boolean isValidProteinSequence(char [] sequence)\r
- {\r
- for (int i = 0; i < sequence.length; i++)\r
- if (jalview.schemes.ResidueProperties.aaIndex[sequence[i]]==-1)\r
- {\r
- invalidCharacter = sequence[i];\r
- return false;\r
- }\r
-\r
- return true;\r
- }\r
-\r
- char invalidCharacter;\r
-\r
- /**\r
- * This method must be implemented to parse the contents of the file.\r
- */\r
- public abstract void parse() throws IOException;\r
-\r
- /**\r
- * Print out in alignment file format the Sequences in the seqs Vector.\r
- */\r
- public abstract String print();\r
-\r
- public void addJVSuffix(boolean b)\r
- {\r
- jvSuffix = b;\r
- }\r
-\r
- /**\r
- * A general parser for ids.\r
- *\r
- * @String id Id to be parsed\r
- */\r
- Sequence parseId(String id)\r
- {\r
- Sequence seq = null;\r
- id = id.trim();\r
- int space = id.indexOf(" ");\r
- if(space>-1)\r
- {\r
- seq = new Sequence(id.substring(0, space),"");\r
- seq.setDescription(id.substring(space+1));\r
- }\r
- else\r
- {\r
- seq = new Sequence(id, "");\r
- }\r
-\r
- return seq;\r
- }\r
-\r
- /**\r
- * Creates the output id.\r
- * Adds prefix Uniprot format source|id\r
- * And suffix Jalview /start-end\r
- *\r
- * @String id Id to be parsed\r
- */\r
- String printId(SequenceI seq)\r
- {\r
- return seq.getDisplayId(jvSuffix);\r
- }\r
-\r
-}\r
+/*
+ * 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
+ */
+package jalview.io;
+
+import java.io.*;
+import java.util.*;
+
+import jalview.datamodel.*;
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public abstract class AlignFile
+ extends FileParse
+{
+ int noSeqs = 0;
+ int maxLength = 0;
+ protected Vector seqs;
+ protected Vector annotations;
+ long start;
+ long end;
+ boolean jvSuffix = true;
+
+ /**
+ * Creates a new AlignFile object.
+ */
+ public AlignFile()
+ {
+ }
+
+ /**
+ * Constructor which parses the data from a file of some specified type.
+ * @param inFile Filename to read from.
+ * @param type What type of file to read from (File, URL)
+ */
+ public AlignFile(String inFile, String type)
+ throws IOException
+ {
+ super(inFile, type);
+
+ initData();
+
+ parse();
+ }
+
+ /**
+ * Return the seqs Vector
+ */
+ public Vector getSeqs()
+ {
+ return seqs;
+ }
+
+ /**
+ * Return the Sequences in the seqs Vector as an array of Sequences
+ */
+ public SequenceI[] getSeqsAsArray()
+ {
+ SequenceI[] s = new SequenceI[seqs.size()];
+
+ for (int i = 0; i < seqs.size(); i++)
+ {
+ s[i] = (SequenceI) seqs.elementAt(i);
+ }
+
+ return s;
+ }
+
+ public void addAnnotations(Alignment al)
+ {
+ for (int i = 0; i < annotations.size(); i++)
+ {
+ al.addAnnotation(
+ (AlignmentAnnotation) annotations.elementAt(i)
+ );
+ }
+
+ }
+
+ /**
+ * Initialise objects to store sequence data in.
+ */
+ protected void initData()
+ {
+ seqs = new Vector();
+ annotations = new Vector();
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param s DOCUMENT ME!
+ */
+ protected void setSeqs(SequenceI[] s)
+ {
+ seqs = new Vector();
+
+ for (int i = 0; i < s.length; i++)
+ {
+ seqs.addElement(s[i]);
+ }
+ }
+
+ /**
+ * This method must be implemented to parse the contents of the file.
+ */
+ public abstract void parse()
+ throws IOException;
+
+ /**
+ * Print out in alignment file format the Sequences in the seqs Vector.
+ */
+ public abstract String print();
+
+ public void addJVSuffix(boolean b)
+ {
+ jvSuffix = b;
+ }
+
+ /**
+ * A general parser for ids.
+ *
+ * @String id Id to be parsed
+ */
+ Sequence parseId(String id)
+ {
+ Sequence seq = null;
+ id = id.trim();
+ int space = id.indexOf(" ");
+ if (space > -1)
+ {
+ seq = new Sequence(id.substring(0, space), "");
+ seq.setDescription(id.substring(space + 1));
+ }
+ else
+ {
+ seq = new Sequence(id, "");
+ }
+
+ return seq;
+ }
+
+ /**
+ * Creates the output id.
+ * Adds prefix Uniprot format source|id
+ * And suffix Jalview /start-end
+ *
+ * @String id Id to be parsed
+ */
+ String printId(SequenceI seq)
+ {
+ return seq.getDisplayId(jvSuffix);
+ }
+
+}