-/**
- *
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ 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 <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
*/
package jalview.io;
-import jalview.datamodel.Alignment;
import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceI;
public class PhylipFile extends AlignFile
{
- // Define file extension and description to save repeating it elsewhere
- public static final String FILE_EXT = "phy";
-
public static final String FILE_DESC = "PHYLIP";
/**
/**
* @param inFile
- * @param type
+ * @param sourceType
* @throws IOException
* @see {@link AlignFile#AlignFile(FileParse)}
*/
- public PhylipFile(String inFile, String type) throws IOException
+ public PhylipFile(String inFile, DataSourceType sourceType)
+ throws IOException
{
- super(inFile, type);
+ super(inFile, sourceType);
}
/**
seqs.add(sequenceElements[i]);
}
- // create an alignment based on the sequences
- Alignment a = new Alignment(sequenceElements);
- // add annotations - although comments say addAnnotations
- // is used by AppletFormatAdapter, it doesn't say other
- // classes should/can not use it
- addAnnotations(a);
-
} catch (IOException e)
{
System.err.println("Exception parsing PHYLIP file " + e);
*/
private String validateName(String name) throws IOException
{
- char[] invalidCharacters = new char[]
- { '(', ')', '[', ']', ':', ';', ',' };
+ char[] invalidCharacters = new char[] { '(', ')', '[', ']', ':', ';',
+ ',' };
for (char c : invalidCharacters)
{
if (name.indexOf(c) > -1)
* @see {@link AlignFile#print()}
*/
@Override
- public String print()
+ public String print(SequenceI[] sqs, boolean jvsuffix)
{
- StringBuffer sb = new StringBuffer(Integer.toString(seqs.size()));
+ StringBuffer sb = new StringBuffer(Integer.toString(sqs.length));
sb.append(" ");
// if there are no sequences, then define the number of characters as 0
sb.append(
- (seqs.size() > 0) ? Integer
- .toString(seqs.get(0).getSequence().length) : "0")
+ (sqs.length > 0) ? Integer.toString(sqs[0].getSequence().length)
+ : "0")
.append(newline);
// Due to how IO is handled, there doesn't appear to be a way to store
int numInterleavedColumns = 60;
int sequenceLength = 0;
- for (SequenceI s : seqs)
+ for (SequenceI s : sqs)
{
// ensure name is only 10 characters
// add blank line to separate this matrix from previous
sb.append(newline);
int start = i * numInterleavedColumns;
- for (SequenceI s : seqs)
+ for (SequenceI s : sqs)
{
sb.append(
s.getSequence(start, Math.min(start
return sb.toString();
}
-}
\ No newline at end of file
+}