- public void sortGroupMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- addHistoryItem("sort");\r
- AlignmentSorter.sortByGroup(viewport.getAlignment());\r
- AlignmentSorter.sortGroups(viewport.getAlignment());\r
- alignPanel.RefreshPanels();\r
- }\r
-\r
- public void sortTreeOrderMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- addHistoryItem("sort");\r
- if(viewport.getCurrentTree()==null)\r
- return;\r
-\r
- AlignmentSorter.sortByTree(viewport.getAlignment(), viewport.getCurrentTree());\r
- alignPanel.RefreshPanels();\r
- }\r
-\r
- public void removeRedundancyMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- RedundancyPanel sp = new RedundancyPanel(alignPanel);\r
- JInternalFrame frame = new JInternalFrame();\r
- frame.setContentPane(sp);\r
- Desktop.addInternalFrame(frame, "Redundancy threshold selection", 400, 100);\r
- frame.setMaximizable(false);\r
- frame.setResizable(false);\r
-\r
- }\r
-\r
- public void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- if(viewport.getSelectionGroup().getSize()<2)\r
- JOptionPane.showInternalMessageDialog(this, "You must select at least 2 sequences.", "Invalid Selection", JOptionPane.WARNING_MESSAGE);\r
- else\r
- {\r
- JInternalFrame frame = new JInternalFrame();\r
- frame.setContentPane(new PairwiseAlignPanel(viewport));\r
- Desktop.addInternalFrame(frame, "Pairwise Alignment", 600, 500);\r
- }\r
- }\r
-\r
- public void PCAMenuItem_actionPerformed(ActionEvent e)\r
- {\r
-\r
- if( (viewport.getSelectionGroup()!=null && viewport.getSelectionGroup().getSize()<4 && viewport.getSelectionGroup().getSize()>0)\r
- || viewport.getAlignment().getHeight()<4)\r
- {\r
- JOptionPane.showInternalMessageDialog(this, "Principal component analysis must take\n"\r
- +"at least 4 input sequences.",\r
- "Sequence selection insufficient",\r
- JOptionPane.WARNING_MESSAGE);\r
- return;\r
- }\r
-\r
- try{\r
- PCAPanel pcaPanel = new PCAPanel(viewport, null);\r
- JInternalFrame frame = new JInternalFrame();\r
- frame.setContentPane(pcaPanel);\r
- Desktop.addInternalFrame(frame, "Principal component analysis", 400, 400);\r
- }catch(java.lang.OutOfMemoryError ex)\r
- {\r
- JOptionPane.showInternalMessageDialog(this, "Too many sequences selected\nfor Principal Component Analysis!!",\r
- "Out of memory", JOptionPane.WARNING_MESSAGE);\r
- }\r
-\r
-\r
- }\r
-\r
- public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- NewTreePanel("AV", "PID", "Average distance tree using PID");\r
- }\r
-\r
- public void neighbourTreeMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- NewTreePanel("NJ", "PID", "Neighbour joining tree using PID");\r
- }\r
-\r
-\r
- protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- NewTreePanel("NJ", "BL", "Neighbour joining tree using BLOSUM62");\r
- }\r
-\r
- protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- NewTreePanel("AV", "BL", "Average distance tree using BLOSUM62PID");\r
- }\r
-\r
- void NewTreePanel(String type, String pwType, String title)\r
- {\r
- //are the sequences aligned?\r
- if(!viewport.alignment.isAligned())\r
- {\r
- JOptionPane.showMessageDialog(Desktop.desktop, "The sequences must be aligned before creating a tree.",\r
- "Sequences not aligned", JOptionPane.WARNING_MESSAGE);\r
- return;\r
- }\r
-\r
- TreePanel tp=null;\r
- if (viewport.getSelectionGroup() != null && viewport.getSelectionGroup().getSize() > 3)\r
- {\r
- tp = new TreePanel(viewport, viewport.getSelectionGroup().sequences,type, pwType,\r
- 0, viewport.alignment.getWidth());\r
- }\r
- else\r
- {\r
- tp = new TreePanel(viewport, viewport.getAlignment().getSequences(),\r
- type, pwType, 0, viewport.alignment.getWidth());\r
- }\r
-\r
- Desktop.addInternalFrame(tp, title, 600, 500);\r
- }\r
-\r
-\r
-\r
-\r
- public void clustalAlignMenuItem_actionPerformed(ActionEvent e)\r
- {\r
- JInternalFrame frame = new JInternalFrame();\r
- ClustalThread ct = new ClustalThread(frame);\r
- Thread t = new Thread(ct);\r
- t.start();\r
- frame.setContentPane(ct);\r
- Desktop.addInternalFrame(frame, title, 300, 80);\r