package jalview.io; import jalview.datamodel.*; import java.util.Vector; public class FormatAdapter { public static Vector formats = new Vector(); static{ formats.addElement("FASTA"); formats.addElement("MSF"); formats.addElement("PileUp"); formats.addElement("CLUSTAL"); formats.addElement("BLC"); formats.addElement("PIR"); formats.addElement("PFAM"); } public static SequenceI[] readFile(String inFile, String type, String format) { try { AlignFile afile = null; if (format.equals("FASTA")) afile = new FastaFile(inFile, type); else if (format.equals("MSF")) afile = new MSFfile(inFile, type); else if (format.equals("PileUp")) afile = new PileUpfile(inFile, type); else if (format.equals("CLUSTAL")) afile = new ClustalFile(inFile, type); else if (format.equals("BLC")) afile = new BLCFile(inFile, type); else if (format.equals("PIR")) afile = new PIRFile(inFile, type); else if (format.equals("PFAM")) afile = new PfamFile(inFile, type); return afile.getSeqsAsArray(); } catch (Exception e) { System.err.println("Failed to read alignment using the '"+format+"' reader."); e.printStackTrace(); } return null; } public static String formatSequences(String format, Vector seqs) { SequenceI [] s = new SequenceI[seqs.size()]; for (int i = 0; i < seqs.size(); i++) s[i] = (SequenceI) seqs.elementAt(i); try { AlignFile afile = null; if (format.equals("FASTA")) afile = new FastaFile(); else if (format.equals("MSF")) afile = new MSFfile(); else if (format.equals("PileUp")) afile = new PileUpfile(); else if (format.equals("CLUSTAL")) afile = new ClustalFile(); else if (format.equals("BLC")) afile = new BLCFile(); else if (format.equals("PIR")) afile = new PIRFile(); else if (format.equals("PFAM")) afile = new PfamFile(); afile.setSeqs(s); return afile.print(); } catch (Exception e) { System.err.println("Failed to write alignment as a '"+format+"' file\n"); e.printStackTrace(); } return null; } }