JAL-2629 add HMMER tab in preferences menu
authorTZVanaalten <TZVanaalten@LS30916.ad.lifesci.dundee.ac.uk>
Sun, 13 Aug 2017 10:55:28 +0000 (11:55 +0100)
committerTZVanaalten <TZVanaalten@LS30916.ad.lifesci.dundee.ac.uk>
Sun, 13 Aug 2017 10:55:28 +0000 (11:55 +0100)
resources/lang/Messages.properties
src/jalview/gui/Preferences.java
src/jalview/jbgui/GPreferences.java

index 96612f9..2499e79 100644 (file)
@@ -1318,9 +1318,10 @@ label.warning_hidden = Warning: {0} {1} is currently hidden
 label.auto_align_seqs = Automatically Align New Sequences
 label.hmmalign = Align Sequences to HMM
 label.hmmbuild = Build HMM from Alignment
+label.hmmbuild_group = Build HMM from Selected Group
 label.group_hmmbuild = Build HMM from Group
 label.hmmsearch = Search for Related Sequences
-label.change_hmmer_location = Set HMMER Installation Location
+label.change_hmmer_location = HMMER Installation Location
 warn.null_hmm = Please ensure the alignment contains a hidden Markov model.
 label.ignore_below_background_frequency = Ignore Below Background Frequency
 label.information_description = Information content, measured in bits
@@ -1329,3 +1330,10 @@ label.invalid_hmmer_folder = The folder that you selected does not contain the n
 warn.no_selected_hmm = Please select a hidden Markov model sequence.
 label.select_hmm = Select HMM
 warn.no_sequence_data = No sequence data found.
+label.hmmer = HMMER
+label.trim_termini = Trim Non-Matching Termini
+label.no_of_sequences = Sequences Returned
+label.freq_alignment = Use Alignment Background Frequencies
+label.freq_uniprot = Use Uniprot Background Frequencies
+label.hmmalign_label = hmmalign Options
+label.hmmsearch_label = hmmsearch Options
index b5fa4e8..c25fc2f 100755 (executable)
@@ -201,6 +201,22 @@ public class Preferences extends GPreferences
     frame.setMinimumSize(new Dimension(width, height));
 
     /*
+     * Set HMMER tab defaults
+     */
+    trimTermini.setSelected(Cache.getDefault("TRIM_TERMINI", false));
+    if (Cache.getDefault("USE_UNIPROT", false))
+    {
+      uniprot.setSelected(true);
+    }
+    else
+    {
+      alignment.setSelected(true);
+    }
+    numberOfSequencesToKeepField
+            .setText(Cache.getProperty("SEQUENCES_TO_KEEP"));
+    installationLocationField.setText(Cache.getProperty(HMMER_PATH));
+
+    /*
      * Set Visual tab defaults
      */
     seqLimit.setSelected(Cache.getDefault("SHOW_JVSUFFIX", true));
@@ -640,6 +656,30 @@ public class Preferences extends GPreferences
             maxColour.getBackground());
 
     /*
+     * Save HMMER settings
+     */
+    Cache.applicationProperties.setProperty("TRIM_TERMINI",
+            Boolean.toString(trimTermini.isSelected()));
+    Cache.applicationProperties.setProperty("USE_UNIPROT",
+            Boolean.toString(uniprot.isSelected()));
+    Cache.applicationProperties.setProperty("SEQUENCES_TO_KEEP",
+            numberOfSequencesToKeepField.getText());
+    Cache.applicationProperties.setProperty(HMMER_PATH,
+            installationLocationField.getText());
+    trimTermini.setSelected(Cache.getDefault("TRIM_TERMINI", false));
+    if (Cache.getDefault("USE_UNIPROT", false))
+    {
+      uniprot.setSelected(true);
+    }
+    else
+    {
+      alignment.setSelected(true);
+    }
+    numberOfSequencesToKeepField
+            .setText(Cache.getProperty("SEQUENCES_TO_KEEP"));
+    installationLocationField.setText(Cache.getProperty(HMMER_PATH));
+
+    /*
      * Save Structure settings
      */
     Cache.applicationProperties.setProperty(ADD_TEMPFACT_ANN,
index 20b97b2..40f8616 100755 (executable)
@@ -45,6 +45,7 @@ import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 
+import javax.swing.AbstractButton;
 import javax.swing.AbstractCellEditor;
 import javax.swing.BorderFactory;
 import javax.swing.ButtonGroup;
@@ -257,6 +258,31 @@ public class GPreferences extends JPanel
   protected JCheckBox sortByTree = new JCheckBox();
 
   /*
+   * hmmer tab and components
+   */
+  protected JPanel hmmerTab = new JPanel();
+
+  protected JCheckBox trimTermini = new JCheckBox();
+
+  protected ButtonGroup backgroundFreqSource = new ButtonGroup();
+
+  protected AbstractButton uniprot = new JCheckBox();
+
+  protected AbstractButton alignment = new JCheckBox();
+
+  protected JLabel sequencesToKeep = new JLabel();
+
+  protected JTextField numberOfSequencesToKeepField = new JTextField();
+
+  protected JLabel installationLocation = new JLabel();
+
+  protected JTextField installationLocationField = new JTextField();
+
+  protected JLabel hmmsearch = new JLabel();
+
+  protected JLabel hmmalign = new JLabel();
+
+  /*
    * DAS Settings tab
    */
   protected JPanel dasTab = new JPanel();
@@ -266,6 +292,8 @@ public class GPreferences extends JPanel
    */
   protected JPanel wsTab = new JPanel();
 
+
+
   /**
    * Creates a new GPreferences object.
    */
@@ -314,6 +342,8 @@ public class GPreferences extends JPanel
     tabbedPane.add(initEditingTab(),
             MessageManager.getString("label.editing"));
 
+    tabbedPane.add(initHMMERTab(), MessageManager.getString("label.hmmer"));
+
     /*
      * See DasSourceBrowser for the real work of configuring this tab.
      */
@@ -382,6 +412,80 @@ public class GPreferences extends JPanel
   }
 
   /**
+   * Initialises the hmmer tabbed panel.
+   * 
+   * @return
+   */
+  private JPanel initHMMERTab()
+  {
+    JPanel hmmerTab = new JPanel();
+    hmmerTab.setLayout(null);
+
+    hmmalign.setFont(LABEL_FONT);
+    hmmalign.setText(MessageManager.getString("label.hmmalign_label"));
+    hmmalign.setBounds(new Rectangle(22, 10, 200, 23));
+
+    trimTermini.setFont(LABEL_FONT);
+    trimTermini.setText(MessageManager.getString("label.trim_termini"));
+    trimTermini.setBounds(new Rectangle(22, 30, 200, 23));
+
+    hmmsearch.setFont(LABEL_FONT);
+    hmmsearch.setText(MessageManager.getString("label.hmmsearch_label"));
+    hmmsearch.setBounds(new Rectangle(250, 10, 200, 23));
+
+    sequencesToKeep.setFont(LABEL_FONT);
+    sequencesToKeep
+            .setText(MessageManager.getString("label.no_of_sequences"));
+    sequencesToKeep.setBounds(new Rectangle(250, 30, 125, 23));
+    numberOfSequencesToKeepField.setBounds(new Rectangle(375, 30, 40, 23));
+
+    installationLocation.setFont(LABEL_FONT);
+    installationLocation.setText(
+            MessageManager.getString("label.change_hmmer_location"));
+    installationLocation.setBounds(new Rectangle(22, 200, 200, 23));
+    installationLocationField.setBounds(new Rectangle(22, 220, 200, 23));
+    installationLocationField.addMouseListener(new MouseAdapter()
+    {
+      @Override
+      public void mouseClicked(MouseEvent e)
+      {
+        if (e.getClickCount() == 2)
+        {
+          String chosen = openFileChooser();
+          if (chosen != null)
+          {
+            installationLocationField.setText(chosen);
+          }
+        }
+      }
+    });
+
+    backgroundFreqSource.add(uniprot);
+    backgroundFreqSource.add(alignment);
+    backgroundFreqSource.setSelected(uniprot.getModel(), true);
+
+    uniprot.setText(MessageManager.getString("label.freq_uniprot"));
+    uniprot.setFont(LABEL_FONT);
+    uniprot.setBounds(new Rectangle(22, 260, 255, 23));
+
+    alignment.setText(MessageManager.getString("label.freq_alignment"));
+    alignment.setFont(LABEL_FONT);
+    alignment.setBounds(new Rectangle(22, 280, 255, 23));
+
+    hmmerTab.add(uniprot);
+    hmmerTab.add(alignment);
+    hmmerTab.add(hmmalign);
+    hmmerTab.add(hmmsearch);
+    hmmerTab.add(installationLocation);
+    hmmerTab.add(installationLocationField);
+    hmmerTab.add(trimTermini);
+    hmmerTab.add(sequencesToKeep);
+    hmmerTab.add(sequencesToKeep);
+    hmmerTab.add(numberOfSequencesToKeepField);
+    return hmmerTab;
+  }
+
+  /**
    * Initialises the Output tabbed panel.
    * 
    * @return