Merge branch 'develop' into bug/JAL-147scrollWrappedView
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 3 Jul 2017 14:39:09 +0000 (15:39 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 3 Jul 2017 14:39:09 +0000 (15:39 +0100)
src/jalview/appletgui/AlignViewport.java
src/jalview/datamodel/HiddenColumns.java
src/jalview/gui/AlignViewport.java
src/jalview/viewmodel/AlignmentViewport.java
test/jalview/datamodel/HiddenColumnsTest.java
test/jalview/gui/AlignViewportTest.java
utils/InstallAnywhere/Jalview.iap_xml

index 73cd9e9..1d2c4bc 100644 (file)
@@ -26,6 +26,7 @@ import jalview.api.FeatureSettingsModelI;
 import jalview.bin.JalviewLite;
 import jalview.commands.CommandI;
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.Annotation;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SearchResults;
@@ -229,43 +230,6 @@ public class AlignViewport extends AlignmentViewport implements
 
   }
 
-  /**
-   * get the consensus sequence as displayed under the PID consensus annotation
-   * row.
-   * 
-   * @return consensus sequence as a new sequence object
-   */
-  public SequenceI getConsensusSeq()
-  {
-    if (consensus == null)
-    {
-      updateConsensus(null);
-    }
-    if (consensus == null)
-    {
-      return null;
-    }
-    StringBuilder seqs = new StringBuilder(consensus.annotations.length);
-    for (int i = 0; i < consensus.annotations.length; i++)
-    {
-      if (consensus.annotations[i] != null)
-      {
-        if (consensus.annotations[i].description.charAt(0) == '[')
-        {
-          seqs.append(consensus.annotations[i].description.charAt(1));
-        }
-        else
-        {
-          seqs.append(consensus.annotations[i].displayCharacter);
-        }
-      }
-    }
-    SequenceI sq = new Sequence("Consensus", seqs.toString());
-    sq.setDescription("Percentage Identity Consensus "
-            + ((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));
-    return sq;
-  }
-
   java.awt.Frame nullFrame;
 
   protected FeatureSettings featureSettings = null;
index d34b316..169b0a4 100644 (file)
@@ -1407,8 +1407,7 @@ public class HiddenColumns
     // recover mapping between sequence's non-gap positions and positions
     // mapping to view.
     pruneDeletions(ShiftList.parseMap(origseq.gapMap()));
-    int[] viscontigs = al.getHiddenColumns().getVisibleContigs(0,
-            profileseq.getLength());
+    int[] viscontigs = getVisibleContigs(0, profileseq.getLength());
     int spos = 0;
     int offset = 0;
 
index 288f261..835371f 100644 (file)
@@ -34,13 +34,11 @@ import jalview.commands.CommandI;
 import jalview.datamodel.AlignedCodonFrame;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.Annotation;
 import jalview.datamodel.ColumnSelection;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.PDBEntry;
 import jalview.datamodel.SearchResults;
 import jalview.datamodel.SearchResultsI;
-import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.ResidueShader;
@@ -312,47 +310,6 @@ public class AlignViewport extends AlignmentViewport implements
     }
   }
 
-  /**
-   * get the consensus sequence as displayed under the PID consensus annotation
-   * row.
-   * 
-   * @return consensus sequence as a new sequence object
-   */
-  public SequenceI getConsensusSeq()
-  {
-    if (consensus == null)
-    {
-      updateConsensus(null);
-    }
-    if (consensus == null)
-    {
-      return null;
-    }
-    StringBuffer seqs = new StringBuffer();
-    for (int i = 0; i < consensus.annotations.length; i++)
-    {
-      Annotation annotation = consensus.annotations[i];
-      if (annotation != null)
-      {
-        String description = annotation.description;
-        if (description != null && description.startsWith("["))
-        {
-          // consensus is a tie - just pick the first one
-          seqs.append(description.charAt(1));
-        }
-        else
-        {
-          seqs.append(annotation.displayCharacter);
-        }
-      }
-    }
-
-    SequenceI sq = new Sequence("Consensus", seqs.toString());
-    sq.setDescription("Percentage Identity Consensus "
-            + ((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));
-    return sq;
-  }
-
   boolean validCharWidth;
 
   /**
index 0cdba1e..1e094fd 100644 (file)
@@ -2871,4 +2871,45 @@ public abstract class AlignmentViewport implements AlignViewportI,
   {
     return searchResults;
   }
+
+  /**
+   * get the consensus sequence as displayed under the PID consensus annotation
+   * row.
+   * 
+   * @return consensus sequence as a new sequence object
+   */
+  public SequenceI getConsensusSeq()
+  {
+    if (consensus == null)
+    {
+      updateConsensus(null);
+    }
+    if (consensus == null)
+    {
+      return null;
+    }
+    StringBuffer seqs = new StringBuffer();
+    for (int i = 0; i < consensus.annotations.length; i++)
+    {
+      Annotation annotation = consensus.annotations[i];
+      if (annotation != null)
+      {
+        String description = annotation.description;
+        if (description != null && description.startsWith("["))
+        {
+          // consensus is a tie - just pick the first one
+          seqs.append(description.charAt(1));
+        }
+        else
+        {
+          seqs.append(annotation.displayCharacter);
+        }
+      }
+    }
+  
+    SequenceI sq = new Sequence("Consensus", seqs.toString());
+    sq.setDescription("Percentage Identity Consensus "
+            + ((ignoreGapsInConsensusCalculation) ? " without gaps" : ""));
+    return sq;
+  }
 }
index fbb354b..7c88d71 100644 (file)
@@ -689,4 +689,46 @@ public class HiddenColumnsTest
     assertNull(result);
   }
 
+  @Test(groups = "Functional")
+  public void testPropagateInsertions()
+  {
+    // create an alignment with no gaps - this will be the profile seq and other
+    // JPRED seqs
+    AlignmentGenerator gen = new AlignmentGenerator(false);
+    AlignmentI al = gen.generate(20, 10, 1234, 0, 0);
+
+    // get the profileseq
+    SequenceI profileseq = al.getSequenceAt(0);
+    SequenceI gappedseq = new Sequence(profileseq);
+    gappedseq.insertCharAt(5, al.getGapCharacter());
+    gappedseq.insertCharAt(6, al.getGapCharacter());
+    gappedseq.insertCharAt(7, al.getGapCharacter());
+    gappedseq.insertCharAt(8, al.getGapCharacter());
+    
+    // create an alignment view with the gapped sequence
+    SequenceI[] seqs = new SequenceI[1];
+    seqs[0] = gappedseq;
+    AlignmentI newal = new Alignment(seqs);
+    HiddenColumns hidden = new HiddenColumns();
+    hidden.hideColumns(15, 17);
+
+    AlignmentView view = new AlignmentView(newal, hidden, null, true, false,
+            false);
+
+    // confirm that original contigs are as expected
+    int[] oldcontigs = hidden.getVisibleContigs(0, 20);
+    int[] testcontigs = { 0, 14, 18, 19 };
+    assertTrue(Arrays.equals(oldcontigs, testcontigs));
+            
+    // propagate insertions
+    HiddenColumns result = HiddenColumns.propagateInsertions(profileseq, al,
+            view);
+
+    // confirm that the contigs have changed to account for the gaps
+    int[] newcontigs = result.getVisibleContigs(0, 20);
+    testcontigs[1] = 10;
+    testcontigs[2] = 14;
+    assertTrue(Arrays.equals(newcontigs, testcontigs));
+    
+  }
 }
index 4660842..346d74d 100644 (file)
@@ -450,6 +450,23 @@ public class AlignViewportTest
     }
     ;
     Assert.assertEquals(c, 1, "Expected to find one occupancy row.");
+  }
 
+  @Test(groups = { "Functional" })
+  public void testGetConsensusSeq()
+  {
+    /*
+     * A-C
+     * A-C
+     * A-D
+     * --D
+     * consensus expected to be A-C
+     */
+    String fasta = ">s1\nA-C\n>s2\nA-C\n>s3\nA-D\n>s4\n--D\n";
+    AlignFrame af = new FileLoader().LoadFileWaitTillLoaded(fasta,
+            DataSourceType.PASTE);
+    AlignViewport testme = af.getViewport();
+    SequenceI cons = testme.getConsensusSeq();
+    assertEquals("A-C", cons.getSequenceAsString());
   }
 }
index 3cfc2bb..557700a 100755 (executable)
@@ -1453,7 +1453,7 @@ and any path to a file to save to the file]]></string>
                                                                <string><![CDATA[664]]></string>
                                                        </property>
                                                        <property name="sourceName">
-                                                               <string><![CDATA[min-jabaws-client-2.1.0.jar]]></string>
+                                                               <string><![CDATA[jabaws-min-client-2.2.0.jar]]></string>
                                                        </property>
                                                        <property name="overrideUnixPermissions">
                                                                <boolean>false</boolean>