X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=498489d1902f15837bdebb04123fa04720363233;hb=df1c58f9669c477db082016aa919d6c6cc9da071;hp=0884d44cc7cb7478ff870526901e10f1eb16d357;hpb=b7f7c7acc0afabdf3a6162c237094b860968219b;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index 0884d44..498489d 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -44,6 +44,7 @@ public class SequenceFetcher database.addItem("EMBL"); database.addItem("EMBLCDS"); database.addItem("PDB"); + database.addItem("PFAM"); try { @@ -64,8 +65,7 @@ public class SequenceFetcher private String getFrameTitle() { - return ( (alignFrame == null) ? "New " : "Additional ") + - "Sequence Fetcher (WSDBfetch@EBI)"; + return ( (alignFrame == null) ? "New " : "Additional ") + "Sequence Fetcher"; } private void jbInit() @@ -142,7 +142,6 @@ public class SequenceFetcher public void ok_actionPerformed(ActionEvent e) { - frame.setTitle("Sequence Fetcher (WSDBfetch@EBI) - Fetching Sequence..."); database.setEnabled(false); textfield.setEnabled(false); ok.setEnabled(false); @@ -158,7 +157,6 @@ public class SequenceFetcher textfield.setEnabled(true); ok.setEnabled(true); close.setEnabled(true); - frame.setTitle(getFrameTitle()); } public void run() @@ -196,7 +194,7 @@ public class SequenceFetcher for (int i = 0; i < reply.length; i++) result.append(reply[i] + "\n"); - parseResult(result.toString()); + parseResult(result.toString(), null); } } else if (database.getSelectedItem().equals("PDB")) @@ -212,15 +210,29 @@ public class SequenceFetcher if (result.length()>0) - parseResult(result.toString()); + parseResult(result.toString(), null); + } + else if( database.getSelectedItem().equals("PFAM")) + { + try{ + result.append(new FastaFile( + "http://www.sanger.ac.uk/cgi-bin/Pfam/getalignment.pl?format=fal&acc=" + + textfield.getText().toUpperCase(), "URL").print() + ); + + if(result.length()>0) + parseResult( result.toString(), textfield.getText().toUpperCase() ); + + }catch(java.io.IOException ex) + { result = null; } } if (result == null || result.length() == 0) showErrorMessage("Error retrieving " + textfield.getText() + " from " + database.getSelectedItem()); - else - textfield.setText(""); + resetDialog(); + return; } void getUniprotFile(String id) @@ -260,7 +272,7 @@ public class SequenceFetcher } //Then read in the features and apply them to the dataset - SequenceI[] sequence = parseResult(result.toString()); + SequenceI[] sequence = parseResult(result.toString(), null); for (int i = 0; i < entries.size(); i++) { UniprotEntry entry = (UniprotEntry) entries.elementAt(i); @@ -324,23 +336,28 @@ public class SequenceFetcher return result; } - SequenceI[] parseResult(String result) + SequenceI[] parseResult(String result, String title) { String format = IdentifyFile.Identify(result, "Paste"); SequenceI[] sequences = null; if (FormatAdapter.formats.contains(format)) { - sequences = new FormatAdapter().readFile(result.toString(), "Paste", - format); + sequences = null; + try{ sequences = new FormatAdapter().readFile(result.toString(), "Paste", + format);} + catch(Exception ex){} + if (sequences != null && sequences.length > 0) { if (alignFrame == null) { AlignFrame af = new AlignFrame(new Alignment(sequences)); af.currentFileFormat = format; + if(title==null) + title = "Retrieved from " + database.getSelectedItem(); Desktop.addInternalFrame(af, - "Retrieved from " + database.getSelectedItem(), + title, AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT); af.statusBar.setText("Successfully pasted alignment file"); @@ -358,7 +375,7 @@ public class SequenceFetcher alignFrame.viewport.alignment.addSequence(sequences[i]); //////////////////////////// - //Datset needs extension; + //Dataset needs extension; ///////////////////////////// Sequence ds = new Sequence(sequences[i].getName(), AlignSeq.extractGaps("-. ", @@ -433,9 +450,11 @@ public class SequenceFetcher void showErrorMessage(String error) { + resetDialog(); JOptionPane.showInternalMessageDialog(Desktop.desktop, error, "Error Retrieving Data", JOptionPane.WARNING_MESSAGE); + return; } }