Merge branch 'develop' into releases/Release_2_11_2_Branch
authorJim Procter <j.procter@dundee.ac.uk>
Mon, 13 Dec 2021 16:26:22 +0000 (16:26 +0000)
committerJim Procter <j.procter@dundee.ac.uk>
Mon, 13 Dec 2021 16:26:22 +0000 (16:26 +0000)
20 files changed:
help/help/help.jhm
help/help/helpTOC.xml
help/help/html/features/chimera.html
help/help/html/features/pymol.html [new file with mode: 0644]
resources/lang/Messages.properties
src/jalview/ext/pymol/PymolManager.java
src/jalview/fts/core/GFTSPanel.java
src/jalview/gui/AlignmentPanel.java
src/jalview/gui/ChimeraViewFrame.java
src/jalview/gui/PymolBindingModel.java
src/jalview/gui/PymolViewer.java
src/jalview/gui/StructureViewerBase.java
src/jalview/gui/ViewSelectionMenu.java
src/jalview/structure/StructureSelectionManager.java
src/jalview/ws/dbsources/EBIAlfaFold.java
src/mc_view/PDBChain.java
utils/channels/develop/images/jalview_develop_logo.svg
utils/install4j/file_associations_auto-install4j8.xml
utils/install4j/file_associations_template-install4j8.xml
utils/install4j/install4j8_template.install4j

index 7dbb76d..449f34c 100755 (executable)
@@ -55,6 +55,7 @@
    <mapID target="pdbmcviewer" url="html/features/pdbviewer.html"/>
    <mapID target="pdbjmol" url="html/features/jmol.html"/>
    <mapID target="chimera" url="html/features/chimera.html"/>
+   <mapID target="pymol" url="html/features/pymol.html"/>
    <mapID target="chimera.annotxfer" url="html/features/chimera.html#annotxfer"/>
    <mapID target="varna" url="html/features/varna.html"/>
    <mapID target="xsspannotation" url="html/features/xsspannotation.html"/>
index 5479291..9f1942c 100755 (executable)
                        <tocitem text="PDB Sequence Fetcher" target="pdbfetcher" />
                        <tocitem text="PDB &amp; 3D-Beacons Structure Chooser" target="pdbchooser" />
                        <tocitem text="Jmol Viewer" target="pdbjmol" />
-                       <tocitem text="Chimera Viewer" target="chimera" />                      
+                       <tocitem text="Chimera Viewer" target="chimera" />
+                       <tocitem text="Pymol Viewer" target="pymol" />                  
                </tocitem>
                <tocitem text="Viewing RNA structures" target="varna" expand="false"/>
                <tocitem text="Opening URLs from Jalview" target="urllinks" expand="true">
index e1227de..eadfa06 100644 (file)
 </head>
 <body>
   <p>
-    <strong>The Chimera Viewer</strong>
+    <strong>The Chimera and ChimeraX Viewers</strong>
   </p>
   <p>
     Since Jalview 2.8.2, <a href="http://www.cgl.ucsf.edu/chimera/">Chimera</a>
     (http://www.cgl.ucsf.edu/chimera/) can be used for viewing
     structures opened via the <a href="structurechooser.html"><strong>&quot;View
-        Structure Data..&quot;</strong> dialog</a>.
+    Structure Data..&quot;</strong> dialog</a>. In Jalview 2.11.2, support 
+    was also added for ChimeraX.
   </p>
   <p>
     You can set a default choice of Jmol or Chimera structure viewer in
diff --git a/help/help/html/features/pymol.html b/help/help/html/features/pymol.html
new file mode 100644 (file)
index 0000000..061434f
--- /dev/null
@@ -0,0 +1,234 @@
+<html>
+<!--
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ -->
+<head>
+<title>The Pymol PDB Viewer</title>
+</head>
+<body>
+  <p>
+    <strong>The Pymol Viewer</strong>
+  </p>
+  <p>
+    In Jalview 2.11.2, support was added for <a href="https://pymol.org/2/">Pymol</a>
+    (https://pymol.org/2/) to be used for viewing
+    structures opened via the <a href="structurechooser.html"><strong>&quot;View
+        Structure Data..&quot;</strong> dialog</a>.
+  </p>
+  <p>
+               You can configure Pymol as your preferred structure viewer in
+               <a href="preferences.html#structure"> Preferences</a>. You can also
+               optionally specify the path to the Pymol program here (if it differs
+               from the standard paths searched by Jalview).<br /> <strong>Jalview
+                       requires Pymol's RPC interface, which is not available in older
+                       versions of the Pymol community edition.<br />Please make sure your
+                       version of Pymol is up to date.
+               </strong>
+       </p>
+  <p>
+    If you save your Jalview session as a project file, the state of any
+    open Pymol windows will also be saved, and can be reopened by
+    loading the project file on any machine with Pymol installed.
+    </p>
+       <p>
+               <strong>Known Limitations</strong><br /> Jalview provides an easy way
+               to employ Pymol for linked analysis of sequences and structures in the
+               same way as <a href="chimera.html">Chimera and ChimeraX</a>. There are
+               some limitations, however:
+       </p>
+       <ul>
+               <li>Pymol does not support some forms of legacy structural data
+                       (e.g. the 1A70 C-alpha only PDB file included in the Jalview example
+                       project).</li>
+               <li>Pymol to Jalview communication does not support transfer of
+                       properties or highlighting sequence regions corresponding to
+                       structure selections or mouse-overs in Pymol.</li>
+       </ul>
+  <p>
+    Basic screen operations (see <a
+      href="https://pymol.org/dokuwiki/doku.php?id=mouse">Pymol Wiki</a> at
+    https://pymol.org/dokuwiki/doku.php?id=mouse
+    for full details).
+  <table border="1">
+    <tr>
+      <td><strong>Action</strong></td>
+      <td><strong>Windows</strong></td>
+      <td><strong>Unix</strong></td>
+      <td><strong>Mac/OSX</strong></td>
+    </tr>
+    <tr>
+      <td>Rotate View</td>
+      <td>Left Click and Drag</td>
+      <td>Left Click and Drag</td>
+      <td>Left Click and Drag</td>
+    </tr>
+    <tr>
+      <td>Zoom</td>
+      <td>Right Click<br> drag mouse up or down
+      </td>
+      <td>Right Click<br>drag mouse up or down
+      </td>
+      <td>cmd or Right + Click and drag mouse up or down, <br>or
+        use mouse scroll button
+      </td>
+    </tr>
+    <tr>
+      <td>Move Origin</td>
+      <td>Middle Button + Drag</td>
+      <td>Middle Button and drag</td>
+      <td>alt + Click<br> and drag
+      </td>
+    </tr>
+    <tr>
+      <td>Select Residues</td>
+      <td>Ctrl + Click (and drag to select a region)</td>
+      <td>Ctrl + Click (and drag)</td>
+      <td>Ctrl + Click (and drag)</td>
+    </tr>
+  </table>
+  </p>
+  <p>
+    <strong>Jalview Controls</strong>
+  <p>The Jalview Pymol View window has up to five menus:</p>
+  <ul>
+    <li><Strong>File<br>
+    </strong>
+      <ul>
+        <li><strong>View Mapping<br>
+        </strong><em> Opens a text window showing the alignment between the
+            residues corresponding to alpha-carbon atoms in the PDB
+            structure and the residues in the associated sequence.</em></li>
+      </ul></li>
+    <li><strong>View</strong>
+      <ul>
+        <li><strong>Show Chains<br>
+        </strong><em>Select which of the PDB file's chains (if more than
+            one) are to be displayed.</em></li>
+        <li><strong>Colour by ..<br></strong><em>Submenu
+            allowing specific alignment views to be selected for
+            colouring associated chains in the structure display. This
+            menu contains all the alignment views associated with the
+            structure view, with those used to colour the view indicated
+            by ticks. Addditionally, it contains the following menu
+            entries:</em>
+          <ul>
+            <li><strong>Select many views<br></strong><em>When
+                this option is enabled, selecting an alignment view adds
+                it to the set used to colour the structures. Use this
+                when colouring structures related to a number of
+                alignments involving different domains or chains which
+                are shown in the same structure view.</em></li>
+            <li><strong>Select all views<br></strong><em>This
+                is only enabled when </em><strong>Select many views</strong><em>
+                is also enabled, and will add all associated views to
+                the set used to colour the structure display.</em></li>
+            <li><strong>Invert selection<br></strong><em>This
+                is only enabled when </em><strong>Select many views</strong><em>
+                is also enabled, and will replace the current set of
+                views with any remaining views not currently used to
+                colour the structure display.</em></li>
+          </ul></li>
+      </ul>
+    <li><strong>Colours<br>
+    </strong>
+      <ul>
+        <li><strong>By Sequence<br>
+        </strong><em> Colours each residue in the structure with the colour
+            of its corresponding residue in the associated sequence as
+            rendered in the associated alignment views, including any
+            UniProt sequence features or region colourings.<br />Pick
+            which of the associated alignment views are used to colour
+            the structures using the <strong>View&#8594;Colour
+              by ..</strong> sub menu.
+        </em><br> Residues which only exist in the PDB structure are
+          coloured white if they are insertions (relative to the
+          associated sequence in the alignment) and grey if they are N
+          or C terminal flanks outside the region mapped to the
+          alignment window's sequence.</em></li>
+        <li><strong>By Chain<br>
+        </strong><em>Uses Pymol's 'spectrum(chain)' command to apply a
+            different colour to each chain.</em></li>
+        <li><strong>Charge &amp; Cysteine<br>
+        </strong><em> Highlights cysteines in yellow, anionic (Aspartic Acid
+            or Glutamic Acid) residues in red, and cationic (Lysine or
+            Arginine) residues in blue.</em></li>
+        <li><strong>Colour with Pymol<br></strong><em>Defers
+            any colouring operations to Pymol. Select this if you want
+            to use the Pymol scripting interface or menu to modify the
+            view directly.</em></li>
+        <li><strong>Standard and User Defined Jalview
+            colourschemes.<br>
+        </strong><em>The remaining entries apply the colourschemes available
+            from the standard and user defined <a
+            href="../colourSchemes/index.html">amino acid
+              colours</a>.
+        </em></li>
+      </ul></li>
+    <li><strong>Pymol<br>
+    </strong><em>This pulldown menu provides access to Pymol's capabilities from Jalview.</em>
+      <ul>
+        <li><strong><a name="sAlign">Align</a> <br> </strong><em>
+            When selected, the associated alignment will be used to
+            superimpose all the structures in the view onto the first
+            structure in the alignment. The regions used to calculate
+            the superposition will be highlighted using the 'Cartoon'
+            rendering style, and the remaining data shown as a chain
+            trace.<br />
+          <br />
+        </em></li>
+        <li><a name="annotxfer"><strong>Write Jalview
+              features</strong></a><br /> <em>Selecting this option will create
+            new atom properties for any features currently visible in
+            the associated alignment views. This allows those atoms to 
+            be selected and analysed in Pymol directly.
+        </em><br>
+        <ul><li>Feature transfer in Pymol is experimental.</li><li>To select by a particular feature use the string matching syntax:<br>
+        select foo,p.jv_helix in helix
+        </li>
+        <li>To view transferred properties use Pymol's Properties Inspector</li><li>
+        For more information see <a href="https://pymol.org/dokuwiki/doku.php?id=properties#selection_language">Property based selection in Pymol's Documentation</a>.
+        </li>
+        </ul>
+        </li>
+      </ul></li>
+    <li><strong>Help<br>
+    </strong>
+      <ul>
+        <li><strong>Pymol Help<br>
+        </strong><em>Access the Pymol Help documentation in a new browser window.
+            window.</em></li>
+      </ul></li>
+  </ul>
+  <p>
+    <strong>Pymol and Windows Firewall</strong>
+  </p>
+  Jalview and Pymol communicate using the <a href="https://pymolwiki.org/index.php/RPC">Pymol's XML-RPC over HTTP interface</a>(https://pymolwiki.org/index.php/RPC).
+  
+<br> Technically this requires both Pymol and Jalview to open
+  ports on the local network, and this may be blocked by Windows
+  Firewall with a warning message such as
+  <br /> "Windows Firewall has blocked some features of this program"
+  (where the program may be java.exe or javaw.exe).
+  <br /> To allow Jalview and Pymol to interact, you may need to add
+  permission for the program to communicate over the network. This can
+  be done from the warning dialogue, or in Control Panel, Firewall
+  settings.
+</body>
+</html>
index 46ebb73..9e492b2 100644 (file)
@@ -625,8 +625,8 @@ label.editing = Editing
 label.web_services = Web Services
 label.right_click_to_edit_currently_selected_parameter = Right click to edit currently selected parameter.
 label.let_jmol_manage_structure_colours = Let Jmol manage structure colours
-label.fetch_chimera_attributes = Fetch Chimera attributes
-label.fetch_chimera_attributes_tip = Copy Chimera attribute to Jalview feature
+label.fetch_viewer_attributes = Fetch {0} attributes
+label.fetch_viewer_attributes_tip = Copy {0} attribute to Jalview feature
 label.marks_leaves_tree_not_associated_with_sequence = Marks leaves of tree not associated with a sequence
 label.index_web_services_menu_by_host_site = Index web services in menu by the host site
 label.option_want_informed_web_service_URL_cannot_be_accessed_jalview_when_starts_up = Check this option if you want to be informed<br>when a web service URL cannot be accessed by Jalview<br>when it starts up
@@ -718,7 +718,7 @@ error.superposition_failed = Superposition failed: {0}
 label.insufficient_residues = Not enough aligned residues ({0}) to perform superposition
 label.create_viewer_attributes = Write Jalview features
 label.create_viewer_attributes_tip = Set structure residue attributes for Jalview features
-label.attributes_set = {0} attribute values set on Chimera
+label.attributes_set = {0} attribute values set on {1}
 label.sort_alignment_by_tree = Sort Alignment By Tree
 label.mark_unlinked_leaves = Mark Unlinked Leaves
 label.associate_leaves_with = Associate Leaves With
index 26c780d..5f22526 100644 (file)
@@ -169,6 +169,14 @@ public class PymolManager
       {
         out.close();
       }
+      if (Cache.log.isTraceEnabled())
+      {
+        Cache.log.trace("Sent: " + command.toString());
+        if (result != null)
+        {
+          Cache.log.trace("Received: " + result);
+        }
+      }
     }
     return result;
   }
index 0dccc0c..ebf9ec5 100644 (file)
@@ -377,8 +377,9 @@ public abstract class GFTSPanel extends JPanel implements GFTSPanelI
     btn_autosearch.setText(MessageManager.getString("option.autosearch"));
     btn_autosearch.setToolTipText(
             MessageManager.getString("option.enable_disable_autosearch"));
+    // disable autosearch by default
     btn_autosearch.setSelected(!Platform.isJS()
-            && Cache.getDefault(getAutosearchPreference(), true));
+            && Cache.getDefault(getAutosearchPreference(), false));
     btn_autosearch.addActionListener(new java.awt.event.ActionListener()
     {
       @Override
index 45e4b95..35b19c1 100644 (file)
@@ -1541,13 +1541,16 @@ public class AlignmentPanel extends GAlignmentPanel implements
     } catch (Exception ex)
     {
     }
-
     if (b)
     {
-      alignFrame.setDisplayedView(this);
+      setAlignFrameView();
     }
   }
-
+  public void setAlignFrameView()
+  {
+    alignFrame.setDisplayedView(this);
+  }
+  
   @Override
   public StructureSelectionManager getStructureSelectionManager()
   {
index 364a3b4..8dd0174 100644 (file)
@@ -102,9 +102,9 @@ public class ChimeraViewFrame extends StructureViewerBase
     viewerActionMenu.add(writeFeatures);
 
     fetchAttributes = new JMenu(
-            MessageManager.getString("label.fetch_chimera_attributes"));
+            MessageManager.formatMessage("label.fetch_viewer_attributes",getViewerName()));
     fetchAttributes.setToolTipText(
-            MessageManager.getString("label.fetch_chimera_attributes_tip"));
+            MessageManager.formatMessage("label.fetch_viewer_attributes_tip",getViewerName()));
     fetchAttributes.addMouseListener(new MouseAdapter()
     {
 
@@ -164,7 +164,7 @@ public class ChimeraViewFrame extends StructureViewerBase
     // todo pull up?
     int count = jmb.sendFeaturesToViewer(getAlignmentPanel());
     statusBar.setText(
-            MessageManager.formatMessage("label.attributes_set", count));
+            MessageManager.formatMessage("label.attributes_set", count, getViewerName()));
   }
 
   /**
index 538b101..719ca53 100644 (file)
@@ -171,6 +171,21 @@ public class PymolBindingModel extends AAStructureBindingModel
      * a second parameter sets the pdbid as the loaded PyMOL object name
      */
     String pdbId = pe.getId();
+    try {
+      String safePDBId = java.net.URLEncoder.encode(pdbId,"UTF-8");
+      pdbId = safePDBId.replace('%', '_');
+      pdbId = pdbId.replace("-", "__");
+      char fc = pdbId.charAt(0);
+      // put an 's' before any numerics
+      if (fc>='0' && fc<='9')
+      {
+        pdbId = 's'+pdbId;
+      }
+//      pdbId.replace('-', 0)
+    } catch (Exception x)
+    {
+      Cache.log.error("Unxpected encoding exception for '"+pdbId+"'",x);
+    }
     cmd.addParameter(pdbId);
 
     executeCommand(cmd, false);
index 8dd2fc0..d7b4236 100644 (file)
@@ -383,7 +383,7 @@ public class PymolViewer extends StructureViewerBase
   {
     int count = binding.sendFeaturesToViewer(getAlignmentPanel());
     statusBar.setText(
-            MessageManager.formatMessage("label.attributes_set", count));
+            MessageManager.formatMessage("label.attributes_set", count, getViewerName())); 
   }
 
 }
index 1c0f43e..30ecc80 100644 (file)
@@ -1160,8 +1160,10 @@ public abstract class StructureViewerBase extends GStructureViewer
       } else {
           if (processingEntry.hasRetrievalUrl())
           {
+            String safePDBId = java.net.URLEncoder.encode(pdbid,"UTF-8");
+                     
             // retrieve from URL to new local tmpfile
-            File tmpFile = File.createTempFile(pdbid,
+            File tmpFile = File.createTempFile(safePDBId,
                     "." + (PDBEntry.Type.MMCIF.toString().equals(
                             processingEntry.getType().toString()) ? "cif"
                                     : "pdb"));
index a1529fc..134164e 100644 (file)
@@ -22,6 +22,7 @@ package jalview.gui;
 
 import jalview.api.AlignmentViewPanel;
 import jalview.util.MessageManager;
+import jalview.util.Platform;
 
 import java.awt.Component;
 import java.awt.event.ActionEvent;
@@ -261,6 +262,7 @@ public class ViewSelectionMenu extends JMenu
           }
         }
       });
+      final ViewSelectionMenu us=this;
       checkBox.addMouseListener(new MouseAdapter()
       {
         @Override
@@ -268,7 +270,6 @@ public class ViewSelectionMenu extends JMenu
         {
           try
           {
-            ap.setSelected(false);
           } catch (Exception ex)
           {
           }
@@ -279,7 +280,7 @@ public class ViewSelectionMenu extends JMenu
         {
           try
           {
-            ap.setSelected(true);
+            ap.setAlignFrameView();
           } catch (Exception ex)
           {
           }
index ad57831..b4bd781 100644 (file)
@@ -28,6 +28,7 @@ import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.IdentityHashMap;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Vector;
 
@@ -548,7 +549,7 @@ public class StructureSelectionManager
                     pdb, maxChain, sqmpping, maxAlignseq, siftsClient);
             seqToStrucMapping.add(siftsMapping);
             maxChain.makeExactMapping(siftsMapping, seq);
-            maxChain.transferRESNUMFeatures(seq, "IEA: SIFTS");
+            maxChain.transferRESNUMFeatures(seq, "IEA: SIFTS",pdb.getId().toLowerCase(Locale.ROOT));
             maxChain.transferResidueAnnotation(siftsMapping, null);
             ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));
 
@@ -560,7 +561,7 @@ public class StructureSelectionManager
                     targetChainId, maxChain, pdb, maxAlignseq);
             seqToStrucMapping.add(nwMapping);
             maxChain.makeExactMapping(maxAlignseq, seq);
-            maxChain.transferRESNUMFeatures(seq, "IEA:Jalview"); // FIXME: is
+            maxChain.transferRESNUMFeatures(seq, "IEA:Jalview",pdb.getId().toLowerCase(Locale.ROOT)); // FIXME: is
                                                                  // this
                                                         // "IEA:Jalview" ?
             maxChain.transferResidueAnnotation(nwMapping, sqmpping);
@@ -580,7 +581,7 @@ public class StructureSelectionManager
                       siftsClient);
               foundSiftsMappings.add(siftsMapping);
               chain.makeExactMapping(siftsMapping, seq);
-              chain.transferRESNUMFeatures(seq, "IEA: SIFTS");// FIXME: is this
+              chain.transferRESNUMFeatures(seq, "IEA: SIFTS",pdb.getId().toLowerCase(Locale.ROOT));// FIXME: is this
               // "IEA:SIFTS" ?
               chain.transferResidueAnnotation(siftsMapping, null);
             } catch (SiftsException e)
@@ -605,7 +606,7 @@ public class StructureSelectionManager
             StructureMapping nwMapping = getNWMappings(seq, pdbFile,
                     maxChainId, maxChain, pdb, maxAlignseq);
             seqToStrucMapping.add(nwMapping);
-            maxChain.transferRESNUMFeatures(seq, null); // FIXME: is this
+            maxChain.transferRESNUMFeatures(seq, null,pdb.getId().toLowerCase(Locale.ROOT)); // FIXME: is this
                                                         // "IEA:Jalview" ?
             maxChain.transferResidueAnnotation(nwMapping, sqmpping);
             ds.addPDBId(maxChain.sequence.getAllPDBEntries().get(0));
@@ -773,7 +774,7 @@ public class StructureSelectionManager
     maxChain.makeExactMapping(maxAlignseq, seq);
     jalview.datamodel.Mapping sqmpping = maxAlignseq
             .getMappingFromS1(false);
-    maxChain.transferRESNUMFeatures(seq, null);
+    maxChain.transferRESNUMFeatures(seq, null, pdb.getId().toLowerCase(Locale.ROOT));
 
     HashMap<Integer, int[]> mapping = new HashMap<>();
     int resNum = -10000;
index a93f233..b77fc47 100644 (file)
@@ -28,7 +28,9 @@ import jalview.datamodel.DBRefEntry;
 import jalview.datamodel.DBRefSource;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.PDBEntry.Type;
+import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.datamodel.features.SequenceFeaturesI;
 import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FileFormatI;
@@ -238,6 +240,21 @@ public class EBIAlfaFold extends EbiFileRetrievedProxy
                     dbVersion, (chid == null ? id : id + chid));
             // dbentry.setMap()
             pdbcs.addDBRef(dbentry);
+            // update any feature groups
+            List<SequenceFeature> allsf = pdbcs.getFeatures().getAllFeatures();
+            List<SequenceFeature> newsf = new ArrayList<SequenceFeature>();
+            if (allsf!=null && allsf.size()>0)
+            {
+              for (SequenceFeature f:allsf)
+              {
+                if (file.equals(f.getFeatureGroup()))
+                {
+                  f = new SequenceFeature(f, f.type, f.begin, f.end, id, f.score);
+                }
+                newsf.add(f);
+              }
+              pdbcs.setSequenceFeatures(newsf);
+            }
           }
         }
         else
index e1c90f3..425bc18 100755 (executable)
@@ -229,10 +229,16 @@ public class PDBChain
    * @param seq
    * @param status
    *          The Status of the transferred annotation
+   * 
+   * @param altPDBID the group id for the features on the destination sequence (e.g. the official accession ID)
    */
   public void transferRESNUMFeatures(SequenceI seq,
-          String status)
+          String status, String altPDBID)
   {
+    if (altPDBID==null)
+    {
+      altPDBID = pdbid;
+    }
     SequenceI sq = seq;
     while (sq != null && sq.getDatasetSequence() != null)
     {
@@ -265,7 +271,7 @@ public class PDBChain
         int newEnd = 1 + residues.elementAt(feature.getEnd() - offset).atoms
                 .elementAt(0).alignmentMapping;
         SequenceFeature tx = new SequenceFeature(feature, newBegin, newEnd,
-                feature.getFeatureGroup(), feature.getScore());
+                altPDBID, feature.getScore());
         tx.setStatus(status
                 + ((tx.getStatus() == null || tx.getStatus().length() == 0)
                         ? ""
index 4ef11c3..5830354 100644 (file)
@@ -8,13 +8,13 @@
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="210mm"
-   height="297mm"
-   viewBox="0 0 210 297"
+   width="132.29233mm"
+   height="132.29326mm"
+   viewBox="0 0 132.29233 132.29326"
    version="1.1"
    id="svg8"
-   inkscape:version="1.0.1 (0767f8302a, 2020-10-17)"
-   sodipodi:docname="JalviewDevelopLogo2.svg">
+   inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
+   sodipodi:docname="jalview_develop_logo.svg">
   <defs
      id="defs2">
     <linearGradient
        clipPathUnits="userSpaceOnUse"
        id="clipPath1000">
       <path
-         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="fill:none;stroke:#000000;stroke-width:0.26458299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          d="M 87.312506,136.26042 162.71876,190.5 133.61459,206.375 H 107.15626 L 84.666668,186.53125 80.697918,158.75 Z"
-         id="path1002" />
+         id="path1002"
+         inkscape:connector-curvature="0" />
     </clipPath>
     <clipPath
        clipPathUnits="userSpaceOnUse"
        id="clipPath1093-1">
       <rect
-         style="fill:#256c7a;fill-opacity:1;stroke:#000000;stroke-width:0.850394;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:#256c7a;fill-opacity:1;stroke:#000000;stroke-width:0.85039401;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1095-8"
          width="105"
          height="229.99998"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1281">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.256539;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.25653899;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1283"
          width="34.395832"
          height="74.083336"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1285">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.256539;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.25653899;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1287"
          width="34.395832"
          height="74.083336"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1333">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.225;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.22499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1335"
          width="62.177082"
          height="54.239582"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1375">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.225;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.22499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1377"
          width="64.822914"
          height="64.822914"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1675">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.204471;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.20447101;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1677"
          width="33.037834"
          height="66.145836"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1680">
       <rect
-         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.515557;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.51555699;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          id="rect1682"
          width="68.626167"
          height="129.34053"
        clipPathUnits="userSpaceOnUse"
        id="clipPath1692">
       <path
-         style="fill:none;stroke:#000000;stroke-width:0.989976px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         style="fill:none;stroke:#000000;stroke-width:0.98997599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
          d="m 162.06065,485.50479 v 69.97715 l 53.92055,4.99839 24.50939,39.98694 14.70561,4.99839 h 14.70561 V 480.5064 H 162.06065 Z"
-         id="path1694" />
+         id="path1694"
+         inkscape:connector-curvature="0" />
     </clipPath>
     <clipPath
        clipPathUnits="userSpaceOnUse"
       <path
          id="mask-powermask-path-effect945_box"
          style="fill:#ffffff;fill-opacity:1"
-         d="M 43.979163,54.562507 H 167.06656 V 178.27083 H 43.979163 Z" />
+         d="M 43.979163,54.562507 H 167.06656 V 178.27083 H 43.979163 Z"
+         inkscape:connector-curvature="0" />
       <g
          id="g943"
          style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
          transform="matrix(0.91530618,0,0,0.91999994,3.6852506,4.2711328)">
         <path
-           style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
+           style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
            d="m 67.791016,78.375 v 62.85352 h 25.8125 V 104.1875 h 58.855464 v 58.85352 H 44.978516 v 1 l -0.707032,0.70703 24.105469,24.10547 H 178.27148 V 78.375 Z m 2,2 H 176.27148 V 186.85352 H 69.205078 l -21.8125,-21.8125 H 154.45898 V 102.1875 H 91.603516 v 37.04102 h -21.8125 z"
-           id="path939" />
+           id="path939"
+           inkscape:connector-curvature="0" />
         <path
-           style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-variant-east-asian:normal;font-feature-settings:normal;font-variation-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;shape-margin:0;inline-size:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
+           style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
            d="M 43.978516,54.5625 V 165.04102 H 154.45898 V 102.1875 h -25.8125 v 37.04102 H 69.791016 V 80.375 H 177.27148 v -1 L 177.97852,78.667969 153.87305,54.5625 Z m 2,2 H 153.04492 l 21.8125,21.8125 H 67.791016 v 62.85352 H 130.64648 V 104.1875 h 21.8125 v 58.85352 H 45.978516 Z"
-           id="path941" />
+           id="path941"
+           inkscape:connector-curvature="0" />
       </g>
     </mask>
     <filter
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="1.63"
-     inkscape:cx="357.63388"
-     inkscape:cy="452.52787"
+     inkscape:zoom="4.6103362"
+     inkscape:cx="237.96116"
+     inkscape:cy="274.8671"
      inkscape:document-units="mm"
      inkscape:current-layer="layer1"
      inkscape:document-rotation="0"
      showgrid="true"
      inkscape:window-width="3840"
-     inkscape:window-height="1989"
+     inkscape:window-height="1997"
      inkscape:window-x="0"
      inkscape:window-y="0"
-     inkscape:window-maximized="1">
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
     <inkscape:grid
        type="xygrid"
-       id="grid10" />
+       id="grid10"
+       originx="-42.332674"
+       originy="-109.80208" />
   </sodipodi:namedview>
   <metadata
      id="metadata5">
     </rdf:RDF>
   </metadata>
   <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="underneath"
+     transform="translate(0.01538153)" />
+  <g
      inkscape:label="Layer 1"
      inkscape:groupmode="layer"
-     id="layer1">
+     id="layer1"
+     transform="translate(-42.332673,-54.904652)">
     <g
-       id="g1189"
-       transform="matrix(1.0925306,0,0,1.0869566,-4.026249,-4.642536)"
-       style="stroke:none"
-       mask="url(#mask-powermask-path-effect945)"
-       inkscape:path-effect="#path-effect945"
-       inkscape:export-xdpi="1.54"
-       inkscape:export-ydpi="1.54">
+       id="g1000">
       <path
-         style="fill:#a8008c;fill-opacity:1;stroke:none;stroke-width:0.62096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 44.979174,55.562507 h 99.353746 l 21.73364,21.733639 H 66.712812 V 133.1826 H 44.979174 Z"
+         style="fill:#a8008c;fill-opacity:1;stroke:none;stroke-width:0.67668498px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 42.348072,54.904652 H 150.89508 l 21.08409,21.168255 H 63.5 V 142.21874 H 42.333333 Z"
          id="path12-7-3"
          sodipodi:nodetypes="ccccccc"
-         inkscape:original-d="m 44.979174,55.562507 h 99.353746 l 21.73364,21.733639 H 66.712812 V 133.1826 H 44.979174 Z" />
+         inkscape:connector-curvature="0" />
       <path
-         style="fill:#ff7200;fill-opacity:1;stroke:none;stroke-width:0.62096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 66.712812,77.296146 h 99.353748 l -2e-5,21.733614 H 88.446427 V 133.1826 H 66.712812 Z"
+         style="fill:#ff7200;fill-opacity:1;stroke:none;stroke-width:0.67668498px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 66.145833,78.718741 H 174.625 v 21.166666 l -87.31255,-3e-6 5e-5,39.687506 H 66.145833 Z"
          id="path12-3-5-1"
          sodipodi:nodetypes="ccccccc"
-         inkscape:original-d="m 66.712812,77.296146 h 99.353748 l -2e-5,21.733614 H 88.446427 V 133.1826 H 66.712812 Z" />
+         inkscape:connector-curvature="0" />
       <path
-         style="fill:#0064b4;fill-opacity:1;stroke:none;stroke-width:0.62096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 166.06654,177.27083 66.712789,176.64985 44.979174,154.91624 H 144.33292 V 99.02976 h 21.73362 z"
+         style="fill:#0064b4;fill-opacity:1;stroke:none;stroke-width:0.67668498px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 174.625,187.19791 H 66.145833 L 44.979167,166.03124 153.45834,165.76666 V 103.58958 H 174.625 Z"
          id="path12-6-9-9"
          sodipodi:nodetypes="ccccccc"
-         inkscape:original-d="M 166.06654,177.27083 66.712789,176.64985 44.979174,154.91624 H 144.33292 V 99.02976 h 21.73362 z" />
+         inkscape:connector-curvature="0" />
       <path
-         style="fill:#54c800;fill-opacity:1;stroke:none;stroke-width:0.62096px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="M 144.33292,154.91624 H 44.979174 V 133.1826 H 122.59928 V 99.02976 h 21.73364 z"
+         style="fill:#54c800;fill-opacity:1;stroke:none;stroke-width:0.67668498px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="M 150.8125,163.38541 H 42.333333 v -21.16667 h 87.312497 v -39.6875 h 21.16667 z"
          id="path12-3-7-2-4"
          sodipodi:nodetypes="ccccccc"
-         inkscape:original-d="M 144.33292,154.91624 H 44.979174 V 133.1826 H 122.59928 V 99.02976 h 21.73364 z" />
+         inkscape:connector-curvature="0" />
       <path
-         style="fill:url(#linearGradient1484);fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 111.125,148.16666 v 30.42709 h 33.07292 v -9.26042 h -23.8125 v -21.16667 z"
+         style="fill:url(#linearGradient1484);fill-opacity:1;stroke:none;stroke-width:0.26458299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 111.125,148.16666 -0.006,30.61821 h 34.05188 v -8.29733 h -25.79662 l -2.6e-4,-22.29908 z"
          id="path1329-7"
          sodipodi:nodetypes="ccccccc"
          clip-path="url(#clipPath1466)"
-         transform="matrix(2.3469387,0,0,2.3469387,-215.8244,-264.23234)"
-         inkscape:original-d="m 111.125,148.16666 v 30.42709 h 33.07292 v -9.26042 h -23.8125 v -21.16667 z" />
+         transform="matrix(2.5641023,0,0,2.5510205,-242.58781,-292.69847)"
+         inkscape:connector-curvature="0" />
       <path
-         style="fill:url(#linearGradient1486);fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-         d="m 129.64583,145.52083 33.07292,1e-5 v 33.07291 h -9.26042 l 1e-5,-23.8125 h -23.81251 v -9.26042"
+         style="fill:url(#linearGradient1486);fill-opacity:1;stroke:none;stroke-width:0.26458299px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 128.66113,145.59554 h 34.05188 v 34.2265 h -8.255 v -25.92918 h -25.79687 v -8.29733"
          id="path1363-8"
          clip-path="url(#clipPath1471)"
-         transform="matrix(2.3469387,0,0,2.3469387,-215.8244,-264.23234)"
+         transform="matrix(2.5641023,0,0,2.5510205,-242.58781,-292.69847)"
          sodipodi:nodetypes="ccccccc"
-         inkscape:original-d="m 129.64583,145.52083 33.07292,1e-5 v 33.07291 h -9.26042 l 1e-5,-23.8125 h -23.81251 v -9.26042" />
+         inkscape:connector-curvature="0" />
     </g>
   </g>
   <g
      inkscape:groupmode="layer"
      id="layer2"
      inkscape:label="Layer 2"
-     style="display:inline;mix-blend-mode:lighten" />
+     style="display:inline;mix-blend-mode:lighten"
+     transform="translate(-42.332673,-54.904652)" />
   <g
      inkscape:groupmode="layer"
      id="layer3"
      inkscape:label="Layer 3"
-     style="display:inline;mix-blend-mode:normal" />
+     style="display:inline;mix-blend-mode:normal"
+     transform="translate(-42.332673,-54.904652)" />
 </svg>
index 0d80644..a4bdc49 100644 (file)
@@ -18,7 +18,7 @@
                     <serializedBean>
                       <property name="description" type="string">Jalview File</property>
                       <property name="extension" type="string">jvp</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
@@ -63,7 +63,7 @@
                     <serializedBean>
                       <property name="description" type="string">Jalview Launch File</property>
                       <property name="extension" type="string">jvl</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-Launch.icns</string>
                     <serializedBean>
                       <property name="description" type="string">CIF File</property>
                       <property name="extension" type="string">cif</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">mmCIF File</property>
                       <property name="extension" type="string">mcif,mmcif</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">PDB File</property>
                       <property name="extension" type="string">ent,pdb</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">AMSA File</property>
                       <property name="extension" type="string">amsa</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Jalview Annotations File</property>
                       <property name="extension" type="string">annotations,jvannotations</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">BioJSON File</property>
                       <property name="extension" type="string">biojson</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">BLC File</property>
                       <property name="extension" type="string">blc</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Clustal File</property>
                       <property name="extension" type="string">aln</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">ENA Flatfile File</property>
                       <property name="extension" type="string">txt</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Fasta File</property>
                       <property name="extension" type="string">fa,fasta</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Jalview Features File</property>
                       <property name="extension" type="string">features,jvfeatures</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">GenBank Flatfile File</property>
                       <property name="extension" type="string">gb,gbk</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Generic Features Format v2 File</property>
                       <property name="extension" type="string">gff2</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Generic Features Format v3 File</property>
                       <property name="extension" type="string">gff3</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">JnetFile File</property>
                       <property name="extension" type="string">concise,jnet</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">MSF File</property>
                       <property name="extension" type="string">msf</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">PFAM File</property>
                       <property name="extension" type="string">pfam</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">PHYLIP File</property>
                       <property name="extension" type="string">phy</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">PileUp File</property>
                       <property name="extension" type="string">pileup</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">PIR File</property>
                       <property name="extension" type="string">pir</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">RNAML File</property>
                       <property name="extension" type="string">rnaml</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Substitution Matrix File</property>
                       <property name="extension" type="string">mat</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
                     <serializedBean>
                       <property name="description" type="string">Stockholm File</property>
                       <property name="extension" type="string">stk,sto</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>Jalview-File.icns</string>
index 5a311f1..c8e94a1 100644 (file)
@@ -18,7 +18,7 @@
                     <serializedBean>
                       <property name="description" type="string">$$NAME$$ File</property>
                       <property name="extension" type="string">$$EXTENSION$$</property>
-                      <property name="launcherId" type="string">737</property>
+                      <property name="launcherId" type="string">JALVIEW</property>
                       <property name="macIconFile">
                         <object class="com.install4j.api.beans.ExternalFile">
                           <string>$$ICONFILE$$.icns</string>
index a14900c..b0828eb 100644 (file)
     </components>
   </files>
   <launchers>
-    <launcher name="Jalview Launcher" id="737" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
+    <launcher name="Jalview Launcher" id="737" customizedId="JALVIEW" menuName="${compiler:JALVIEW_APPLICATION_NAME}" icnsFile="${compiler:JALVIEW_DIR}/${compiler:MAC_ICONS_FILE}" customMacBundleIdentifier="true" macBundleIdentifier="${compiler:BUNDLE_ID}" fileset="734" useCustomMacosExecutableName="true" customMacosExecutableName="${compiler:JALVIEW_APPLICATION_NAME}">
       <executable name="${compiler:EXECUTABLE_NAME}" iconSet="true" iconFile="${compiler:JALVIEW_DIR}/${compiler:WINDOWS_ICONS_FILE}" redirectStdout="true" executableMode="gui" changeWorkingDirectory="false" singleInstance="true" checkConsoleParameter="true">
         <versionInfo include="true" fileDescription="${compiler:sys.fullName}" legalCopyright="${compiler:COPYRIGHT_MESSAGE}" internalName="${compiler:INTERNAL_ID}" productName="${compiler:sys.fullName}" />
       </executable>
@@ -533,19 +533,19 @@ return console.askOkCancel(message, true);
               </group>
               <action id="2350" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
                 <serializedBean>
-                  <property name="launcherId" type="string">737</property>
+                  <property name="launcherId" type="string">JALVIEW</property>
                   <property name="scheme" type="string">jalview</property>
                 </serializedBean>
               </action>
               <action id="2450" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
                 <serializedBean>
-                  <property name="launcherId" type="string">737</property>
+                  <property name="launcherId" type="string">JALVIEW</property>
                   <property name="scheme" type="string">jalviews</property>
                 </serializedBean>
               </action>
               <action id="2641" beanClass="com.install4j.runtime.beans.actions.desktop.UrlHandlerAction" actionElevationType="elevated" rollbackBarrierExitCode="0">
                 <serializedBean>
-                  <property name="launcherId" type="string">737</property>
+                  <property name="launcherId" type="string">JALVIEW</property>
                   <property name="scheme" type="string">${compiler:EXTRA_SCHEME}</property>
                 </serializedBean>
               </action>