Merge branch 'develop' into documentation/JAL-2418_release2102
authorJim Procter <jprocter@issues.jalview.org>
Tue, 15 Aug 2017 13:54:20 +0000 (14:54 +0100)
committerJim Procter <jprocter@issues.jalview.org>
Tue, 15 Aug 2017 13:54:20 +0000 (14:54 +0100)
build.xml
help/html/releases.html
src/jalview/gui/Jalview2XML.java
src/jalview/ws/jws2/AAConClient.java
src/jalview/ws/jws2/AbstractJabaCalcWorker.java

index 8d27614..6ed340d 100755 (executable)
--- a/build.xml
+++ b/build.xml
           <offline_allowed />
         </information>
         <resources>
-          <j2se version="${j2sev}" initial_heap_size="${inih}" max_heap_size="${maxh}" />
+          <j2se version="9+" />
+          <j2se version="7,8" initial-heap-size="${inih}" max-heap-size="${maxh}" />
           <jar main="true" href="jalview.jar"/>
           <fileset dir="${packageDir}">
             <exclude name="jalview.jar" />
     </presetdef>
 
     <jnlpf toFile="${jnlpFile}" />
-
+    <!-- add a j2se entry for java 9 -->
+    <replace file="${jnlpFile}" value="j2se version=&quot;9+&quot; initial-heap-size=&quot;${inih}&quot; max-heap-size=&quot;${maxh}&quot; java-vm-args=&quot;--add-modules=java.se.ee&quot;">
+          <replacetoken>j2se version="9+"</replacetoken>
+           
+        </replace>
   </target>
 
   <target name="-dofakejnlpfileassoc" depends="-generatejnlpf" if="nojnlpfileassocs">
index e998d99..9117fde 100755 (executable)
@@ -206,6 +206,9 @@ li:before {
               <!-- JAL-2549 -->Updated JABAWS client to v2.2
             </li>
             <li>
+              <!-- JAL-2335 -->Filter non-standard amino acids and nucleotides when submitting to AACon and other MSA Analysis services
+            </li>
+            <li>
               <!-- JAL-2316, -->URLs for viewing database
               cross-references provided by identifiers.org and the
               EMBL-EBI's MIRIAM DB
index d472ef8..ffbe6a1 100644 (file)
@@ -4489,8 +4489,8 @@ public class Jalview2XML
     }
 
     af.viewport.setGlobalColourScheme(cs);
-    af.viewport.getResidueShading().setThreshold(
-            view.getPidThreshold(), true);
+    af.viewport.getResidueShading().setThreshold(view.getPidThreshold(),
+            view.getIgnoreGapsinConsensus());
     af.viewport.getResidueShading().setConsensus(
             af.viewport.getSequenceConsensusHash());
     af.viewport.setColourAppliesToAllGroups(false);
index b9abb84..327864a 100644 (file)
@@ -48,10 +48,12 @@ public class AAConClient extends JabawsCalcWorker
     alignedSeqs = true;
     nucleotidesAllowed = false;
     proteinAllowed = true;
+    filterNonStandardResidues = true;
     gapMap = new boolean[0];
     initViewportParams();
   }
 
+  @Override
   public String getServiceActionText()
   {
     return "calculating Amino acid consensus using AACon service";
@@ -62,13 +64,14 @@ public class AAConClient extends JabawsCalcWorker
    * current visualization settings.
    */
 
+  @Override
   public void updateResultAnnotation(boolean immediate)
   {
     if (immediate || !calcMan.isWorking(this) && scoremanager != null)
     {
       Map<String, TreeSet<Score>> scoremap = scoremanager.asMap();
       int alWidth = alignViewport.getAlignment().getWidth();
-      ArrayList<AlignmentAnnotation> ourAnnot = new ArrayList<AlignmentAnnotation>();
+      ArrayList<AlignmentAnnotation> ourAnnot = new ArrayList<>();
       for (String score : scoremap.keySet())
       {
         Set<Score> scores = scoremap.get(score);
index b33df0c..f2795d2 100644 (file)
@@ -30,6 +30,7 @@ import jalview.datamodel.AnnotatedCollectionI;
 import jalview.datamodel.SequenceI;
 import jalview.gui.AlignFrame;
 import jalview.gui.IProgressIndicator;
+import jalview.schemes.ResidueProperties;
 import jalview.workers.AlignCalcWorker;
 import jalview.ws.jws2.dm.AAConSettings;
 import jalview.ws.jws2.dm.JabaWsParamSet;
@@ -63,6 +64,11 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
   protected boolean submitGaps = true;
 
   /**
+   * by default, we filter out non-standard residues before submission
+   */
+  protected boolean filterNonStandardResidues = true;
+
+  /**
    * Recover any existing parameters for this service
    */
   protected void initViewportParams()
@@ -113,7 +119,7 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
 
   public List<Option> getJabaArguments()
   {
-    List<Option> newargs = new ArrayList<Option>();
+    List<Option> newargs = new ArrayList<>();
     if (preset != null && preset instanceof JabaWsParamSet)
     {
       newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
@@ -450,19 +456,19 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
       inputSeqs = alignment;
     }
 
-    List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<compbio.data.sequence.FastaSequence>();
+    List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<>();
 
     int minlen = 10;
     int ln = -1;
     if (bySequence)
     {
-      seqNames = new HashMap<String, SequenceI>();
+      seqNames = new HashMap<>();
     }
     gapMap = new boolean[0];
     start = inputSeqs.getStartRes();
     end = inputSeqs.getEndRes();
 
-    for (SequenceI sq : ((List<SequenceI>) inputSeqs.getSequences()))
+    for (SequenceI sq : (inputSeqs.getSequences()))
     {
       if (bySequence ? sq.findPosition(end + 1)
               - sq.findPosition(start + 1) > minlen - 1 : sq.getEnd()
@@ -491,7 +497,14 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker
           }
           for (int apos : sq.gapMap())
           {
-            gapMap[apos] = true; // aligned.
+            char sqc = sq.getCharAt(apos);
+            if (!filterNonStandardResidues
+                    || (sq.isProtein() ? ResidueProperties.aaIndex[sqc] < 20
+                            : ResidueProperties.nucleotideIndex[sqc] < 5))
+            {
+              gapMap[apos] = true; // aligned and real amino acid residue
+            }
+            ;
           }
         }
         else