3 import jalview.datamodel.AlignmentI;
4 import jalview.datamodel.PDBEntry;
5 import jalview.ext.jmol.JmolParser;
6 import jalview.structure.StructureImportSettings;
8 import java.io.IOException;
10 public enum FileFormat implements FileFormatI
12 Fasta("Fasta", "fa, fasta, mfa, fastq", true, true)
15 public AlignmentFileI getReader(FileParse source) throws IOException
17 return new FastaFile(source);
21 public AlignmentFileI getWriter(AlignmentI al)
23 return new FastaFile();
26 Pfam("PFAM", "pfam", true, true)
29 public AlignmentFileI getReader(FileParse source) throws IOException
31 return new PfamFile(source);
35 public AlignmentFileI getWriter(AlignmentI al)
37 return new PfamFile();
40 Stockholm("Stockholm", "sto,stk", true, true)
43 public AlignmentFileI getReader(FileParse source) throws IOException
45 return new StockholmFile(source);
49 public AlignmentFileI getWriter(AlignmentI al)
51 return new StockholmFile(al);
56 PIR("PIR", "pir", true, true)
59 public AlignmentFileI getReader(FileParse source) throws IOException
61 return new PIRFile(source);
65 public AlignmentFileI getWriter(AlignmentI al)
70 BLC("BLC", "BLC", true, true)
73 public AlignmentFileI getReader(FileParse source) throws IOException
75 return new BLCFile(source);
79 public AlignmentFileI getWriter(AlignmentI al)
84 AMSA("AMSA", "amsa", true, true)
87 public AlignmentFileI getReader(FileParse source) throws IOException
89 return new AMSAFile(source);
93 public AlignmentFileI getWriter(AlignmentI al)
95 return new AMSAFile(al);
98 Html("HTML", "html", true, false)
101 public AlignmentFileI getReader(FileParse source) throws IOException
103 return new HtmlFile(source);
107 public AlignmentFileI getWriter(AlignmentI al)
109 return new HtmlFile();
113 public boolean isComplexAlignFile()
119 Rnaml("RNAML", "xml,rnaml", true, false)
122 public AlignmentFileI getReader(FileParse source) throws IOException
124 return new RnamlFile(source);
128 public AlignmentFileI getWriter(AlignmentI al)
130 return new RnamlFile();
134 Json("JSON", "json", true, true)
137 public AlignmentFileI getReader(FileParse source) throws IOException
139 return new JSONFile(source);
143 public AlignmentFileI getWriter(AlignmentI al)
145 return new JSONFile();
149 public boolean isComplexAlignFile()
155 Pileup("PileUp", "pileup", true, true)
158 public AlignmentFileI getReader(FileParse source) throws IOException
160 return new PileUpfile(source);
164 public AlignmentFileI getWriter(AlignmentI al)
166 return new PileUpfile();
170 MSF("MSF", "msf", true, true)
173 public AlignmentFileI getReader(FileParse source) throws IOException
175 return new MSFfile(source);
179 public AlignmentFileI getWriter(AlignmentI al)
181 return new MSFfile();
185 Clustal("Clustal", "aln", true, true)
188 public AlignmentFileI getReader(FileParse source) throws IOException
190 return new ClustalFile(source);
194 public AlignmentFileI getWriter(AlignmentI al)
196 return new ClustalFile();
199 Phylip("PHYLIP", "phy", true, true)
202 public AlignmentFileI getReader(FileParse source) throws IOException
204 return new PhylipFile(source);
208 public AlignmentFileI getWriter(AlignmentI al)
210 return new PhylipFile();
213 Jnet("JnetFile", "", false, false)
216 public AlignmentFileI getReader(FileParse source) throws IOException
218 JPredFile af = new JPredFile(source);
219 af.removeNonSequences();
224 public AlignmentFileI getWriter(AlignmentI al)
226 return null; // todo is this called?
230 Features("GFF or Jalview features", "gff2,gff3", true, false)
233 public AlignmentFileI getReader(FileParse source) throws IOException
235 return new FeaturesFile(source);
239 public AlignmentFileI getWriter(AlignmentI al)
241 return new FeaturesFile();
244 PDB("PDB", "pdb,ent", true, false)
247 public AlignmentFileI getReader(FileParse source) throws IOException
249 boolean isParseWithJMOL = StructureImportSettings
250 .getDefaultStructureFileFormat() != PDBEntry.Type.PDB;
253 return new JmolParser(source);
257 StructureImportSettings.setShowSeqFeatures(true);
258 return new MCview.PDBfile(
259 StructureImportSettings.isVisibleChainAnnotation(),
260 StructureImportSettings.isProcessSecondaryStructure(),
261 StructureImportSettings.isExternalSecondaryStructure(),
267 public AlignmentFileI getWriter(AlignmentI al)
269 return new JmolParser(); // todo or null?
273 public boolean isStructureFile()
278 MMCif("mmCIF", "cif", true, false)
281 public AlignmentFileI getReader(FileParse source) throws IOException
283 return new JmolParser(source);
287 public AlignmentFileI getWriter(AlignmentI al)
289 return new JmolParser(); // todo or null?
293 public boolean isStructureFile()
298 Jalview("Jalview", "jar,jvp", true, true)
301 public AlignmentFileI getReader(FileParse source) throws IOException
307 public AlignmentFileI getWriter(AlignmentI al)
313 public boolean isTextFormat()
319 private boolean writable;
321 private boolean readable;
323 private String extensions;
328 public boolean isComplexAlignFile()
334 public boolean isReadable()
340 public boolean isWritable()
350 * comma-separated list of file extensions associated with the format
354 private FileFormat(String shortName, String extensions,
355 boolean isReadable, boolean isWritable)
357 this.name = shortName;
358 this.extensions = extensions;
359 this.readable = isReadable;
360 this.writable = isWritable;
364 public String getExtensions()
370 * Answers the display name of the file format (as for example shown in menu
371 * options). This name should not be locale (language) dependent.
374 public String getName()
380 public boolean isTextFormat()
386 public boolean isStructureFile()