/*
- * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1)
- * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, 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 file is part of Jalview.
*
- * 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.
+ * 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.
*
- * 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 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/>.
*/
package jalview.io;
*/
public static final String[] READABLE_FORMATS = new String[]
{ "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
- "PDB", "JnetFile" };
+ "PDB", "JnetFile" }; // , "SimpleBLAST" };
/**
* List of valid format strings for use by callers of the formatSequences
* corresponding to READABLE_FNAMES
*/
public static final String[] READABLE_EXTENSIONS = new String[]
- { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar" };
+ { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", "jar", "sto" }; // ,
+ // ".blast"
+ // };
/**
* List of readable formats by application in order corresponding to
* READABLE_EXTENSIONS
*/
public static final String[] READABLE_FNAMES = new String[]
- { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview" };
+ { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview", "Stockholm" };// ,
+ // "SimpleBLAST"
+ // };
public static String INVALID_CHARACTERS = "Contains invalid characters";
* check that this format is valid for reading
*
* @param format
- * a format string to be compared with READABLE_FORMATS
+ * a format string to be compared with READABLE_FORMATS
* @return true if format is readable
*/
public static final boolean isValidFormat(String format)
* validate format is valid for IO
*
* @param format
- * a format string to be compared with either READABLE_FORMATS
- * or WRITEABLE_FORMATS
+ * a format string to be compared with either READABLE_FORMATS or
+ * WRITEABLE_FORMATS
* @param forwriting
- * when true, format is checked for containment in
- * WRITEABLE_FORMATS
+ * when true, format is checked for containment in WRITEABLE_FORMATS
* @return true if format is valid
*/
public static final boolean isValidFormat(String format,
* Constructs the correct filetype parser for a characterised datasource
*
* @param inFile
- * data/data location
+ * data/data location
* @param type
- * type of datasource
+ * type of datasource
* @param format
- * File format of data provided by datasource
+ * File format of data provided by datasource
*
* @return DOCUMENT ME!
*/
{
afile = new StockholmFile(inFile, type);
}
+ else if (format.equals("SimpleBLAST"))
+ {
+ afile = new SimpleBlastFile(inFile, type);
+ }
Alignment al = new Alignment(afile.getSeqsAsArray());
* Constructs the correct filetype parser for an already open datasource
*
* @param source
- * an existing datasource
+ * an existing datasource
* @param format
- * File format of data that will be provided by datasource
+ * File format of data that will be provided by datasource
*
* @return DOCUMENT ME!
*/
{
afile = new StockholmFile(source);
}
+ else if (format.equals("SimpleBLAST"))
+ {
+ afile = new SimpleBlastFile(source);
+ }
Alignment al = new Alignment(afile.getSeqsAsArray());
}
/**
- * Construct an output class for an alignment in a particular filetype
+ * Construct an output class for an alignment in a particular filetype TODO:
+ * allow caller to detect errors and warnings encountered when generating
+ * output
*
* @param format
- * string name of alignment format
+ * string name of alignment format
* @param alignment
- * the alignment to be written out
+ * the alignment to be written out
* @param jvsuffix
- * passed to AlnFile class controls whether /START-END is added
- * to sequence names
+ * passed to AlnFile class controls whether /START-END is added to
+ * sequence names
*
* @return alignment flat file contents
*/
afile.setSeqs(alignment.getSequencesArray());
- return afile.print();
+ String afileresp = afile.print();
+ if (afile.hasWarningMessage())
+ {
+ System.err.println("Warning raised when writing as " + format
+ + " : " + afile.getWarningMessage());
+ }
+ return afileresp;
} catch (Exception e)
{
System.err.println("Failed to write alignment as a '" + format
{
System.out.println("Alignment contains " + al.getHeight()
+ " sequences and " + al.getWidth() + " columns.");
+ try
+ {
+ System.out.println(new AppletFormatAdapter().formatSequences(
+ "FASTA", al, true));
+ } catch (Exception e)
+ {
+ System.err
+ .println("Couln't format the alignment for output as a FASTA file.");
+ e.printStackTrace(System.err);
+ }
}
else
{