JAL-1645 source formatting and organise imports
[jalview.git] / src / jalview / ext / jmol / PDBFileWithJmol.java
index 240ea7b..8d76afc 100644 (file)
@@ -45,7 +45,6 @@ import org.jmol.modelset.ModelSet;
 import org.jmol.modelsetbio.BioModel;
 import org.jmol.modelsetbio.BioPolymer;
 import org.jmol.viewer.Viewer;
-import org.openscience.jmol.app.JmolApp;
 
 /**
  * Import and process PDB files with Jmol
@@ -56,9 +55,6 @@ import org.openscience.jmol.app.JmolApp;
 public class PDBFileWithJmol extends AlignFile implements
         JmolStatusListener
 {
-
-  JmolApp jmolApp = null;
-
   Viewer viewer = null;
 
   public PDBFileWithJmol(String inFile, String type) throws IOException
@@ -73,7 +69,6 @@ public class PDBFileWithJmol extends AlignFile implements
 
   public PDBFileWithJmol()
   {
-    // TODO Auto-generated constructor stub
   }
 
   /**
@@ -84,22 +79,16 @@ public class PDBFileWithJmol extends AlignFile implements
   private Viewer getJmolData()
   {
     if (viewer == null)
-    { // note that -o -n -x are all implied // TODO check for Jmol 14.2
-      jmolApp = new JmolApp();
-      jmolApp.isDataOnly = true;
-      jmolApp.haveConsole = false;
-      jmolApp.haveDisplay = false;
+    {
       try
       {
         viewer = (Viewer) JmolViewer.allocateViewer(null, null, null, null,
                 null, "-x -o -n", this);
-        viewer.setScreenDimension(jmolApp.startupWidth,
-                jmolApp.startupHeight);
-        jmolApp.startViewer(viewer, null, false);
       } catch (ClassCastException x)
       {
-        throw new Error(MessageManager.formatMessage("error.jmol_version_not_compatible_with_jalview_version", new String[]{JmolViewer.getJmolVersion()}),
-                x);
+        throw new Error(MessageManager.formatMessage(
+                "error.jmol_version_not_compatible_with_jalview_version",
+                new String[] { JmolViewer.getJmolVersion() }), x);
       }
     }
     return viewer;
@@ -242,6 +231,20 @@ public class PDBFileWithJmol extends AlignFile implements
                 lastrnum = group.getResno();
               }
               seq[len] = group.getGroup1();
+
+              /*
+               * JAL-1828 replace a modified amino acid with its standard
+               * equivalent (e.g. MSE with MET->M) to maximise sequence matching
+               */
+              String threeLetterCode = group.getGroup3();
+              String canonical = ResidueProperties
+                      .getCanonicalAminoAcid(threeLetterCode);
+              if (canonical != null
+                      && !canonical.equalsIgnoreCase(threeLetterCode))
+              {
+                seq[len] = ResidueProperties
+                        .getSingleCharacterCode(canonical);
+              }
               switch (group.getProteinStructureSubType())
               {
               case HELIX310: