Merge branch 'develop' into releases/Release_2_11_2_Branch
authorJim Procter <j.procter@dundee.ac.uk>
Mon, 8 Aug 2022 16:54:11 +0000 (17:54 +0100)
committerJim Procter <j.procter@dundee.ac.uk>
Mon, 8 Aug 2022 16:54:11 +0000 (17:54 +0100)
17 files changed:
help/help/help.jhm
help/help/helpTOC.xml
help/help/html/colourSchemes/gecos-blossom.html [new file with mode: 0755]
help/help/html/colourSchemes/gecos-flower.html [new file with mode: 0755]
help/help/html/colourSchemes/gecos-ocean.html [new file with mode: 0755]
help/help/html/colourSchemes/gecos-sunset.html [new file with mode: 0755]
help/help/html/colourSchemes/index.html
help/help/html/menus/alignmentMenu.html
help/help/html/menus/alwcolour.html
help/markdown/releases/release-2_11_2_4.md
help/markdown/whatsnew/whatsnew-2_11_2_4.md
src/jalview/schemes/BlossomColourScheme.java [new file with mode: 0755]
src/jalview/schemes/FlowerColourScheme.java [new file with mode: 0755]
src/jalview/schemes/JalviewColourScheme.java
src/jalview/schemes/OceanColourScheme.java [new file with mode: 0755]
src/jalview/schemes/ResidueProperties.java
src/jalview/schemes/SunsetColourScheme.java [new file with mode: 0755]

index 6b06d36..1710bbc 100755 (executable)
    <mapID target="colours.clustal" url="html/colourSchemes/clustal.html"/>
    <mapID target="colours.zappo" url="html/colourSchemes/zappo.html" />
    <mapID target="colours.taylor" url="html/colourSchemes/taylor.html" />
+   <mapID target="colours.gecos-flower" url="html/colourSchemes/gecos-flower.html" />
+   <mapID target="colours.gecos-blossom" url="html/colourSchemes/gecos-blossom.html" />
+   <mapID target="colours.gecos-sunset" url="html/colourSchemes/gecos-sunset.html" />
+   <mapID target="colours.gecos-ocean" url="html/colourSchemes/gecos-ocean.html" />
    <mapID target="colours.hydro" url="html/colourSchemes/hydrophobic.html" />
    <mapID target="colours.helix" url="html/colourSchemes/helix.html" />
    <mapID target="colours.strand" url="html/colourSchemes/strand.html" />
index a9b9788..1b4156e 100755 (executable)
                        <tocitem text="ClustalX" target="colours.clustal" />
                        <tocitem text="Zappo" target="colours.zappo" />
                        <tocitem text="Taylor" target="colours.taylor" />
+                       <tocitem text="gecos:flower" target="colours.gecos-flower" />
+                       <tocitem text="gecos:blossom" target="colours.gecos-blossom" />
+                       <tocitem text="gecos:sunset" target="colours.gecos-sunset" />
+                       <tocitem text="gecos:ocean" target="colours.gecos-ocean" />
                        <tocitem text="Hydrophobicity" target="colours.hydro" />
                        <tocitem text="Helix propensity" target="colours.helix" />
                        <tocitem text="Strand propensity" target="colours.strand" />
diff --git a/help/help/html/colourSchemes/gecos-blossom.html b/help/help/html/colourSchemes/gecos-blossom.html
new file mode 100755 (executable)
index 0000000..08ca8a6
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<!--
+ * 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.
+ -->
+<head>
+<title>Blossom Colour Scheme</title>
+<style type="text/css">
+<!--
+td {
+       text-align: center;
+}
+-->
+</style>
+</head>
+
+<body>
+  <p>
+    <strong><a name="gecos-blossom">Blossom</a></strong>
+  </p>
+  <p>
+  This colour scheme was generated by the gecos software. See<br/>
+  Kunzmann, P., Mayer, B.E. & Hamacher, K. Substitution matrix based color schemes for sequence alignment visualization. <em>BMC Bioinformatics</em> <strong>21</strong>, 209 (2020). https://doi.org/10.1186/s12859-020-3526-6<br/>
+  and https://gecos.biotite-python.org/ .<br/>
+  Gecos sets perceptual differences in the colour scheme according to differences in the substitution matrix.
+  </p>
+  <p>
+    blossom is a light color scheme with high contrast, based on BLOSUM62.
+  </p>
+  <div align="center">
+    <table width="400" border="1">
+
+<tr>
+    <td bgcolor="#8bc4b4">A</td>
+    <td bgcolor="#0893fe">C</td>
+    <td bgcolor="#5fa505">D</td>
+    <td bgcolor="#dbb501">E</td>
+</tr>
+<tr>
+    <td bgcolor="#f74fa8">F</td>
+    <td bgcolor="#00d382">G</td>
+    <td bgcolor="#ff5701">H</td>
+    <td bgcolor="#9abaf3">I</td>
+</tr>
+<tr>
+    <td bgcolor="#fea527">K</td>
+    <td bgcolor="#cda5dc">L</td>
+    <td bgcolor="#f5a1b8">M</td>
+    <td bgcolor="#b5c206">N</td>
+</tr>
+<tr>
+    <td bgcolor="#10d631">P</td>
+    <td bgcolor="#bf8527">Q</td>
+    <td bgcolor="#fc9502">R</td>
+    <td bgcolor="#7e9d59">S</td>
+</tr>
+<tr>
+    <td bgcolor="#00a29c">T</td>
+    <td bgcolor="#87c0e4">V</td>
+    <td bgcolor="#fe08fb">W</td>
+    <td bgcolor="#ff4e7a">Y</td>
+</tr>
+
+    </table>
+  </div>
+</body>
+</html>
diff --git a/help/help/html/colourSchemes/gecos-flower.html b/help/help/html/colourSchemes/gecos-flower.html
new file mode 100755 (executable)
index 0000000..94452e8
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<!--
+ * 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.
+ -->
+<head>
+<title>Flower Colour Scheme</title>
+<style type="text/css">
+<!--
+td {
+       text-align: center;
+}
+-->
+</style>
+</head>
+
+<body>
+  <p>
+    <strong><a name="gecos-flower">Flower</a></strong>
+  </p>
+  <p>
+  This colour scheme was generated by the gecos software. See<br/>
+  Kunzmann, P., Mayer, B.E. & Hamacher, K. Substitution matrix based color schemes for sequence alignment visualization. <em>BMC Bioinformatics</em> <strong>21</strong>, 209 (2020). https://doi.org/10.1186/s12859-020-3526-6<br/>
+  and https://gecos.biotite-python.org/ .<br/>
+  Gecos sets perceptual differences in the colour scheme according to differences in the substitution matrix.
+  </p>
+  <p>
+    flower is a light color scheme, based on BLOSUM62.
+  </p>
+  <div align="center">
+    <table width="400" border="1">
+
+<tr>
+    <td bgcolor="#b18a51">A</td>
+    <td bgcolor="#ff5701">C</td>
+    <td bgcolor="#01a578">D</td>
+    <td bgcolor="#2da0a1">E</td>
+</tr>
+<tr>
+    <td bgcolor="#fa559d">F</td>
+    <td bgcolor="#b1c23c">G</td>
+    <td bgcolor="#0194f9">H</td>
+    <td bgcolor="#f27663">I</td>
+</tr>
+<tr>
+    <td bgcolor="#7fc3d7">K</td>
+    <td bgcolor="#df6e75">L</td>
+    <td bgcolor="#fe9daf">M</td>
+    <td bgcolor="#0bcec6">N</td>
+</tr>
+<tr>
+    <td bgcolor="#4fa32a">P</td>
+    <td bgcolor="#7295ae">Q</td>
+    <td bgcolor="#83bff1">R</td>
+    <td bgcolor="#b4bd9b">S</td>
+</tr>
+<tr>
+    <td bgcolor="#d2b576">T</td>
+    <td bgcolor="#fd997b">V</td>
+    <td bgcolor="#ff2ded">W</td>
+    <td bgcolor="#c96ecf">Y</td>
+</tr>
+
+    </table>
+  </div>
+</body>
+</html>
diff --git a/help/help/html/colourSchemes/gecos-ocean.html b/help/help/html/colourSchemes/gecos-ocean.html
new file mode 100755 (executable)
index 0000000..5407bdc
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<!--
+ * 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.
+ -->
+<head>
+<title>Ocean Colour Scheme</title>
+<style type="text/css">
+<!--
+td {
+       text-align: center;
+}
+-->
+</style>
+</head>
+
+<body>
+  <p>
+    <strong><a name="gecos-ocean">Ocean</a></strong>
+  </p>
+  <p>
+  This colour scheme was generated by the gecos software. See<br/>
+  Kunzmann, P., Mayer, B.E. & Hamacher, K. Substitution matrix based color schemes for sequence alignment visualization. <em>BMC Bioinformatics</em> <strong>21</strong>, 209 (2020). https://doi.org/10.1186/s12859-020-3526-6<br/>
+  and https://gecos.biotite-python.org/ .<br/>
+  Gecos sets perceptual differences in the colour scheme according to differences in the substitution matrix.
+  </p>
+  <p>
+    ocean is a blue shifted, light color scheme, based on BLOSUM62.
+  </p>
+  <div align="center">
+    <table width="400" border="1">
+
+<tr>
+    <td bgcolor="#c6ca9b">A</td>
+    <td bgcolor="#c68136">C</td>
+    <td bgcolor="#4cdfa1">D</td>
+    <td bgcolor="#60dac9">E</td>
+</tr>
+<tr>
+    <td bgcolor="#ab88ae">F</td>
+    <td bgcolor="#33a551">G</td>
+    <td bgcolor="#00cffe">H</td>
+    <td bgcolor="#f2baaa">I</td>
+</tr>
+<tr>
+    <td bgcolor="#40a090">K</td>
+    <td bgcolor="#bb8a83">L</td>
+    <td bgcolor="#a48b88">M</td>
+    <td bgcolor="#0adfc3">N</td>
+</tr>
+<tr>
+    <td bgcolor="#afd365">P</td>
+    <td bgcolor="#8bd3d1">Q</td>
+    <td bgcolor="#0ca0a8">R</td>
+    <td bgcolor="#6d9b74">S</td>
+</tr>
+<tr>
+    <td bgcolor="#8d9566">T</td>
+    <td bgcolor="#e9bea4">V</td>
+    <td bgcolor="#758aee">W</td>
+    <td bgcolor="#bac3fc">Y</td>
+</tr>
+
+    </table>
+  </div>
+</body>
+</html>
diff --git a/help/help/html/colourSchemes/gecos-sunset.html b/help/help/html/colourSchemes/gecos-sunset.html
new file mode 100755 (executable)
index 0000000..82eedb4
--- /dev/null
@@ -0,0 +1,83 @@
+<html>
+<!--
+ * 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.
+ -->
+<head>
+<title>Sunset Colour Scheme</title>
+<style type="text/css">
+<!--
+td {
+       text-align: center;
+}
+-->
+</style>
+</head>
+
+<body>
+  <p>
+    <strong><a name="gecos-sunset">Sunset</a></strong>
+  </p>
+  <p>
+  This colour scheme was generated by the gecos software. See<br/>
+  Kunzmann, P., Mayer, B.E. & Hamacher, K. Substitution matrix based color schemes for sequence alignment visualization. <em>BMC Bioinformatics</em> <strong>21</strong>, 209 (2020). https://doi.org/10.1186/s12859-020-3526-6<br/>
+  and https://gecos.biotite-python.org/ .<br/>
+  Gecos sets perceptual differences in the colour scheme according to differences in the substitution matrix.
+  </p>
+  <p>
+    sunset is a red-green color vision deficiency adapated color scheme, based on BLOSUM62.
+  </p>
+  <div align="center">
+    <table width="400" border="1">
+
+<tr>
+    <td bgcolor="#fea0fd">A</td>
+    <td bgcolor="#fc0cfe">C</td>
+    <td bgcolor="#2e7bbe">D</td>
+    <td bgcolor="#677892">E</td>
+</tr>
+<tr>
+    <td bgcolor="#ff385d">F</td>
+    <td bgcolor="#2799ff">G</td>
+    <td bgcolor="#dbc58e">H</td>
+    <td bgcolor="#fa21a1">I</td>
+</tr>
+<tr>
+    <td bgcolor="#debecc">K</td>
+    <td bgcolor="#e01e82">L</td>
+    <td bgcolor="#d13e7b">M</td>
+    <td bgcolor="#abc8f5">N</td>
+</tr>
+<tr>
+    <td bgcolor="#5766f9">P</td>
+    <td bgcolor="#8c6e81">Q</td>
+    <td bgcolor="#85746a">R</td>
+    <td bgcolor="#e7b4fd">S</td>
+</tr>
+<tr>
+    <td bgcolor="#a658b7">T</td>
+    <td bgcolor="#fe51b8">V</td>
+    <td bgcolor="#ff3701">W</td>
+    <td bgcolor="#cb5339">Y</td>
+</tr>
+
+    </table>
+  </div>
+</body>
+</html>
index f0ae161..672910e 100755 (executable)
@@ -198,6 +198,111 @@ td {
                                                        <td></td>
                                                </tr>
                                                <tr>
+                                                       <td>gecos:flower</td>
+
+                                                       <td bgcolor="#b18a51"></td>
+                                                       <td bgcolor="#83bff1"></td>
+                                                       <td bgcolor="#0bcec6"></td>
+                                                       <td bgcolor="#01a578"></td>
+                                                       <td bgcolor="#ff5701"></td>
+                                                       <td bgcolor="#7295ae"></td>
+                                                       <td bgcolor="#2da0a1"></td>
+                                                       <td bgcolor="#b1c23c"></td>
+                                                       <td bgcolor="#0194f9"></td>
+                                                       <td bgcolor="#f27663"></td>
+                                                       <td bgcolor="#df6e75"></td>
+                                                       <td bgcolor="#7fc3d7"></td>
+                                                       <td bgcolor="#fe9daf"></td>
+                                                       <td bgcolor="#fa559d"></td>
+                                                       <td bgcolor="#4fa32a"></td>
+                                                       <td bgcolor="#b4bd9b"></td>
+                                                       <td bgcolor="#d2b576"></td>
+                                                       <td bgcolor="#ff2ded"></td>
+                                                       <td bgcolor="#c96ecf"></td>
+                                                       <td bgcolor="#fd997b"></td>
+                                                       <td></td>
+                                                       <td></td>
+                                                       <td></td>
+                                               </tr>
+                                               <tr>
+                                                       <td>gecos:blossom</td>
+                                                       <td bgcolor="#8bc4b4"></td>
+                                                       <td bgcolor="#fc9502"></td>
+                                                       <td bgcolor="#b5c206"></td>
+                                                       <td bgcolor="#5fa505"></td>
+                                                       <td bgcolor="#0893fe"></td>
+                                                       <td bgcolor="#bf8527"></td>
+                                                       <td bgcolor="#dbb501"></td>
+                                                       <td bgcolor="#00d382"></td>
+                                                       <td bgcolor="#ff5701"></td>
+                                                       <td bgcolor="#9abaf3"></td>
+                                                       <td bgcolor="#cda5dc"></td>
+                                                       <td bgcolor="#fea527"></td>
+                                                       <td bgcolor="#f5a1b8"></td>
+                                                       <td bgcolor="#f74fa8"></td>
+                                                       <td bgcolor="#10d631"></td>
+                                                       <td bgcolor="#7e9d59"></td>
+                                                       <td bgcolor="#00a29c"></td>
+                                                       <td bgcolor="#fe08fb"></td>
+                                                       <td bgcolor="#ff4e7a"></td>
+                                                       <td bgcolor="#87c0e4"></td>
+                                                       <td></td>
+                                                       <td></td>
+                                                       <td></td>
+                                               </tr>
+                                               <tr>
+                                                       <td>gecos:sunset</td>
+                                                       <td bgcolor="#fea0fd"></td>
+                                                       <td bgcolor="#85746a"></td>
+                                                       <td bgcolor="#abc8f5"></td>
+                                                       <td bgcolor="#2e7bbe"></td>
+                                                       <td bgcolor="#fc0cfe"></td>
+                                                       <td bgcolor="#8c6e81"></td>
+                                                       <td bgcolor="#677892"></td>
+                                                       <td bgcolor="#2799ff"></td>
+                                                       <td bgcolor="#dbc58e"></td>
+                                                       <td bgcolor="#fa21a1"></td>
+                                                       <td bgcolor="#e01e82"></td>
+                                                       <td bgcolor="#debecc"></td>
+                                                       <td bgcolor="#d13e7b"></td>
+                                                       <td bgcolor="#ff385d"></td>
+                                                       <td bgcolor="#5766f9"></td>
+                                                       <td bgcolor="#e7b4fd"></td>
+                                                       <td bgcolor="#a658b7"></td>
+                                                       <td bgcolor="#ff3701"></td>
+                                                       <td bgcolor="#cb5339"></td>
+                                                       <td bgcolor="#fe51b8"></td>
+                                                       <td></td>
+                                                       <td></td>
+                                                       <td></td>
+                                               </tr>
+                                               <tr>
+                                                       <td>gecos:ocean</td>
+                                                       <td bgcolor="#c6ca9b"></td>
+                                                       <td bgcolor="#0ca0a8"></td>
+                                                       <td bgcolor="#0adfc3"></td>
+                                                       <td bgcolor="#4cdfa1"></td>
+                                                       <td bgcolor="#c68136"></td>
+                                                       <td bgcolor="#8bd3d1"></td>
+                                                       <td bgcolor="#60dac9"></td>
+                                                       <td bgcolor="#33a551"></td>
+                                                       <td bgcolor="#00cffe"></td>
+                                                       <td bgcolor="#f2baaa"></td>
+                                                       <td bgcolor="#bb8a83"></td>
+                                                       <td bgcolor="#40a090"></td>
+                                                       <td bgcolor="#a48b88"></td>
+                                                       <td bgcolor="#ab88ae"></td>
+                                                       <td bgcolor="#afd365"></td>
+                                                       <td bgcolor="#6d9b74"></td>
+                                                       <td bgcolor="#8d9566"></td>
+                                                       <td bgcolor="#758aee"></td>
+                                                       <td bgcolor="#bac3fc"></td>
+                                                       <td bgcolor="#e9bea4"></td>
+                                                       <td></td>
+                                                       <td></td>
+                                                       <td></td>
+                                               </tr>
+                                               <tr>
                                                        <td>Hydrophobicity</td>
                                                        <td bgcolor="#ad0052"></td>
                                                        <td bgcolor="#0000ff"></td>
index e26707f..6532933 100755 (executable)
           and the intensity threshold for transition between them. </em></li>
       <li>Colour Scheme options: <strong>None, ClustalX,
           Blosum62 Score, Percentage Identity, Zappo, Taylor,
+         gecos:flower, gecos:blossom, gecos:sunset, gecos:ocean,
           Hydrophobicity, Helix Propensity, Strand Propensity, Turn
           Propensity, Buried Index, Nucleotide, Purine/Pyrimidine, User
           Defined<br>
index 9a96595..0e10f44 100755 (executable)
@@ -38,6 +38,7 @@
         the intensity threshold for transition between them. </em></li>
     <li>Colour Scheme options: <strong>None, ClustalX,
         Blosum62 Score, Percentage Identity, Zappo, Taylor,
+       gecos:flower, gecos:blossom, gecos:sunset, gecos:ocean,
         Hydrophobicity, Helix Propensity, Strand Propensity, Turn
         Propensity, Buried Index, Nucleotide, Purine/Pyrimidine, User
         Defined<br>
index dc11855..8eae620 100644 (file)
@@ -6,6 +6,7 @@ channel: "release"
 
 ## New Features
 
+- <!-- JAL-4014 --> New GECOS amino acid colourschemes flower, blossum, ocean and sunset
 - <!-- JAL-4036 --> Migrated Uniprot Free Text Search to latest Uniprot search API
 - <!-- JAL-4034 --> Improved Structure Chooser's 3D-Beacons search button design and visual delay indicators
 - <!-- JAL-4034 --> 3D beacons Fetch Uniprot References confirmation dialog is only shown when number of sequences exceeds a threshold
index 250a0b7..e1052c7 100644 (file)
@@ -1,2 +1,2 @@
-Jalview 2.11.2.4 is the fourth patch release in the 2.11.2 series. It includes a new client for the latest Uniprot Search API (released June 2022), updated build documentation and improved user experience when discovering models and experimental structures from 3D-Beacons.
+Jalview 2.11.2.4 is the fourth patch release in the 2.11.2 series. It includes four new [colourschemes for protein alignments](colourSchemes/index.html) (Kunzman et al. 2020 BMC Bioinformatics), a new client for the latest Uniprot Search API (released June 2022), updated build documentation and improved user experience when discovering models and experimental structures from 3D-Beacons.
 
diff --git a/src/jalview/schemes/BlossomColourScheme.java b/src/jalview/schemes/BlossomColourScheme.java
new file mode 100755 (executable)
index 0000000..9b92405
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package jalview.schemes;
+
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AnnotatedCollectionI;
+
+/**
+ * DOCUMENT ME!
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
+public class BlossomColourScheme extends ResidueColourScheme
+{
+  /**
+   * Creates a new BlossomColourScheme object.
+   */
+  public BlossomColourScheme()
+  {
+    super(ResidueProperties.aaIndex, ResidueProperties.blossom);
+  }
+
+  @Override
+  public boolean isPeptideSpecific()
+  {
+    return true;
+  }
+
+  @Override
+  public String getSchemeName()
+  {
+    return JalviewColourScheme.Blossom.toString();
+  }
+
+  /**
+   * Returns a new instance of this colour scheme with which the given data may
+   * be coloured
+   */
+  @Override
+  public ColourSchemeI getInstance(AlignViewportI view,
+          AnnotatedCollectionI coll)
+  {
+    return new BlossomColourScheme();
+  }
+}
diff --git a/src/jalview/schemes/FlowerColourScheme.java b/src/jalview/schemes/FlowerColourScheme.java
new file mode 100755 (executable)
index 0000000..040e6e4
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package jalview.schemes;
+
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AnnotatedCollectionI;
+
+/**
+ * DOCUMENT ME!
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
+public class FlowerColourScheme extends ResidueColourScheme
+{
+  /**
+   * Creates a new FlowerColourScheme object.
+   */
+  public FlowerColourScheme()
+  {
+    super(ResidueProperties.aaIndex, ResidueProperties.flower);
+  }
+
+  @Override
+  public boolean isPeptideSpecific()
+  {
+    return true;
+  }
+
+  @Override
+  public String getSchemeName()
+  {
+    return JalviewColourScheme.Flower.toString();
+  }
+
+  /**
+   * Returns a new instance of this colour scheme with which the given data may
+   * be coloured
+   */
+  @Override
+  public ColourSchemeI getInstance(AlignViewportI view,
+          AnnotatedCollectionI coll)
+  {
+    return new FlowerColourScheme();
+  }
+}
index 456397e..965a26b 100644 (file)
@@ -34,6 +34,10 @@ public enum JalviewColourScheme
   PID("% Identity", PIDColourScheme.class),
   Zappo("Zappo", ZappoColourScheme.class),
   Taylor("Taylor", TaylorColourScheme.class),
+  Flower("gecos:flower", FlowerColourScheme.class),
+  Blossom("gecos:blossom", BlossomColourScheme.class),
+  Sunset("gecos:sunset", SunsetColourScheme.class),
+  Ocean("gecos:ocean", OceanColourScheme.class),
   Hydrophobic("Hydrophobic", HydrophobicColourScheme.class),
   Helix("Helix Propensity", HelixColourScheme.class),
   Strand("Strand Propensity", StrandColourScheme.class),
diff --git a/src/jalview/schemes/OceanColourScheme.java b/src/jalview/schemes/OceanColourScheme.java
new file mode 100755 (executable)
index 0000000..23834a6
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package jalview.schemes;
+
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AnnotatedCollectionI;
+
+/**
+ * DOCUMENT ME!
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
+public class OceanColourScheme extends ResidueColourScheme
+{
+  /**
+   * Creates a new OceanColourScheme object.
+   */
+  public OceanColourScheme()
+  {
+    super(ResidueProperties.aaIndex, ResidueProperties.ocean);
+  }
+
+  @Override
+  public boolean isPeptideSpecific()
+  {
+    return true;
+  }
+
+  @Override
+  public String getSchemeName()
+  {
+    return JalviewColourScheme.Ocean.toString();
+  }
+
+  /**
+   * Returns a new instance of this colour scheme with which the given data may
+   * be coloured
+   */
+  @Override
+  public ColourSchemeI getInstance(AlignViewportI view,
+          AnnotatedCollectionI coll)
+  {
+    return new OceanColourScheme();
+  }
+}
index ab86400..7ad35c3 100755 (executable)
@@ -407,6 +407,125 @@ public class ResidueProperties
       Color.white // ' '
   };
 
+  /*
+   * flower, blossom, sunset, ocean colour schemes from geocos.
+   * See https://gecos.biotite-python.org/
+   * https://raw.githubusercontent.com/biotite-dev/biotite/master/src/biotite/sequence/graphics/color_schemes/flower.json
+   * and https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-020-3526-6
+   * (https://doi.org/10.1186/s12859-020-3526-6)
+   */
+  public static final Color[] flower = { new Color(177, 138, 81), // A
+      new Color(131, 191, 241), // R
+      new Color(11, 206, 198), // N
+      new Color(1, 165, 120), // D
+      new Color(255, 87, 1), // C
+      new Color(114, 149, 174), // Q
+      new Color(45, 160, 161), // E
+      new Color(177, 194, 60), // G
+      new Color(1, 148, 249), // H
+      new Color(242, 118, 99), // I
+      new Color(223, 110, 117), // L
+      new Color(127, 195, 215), // K
+      new Color(254, 157, 175), // M
+      new Color(250, 85, 157), // F
+      new Color(79, 163, 42), // P
+      new Color(180, 189, 155), // S
+      new Color(210, 181, 118), // T
+      new Color(255, 45, 237), // W
+      new Color(201, 110, 207), // Y
+      new Color(253, 153, 123), // V
+      Color.white, // B
+      Color.white, // Z
+      Color.white, // X
+      Color.white, // -
+      Color.white, // *
+      Color.white // .
+  };
+
+  public static final Color[] blossom = { new Color(139, 196, 180), // A
+      new Color(252, 149, 2), // R
+      new Color(181, 194, 6), // N
+      new Color(95, 165, 5), // D
+      new Color(8, 147, 254), // C
+      new Color(191, 133, 39), // Q
+      new Color(219, 181, 1), // E
+      new Color(0, 211, 130), // G
+      new Color(255, 87, 1), // H
+      new Color(154, 186, 243), // I
+      new Color(205, 165, 220), // L
+      new Color(254, 165, 39), // K
+      new Color(245, 161, 184), // M
+      new Color(247, 79, 168), // F
+      new Color(16, 214, 49), // P
+      new Color(126, 157, 89), // S
+      new Color(0, 162, 156), // T
+      new Color(254, 8, 251), // W
+      new Color(255, 78, 122), // Y
+      new Color(135, 192, 228), // V
+      Color.white, // B
+      Color.white, // Z
+      Color.white, // X
+      Color.white, // -
+      Color.white, // *
+      Color.white // .
+  };
+
+  public static final Color[] sunset = { new Color(254, 160, 253), // A
+      new Color(133, 116, 106), // R
+      new Color(171, 200, 245), // N
+      new Color(46, 123, 190), // D
+      new Color(252, 12, 254), // C
+      new Color(140, 110, 129), // Q
+      new Color(103, 120, 146), // E
+      new Color(39, 153, 255), // G
+      new Color(219, 197, 142), // H
+      new Color(250, 33, 161), // I
+      new Color(224, 30, 130), // L
+      new Color(222, 190, 204), // K
+      new Color(209, 62, 123), // M
+      new Color(255, 56, 93), // F
+      new Color(87, 102, 249), // P
+      new Color(231, 180, 253), // S
+      new Color(166, 88, 183), // T
+      new Color(255, 55, 1), // W
+      new Color(203, 83, 57), // Y
+      new Color(254, 81, 184), // V
+      Color.white, // B
+      Color.white, // Z
+      Color.white, // X
+      Color.white, // -
+      Color.white, // *
+      Color.white // .
+  };
+
+  public static final Color[] ocean = { new Color(198, 202, 155), // A
+      new Color(12, 160, 168), // R
+      new Color(10, 223, 195), // N
+      new Color(76, 223, 161), // D
+      new Color(198, 129, 54), // C
+      new Color(139, 211, 209), // Q
+      new Color(96, 218, 201), // E
+      new Color(51, 165, 81), // G
+      new Color(0, 207, 254), // H
+      new Color(242, 186, 170), // I
+      new Color(187, 138, 131), // L
+      new Color(64, 160, 144), // K
+      new Color(164, 139, 136), // M
+      new Color(171, 136, 174), // F
+      new Color(175, 211, 101), // P
+      new Color(109, 155, 116), // S
+      new Color(141, 149, 102), // T
+      new Color(117, 138, 238), // W
+      new Color(186, 195, 252), // Y
+      new Color(233, 190, 164), // V
+      Color.white, // B
+      Color.white, // Z
+      Color.white, // X
+      Color.white, // -
+      Color.white, // *
+      Color.white // .
+  };
+
   // Dunno where I got these numbers from
   public static final double[] hyd2 = { 0.62, // A
       0.29, // R
diff --git a/src/jalview/schemes/SunsetColourScheme.java b/src/jalview/schemes/SunsetColourScheme.java
new file mode 100755 (executable)
index 0000000..4af7566
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package jalview.schemes;
+
+import jalview.api.AlignViewportI;
+import jalview.datamodel.AnnotatedCollectionI;
+
+/**
+ * DOCUMENT ME!
+ * 
+ * @author $author$
+ * @version $Revision$
+ */
+public class SunsetColourScheme extends ResidueColourScheme
+{
+  /**
+   * Creates a new SunsetColourScheme object.
+   */
+  public SunsetColourScheme()
+  {
+    super(ResidueProperties.aaIndex, ResidueProperties.sunset);
+  }
+
+  @Override
+  public boolean isPeptideSpecific()
+  {
+    return true;
+  }
+
+  @Override
+  public String getSchemeName()
+  {
+    return JalviewColourScheme.Sunset.toString();
+  }
+
+  /**
+   * Returns a new instance of this colour scheme with which the given data may
+   * be coloured
+   */
+  @Override
+  public ColourSchemeI getInstance(AlignViewportI view,
+          AnnotatedCollectionI coll)
+  {
+    return new SunsetColourScheme();
+  }
+}