JAL-2024 code to enforce case insensitivity for manual pdb structure querying
[jalview.git] / src / jalview / ws / dbsources / Pdb.java
index a352de6..7f8c76c 100644 (file)
@@ -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.
  * 
  */
 package jalview.ws.dbsources;
 
-import jalview.datamodel.Alignment;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
 import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SequenceI;
+import jalview.io.FormatAdapter;
+import jalview.util.MessageManager;
+import jalview.ws.ebi.EBIFetchClient;
+import jalview.ws.seqfetcher.DbSourceProxy;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Vector;
 
-import MCview.PDBChain;
-import MCview.PDBfile;
-
 import com.stevesoft.pat.Regex;
 
-import jalview.datamodel.AlignmentI;
-import jalview.io.FormatAdapter;
-import jalview.util.MessageManager;
-import jalview.ws.ebi.EBIFetchClient;
-import jalview.ws.seqfetcher.DbSourceProxy;
-
 /**
  * @author JimP
  * 
@@ -101,7 +97,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
    */
   public AlignmentI getSequenceRecords(String queries) throws Exception
   {
-    AlignmentI pdbfile = null;
+    AlignmentI pdbAlignment = null;
     Vector result = new Vector();
     String chain = null;
     String id = null;
@@ -135,20 +131,20 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
     try
     {
 
-      pdbfile = new FormatAdapter().readFile(file,
+      pdbAlignment = new FormatAdapter().readFile(file,
               jalview.io.AppletFormatAdapter.FILE, "PDB");
-      if (pdbfile != null)
+      if (pdbAlignment != null)
       {
         List<SequenceI> toremove = new ArrayList<SequenceI>();
-        for (SequenceI pdbcs : pdbfile.getSequences())
+        for (SequenceI pdbcs : pdbAlignment.getSequences())
         {
           String chid = null;
           // Mapping map=null;
-          for (PDBEntry pid : (Vector<PDBEntry>) pdbcs.getPDBId())
+          for (PDBEntry pid : pdbcs.getAllPDBEntries())
           {
             if (pid.getFile() == file)
             {
-              chid = (String) pid.getProperty().get("CHAIN");
+              chid = pid.getChainCode();
 
             }
             ;
@@ -192,13 +188,22 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
         // now remove marked sequences
         for (SequenceI pdbcs : toremove)
         {
-          pdbfile.deleteSequence(pdbcs);
+          pdbAlignment.deleteSequence(pdbcs);
+          if (pdbcs.getAnnotation() != null)
+          {
+            for (AlignmentAnnotation aa : pdbcs.getAnnotation())
+            {
+              pdbAlignment.deleteAnnotation(aa);
+            }
+          }
         }
       }
 
-      if (pdbfile == null || pdbfile.getHeight() < 1)
+      if (pdbAlignment == null || pdbAlignment.getHeight() < 1)
       {
-        throw new Exception(MessageManager.formatMessage("exception.no_pdb_records_for_chain", new String[]{id, ((chain == null) ? "' '" : chain)}));
+        throw new Exception(MessageManager.formatMessage(
+                "exception.no_pdb_records_for_chain", new String[] { id,
+                    ((chain == null) ? "' '" : chain) }));
       }
 
     } catch (Exception ex) // Problem parsing PDB file
@@ -206,7 +211,7 @@ public class Pdb extends EbiFileRetrievedProxy implements DbSourceProxy
       stopQuery();
       throw (ex);
     }
-    return pdbfile;
+    return pdbAlignment;
   }
 
   /*