X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FAppletFormatAdapter.java;h=649aad377b3db6361a279762d21b248e061c7a97;hb=2a42323bc7b92e39c676fc46768f28d032f2f686;hp=5366cb41d795d00bdbe95c15a863826454f1ddd8;hpb=4c46bbeeb645f914293383092f8c6bf022a870e4;p=jalview.git diff --git a/src/jalview/io/AppletFormatAdapter.java b/src/jalview/io/AppletFormatAdapter.java index 5366cb4..649aad3 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.2) - * 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. * @@ -46,8 +46,26 @@ 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 }; // , "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", "html" }; + + /** + * 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", "HTML" }; /** * List of valid format strings for use by callers of the formatSequences @@ -55,42 +73,23 @@ 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 * that are writable by the application. */ public static final String[] WRITABLE_EXTENSIONS = new String[] - { "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", - "jvp", "sto,stk", "jar", PhylipFile.FILE_EXT }; + { "fa, fasta, mfa, fastq", "aln", "pfam", "msf", "pir", "blc", "amsa", + "sto,stk", PhylipFile.FILE_EXT, JSONFile.FILE_EXT, "jvp" }; /** * List of writable formats by the application. Order must correspond with the * WRITABLE_EXTENSIONS list of formats. */ public static final String[] WRITABLE_FNAMES = new String[] - { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "Jalview", - "STH", "Jalview", PhylipFile.FILE_DESC }; - - /** - * 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 }; // ".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 };// , - - // "SimpleBLAST" - // }; + { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "AMSA", "STH", + PhylipFile.FILE_DESC, JSONFile.FILE_DESC, "Jalview" }; public static String INVALID_CHARACTERS = "Contains invalid characters"; @@ -109,7 +108,7 @@ public class AppletFormatAdapter for (int i = 0, iSize = els.length - 1; i < iSize; i++) { list.append(els[i]); - list.append(","); + list.append(", "); } list.append(" and " + els[els.length - 1] + "."); return list.toString(); @@ -123,6 +122,21 @@ public class AppletFormatAdapter 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; @@ -236,7 +250,8 @@ public class AppletFormatAdapter } else if (format.equals("PDB")) { - afile = new MCview.PDBfile(true,true,inFile, type); + afile = 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); } @@ -252,6 +267,10 @@ public class AppletFormatAdapter { afile = new PhylipFile(inFile, type); } + else if (format.equals(JSONFile.FILE_DESC)) + { + afile = new JSONFile(inFile, type); + } else if (format.equals("RNAML")) { afile = new RnamlFile(inFile, type); @@ -260,6 +279,7 @@ public class AppletFormatAdapter Alignment al = new Alignment(afile.getSeqsAsArray()); afile.addAnnotations(al); + afile.addSeqGroups(al); return al; } catch (Exception e) @@ -282,6 +302,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; @@ -357,7 +379,8 @@ public class AppletFormatAdapter } else if (format.equals("PDB")) { - afile = new MCview.PDBfile(true,true,source); + afile = new MCview.PDBfile(annotFromStructure, + localSecondaryStruct, serviceSecondaryStruct, source); } else if (format.equals("STH")) { @@ -375,9 +398,14 @@ public class AppletFormatAdapter { afile = 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); return al; } catch (Exception e) @@ -401,6 +429,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) @@ -469,7 +498,6 @@ public class AppletFormatAdapter try { AlignFile afile = null; - if (format.equalsIgnoreCase("FASTA")) { afile = new FastaFile(); @@ -510,6 +538,25 @@ public class AppletFormatAdapter { afile = new PhylipFile(); } + 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(); @@ -524,6 +571,7 @@ public class AppletFormatAdapter afile.setSeqs(alignment.getSequencesArray()); + String afileresp = afile.print(); if (afile.hasWarningMessage()) {