/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.AlignmentView;
+import jalview.datamodel.SequenceGroup;
import jalview.util.MessageManager;
import java.io.File;
*/
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_FORMATS = new String[]
- { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
- "PDB", "JnetFile", "RNAML", PhylipFile.FILE_DESC, "HTML" }; // ,
- // "SimpleBLAST"
- // };
+ { "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "STH",
+ "PDB", "JnetFile", "RNAML", PhylipFile.FILE_DESC, JSONFile.FILE_DESC,
+ "HTML" };
+
+ /**
+ * List of readable format file extensions by application in order
+ * corresponding to READABLE_FNAMES
+ */
+ 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", HtmlFile.FILE_EXT };
+
+ /**
+ * 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", "Stockholm",
+ "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 final String[] WRITEABLE_FORMATS = new String[]
{ "BLC", "CLUSTAL", "FASTA", "MSF", "PileUp", "PIR", "PFAM", "AMSA",
- "STH", PhylipFile.FILE_DESC };
+ "STH", PhylipFile.FILE_DESC, JSONFile.FILE_DESC };
/**
* List of extensions corresponding to file format types in WRITABLE_FNAMES
*/
public static final String[] WRITABLE_EXTENSIONS = new String[]
{ "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
- "sto,stk", PhylipFile.FILE_EXT, "jvp" };
+ "sto,stk", PhylipFile.FILE_EXT, JSONFile.FILE_EXT, "jvp" };
/**
* List of writable formats by the application. Order must correspond with the
*/
public static final String[] WRITABLE_FNAMES = new String[]
{ "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH",
- PhylipFile.FILE_DESC, "Jalview" };
-
- /**
- * List of readable format file extensions by application in order
- * corresponding to READABLE_FNAMES
- */
- public static final String[] READABLE_EXTENSIONS = new String[]
- { "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa",
- "jar,jvp", "sto,stk", "xml,rnaml", PhylipFile.FILE_EXT,
- "html" }; // ".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",
- "Stockholm", "RNAML", PhylipFile.FILE_DESC, "HTML" };// ,
-
- // "SimpleBLAST"
- // };
+ PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview" };
public static String INVALID_CHARACTERS = "Contains invalid characters";
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(HtmlFile.FILE_DESC))
- // {
- // afile = new HtmlFile(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);
+ 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);
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
+ Alignment al = new Alignment(alignFile.getSeqsAsArray());
+
+ 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(HtmlFile.FILE_DESC))
- // {
- // afile = new HtmlFile(source);
- // }
- Alignment al = new Alignment(afile.getSeqsAsArray());
-
- afile.addAnnotations(al);
+ else if (format.equals(JSONFile.FILE_DESC))
+ {
+ alignFile = new JSONFile(source);
+ // ((JSONFile) afile).setViewport(viewport);
+ 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);
+ alignFile = new FastaFile(">UNKNOWN\n" + inFile, "Paste");
+ Alignment al = new Alignment(alignFile.getSeqsAsArray());
+ alignFile.addAnnotations(al);
+ alignFile.addSeqGroups(al);
return al;
} catch (Exception ex)
try
{
AlignFile afile = null;
-
if (format.equalsIgnoreCase("FASTA"))
{
afile = new FastaFile();
{
afile = new PhylipFile();
}
- // else if (format.equalsIgnoreCase(HtmlFile.FILE_DESC))
- // {
- // afile = new HtmlFile();
- // }
+ else if (format.equalsIgnoreCase(JSONFile.FILE_DESC))
+ {
+ afile = new JSONFile();
+ afile.setViewport(viewport);
+ // Add groups to AlignFile
+ afile.seqGroups = alignment.getGroups();
+
+ // Add non auto calculated annotation to AlignFile
+ for (AlignmentAnnotation annot : alignment.getAlignmentAnnotation())
+ {
+ if (annot != null && !annot.autoCalculated)
+ {
+ if (annot.label.equals("PDB.CATempFactor"))
+ {
+ continue;
+ }
+ afile.annotations.add(annot);
+ }
+ }
+ }
else if (format.equalsIgnoreCase("RNAML"))
{
afile = new RnamlFile();
afile.setSeqs(alignment.getSequencesArray());
+
String afileresp = afile.print();
if (afile.hasWarningMessage())
{
}
return null;
}
+
+ public AlignFile getAlignFile()
+ {
+ return alignFile;
+ }
+
+ public void setAlignFile(AlignFile alignFile)
+ {
+ this.alignFile = alignFile;
+ }
}