X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fio%2FAppletFormatAdapter.java;h=f97a341612b114d66786f5b001b1d9c209dddd66;hb=53886840dff4d962fe82725a5b9b594b970a8f4d;hp=74ca0b9babe0f38c81bcf48e688cf66f34d56d27;hpb=25aaaa87042b3f507ad4348120df7dd073182759;p=jalview.git diff --git a/src/jalview/io/AppletFormatAdapter.java b/src/jalview/io/AppletFormatAdapter.java index 74ca0b9..f97a341 100755 --- a/src/jalview/io/AppletFormatAdapter.java +++ b/src/jalview/io/AppletFormatAdapter.java @@ -1,6 +1,6 @@ /* - * 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. * @@ -25,6 +25,7 @@ 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; @@ -46,10 +47,27 @@ public class AppletFormatAdapter * 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 @@ -57,7 +75,7 @@ public class AppletFormatAdapter */ 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 @@ -65,7 +83,7 @@ public class AppletFormatAdapter */ 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 @@ -73,27 +91,7 @@ public class AppletFormatAdapter */ 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"; @@ -219,6 +217,7 @@ public class AppletFormatAdapter this.inFile = inFile; try { + Alignment al; if (format.equals("FASTA")) { afile = new FastaFile(inFile, type); @@ -271,18 +270,37 @@ public class AppletFormatAdapter { afile = new PhylipFile(inFile, type); } - // else if (format.equals(HtmlFile.FILE_DESC)) - // { - // afile = new HtmlFile(inFile, type); - // } + else if (format.equals(JSONFile.FILE_DESC)) + { + afile = new JSONFile(inFile, type); + al = new Alignment(afile.getSeqsAsArray()); + afile.addAnnotations(al); + for (SequenceGroup sg : afile.getSeqGroups()) + { + al.addGroup(sg); + } + return al; + } + else if (format.equals(HtmlFile.FILE_DESC)) + { + afile = new HtmlFile(inFile, type); + al = new Alignment(afile.getSeqsAsArray()); + afile.addAnnotations(al); + for (SequenceGroup sg : afile.getSeqGroups()) + { + al.addGroup(sg); + } + return al; + } else if (format.equals("RNAML")) { afile = new RnamlFile(inFile, type); } - Alignment al = new Alignment(afile.getSeqsAsArray()); + al = new Alignment(afile.getSeqsAsArray()); - afile.addAnnotations(al); + // afile.addAnnotations(al); + // afile.addSeqGroups(al); return al; } catch (Exception e) @@ -305,6 +323,8 @@ public class AppletFormatAdapter // Possible sequence is just residues with no label afile = new FastaFile(">UNKNOWN\n" + inFile, "Paste"); Alignment al = new Alignment(afile.getSeqsAsArray()); + + afile.addSeqGroups(al); afile.addAnnotations(al); return al; @@ -345,6 +365,7 @@ public class AppletFormatAdapter String type = source.type; try { + Alignment al; if (format.equals("FASTA")) { afile = new FastaFile(source); @@ -399,13 +420,19 @@ public class AppletFormatAdapter { afile = 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)) + { + afile = new JSONFile(source); + al = new Alignment(afile.getSeqsAsArray()); + afile.addAnnotations(al); + afile.addSeqGroups(al); + return al; + } + else if (format.equals(HtmlFile.FILE_DESC)) + { + afile = new HtmlFile(source); + } + al = new Alignment(afile.getSeqsAsArray()); return al; } catch (Exception e) @@ -429,6 +456,7 @@ public class AppletFormatAdapter afile = new FastaFile(">UNKNOWN\n" + inFile, "Paste"); Alignment al = new Alignment(afile.getSeqsAsArray()); afile.addAnnotations(al); + afile.addSeqGroups(al); return al; } catch (Exception ex) @@ -497,7 +525,6 @@ public class AppletFormatAdapter try { AlignFile afile = null; - if (format.equalsIgnoreCase("FASTA")) { afile = new FastaFile(); @@ -538,10 +565,25 @@ public class AppletFormatAdapter { afile = new PhylipFile(); } - // else if (format.equalsIgnoreCase(HtmlFile.FILE_DESC)) - // { - // afile = new HtmlFile(); - // } + else if (format.equalsIgnoreCase(JSONFile.FILE_DESC)) + { + afile = new JSONFile(); + // 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(); @@ -556,6 +598,7 @@ public class AppletFormatAdapter afile.setSeqs(alignment.getSequencesArray()); + String afileresp = afile.print(); if (afile.hasWarningMessage()) {