Merge branch 'apifix/JAL-1926_JAL-2106' into develop
authorJim Procter <jprocter@issues.jalview.org>
Thu, 21 Jul 2016 12:03:21 +0000 (13:03 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Thu, 21 Jul 2016 12:03:21 +0000 (13:03 +0100)
JAL-1919 JAL-2148 regularise use of jalview.datamodel.PDBEntry.Type for PDB/mmCIF file type
JAL-1919 JAL-2148 use new enum jalview.structure.StructureImportSettings.StructureParser

12 files changed:
src/jalview/api/DBRefEntryI.java
src/jalview/bin/Cache.java
src/jalview/datamodel/DBRefEntry.java
src/jalview/ext/jmol/JmolParser.java
src/jalview/io/AppletFormatAdapter.java
src/jalview/io/StructureFile.java
src/jalview/structure/StructureImportSettings.java
src/jalview/ws/dbsources/Pdb.java
test/jalview/ext/jmol/JmolParserTest.java
test/jalview/io/AnnotatedPDBFileInputTest.java
test/jalview/ws/PDBSequenceFetcherTest.java
test/jalview/ws/sifts/SiftsClientTest.java

index 2ce7e4a..32245b3 100644 (file)
@@ -48,32 +48,6 @@ public interface DBRefEntryI
   public void setVersion(String version);
 
   /**
-   * 
-   * @param startRes
-   *          index of start residue in the source DB
-   */
-  public void setStartRes(int startRes);
-
-  /**
-   * 
-   * @return index of start residue in the source DB
-   */
-  public int getStartRes();
-
-  /**
-   * 
-   * @param endRes
-   *          index of end residue in the source DB
-   */
-  public void setEndRes(int endRes);
-
-  /**
-   * 
-   * @return index of end residue in the source DB
-   */
-  public int getEndRes();
-
-  /**
    * access a mapping, if present that can be used to map positions from the
    * associated dataset sequence to the DBRef's sequence frame.
    * 
index 23277a4..6f16a6e 100755 (executable)
@@ -20,6 +20,7 @@
  */
 package jalview.bin;
 
+import jalview.datamodel.PDBEntry;
 import jalview.structure.StructureImportSettings;
 import jalview.ws.dbsources.das.api.DasSourceRegistryI;
 import jalview.ws.dbsources.das.datamodel.DasSourceRegistry;
@@ -226,10 +227,15 @@ public class Cache
   private final static String DEFAULT_CACHE_THRESHOLD_IN_DAYS = "2";
 
   private final static String DEFAULT_FAIL_SAFE_PID_THRESHOLD = "30";
-
-  private final static String DEFAULT_STRUCTURE_FORMAT = StructureImportSettings.MMCIF;
   
-  private final static String DEFAULT_PDB_FILE_PARSER = StructureImportSettings.JMOL_PARSER;
+  /**
+   * Allowed values are PDB or mmCIF
+   */
+  private final static String DEFAULT_STRUCTURE_FORMAT = PDBEntry.Type.MMCIF
+          .toString();
+
+  private final static String DEFAULT_PDB_FILE_PARSER = StructureImportSettings.StructureParser.JMOL_PARSER
+          .toString();
 
   /**
    * Initialises the Jalview Application Log
index efdf0ac..a641b1b 100755 (executable)
@@ -25,8 +25,6 @@ import jalview.api.DBRefEntryI;
 public class DBRefEntry implements DBRefEntryI
 {
   String source = "", version = "", accessionId = "";
-
-  private int startRes, endRes;
   /**
    * maps from associated sequence to the database sequence's coordinate system
    */
@@ -282,28 +280,4 @@ public class DBRefEntry implements DBRefEntryI
   {
     return getSrcAccString();
   }
-
-  @Override
-  public int getStartRes()
-  {
-    return startRes;
-  }
-
-  @Override
-  public void setStartRes(int startRes)
-  {
-    this.startRes = startRes;
-  }
-
-  @Override
-  public int getEndRes()
-  {
-    return endRes;
-  }
-
-  @Override
-  public void setEndRes(int endRes)
-  {
-    this.endRes = endRes;
-  }
 }
index ea347ae..0cbeef6 100644 (file)
@@ -176,7 +176,7 @@ public class JmolParser extends StructureFile implements JmolStatusListener
           prot.add(chainseq);
         }
 
-        if (StructureImportSettings.isPredictSecondaryStructure())
+        if (StructureImportSettings.isProcessSecondaryStructure())
         {
           createAnnotation(chainseq, chain, ms.at);
         }
index fca7263..2243a5c 100755 (executable)
@@ -26,6 +26,7 @@ import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.AlignmentView;
+import jalview.datamodel.PDBEntry.Type;
 import jalview.structure.StructureImportSettings;
 import jalview.util.MessageManager;
 
@@ -281,8 +282,8 @@ public class AppletFormatAdapter
         // TODO obtain config value from preference settings.
         // Set value to 'true' to test PDB processing with Jmol: JAL-1213
         boolean isParseWithJMOL = StructureImportSettings
-                .getDefaultPDBFileParser().equalsIgnoreCase(
-                        StructureImportSettings.JMOL_PARSER);
+                .getDefaultPDBFileParser()
+                .equals(StructureImportSettings.StructureParser.JMOL_PARSER);
         if (isParseWithJMOL)
         {
           StructureImportSettings.addSettings(annotFromStructure,
@@ -450,8 +451,7 @@ public class AppletFormatAdapter
           alignFile = new MCview.PDBfile(annotFromStructure,
                   localSecondaryStruct, serviceSecondaryStruct, source);
         }
-        ((StructureFile) alignFile)
-                .setDbRefType(StructureImportSettings.PDB);
+        ((StructureFile) alignFile).setDbRefType(Type.PDB);
       }
       else if (format.equals("mmCIF"))
       {
@@ -459,8 +459,7 @@ public class AppletFormatAdapter
                 localSecondaryStruct, serviceSecondaryStruct);
         alignFile = new jalview.ext.jmol.JmolParser(annotFromStructure,
                 localSecondaryStruct, serviceSecondaryStruct, source);
-        ((StructureFile) alignFile)
-                .setDbRefType(StructureImportSettings.MMCIF);
+        ((StructureFile) alignFile).setDbRefType(Type.MMCIF);
       }
       else if (format.equals("STH"))
       {
index 97e11eb..fc0e207 100644 (file)
@@ -8,6 +8,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
 import jalview.datamodel.SequenceI;
 import jalview.structure.StructureImportSettings;
 
@@ -25,7 +26,7 @@ public abstract class StructureFile extends AlignFile
 
   private String id;
 
-  private String dbRefType;
+  private PDBEntry.Type dbRefType;
 
   /**
    * set to true to add derived sequence annotations (temp factor read from
@@ -70,7 +71,7 @@ public abstract class StructureFile extends AlignFile
     this.visibleChainAnnotation = StructureImportSettings
             .isVisibleChainAnnotation();
     this.predictSecondaryStructure = StructureImportSettings
-            .isPredictSecondaryStructure();
+            .isProcessSecondaryStructure();
     this.externalSecondaryStructure = StructureImportSettings
             .isExternalSecondaryStructure();
 
@@ -116,8 +117,6 @@ public abstract class StructureFile extends AlignFile
     DBRefEntry sourceDBRef = new DBRefEntry();
     sourceDBRef.setAccessionId(getId());
     sourceDBRef.setSource(DBRefSource.PDB);
-    sourceDBRef.setStartRes(pdbSequence.getStart());
-    sourceDBRef.setEndRes(pdbSequence.getEnd());
     pdbSequence.setSourceDBRef(sourceDBRef);
     pdbSequence.addPDBId(entry);
     pdbSequence.addDBRef(sourceDBRef);
@@ -273,7 +272,7 @@ public abstract class StructureFile extends AlignFile
         StructureImportSettings.setShowSeqFeatures(false);
         StructureImportSettings.setVisibleChainAnnotation(false);
         StructureImportSettings
-                .setPredictSecondaryStructure(predictSecondaryStructure);
+                .setProcessSecondaryStructure(predictSecondaryStructure);
         StructureImportSettings
                 .setExternalSecondaryStructure(externalSecondaryStructure);
         Object jmf = constructor.newInstance(args);
@@ -401,13 +400,18 @@ public abstract class StructureFile extends AlignFile
     this.chains = chains;
   }
 
-  public String getDbRefType()
+  public Type getDbRefType()
   {
     return dbRefType;
   }
 
   public void setDbRefType(String dbRefType)
   {
+    this.dbRefType = Type.valueOf(dbRefType);
+  }
+
+  public void setDbRefType(Type dbRefType)
+  {
     this.dbRefType = dbRefType;
   }
 
index 4c06e0f..388ccbd 100644 (file)
@@ -1,7 +1,14 @@
 package jalview.structure;
 
-import jalview.datamodel.DBRefSource;
-
+import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
+
+/**
+ * bean holding settings for structure IO. TODO: tests for validation of values
+ * 
+ * @author tcofoegbu
+ *
+ */
 public class StructureImportSettings
 {
   /**
@@ -14,7 +21,7 @@ public class StructureImportSettings
    * Set true to predict secondary structure (using JMol for protein, Annotate3D
    * for RNA)
    */
-  private static boolean predictSecStr = false;
+  private static boolean processSecStr = false;
 
   /**
    * Set true (with predictSecondaryStructure=true) to predict secondary
@@ -26,30 +33,28 @@ public class StructureImportSettings
 
   private static boolean processHETATMs = false;
 
-  public static final String JMOL_PARSER = "JMolParser";
-
-  public static final String JALVIEW_PARSER = "JalViewParser";
-
-  public static final String MMCIF = "mmCIF";
+  public enum StructureParser
+  {
+    JMOL_PARSER, JALVIEW_PARSER
+  }
 
-  public static final String PDB = "PDB";
 
   /**
    * Determines the default file format for structure files to be downloaded
    * from the PDB sequence fetcher. Possible options include: PDB|mmCIF
    */
-  private static String defaultStructureFileFormat = DBRefSource.PDB;
+  private static PDBEntry.Type defaultStructureFileFormat = Type.PDB;
 
   /**
    * Determines the parser used for parsing PDB format file. Possible options
    * are : JMolParser|JalveiwParser
    */
-  private static String defaultPDBFileParser = JMOL_PARSER;
+  private static StructureParser defaultPDBFileParser = StructureParser.JMOL_PARSER;
   public static void addSettings(boolean addAlignmentAnnotations,
-          boolean predictSecStr, boolean externalSecStr)
+          boolean processSecStr, boolean externalSecStr)
   {
     StructureImportSettings.visibleChainAnnotation = addAlignmentAnnotations;
-    StructureImportSettings.predictSecStr = predictSecStr;
+    StructureImportSettings.processSecStr = processSecStr;
     StructureImportSettings.externalSecondaryStructure = externalSecStr;
     StructureImportSettings.showSeqFeatures = true;
   }
@@ -65,15 +70,15 @@ public class StructureImportSettings
     StructureImportSettings.visibleChainAnnotation = visibleChainAnnotation;
   }
 
-  public static boolean isPredictSecondaryStructure()
+  public static boolean isProcessSecondaryStructure()
   {
-    return predictSecStr;
+    return processSecStr;
   }
 
-  public static void setPredictSecondaryStructure(
-          boolean predictSecondaryStructure)
+  public static void setProcessSecondaryStructure(
+          boolean processSecondaryStructure)
   {
-    StructureImportSettings.predictSecStr = predictSecondaryStructure;
+    StructureImportSettings.processSecStr = processSecondaryStructure;
   }
 
   public static boolean isExternalSecondaryStructure()
@@ -99,13 +104,14 @@ public class StructureImportSettings
 
   public static String getDefaultStructureFileFormat()
   {
-    return defaultStructureFileFormat;
+    return defaultStructureFileFormat.toString();
   }
 
   public static void setDefaultStructureFileFormat(
           String defaultStructureFileFormat)
   {
-    StructureImportSettings.defaultStructureFileFormat = defaultStructureFileFormat;
+    StructureImportSettings.defaultStructureFileFormat = PDBEntry.Type
+            .valueOf(defaultStructureFileFormat);
   }
 
   public static boolean isProcessHETATMs()
@@ -120,12 +126,19 @@ public class StructureImportSettings
 
   public static String getDefaultPDBFileParser()
   {
-    return defaultPDBFileParser;
+    return defaultPDBFileParser.toString();
   }
 
-  public static void setDefaultPDBFileParser(String defaultPDBFileParser)
+  public static void setDefaultPDBFileParser(
+          StructureParser defaultPDBFileParser)
   {
     StructureImportSettings.defaultPDBFileParser = defaultPDBFileParser;
   }
 
+  public static void setDefaultPDBFileParser(String defaultPDBFileParser)
+  {
+    StructureImportSettings.defaultPDBFileParser = StructureParser
+            .valueOf(defaultPDBFileParser);
+  }
+
 }
index 1a58466..fc636c6 100644 (file)
@@ -27,6 +27,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
 import jalview.datamodel.PDBEntry;
+import jalview.datamodel.PDBEntry.Type;
 import jalview.datamodel.SequenceI;
 import jalview.io.FormatAdapter;
 import jalview.io.PDBFeatureSettings;
@@ -133,8 +134,7 @@ public class Pdb extends EbiFileRetrievedProxy
       return null;
     }
     String ext = StructureImportSettings.getDefaultStructureFileFormat()
-            .equalsIgnoreCase("mmcif") ? ".cif"
-            : ".xml";
+            .equals(Type.MMCIF) ? ".cif" : ".xml";
     EBIFetchClient ebi = new EBIFetchClient();
     file = ebi.fetchDataAsFile("pdb:" + id,
             StructureImportSettings.getDefaultStructureFileFormat().toLowerCase(),
index 0010321..2ea0b80 100644 (file)
@@ -31,6 +31,7 @@ import jalview.gui.AlignFrame;
 import jalview.io.AppletFormatAdapter;
 import jalview.io.FileLoader;
 import jalview.structure.StructureImportSettings;
+import jalview.structure.StructureImportSettings.StructureParser;
 
 import java.util.Vector;
 
@@ -91,7 +92,7 @@ public class JmolParserTest
             Boolean.TRUE.toString());
     StructureImportSettings.setDefaultStructureFileFormat("PDB");
     StructureImportSettings
-            .setDefaultPDBFileParser(StructureImportSettings.JALVIEW_PARSER);
+            .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
   }
 
   @Test(groups = { "Functional" })
index 5368d41..e6019aa 100644 (file)
@@ -32,6 +32,7 @@ import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.structure.StructureImportSettings;
+import jalview.structure.StructureImportSettings.StructureParser;
 
 import java.io.File;
 
@@ -68,7 +69,7 @@ public class AnnotatedPDBFileInputTest
             .get(0).getId();
     StructureImportSettings.setDefaultStructureFileFormat("PDB");
     StructureImportSettings
-            .setDefaultPDBFileParser(StructureImportSettings.JALVIEW_PARSER);
+            .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
   }
 
   @Test(groups = { "Functional" })
index d082785..fda0198 100644 (file)
@@ -26,6 +26,7 @@ import jalview.bin.Cache;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.SequenceI;
 import jalview.structure.StructureImportSettings;
+import jalview.structure.StructureImportSettings.StructureParser;
 import jalview.ws.seqfetcher.DbSourceProxy;
 
 import java.util.List;
@@ -88,7 +89,7 @@ public class PDBSequenceFetcherTest
             Boolean.TRUE.toString());
     StructureImportSettings.setDefaultStructureFileFormat("PDB");
     StructureImportSettings
-            .setDefaultPDBFileParser(StructureImportSettings.JALVIEW_PARSER);
+            .setDefaultPDBFileParser(StructureParser.JALVIEW_PARSER);
 
     testRetrieveProteinSeqFromPDB();
   }
index 9141bad..6f9a864 100644 (file)
@@ -251,8 +251,6 @@ public class SiftsClientTest
 
     // TODO delete when auto-fetching of DBRefEntry is implemented
     DBRefEntry dbRef = new DBRefEntry("uniprot", "", "P00221");
-    dbRef.setStartRes(1);
-    dbRef.setEndRes(147);
     testSeq.addDBRef(dbRef);
     // testSeq.setSourceDBRef(dbRef);
 
@@ -327,8 +325,6 @@ public class SiftsClientTest
       DBRefEntryI expectedDBRef = new DBRefEntry();
       expectedDBRef.setSource(DBRefSource.UNIPROT);
       expectedDBRef.setAccessionId("P00221");
-      expectedDBRef.setStartRes(1);
-      expectedDBRef.setEndRes(147);
       expectedDBRef.setVersion("");
       Assert.assertEquals(actualValidSrcDBRef, expectedDBRef);
     } catch (Exception e)
@@ -376,8 +372,6 @@ public class SiftsClientTest
     DBRefEntryI validDBRef = new DBRefEntry();
     validDBRef.setSource(DBRefSource.UNIPROT);
     validDBRef.setAccessionId("P00221");
-    validDBRef.setStartRes(1);
-    validDBRef.setEndRes(147);
     validDBRef.setVersion("");
     Assert.assertTrue(siftsClient.isValidDBRefEntry(validDBRef));
   }