Introduced DbRefEntry to DasSourceCoordinateSystem check to only call sources for...
[jalview.git] / src / jalview / io / DasSequenceFeatureFetcher.java
index 99a2b70..8f104c5 100755 (executable)
@@ -251,7 +251,10 @@ public class DasSequenceFeatureFetcher implements Runnable
       while (seqIndex < sequences.size())\r
       {\r
           Sequence sequence = (Sequence) sequences.get(seqIndex);\r
-          Vector uprefs = jalview.util.DBRefUtils.selectRefs(sequence.getDBRef(), new String[]  {"DBREF"});\r
+          Vector uprefs = jalview.util.DBRefUtils.selectRefs(sequence.getDBRef(),\r
+              new String[]  {\r
+              jalview.datamodel.DBRefSource.PDB,\r
+              jalview.datamodel.DBRefSource.UNIPROT});\r
 \r
           for(int sourceIndex=0; sourceIndex<selectedSources.size(); sourceIndex++)\r
           {\r
@@ -262,11 +265,21 @@ public class DasSequenceFeatureFetcher implements Runnable
               // we know the id for this entry, so don't note its ID in the unknownSequences list\r
               for (int j = 0, k = uprefs.size(); j < k; j++)\r
               {\r
-\r
-                createFeatureFetcher(sequence,\r
-                                     dasSource.getUrl(),\r
-                                     ( (DBRefEntry) uprefs.get(j)).getAccessionId(),\r
-                                     dasSource.getNickname());\r
+                // Will have to pass any mapping information to the fetcher - the start/end for the DBRefEntry may not be the same as the sequence's start/end\r
+                org.biojava.services.das.registry.DasCoordinateSystem cs[] = dasSource.getCoordinateSystem();\r
+                for (int l=0; l<cs.length; l++) {\r
+                  if (jalview.util.DBRefUtils.isDasCoordinateSystem(cs[l].getName(), (DBRefEntry)\r
+                      uprefs.get(j)))\r
+                  {\r
+                    Cache.log.debug("Launched fetcher for coordinate system " +\r
+                                    cs[l].getName());\r
+                    createFeatureFetcher(sequence,\r
+                                         dasSource.getUrl(),\r
+                                         ( (DBRefEntry) uprefs.get(j)).\r
+                                         getAccessionId(),\r
+                                         dasSource.getNickname());\r
+                  }\r
+                }\r
               }\r
             }\r
             else\r