public DasSourceBrowser()\r
{\r
registryURL.setText(jalview.bin.Cache.getDefault("DAS_REGISTRY_URL",\r
- "http://www.spice-3d.org/dasregistry/das1/sources") );\r
+ "http://das.sanger.ac.uk/registry/das1/sources/") );\r
\r
setSelectedFromProperties();\r
\r
authority.addElement("Any");\r
type.addElement("Any");\r
label.addElement("Any");\r
- label.addElement("NOT IMPLEMENTED YET");\r
- filter3.setEnabled(false);\r
\r
for (int i = 0; i < sources.length; i++)\r
{\r
{\r
Vector selectedSources = dassourceBrowser.getSelectedSources();\r
\r
- int uniprotCount = 0;\r
- for(int i=0; i<selectedSources.size(); i++)\r
+ SequenceI [] dataset, seqs ;\r
+ int iSize;\r
+\r
+ if(af.getViewport().getSelectionGroup()!=null\r
+ && af.getViewport().getSelectionGroup().getSize(false)>0)\r
{\r
- DasSource source = (DasSource)selectedSources.elementAt(i);\r
- DasCoordinateSystem [] coords = source.getCoordinateSystem();\r
- for(int c=0; c<coords.length; c++)\r
- {\r
- if (coords[c].getName().equalsIgnoreCase("UniProt"))\r
- {\r
- uniprotCount++;\r
- break;\r
- }\r
- }\r
+ iSize = af.getViewport().getSelectionGroup().getSize(false);\r
+ dataset = new SequenceI[iSize];\r
+ seqs = af.getViewport().getSelectionGroup().\r
+ getSequencesInOrder(\r
+ af.getViewport().getAlignment());\r
+ }\r
+ else\r
+ {\r
+ iSize = af.getViewport().getAlignment().getHeight();\r
+ seqs = af.getViewport().getAlignment().getSequencesArray();\r
}\r
\r
- System.out.println("User selection is "\r
- + (((float)uniprotCount/(float)selectedSources.size())*100)\r
- +" % Uniprot");\r
+ dataset = new SequenceI[iSize];\r
+ for (int i = 0; i < iSize; i++)\r
+ {\r
+ dataset[i] = seqs[i].getDatasetSequence();\r
+ }\r
\r
- new jalview.io.DasSequenceFeatureFetcher(af.getViewport().getAlignment(),\r
- af,\r
- selectedSources);\r
+ new jalview.io.DasSequenceFeatureFetcher(\r
+ dataset,\r
+ af,\r
+ selectedSources);\r
\r
af.getViewport().setShowSequenceFeatures(true);\r
af.showSeqFeatures.setSelected(true);\r
CutAndPasteTransfer output = new CutAndPasteTransfer();\r
StringBuffer sbuffer = new StringBuffer();\r
boolean uniprotFlag = false;\r
+ boolean running = false;\r
\r
public DBRefFetcher()\r
{}\r
unknownSequences = new ArrayList();\r
this.align = align;\r
this.dataset = align.getDataset();\r
+ }\r
\r
+ public boolean fetchDBRefs(boolean waitTillFinished)\r
+ {\r
Thread thread = new Thread(this);\r
thread.start();\r
+ running = true;\r
+\r
+ if(waitTillFinished)\r
+ {\r
+ while(running)\r
+ {\r
+ try{\r
+ Thread.sleep(500);\r
+ }catch(Exception ex){}\r
+ }\r
+ }\r
+\r
+ return true;\r
}\r
\r
/**\r
{\r
long startTime = System.currentTimeMillis();\r
af.setProgressBar("Fetching db refs", startTime);\r
+ running = true;\r
\r
try\r
{\r
af.setProgressBar("DBRef search completed", startTime);\r
// promptBeforeBlast();\r
\r
+ running = false;\r
+\r
}\r
\r
\r
\r
\r
import jalview.bin.Cache;\r
+import org.biojava.dasobert.dasregistry.DasCoordinateSystem;\r
\r
+import javax.swing.*;\r
\r
/**\r
* DOCUMENT ME!\r
* @param ap DOCUMENT ME!\r
*/\r
public DasSequenceFeatureFetcher(SequenceI [] sequences,\r
- AlignFrame af,\r
+ final AlignFrame af,\r
Vector selectedSources)\r
{\r
this.selectedSources = selectedSources;\r
this.sequences = sequences;\r
this.af = af;\r
\r
+ int uniprotCount = 0;\r
+ for (int i = 0; i < selectedSources.size(); i++)\r
+ {\r
+ DasSource source = (DasSource) selectedSources.elementAt(i);\r
+ DasCoordinateSystem[] coords = source.getCoordinateSystem();\r
+ for (int c = 0; c < coords.length; c++)\r
+ {\r
+ if (coords[c].getName().equalsIgnoreCase("UniProt"))\r
+ {\r
+ uniprotCount++;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+\r
+ int refCount = 0;\r
+ for(int i=0; i<sequences.length; i++)\r
+ {\r
+ if(sequences[i].getDBRef()!=null)\r
+ {\r
+ for(int j=0; j<sequences[i].getDBRef().size(); j++)\r
+ {\r
+ System.out.println(sequences[i].getDBRef().elementAt(j)\r
+ +" "+jalview.datamodel.DBRefSource.UNIPROT);\r
+ if(sequences[i].getDBRef().elementAt(j)\r
+ .equals(jalview.datamodel.DBRefSource.UNIPROT))\r
+ {\r
+ System.out.println("got a match");\r
+ refCount++;\r
+ break;\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+ System.out.println(refCount+" "+uniprotCount+" "+sequences.length);\r
+ if(refCount<sequences.length && uniprotCount>0)\r
+ {\r
+\r
+ int reply = JOptionPane.showInternalConfirmDialog(Desktop.desktop,\r
+ "Do you want Jalview to find\n"\r
+ +"Uniprot Accession ids for given sequence names?",\r
+ "Find Uniprot Accession Ids",\r
+ JOptionPane.YES_NO_OPTION,\r
+ JOptionPane.QUESTION_MESSAGE);\r
+\r
+ if(reply == JOptionPane.YES_OPTION)\r
+ {\r
+ new DBRefFetcher(\r
+ af.getViewport().getAlignment(), af).fetchDBRefs(true);\r
+\r
+ }\r
+ }\r
+\r
+ System.out.println("User selection is "\r
+ +\r
+ ( ( (float) uniprotCount / (float) selectedSources.size()) * 100)\r
+ + " % Uniprot, and "+refCount+" / " +sequences.length+" have uniprot accession");\r
+\r
+\r
Thread thread = new Thread(this);\r
thread.start();\r
}\r
DasSourceReaderImpl reader = new DasSourceReaderImpl();\r
\r
String registryURL =jalview.bin.Cache.getDefault("DAS_REGISTRY_URL",\r
- "http://www.spice-3d.org/dasregistry/das1/sources"\r
+ "http://das.sanger.ac.uk/registry/das1/sources/"\r
);\r
\r
try\r