Merge branch 'develop' into features/JAL-2446NCList
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 May 2017 13:28:18 +0000 (14:28 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Thu, 18 May 2017 13:28:18 +0000 (14:28 +0100)
examples/groovy/colourConserved.groovy [new file with mode: 0644]
examples/groovy/colourUnconserved.groovy [new file with mode: 0644]
help/help.jhm
help/helpTOC.xml
help/html/features/groovy.html
help/html/features/preferences.html
help/html/releases.html
help/html/webServices/urllinks.html
help/html/whatsNew.html

diff --git a/examples/groovy/colourConserved.groovy b/examples/groovy/colourConserved.groovy
new file mode 100644 (file)
index 0000000..4a15922
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+import java.awt.Color
+import jalview.schemes.ColourSchemeI
+import jalview.schemes.ColourSchemes
+import jalview.datamodel.AnnotatedCollectionI
+import jalview.datamodel.SequenceI
+import jalview.datamodel.SequenceCollectionI
+import jalview.util.Comparison
+
+/*
+ * Closure that defines a colour scheme where fully conserved residues are red,
+ * partly conserved (match consensus but < 100% consensus) are yellow,
+ * unconserved and gaps are white
+ */
+def conserved
+conserved = { ->
+  [
+    /*
+     * name shown in the colour menu
+     */
+    getSchemeName: { -> 'Conserved' },
+    
+    /*
+     * to make a new instance for each alignment view
+     */
+    getInstance: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> conserved() },
+    
+    /*
+     * method only needed if colour scheme has to recalculate
+     * values when an alignment is modified
+     */
+    alignmentChanged: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> },
+    
+    /*
+     * determine colour for a residue at an aligned position of a
+     * sequence, given consensus residue(s) for the column and the
+     * consensus percentage identity score for the column
+     */
+    findColour: { char res, int col, SequenceI seq, String consensus, float pid -> 
+        if ('a' <= res && res <= 'z')
+        {
+            res -= ('a' - 'A');
+        }
+        if (Comparison.isGap(res) || !consensus.contains(String.valueOf(res)))
+        {
+            Color.white
+        } else if (pid < 100)
+        {
+            Color.yellow
+        } else
+        {
+            Color.red
+        }
+    },
+    
+    /*
+     * true means applicable to nucleotide or peptide data
+     */
+    isApplicableTo: {AnnotatedCollectionI coll -> true},
+    
+    /*
+     * simple colour schemes are those that depend on the residue
+     * only (these are also available to colour structure viewers)
+     */
+    isSimple: { false }
+ ] as ColourSchemeI
+}
+
+ColourSchemes.instance.registerColourScheme(conserved())
diff --git a/examples/groovy/colourUnconserved.groovy b/examples/groovy/colourUnconserved.groovy
new file mode 100644 (file)
index 0000000..68730f3
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+import java.awt.Color
+import jalview.schemes.ColourSchemeI
+import jalview.schemes.ColourSchemes
+import jalview.datamodel.AnnotatedCollectionI
+import jalview.datamodel.SequenceI
+import jalview.datamodel.SequenceCollectionI
+import jalview.util.Comparison
+
+/*
+ * Closure that defines a colour scheme where non-consensus residues are pink,
+ * other residues (and gaps) are white
+ */
+def unconserved
+unconserved = { ->
+  [
+    /*
+     * name shown in the colour menu
+     */
+    getSchemeName: { -> 'Unconserved' },
+    
+    /*
+     * to make a new instance for each alignment view
+     */
+    getInstance: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> unconserved() },
+    
+    /*
+     * method only needed if colour scheme has to recalculate
+     * values when an alignment is modified
+     */
+    alignmentChanged: { AnnotatedCollectionI coll, Map<SequenceI, SequenceCollectionI> map -> },
+    
+    /*
+     * determine colour for a residue at an aligned position of a
+     * sequence, given consensus residue(s) for the column and the
+     * consensus percentage identity score for the column
+     */
+    findColour: { char res, int col, SequenceI seq, String consensus, float pid -> 
+        if ('a' <= res && res <= 'z')
+        {
+            res -= ('a' - 'A');
+        }
+        if (Comparison.isGap(res) || consensus.contains(String.valueOf(res)))
+        {
+            Color.white
+        } else 
+        {
+            Color.pink
+        }
+    },
+    
+    /*
+     * true means applicable to nucleotide or peptide data
+     */
+    isApplicableTo: {AnnotatedCollectionI coll -> true},
+    
+    /*
+     * simple colour schemes are those that depend on the residue
+     * only (these are also available to colour structure viewers)
+     */
+    isSimple: { false }
+ ] as ColourSchemeI
+}
+
+ColourSchemes.instance.registerColourScheme(unconserved())
index ac8fc3f..54cce2a 100755 (executable)
@@ -22,7 +22,7 @@
    <mapID target="home" url="html/index.html" />
    
    <mapID target="new" url="html/whatsNew.html"/>
-   <mapID target="release" url="html/releases.html#Jalview.2.10.1"/>
+   <mapID target="release" url="html/releases.html#Jalview.2.10.2"/>
    <mapID target="alannotation" url="html/features/annotation.html"/>
    <mapID target="keys" url="html/keys.html"/>
    <mapID target="newkeys" url="html/features/newkeystrokes.html"/>
    
    <mapID target="memory" url="html/memory.html" />
    <mapID target="groovy" url="html/features/groovy.html" />
+   <mapID target="groovy.colours" url="html/features/groovy.html#groovyColours" />
    <mapID target="groovy.featurescounter" url="html/groovy/featuresCounter.html" />
    <mapID target="privacy" url="html/privacy.html" />
    <mapID target="vamsas" url="html/vamsas/index.html"/>
index db47351..a8aadf5 100755 (executable)
                        <tocitem text="What's new" target="new" expand="true">
                                <tocitem text="Latest Release Notes" target="release"/>
                                <tocitem text="Groovy Features Counter example" target="groovy.featurescounter"/>
+                               <tocitem text="Custom Colourschemes in Groovy" target="groovy.colours"/>
                                <tocitem text="Omit hidden regions in Overview" target="overview"/>
-                               <tocitem text="Split Frame View" target="splitframe.mirrorfonts" />
+                               <tocitem text="identifers.org for URL Links" target="linksprefs" />
+                               <tocitem text="New features in Split Frame View" target="splitframe.mirrorfonts" />
                </tocitem>
                
                <tocitem text="Editing Alignments" target="edit" />
                </tocitem>
                <tocitem text="Viewing RNA structures" target="varna" expand="false"/>
                <tocitem text="Opening URLs from Jalview" target="urllinks" expand="true">
-                   <tocitem text="Configuring URL Links" target="linkspref" />
+                   <tocitem text="Configuring URL Links" target="linksprefs" />
                </tocitem>
                <tocitem text="VAMSAS Data Exchange" target="vamsas">
                        <!-- what can Jalview share with other apps -->
index d9bf76e..ead4436 100644 (file)
@@ -111,6 +111,15 @@ print currentAlFrame.getTitle();</pre>
       href="../groovy/featuresCounter.html">featuresCounter.groovy</a>
     example for more information.
   </p>
+  <p><a name="groovyColours"/>
+    <em>Creating custom colourschemes</em><br/>
+    You can create your own alignment colourschemes with a groovy script. We've provided two examples:<br/>
+    <ul>
+    <li><a href="http://www.jalview.org/examples/groovy/colourConserved.groovy">colourConserved.groovy</a> creates an 'Conserved' colourscheme - similar to the classic <a href="http://www.nrbsc.org/old/gfx/genedoc/">GeneDOC</a> shading model.</li>
+    <li><a href="http://www.jalview.org/examples/groovy/colourUnconserved.groovy">colourUnconserved.groovy</a> creates an 'Unconserved' colourscheme, where any unconserved residues are coloured pink.</li>
+    
+    </ul>
+  </p>
 
 </body>
 </html>
index 6e8d3e4..acd7ba6 100755 (executable)
     The <em>Custom only</em> button limits the entries in the table to
     just those you have configured yourself <em>via</em> the <em>Edit
       Links</em> buttons. Press <em>Show all</em> to clear any filters.
-  <p>
+  </p>
+  <p>The links table is prepoulated with persistent URLs for many common
+    bioinformatics databases (since 2.10.2). These links are downloaded by Jalview from
+    the <em>identifiers.org</em> website, and the names and URLs are not
+    user editable.
     <a href="../webServices/urllinks.html#urllinks">Read more about configuring
       URL links.</a>
   </p>
index 6f44b3d..2f983fa 100755 (executable)
  -->
 <head>
 <title>Release History</title>
+<style>
+ul {
+  /* remove bullets, narrower indent */
+  list-style-type: none;
+  margin:0;
+  padding-left: 10px;
+  padding-bottom: 4px;
+}
+
+li {
+  /* separate the items from eachother */
+   margin-left: -3px;
+   padding-bottom: 3px;
+   padding-left: 6px;   
+}
+li:before {
+  /*   doesnt get processed in javahelp */
+  content: '\00b7 ';
+  padding: 3px;
+  margin-left: -14px;
+}
+
+</style>
 </head>
 <body>
   <p>
     <tr>
       <td width="60" nowrap>
         <div align="center">
+          <strong><a name="Jalview.2.10.2">2.10.2</a><br />
+            <em>30/5/2017</em></strong>
+        </div>
+      </td>
+      <td><div align="left">
+          <em>General</em>
+          <ul>
+          <li><!-- JAL-2360,JAL-2371, -->More robust colours and shader model for alignments and groups</li>
+          <li><!--  JAL-384 -->Custom shading schemes created via groovy scripts</li>
+          <li><!-- JAL-2314, -->Test suite expanded and debugged (over 940 functional unit tests, only 3 failing due to ongoing work!)
+          </ul>
+          <em>Application</em>
+          <ul>
+          <li><!--  --></li>
+          <li><!-- JAL-1596 -->Faster Chimera/Jalview communication by file-based command exchange</li>  
+          <li><!-- JAL-2316, -->URLs for viewing database cross-references provided by identifiers.org and the EMBL-EBI's MIRIAM DB</li>
+          
+          </ul>
+          <em>Applet</em>
+          <ul>
+          <li><!--  --></li>
+          </ul>
+          </div></td><td><div align="left">
+          <em>General</em>
+          <ul>
+            <li>
+              <!-- JAL-2398, -->Fixed incorrect value in BLOSUM 62 score
+              matrix - C->R should be '3'<br />Old matrix restored with
+              this one-line groovy script:<br />jalview.schemes.ResidueProperties.BLOSUM62[4][1]=3
+            </li>
+            <li>
+              <!-- JAL-2397 -->Fixed Jalview's treatment of gaps in PCA
+              and substitution matrix based Tree calculations.<br />In
+              earlier versions of Jalview, gaps matching gaps were
+              penalised, and gaps matching non-gaps penalised even more.
+              In the PCA calculation, gaps were actually treated as
+              non-gaps - so different costs were applied, which mean't
+              Jalview's PCAs were different to those produced by
+              SeqSpace.<br />Jalview now treats gaps in the same way as
+              SeqSpace (ie it scores them as 0). To restore pre-2.10.2
+              behaviour<br />
+              jalview.viewmodel.PCAModel.scoreGapAsAny=true // for
+              2.10.1 mode<br />
+              jalview.viewmodel.PCAModel.scoreGapAsAny=false // to
+              restore 2.10.2 mode
+            </li>
+            <li><!-- JAL-2346 -->Reopening Colour by annotation dialog doesn't reselect a specific sequence's associated annotation after it was used for colouring a view</li>
+          <li><!-- JAL-2430 -->Hidden regions in alignment views are not coloured in linked structure views</li>
+          <li><!-- JAL-2419 -->Current selection lost if popup menu opened on a region of alignment without groups</li>
+          <li><!-- JAL-2374 -->Popup menu not always shown for regions of an alignment with overlapping groups</li> 
+          <li><!-- JAL-2310 -->Finder double counts if both a sequence's name and description match</li>
+          <li><!-- JAL-2370 -->Hiding column selection containing two hidden regions results in incorrect hidden regions</li>
+          <li><!-- JAL-2377 -->PCA calculation could hang when generating output report when working with highly redundant alignments</li>
+          <li><!-- JAL-2365 -->Cannot configure feature colours with lightGray or darkGray via features file</li>
+          <li><!-- JAL-2421 -->Overview window visible region moves erratically when hidden rows or columns are present</li>
+          <li><!-- JAL-2362 -->Per-residue colourschemes applied via the Structure Viewer's colour menu don't correspond to sequence colouring</li>  
+          <li><!-- JAL-2405 -->Protein specific colours only offered in colour and group colour menu for protein alignments</li>
+          <li><!-- JAL-2386 -->'Apply to all groups' setting when changing colour does not apply Conservation slider value to all groups</li>
+          <li><!-- JAL-2385 -->Colour threshold slider doesn't update to reflect currently selected view or group's shading thresholds</li>
+          <li><!-- JAL-2373 -->Percentage identity and conservation menu items do not show a tick or allow shading to be disabled</li>
+          <li><!-- JAL-2385 -->Conservation shading or PID threshold lost when base colourscheme changed if slider not visible</li> 
+          </ul>
+          <em>Application</em>
+          <ul>
+          <li><!-- JAL-2401 -->Easier creation of colours for all 'Lower case' residues (button in colourscheme editor debugged and new documentation and tooltips added)</li> 
+          <li><!-- JAL-2399-->Text colour threshold's 'Cancel' button doesn't restore group-specific text colour thresholds</li>
+          <li><!-- JAL-2243 -->Feature settings panel does not update as new features are added to alignment</li> 
+          <li><!-- JAL-2436 -->Structure viewer's View -> Colour By view selection menu changes colours of alignment views</li>
+          <li><!--  JAL-2366 -->Proxy server address and port always appear enabled in Preferences->Connections</li>
+          <li><!-- JAL-2426 -->Spurious exceptions in console raised from alignment calculation workers after alignment has been closed</li>
+          <li><!-- JAL-1608 -->Typo in selection popup menu - Create groups now 'Create Group'</li>
+          <li><!-- JAL-1608 -->CMD/CTRL and G or Shift G for Create/Undefine group doesn't always work</li>
+          <li><!-- JAL-2464 -->Tree Viewer's Print Dialog doesn't get shown again after pressing 'Cancel'</li>
+          <li><!--  JAL-2461 -->DAS registry not found exceptions removed from console output</li>
+          <li><!--  JAL-2383 -->Above PID colour threshold not recovered when alignment view imported from project</li> 
+          
+          </ul>
+          <em>Applet</em>
+          <ul>
+          <li><!-- JAL-2442 -->Features not rendered as transparent on overview or linked structure view</li> 
+          <li><!--  JAL-2372 -->Colour group by conservation doesn't work (since 2.8)</li>
+          </ul>
+          <em>New Known Issues</em>
+          <ul>
+          <li></li>
+          </ul>
+          
+          </div>
+    <tr>
+      <td width="60" nowrap>
+        <div align="center">
           <strong><a name="Jalview.2.10.1">2.10.1</a><br />
             <em>29/11/2016</em></strong>
         </div>
               <!--JAL-2332 -->Attempting to view structure for Hen
               lysozyme results in a PDB Client error dialog box
             </li>
+            <li>
+            <!-- JAL-2319 -->Structure View's mapping report switched ranges for PDB and sequence for SIFTS</li> 
+            <!-- JAL-2319 -->SIFTS 'Not_Observed' residues mapped to non-existant coordindate data</li> 
           </ul>
 <!--           <em>New Known Issues</em>
           <ul>
index da5d7dd..56469e5 100644 (file)
     <em>Adding additional links</em><br /> You can configure your own
     links via the Jalview <a href="../features/preferences.html#links"><strong>Preferences</strong></a>
     dialog. Jalview also provides persistent URLs for many common
-    bioinformatics databases. These links are downloaded by Jalview from
+    bioinformatics databases (since 2.10.2). These links are downloaded by Jalview from
     the <em>identifiers.org</em> website, and the names and URLs are not
     user editable.
   </p>
   <p>
-    <em>Creating your own URL link</em> URL links are specified as a
+    <em>Creating your own URL link</em> <br/>URL links are specified as a
     template containing special tokens that Jalview will replace with
     the Sequence ID or Database Accession of the sequence when you
     double click on its ID or open it's <strong>Link</strong> submenu.
     Swissprot = http://www.expasy.org/uniprot/$SEQUENCE_ID$ <br> </pre>
   <p>
     Links will also be made for any database cross references associated
-    with the sequence where the database name exactly matches a URL link
-    name. In this case, the $DB_ACCESSION$ string will be replaced with
+    with the sequence for any link templates whose name begins with the database name.
+    In this case, the $DB_ACCESSION$ string will be replaced with
     the accession string for the database cross-reference, rather than
     the sequence ID for the sequence (<em>since Jalview 2.10.1</em>).
+    <br /> <em>For example: to create a link for viewing MACiE records
+      from PDB Entries, create a new custom link entry with the name
+      "PDB in MACiE", and link URL template:
+      <pre>https://www.ebi.ac.uk/thornton-srv/databases/cgi-bin/MACiE/index.pl?query_pdb=1&amp;pdb=$DBACCESSION$</pre>
+      <br />The sequence ID popup menu for seuqences with a PDB entry
+      will now show 'PDB in MACiE|1xyz..' links in the <strong>links</strong>
+      submenu.
+    </em>
   </p>
   <p>
     <strong><a name="warning">Warning dialog about updating
index d1d141d..0734271 100755 (executable)
 </head>
 <body>
   <p>
-    <strong>What's new in Jalview 2.10.1 ?</strong>
+    <strong>What's new in Jalview 2.10.2 ?</strong>
   </p>
   <p>
-    Jalview 2.10.1 was released on 29th November 2016. Full details are
-    in the <a href="releases.html#Jalview.2.10.1">Jalview 2.10.1
-      Release Notes</a>, but the highlights are below. This is also the
-    first release to include contributions from Kira Mour&atilde;o, who
-    joined Jalview's core development team in October 2016.
-  </p>
+    Full details about Jalview 2.10.2 are in the <a href="releases.html#Jalview.2.10.2">
+      Release Notes</a>, but the highlights are below.</p>
   <ul>
-    <li><strong>More memory efficient</strong><br />We've slimmed
-      down the consensus analysis data structures used by Jalview so
-      even wider alignments can be worked with.</li>
-    <li><strong>Select highlighted region</strong><br />Press 'B'
-      or use the new menu option in the alignment window's Select menu
-      to mark columns containing highlighted regions generated from
-      structure selections, mouse-overs, or resulting from a Find
-      operation.</li>
-    <li><strong>New custom link mechanism for opening URLs
-        for database cross references.</strong><br /> If you have customised URL
-      links in your Jalview preferences, then you may already have seen
-      the <a href="#warning"> warning dialog (see below).</a></li>
-    <li><strong>New command line export option for BioJS
-        MSAviewer</strong><br />A number of small bugs with the HTML export
-      functions from the Jalview desktop were also fixed.</li>
-    <li><strong>Small but significant changes to the
-        physicochemical properties and consensus calculations</strong><br />Threonine
-      is no longer considered a non-hydrophobic residue in the protein
-      conservation calculation, and minor bugs addressed in PID and
-      consensus colouring.</li>
-    <li><strong>Correct display of disulphide bond
-        features</strong><br /> In linked structure views, Jalview would
-      highlight all residues between in addition to the two linked
-      cysteines. The 'select columns by feature' function in the feature
-      settings would also select all intermediate columns.
+  <li>
+  <li>New preferences for <a href="webServices/urllinks.html">opening web pages for database cross-references</a> via the UK Elixir's EMBL-EBI's MIRIAM database and identifiers.org services.</li>
   </ul>
 
-  <p>
-    <strong><a name="warning">Warning dialog about updating
-        your configured URL links</a></strong><br /> In the desktop prior to Jalview
-    2.10.1, the only way to configure custom links for a particular
-    database cross-reference for a sequence was to give it a name that <em>exactly</em>
-    matched the database source, and a regular expression for filtering
-    out any spurious matches generated when the custom linked was tested
-    against the Sequence's ID string. Since the introduction of the
-    $DB_ACCESSION$ token, however, $SEQUENCE_ID$ will not be used for
-    database cross-reference accession strings, and if you have custom
-    links configured, Jalview will raise a warning message so let you
-    know that you may need to update your links to use $DB_ACCESSION$.
-  </p>
 </body>
 </html>