updated jalview version of dasobert 1.53e client and added Das Sequence Source discov...
[jalview.git] / src / jalview / ws / dbsources / Pdb.java
index 8da1525..e6d46da 100644 (file)
@@ -21,7 +21,7 @@ import com.stevesoft.pat.Regex;
 \r
 import jalview.datamodel.AlignmentI;\r
 import jalview.io.FileParse;\r
-import jalview.ws.EBIFetchClient;\r
+import jalview.ws.ebi.EBIFetchClient;\r
 import jalview.ws.seqfetcher.DbSourceProxy;\r
 import jalview.ws.seqfetcher.DbSourceProxyImpl;\r
 \r
@@ -50,7 +50,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
    */\r
   public Regex getAccessionValidator()\r
   {\r
-    return new Regex("[1-9][0-9A-Za-z]{3}[ _A-Za-z0-9]?");\r
+    return new Regex("([1-9][0-9A-Za-z]{3}):?([ _A-Za-z0-9]?)");\r
   }\r
 \r
   /* (non-Javadoc)\r
@@ -88,9 +88,15 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
     }\r
     if (queries.length() > 4 && chain == null)\r
     {\r
-      chain = queries.substring(4);\r
+      chain = queries.substring(4,5);\r
       id = queries.substring(0, 4);\r
     }\r
+    if (!isValidReference(id))\r
+    {\r
+      System.err.println("Ignoring invalid pdb query: '"+id+"'");\r
+      stopQuery();\r
+      return null;\r
+    }\r
     EBIFetchClient ebi = new EBIFetchClient();\r
     file = ebi.fetchDataAsFile("pdb:" + id, "pdb", "raw")\r
             .getAbsolutePath();\r
@@ -143,7 +149,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
       if (result.size() < 1)\r
       {\r
         throw new Exception("No PDB Records for " + id + " chain "\r
-                + ((chain == null) ? " " : chain));\r
+                + ((chain == null) ? "' '" : chain));\r
       }\r
     } catch (Exception ex) // Problem parsing PDB file\r
     {\r
@@ -177,4 +183,9 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
     return "1QIPA";\r
   }\r
 \r
+  public String getDbName()\r
+  {\r
+    return "PDB"; // getDbSource();\r
+  }\r
+\r
 }\r