Use Selection group to define sequence range to fetch features
authoramwaterhouse <Andrew Waterhouse>
Wed, 19 Jul 2006 10:39:38 +0000 (10:39 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 19 Jul 2006 10:39:38 +0000 (10:39 +0000)
src/jalview/io/DasSequenceFeatureFetcher.java

index 70af276..20ae27c 100755 (executable)
@@ -94,13 +94,14 @@ public class DasSequenceFeatureFetcher implements Runnable
     int refCount = 0;\r
     for(int i=0; i<sequences.length; i++)\r
     {\r
-      if(sequences[i].getDBRef()!=null)\r
+      Vector dbref = sequences[i].getDBRef();\r
+      if(dbref!=null)\r
       {\r
-        for(int j=0; j<sequences[i].getDBRef().size(); j++)\r
+        for(int j=0; j<dbref.size(); j++)\r
         {\r
-          System.out.println(sequences[i].getDBRef().elementAt(j)\r
+          System.out.println(dbref.elementAt(j)\r
                              +" "+jalview.datamodel.DBRefSource.UNIPROT);\r
-          if(sequences[i].getDBRef().elementAt(j)\r
+          if(dbref.elementAt(j)\r
              .equals(jalview.datamodel.DBRefSource.UNIPROT))\r
           {\r
             System.out.println("got a match");\r
@@ -210,7 +211,8 @@ public class DasSequenceFeatureFetcher implements Runnable
   protected void createFeatureFetcher(final SequenceI seq,\r
                                       final String sourceUrl,\r
                                       String id,\r
-                                      String nickname)  {\r
+                                      String nickname)\r
+  {\r
          //////////////\r
          /// fetch DAS features\r
           final Das1Source source = new Das1Source();\r
@@ -220,13 +222,27 @@ public class DasSequenceFeatureFetcher implements Runnable
 \r
           Cache.log.debug("new Das Feature Fetcher for " + id + " querying " +\r
                           sourceUrl);\r
+\r
           if (id != null && id.length() > 0)\r
           {\r
             setThreadsRunning(+1);\r
 \r
+            int start=seq.getStart(), end = seq.getEnd();\r
+\r
+            if(af.getViewport().getSelectionGroup()!=null)\r
+            {\r
+              SequenceI tmp = af.getViewport().getAlignment().findName(seq.getName());\r
+              start = tmp.findPosition(\r
+              af.getViewport().getSelectionGroup().getStartRes()\r
+                  );\r
+\r
+              end = tmp.findPosition(\r
+                 af.getViewport().getSelectionGroup().getEndRes()\r
+                 );\r
+            }\r
+\r
             FeatureThread fetcher = new FeatureThread(id\r
-               +  ":" + seq.getStart() + "," +seq.getEnd()\r
-                 , source);\r
+               +  ":" + start + "," + end, source);\r
 \r
             fetcher.addFeatureListener(new FeatureListener()\r
             {\r