\r
frame = new JInternalFrame();\r
frame.setContentPane(this);\r
- Desktop.addInternalFrame(frame, "Sequence Fetcher", 390, 120);\r
+ if(System.getProperty("os.name").startsWith("Mac"))\r
+ Desktop.addInternalFrame(frame, "Sequence Fetcher", 390, 135);\r
+ else\r
+ Desktop.addInternalFrame(frame, "Sequence Fetcher", 390, 120);\r
}\r
\r
private void jbInit()\r
\r
public void ok_actionPerformed(ActionEvent e)\r
{\r
- frame.setTitle("Sequence Fetcher - Fetching Sequence from " +\r
- database.getSelectedItem());\r
+ frame.setTitle("WSDBfetch@EBI Sequence Fetcher - Fetching Sequence...");\r
database.setEnabled(false);\r
textfield.setEnabled(false);\r
ok.setEnabled(false);\r
\r
Thread worker = new Thread(this);\r
worker.start();\r
-\r
}\r
\r
public void run()\r
{\r
+ String error = null;\r
StringBuffer result = new StringBuffer();\r
- if (database.getSelectedItem().equals("Uniprot")\r
- || database.getSelectedItem().equals("EMBL")\r
- || database.getSelectedItem().equals("EMBLCDS"))\r
- {\r
- EBIFetchClient dbFetch = new EBIFetchClient();\r
- String[] reply = dbFetch.fetchData(\r
- database.getSelectedItem().toString().toLowerCase(\r
- ) + ":" + textfield.getText(),\r
- "fasta", "raw");\r
-\r
- for (int i = 0; i < reply.length; i++)\r
- result.append(reply[i]+"\n");\r
- }\r
- else if (database.getSelectedItem().equals("PDB"))\r
- {\r
- EBIFetchClient ebi = new EBIFetchClient();\r
- String[] reply = ebi.fetchData("pdb:" + textfield.getText(), "pdb",\r
- "raw");\r
- PDBfile pdbfile = new PDBfile(reply);\r
- for (int i = 0; i < pdbfile.chains.size(); i++)\r
+ if (database.getSelectedItem().equals("Uniprot")\r
+ || database.getSelectedItem().equals("EMBL")\r
+ || database.getSelectedItem().equals("EMBLCDS"))\r
{\r
- result.append("\n>" +\r
- ( (PDBChain) pdbfile.chains.elementAt(i)).sequence.getName() +\r
- "\n"\r
- +\r
- ( (PDBChain) pdbfile.chains.elementAt(i)).sequence.\r
- getSequence());\r
+ EBIFetchClient dbFetch = new EBIFetchClient();\r
+ String[] reply = dbFetch.fetchData(\r
+ database.getSelectedItem().toString().toLowerCase(\r
+ ) + ":" + textfield.getText(),\r
+ "fasta", "raw");\r
+\r
+ for (int i = 0; i < reply.length; i++)\r
+ result.append(reply[i] + "\n");\r
+ }\r
+ else if (database.getSelectedItem().equals("PDB"))\r
+ {\r
+ String id = textfield.getText().toUpperCase();\r
+ String chain=null;\r
+ if(id.indexOf(":")>-1)\r
+ {\r
+ chain = id.substring(id.indexOf(":")+1);\r
+ id = id.substring(0,id.indexOf(":"));\r
+ System.out.println(id+" "+chain);\r
+ }\r
+\r
+ EBIFetchClient ebi = new EBIFetchClient();\r
+ String[] reply = ebi.fetchData("pdb:" + id, "pdb",\r
+ "raw");\r
+ try{\r
+ PDBfile pdbfile = new PDBfile(reply);\r
+ for (int i = 0; i < pdbfile.chains.size(); i++)\r
+ {\r
+ if( chain == null || ((PDBChain)pdbfile.chains.elementAt(i)).id.toUpperCase().equals(chain))\r
+ result.append("\n>PDB|" + id+"|"+\r
+ ( (PDBChain) pdbfile.chains.elementAt(i)).sequence.\r
+ getName() +\r
+ "\n"\r
+ +\r
+ ( (PDBChain) pdbfile.chains.elementAt(i)).sequence.\r
+ getSequence());\r
+ }\r
+ }catch(Exception ex)// Problem parsing PDB file\r
+ {\r
+ error = "Error retrieving "+textfield.getText()+" from "+database.getSelectedItem();\r
+ }\r
}\r
- }\r
\r
- if (result.length() > 0)\r
+ if (result.length() > 0 && error==null)\r
{\r
String format = IdentifyFile.Identify(result.toString(), "Paste");\r
SequenceI[] sequences = null;\r
if (FormatAdapter.formats.contains(format))\r
{\r
sequences = new FormatAdapter().readFile(result.toString(), "Paste", format);\r
- if (sequences != null)\r
+ if (sequences != null && sequences.length>0)\r
{\r
if(alignFrame==null)\r
{\r
}\r
\r
}\r
+ else\r
+ error = "Error retrieving "+textfield.getText()+" from "+database.getSelectedItem();\r
+\r
+\r
+\r
}\r
}\r
\r
+ if(error!=null)\r
+ showErrorMessage(error);\r
+\r
database.setEnabled(true);\r
textfield.setEnabled(true);\r
ok.setEnabled(true);\r
cancel.setEnabled(true);\r
- frame.setTitle("Sequence Fetcher");\r
+ frame.setTitle("WSDBfetch@EBI Sequence Fetcher");\r
+ }\r
+\r
+ void showErrorMessage(String error)\r
+ {\r
+ JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+ error, "Error Retrieving Data", JOptionPane.WARNING_MESSAGE);\r
}\r
}\r
\r