*/
package jalview.io;
+import java.io.File;
+import java.io.InputStream;
+import java.util.List;
+
import jalview.api.AlignViewportI;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
+import jalview.datamodel.SequenceGroup;
import jalview.util.MessageManager;
-import java.io.File;
-import java.io.InputStream;
-import java.util.List;
-
/**
* A low level class for alignment and feature IO with alignment formatting
* methods used by both applet and application for generating flat alignment
*/
public class AppletFormatAdapter
{
+ private AlignViewportI viewport;
+
+ public static String FILE = "File";
+
+ public static String URL = "URL";
+
+ public static String PASTE = "Paste";
+
+ public static String CLASSLOADER = "ClassLoader";
+
+ /**
+ * add jalview-derived non-secondary structure annotation from PDB structure
+ */
+ boolean annotFromStructure = false;
+
+ /**
+ * add secondary structure from PDB data with built-in algorithms
+ */
+ boolean localSecondaryStruct = false;
+
+ /**
+ * process PDB data with web services
+ */
+ boolean serviceSecondaryStruct = false;
+
+ private AlignFile alignFile = null;
+
+ String inFile;
+
+ /**
+ * character used to write newlines
+ */
+ protected String newline = System.getProperty("line.separator");
+
/**
* List of valid format strings used in the isValidFormat method
*/
public static final String[] READABLE_EXTENSIONS = new String[]
{ "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
"sto,stk", "xml,rnaml", PhylipFile.FILE_EXT, JSONFile.FILE_EXT,
- "jar,jvp", "html" };
+ "jar,jvp", HtmlFile.FILE_EXT };
/**
* List of readable formats by application in order corresponding to
*/
public static final String[] READABLE_FNAMES = new String[]
{ "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Stockholm",
- "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview", "HTML" };
+ "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview",
+ HtmlFile.FILE_DESC };
/**
* List of valid format strings for use by callers of the formatSequences
public static String SUPPORTED_FORMATS = "Formats currently supported are\n"
+ prettyPrint(READABLE_FORMATS);
+ public AppletFormatAdapter()
+ {
+ }
+
+ public AppletFormatAdapter(AlignViewportI viewport)
+ {
+ this.viewport = viewport;
+ }
+
/**
*
* @param els
return list.toString();
}
- public static String FILE = "File";
-
- public static String URL = "URL";
-
- public static String PASTE = "Paste";
-
- public static String CLASSLOADER = "ClassLoader";
-
- /**
- * add jalview-derived non-secondary structure annotation from PDB structure
- */
- boolean annotFromStructure = false;
-
- /**
- * add secondary structure from PDB data with built-in algorithms
- */
- boolean localSecondaryStruct = false;
-
- /**
- * process PDB data with web services
- */
- boolean serviceSecondaryStruct = false;
-
- AlignFile afile = null;
-
- String inFile;
-
- /**
- * character used to write newlines
- */
- protected String newline = System.getProperty("line.separator");
public void setNewlineString(String nl)
{
this.inFile = inFile;
try
{
+ Alignment al;
if (format.equals("FASTA"))
{
- afile = new FastaFile(inFile, type);
+ alignFile = new FastaFile(inFile, type);
}
else if (format.equals("MSF"))
{
- afile = new MSFfile(inFile, type);
+ alignFile = new MSFfile(inFile, type);
}
else if (format.equals("PileUp"))
{
- afile = new PileUpfile(inFile, type);
+ alignFile = new PileUpfile(inFile, type);
}
else if (format.equals("CLUSTAL"))
{
- afile = new ClustalFile(inFile, type);
+ alignFile = new ClustalFile(inFile, type);
}
else if (format.equals("BLC"))
{
- afile = new BLCFile(inFile, type);
+ alignFile = new BLCFile(inFile, type);
}
else if (format.equals("PIR"))
{
- afile = new PIRFile(inFile, type);
+ alignFile = new PIRFile(inFile, type);
}
else if (format.equals("PFAM"))
{
- afile = new PfamFile(inFile, type);
+ alignFile = new PfamFile(inFile, type);
}
else if (format.equals("JnetFile"))
{
- afile = new JPredFile(inFile, type);
- ((JPredFile) afile).removeNonSequences();
+ alignFile = new JPredFile(inFile, type);
+ ((JPredFile) alignFile).removeNonSequences();
}
else if (format.equals("PDB"))
{
- afile = new MCview.PDBfile(annotFromStructure,
+ alignFile = new MCview.PDBfile(annotFromStructure,
localSecondaryStruct, serviceSecondaryStruct, inFile, type);
// Uncomment to test Jmol data based PDB processing: JAL-1213
// afile = new jalview.ext.jmol.PDBFileWithJmol(inFile, type);
}
else if (format.equals("STH"))
{
- afile = new StockholmFile(inFile, type);
+ alignFile = new StockholmFile(inFile, type);
}
else if (format.equals("SimpleBLAST"))
{
- afile = new SimpleBlastFile(inFile, type);
+ alignFile = new SimpleBlastFile(inFile, type);
}
else if (format.equals(PhylipFile.FILE_DESC))
{
- afile = new PhylipFile(inFile, type);
+ alignFile = new PhylipFile(inFile, type);
+ }
+ else if (format.equals(JSONFile.FILE_DESC))
+ {
+ alignFile = new JSONFile(inFile, type);
+ al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
+ ((JSONFile) alignFile).setViewport(viewport);
+ for (SequenceGroup sg : alignFile.getSeqGroups())
+ {
+ al.addGroup(sg);
+ }
+
+ return al;
+ }
+ else if (format.equals(HtmlFile.FILE_DESC))
+ {
+ alignFile = new HtmlFile(inFile, type);
+ al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
+ for (SequenceGroup sg : alignFile.getSeqGroups())
+ {
+ al.addGroup(sg);
+ }
+ return al;
}
- else if (format.equals(JSONFile.FILE_DESC))
- {
- afile = new JSONFile(inFile, type);
- }
else if (format.equals("RNAML"))
{
- afile = new RnamlFile(inFile, type);
+ alignFile = new RnamlFile(inFile, type);
}
- Alignment al = new Alignment(afile.getSeqsAsArray());
+ al = new Alignment(alignFile.getSeqsAsArray());
- afile.addAnnotations(al);
- afile.addSeqGroups(al);
+ alignFile.addAnnotations(al);
return al;
} catch (Exception e)
try
{
// Possible sequence is just residues with no label
- afile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
- Alignment al = new Alignment(afile.getSeqsAsArray());
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
+ Alignment al = new Alignment(alignFile.getSeqsAsArray());
- afile.addSeqGroups(al);
- afile.addAnnotations(al);
+ alignFile.addSeqGroups(al);
+ alignFile.addAnnotations(al);
return al;
} catch (Exception ex)
String type = source.type;
try
{
+ Alignment al;
if (format.equals("FASTA"))
{
- afile = new FastaFile(source);
+ alignFile = new FastaFile(source);
}
else if (format.equals("MSF"))
{
- afile = new MSFfile(source);
+ alignFile = new MSFfile(source);
}
else if (format.equals("PileUp"))
{
- afile = new PileUpfile(source);
+ alignFile = new PileUpfile(source);
}
else if (format.equals("CLUSTAL"))
{
- afile = new ClustalFile(source);
+ alignFile = new ClustalFile(source);
}
else if (format.equals("BLC"))
{
- afile = new BLCFile(source);
+ alignFile = new BLCFile(source);
}
else if (format.equals("PIR"))
{
- afile = new PIRFile(source);
+ alignFile = new PIRFile(source);
}
else if (format.equals("PFAM"))
{
- afile = new PfamFile(source);
+ alignFile = new PfamFile(source);
}
else if (format.equals("JnetFile"))
{
- afile = new JPredFile(source);
- ((JPredFile) afile).removeNonSequences();
+ alignFile = new JPredFile(source);
+ ((JPredFile) alignFile).removeNonSequences();
}
else if (format.equals("PDB"))
{
- afile = new MCview.PDBfile(annotFromStructure,
+ alignFile = new MCview.PDBfile(annotFromStructure,
localSecondaryStruct, serviceSecondaryStruct, source);
}
else if (format.equals("STH"))
{
- afile = new StockholmFile(source);
+ alignFile = new StockholmFile(source);
}
else if (format.equals("RNAML"))
{
- afile = new RnamlFile(source);
+ alignFile = new RnamlFile(source);
}
else if (format.equals("SimpleBLAST"))
{
- afile = new SimpleBlastFile(source);
+ alignFile = new SimpleBlastFile(source);
}
else if (format.equals(PhylipFile.FILE_DESC))
{
- afile = new PhylipFile(source);
+ alignFile = new PhylipFile(source);
}
- else if (format.equals(JSONFile.FILE_DESC))
- {
- afile = new JSONFile(source);
- }
- Alignment al = new Alignment(afile.getSeqsAsArray());
-
- afile.addAnnotations(al);
- afile.addSeqGroups(al);
+ else if (format.equals(JSONFile.FILE_DESC))
+ {
+ alignFile = new JSONFile(source);
+ al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
+ alignFile.addSeqGroups(al);
+ return al;
+ }
+ else if (format.equals(HtmlFile.FILE_DESC))
+ {
+ alignFile = new HtmlFile(source);
+ }
+ al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
return al;
} catch (Exception e)
try
{
// Possible sequence is just residues with no label
- afile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
- Alignment al = new Alignment(afile.getSeqsAsArray());
- afile.addAnnotations(al);
- afile.addSeqGroups(al);
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
+ Alignment al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
+ alignFile.addSeqGroups(al);
return al;
} catch (Exception ex)
else if (format.equalsIgnoreCase(JSONFile.FILE_DESC))
{
afile = new JSONFile();
+ afile.setViewport(viewport);
// Add groups to AlignFile
afile.seqGroups = alignment.getGroups();
}
return null;
}
+
+ public AlignFile getAlignFile()
+ {
+ return alignFile;
+ }
+
+ public void setAlignFile(AlignFile alignFile)
+ {
+ this.alignFile = alignFile;
+ }
}