Merge branch 'JAL-1164_disorderforselection' into Release_2_8_1_Branch
authorJim Procter <jprocter@compbio.dundee.ac.uk>
Fri, 11 Oct 2013 11:24:08 +0000 (12:24 +0100)
committerJim Procter <jprocter@compbio.dundee.ac.uk>
Fri, 11 Oct 2013 11:24:08 +0000 (12:24 +0100)
Conflicts:
src/jalview/api/AlignViewportI.java
src/jalview/ws/jws2/JabawsAlignCalcWorker.java

src/jalview/datamodel/Alignment.java
src/jalview/datamodel/SequenceCollectionI.java
src/jalview/datamodel/SequenceGroup.java
src/jalview/datamodel/SequenceI.java
src/jalview/ws/jws2/AADisorderClient.java
src/jalview/ws/jws2/JabawsAlignCalcWorker.java
src/jalview/ws/jws2/JabawsCalcWorker.java

index 7b545c4..70663aa 100755 (executable)
@@ -1488,4 +1488,13 @@ public class Alignment implements AlignmentI
      hasRNAStructure = true;
    }
  }
+ @Override
+public int getEndRes()
+{
+  return getWidth()-1;
+}@Override
+public int getStartRes()
+{
+  return 0;
+}
 }
index c5cee01..f0d7284 100644 (file)
@@ -29,4 +29,16 @@ public interface SequenceCollectionI
 
   int getWidth();
 
+  /** 
+  * @return the first column included in this collection. Runs from 0<=i<N_cols
+  */
+  int getStartRes();
+  
+
+  /**
+   * 
+   * @return the last column in this collection. Runs from 0<=i<N_cols
+   */
+  int getEndRes();
+
 }
index 5fcd2bf..9ed3a53 100755 (executable)
@@ -612,9 +612,9 @@ public class SequenceGroup implements AnnotatedCollectionI
   }
 
   /**
-   * DOCUMENT ME!
    * 
-   * @return DOCUMENT ME!
+   * 
+   * @return the first column selected by this group. Runs from 0<=i<N_cols
    */
   public int getStartRes()
   {
@@ -622,9 +622,8 @@ public class SequenceGroup implements AnnotatedCollectionI
   }
 
   /**
-   * DOCUMENT ME!
    * 
-   * @return DOCUMENT ME!
+   * @return the groups last selected column. Runs from 0<=i<N_cols
    */
   public int getEndRes()
   {
index aded6e8..5f9b049 100755 (executable)
@@ -97,21 +97,21 @@ public interface SequenceI
   public String getSequenceAsString();
 
   /**
-   * get a range on the seuqence as a string
+   * get a range on the sequence as a string
    * 
    * @param start
-   *          DOCUMENT ME!
+   *          position relative to start of sequence including gaps (from 0)
    * @param end
-   *          DOCUMENT ME!
+   *          position relative to start of sequence including gaps (from 0)
    * 
-   * @return DOCUMENT ME!
+   * @return String containing all gap and symbols in specified range
    */
   public String getSequenceAsString(int start, int end);
 
   /**
-   * DOCUMENT ME!
+   * Get the sequence as a character array
    * 
-   * @return DOCUMENT ME!
+   * @return seqeunce and any gaps
    */
   public char[] getSequence();
 
index 8db1358..41f0fd5 100644 (file)
@@ -181,7 +181,7 @@ public class AADisorderClient extends JabawsCalcWorker implements
       {
         boolean sameGroup = false;
         SequenceI dseq, aseq, seq = seqNames.get(seqId);
-        int base = seq.getStart() - 1;
+        int base = seq.findPosition(start)-1;
         aseq = seq;
         while ((dseq = seq).getDatasetSequence() != null)
         {
index baafc8a..d500406 100644 (file)
@@ -20,14 +20,12 @@ package jalview.ws.jws2;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.gui.AlignFrame;
-import jalview.workers.AlignCalcWorker;
 import jalview.ws.jws2.dm.AAConSettings;
 import jalview.ws.jws2.jabaws2.Jws2Instance;
 import jalview.ws.params.WsParamSetI;
 
 import java.util.List;
 
-import compbio.data.msa.SequenceAnnotation;
 import compbio.metadata.Argument;
 
 public abstract class JabawsAlignCalcWorker extends JabawsCalcWorker
@@ -48,9 +46,6 @@ public abstract class JabawsAlignCalcWorker extends JabawsCalcWorker
     super(service, alignFrame, preset, paramset);
   }
 
-
-
-
   /**
    * Recover any existing parameters for this service 
    */
index 4a78209..8515dbc 100644 (file)
@@ -23,6 +23,7 @@ import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
@@ -126,7 +127,7 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker
         return;
       }
       List<compbio.data.sequence.FastaSequence> seqs = getInputSequences(alignViewport
-              .getAlignment());
+              .getAlignment(), bySequence ? alignViewport.getSelectionGroup() : null);
   
       if (seqs == null)
       {
@@ -349,19 +350,24 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker
   protected Map<String, SequenceI> seqNames;
   protected boolean[] gapMap;
   int realw;
+  int start,end;
 
-  public List<FastaSequence> getInputSequences(AlignmentI alignment)
+  public List<FastaSequence> getInputSequences(AlignmentI alignment, AnnotatedCollectionI inputSeqs)
   {
     if (alignment == null || alignment.getWidth() <= 0
             || alignment.getSequences() == null
-            // || (alignedSeqs && !alignment.isAligned() && !submitGaps)
             || alignment.isNucleotide() ? !nucleotidesAllowed
             : !proteinAllowed)
     {
       return null;
     }
+    if (inputSeqs==null || inputSeqs.getWidth()<=0 || inputSeqs.getSequences()==null || inputSeqs.getSequences().size()<1)
+    {
+      inputSeqs = alignment;
+    }
+    
     List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<compbio.data.sequence.FastaSequence>();
-  
+
     int minlen = 10;
     int ln = -1;
     if (bySequence)
@@ -369,9 +375,13 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker
       seqNames = new HashMap<String, SequenceI>();
     }
     gapMap = new boolean[0];
+    start=inputSeqs.getStartRes();
+    end=inputSeqs.getEndRes();
+    
+
     for (SequenceI sq : ((List<SequenceI>) alignment.getSequences()))
     {
-      if (sq.getEnd() - sq.getStart() > minlen - 1)
+      if (bySequence ? sq.findPosition(end+1) -sq.findPosition(start+1) > minlen - 1 : sq.getEnd() - sq.getStart() > minlen - 1)
       {
         String newname = SeqsetUtils.unique_name(seqs.size() + 1);
         // make new input sequence with or without gaps
@@ -403,7 +413,7 @@ public abstract class JabawsCalcWorker extends AlignCalcWorker
         {
           seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,
                   AlignSeq.extractGaps(jalview.util.Comparison.GapChars,
-                          sq.getSequenceAsString())));
+                          sq.getSequenceAsString(start,end+1))));
         }
         if (seq.getSequence().length() > ln)
         {