-<html>\r
-<!--\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)\r
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
- * \r
- * This file is part of Jalview.\r
- * \r
- * Jalview is free software: you can redistribute it and/or\r
- * modify it under the terms of the GNU General Public License \r
- * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\r
- * \r
- * Jalview is distributed in the hope that it will be useful, but \r
- * WITHOUT ANY WARRANTY; without even the implied warranty \r
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR \r
- * PURPOSE. See the GNU General Public License for more details.\r
- * \r
- * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.\r
--->\r
-<head><title>Groovy Shell</title></head>\r
-<body>\r
-<p><strong>The Groovy Shell</strong></p>\r
-<p><a href="http://groovy.codehaus.org/">Groovy</a> is an "<em>agile and dynamic \r
-language for the Java platform</em>". The groovy scripting language makes it \r
-extremely easy to programmatically interact with Java programs, in much the same \r
-way that Javascript is used to generate and interact with applets and other \r
-objects on the page.</p>\r
-<p><strong><em>Getting Groovy...</em></strong><br>\r
-Jalview Groovy support is only possible if the core groovy \r
-jars which include the GroovyShell are present on the CLASSPATH \r
-when Jalview is started.</p><p>The jars are obtained from the \r
-<em>embedded</em> directory within the <a \r
-href="http://dist.codehaus.org/groovy/distributions">groovy \r
-distribution</a>. The easiest way of adding them to the \r
-Jalview classpath is to download and build jalview from \r
-it's source distribution, and then add the groovy-all-*.jar \r
-to the lib directory whose path is given in the java.ext.dirs property.</p>\r
-<p><strong>Opening Jalview's Groovy Console</strong><br>If groovy is available, then the \r
-<strong>Tools→Groovy Console...</strong> menu entry will be available \r
-from the Jalview Desktop's drop-down menu. Selecting this will open the\r
-<a href="http://groovy.codehaus.org/Groovy+Console">Groovy Console</a> which \r
-allows you to interactively execute Groovy scripts within the Jalview run-time environment.</p>\r
-<p><strong>Executing groovy scripts on Jalview startup</strong><br>\r
-The -groovy <script> option on the <a href="commandline.html"/>\r
-Jalview command line</a> will execute the contents of \r
-<script>. <script> may be a file, or alternatively if it is "STDIN" \r
-then the standard input will be used.</p>\r
-<p><strong>Access to Jalview's functions from Groovy Scripts</strong><br>\r
-There is as yet no properly defined scripting interface to Jalview, but all the\r
-public methods of the jalview class hierarchy can be called from Groovy scripts. \r
-The access point for this is the <strong>Jalview</strong> object defined in\r
-the groovy environent which corresponds to the <pre>jalview.gui.Desktop</pre> object which\r
-manages all the Jalview windows.</p> \r
-Here's an example to get you started:<br>\r
-<ul><li>Getting the title, alignment and first sequence from the current alignFrame<br>\r
-<pre>\r
-def alf = Jalview.getAlignframes();\r
-print alf[0].getTitle();\r
-def alignment = alf[0].viewport.alignment;\r
-def seq = alignment.getSequenceAt(0);\r
-</pre>\r
-</li>\r
-</ul>\r
-</p>\r
-\r
-<p> </p>\r
-</body>\r
-</html>\r
+<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>Groovy Shell</title>
+</head>
+<body>
+ <p>
+ <strong>The Groovy Shell</strong>
+ </p>
+ <p>
+ Groovy (<a href="http://www.groovy-lang.org/">www.groovy-lang.org</a>)
+ is an "<em>agile and dynamic language for the Java
+ platform</em>". The groovy scripting language makes it extremely
+ easy to programmatically interact with Java programs, in much the
+ same way that Javascript is used to generate and interact with
+ applets and other objects on the page.
+ </p>
+ <p>
+ <em>Getting Groovy...</em><br> Jalview comes with an embedded
+ installation of Groovy. Just select <strong>Tools→Groovy
+ Console...</strong> from the Jalview Desktop's drop-down menu. After a
+ short pause, you should then see the <a
+ href="http://groovy-lang.org/groovyconsole.html">Groovy
+ Console</a> appear. This allows you to interactively execute Groovy
+ scripts whilst Jalview is running. We've also provided a <strong>Calculations→Execute
+ Groovy Script</strong> button so you can execute the currently loaded
+ groovy script whilst viewing an alignment.
+ </p>
+ <p>
+ <strong>Executing groovy scripts on Jalview startup</strong><br>
+ The -groovy <script> option on the <a href="commandline.html">
+ Jalview command line</a> will execute the contents of <script>.
+ <script> may be a file, a URL, or alternatively if it is
+ "STDIN" then the standard input will be used.<br> <em>Note:
+ The groovy script will be executed <strong>after</strong> any data
+ is loaded, and <strong>before</strong> images or any output files
+ are written. This allows you to perform customised Jalview
+ analysis workflows with groovy.
+ </em>
+ </p>
+ <p>
+ <strong>Access to Jalview's functions from Groovy Scripts</strong><br>
+ The scripting interface to Jalview is still a work in progress, so
+ we recommend you also take a look at Jalview's source, since all the
+ public methods of the jalview class hierarchy can be called from
+ Groovy scripts. In addition, the following objects are also defined:
+
+
+
+ <ul>
+ <li><strong>Jalview</strong> - this is bound to <code>jalview.bin.Jalview</code>.<br />Useful
+ methods include:
+ <ul>
+ <li>Jalview.getAlignFrames() - returns a list of
+ jalview.gui.AlignFrame objects</li>
+ <li>Jalview.getCurrentAlignFrame() - returns the alignment
+ window which is currently being looked at by the user</li>
+ </ul></li>
+ <li><strong>currentAlFrame</strong> - this is only defined when
+ running a Groovy script via the -groovy command line argument. It
+ returns the first alignment window created after acting on the
+ other arguments passed on the command line.</li>
+ </ul>
+ <p>
+ <em>A simple script</em><br />
+ <ul>
+ <li>Getting the title, alignment and first sequence from the
+ current alignFrame<br> <pre>
+def alf = Jalview.getAlignFrames();
+print alf[0].getTitle();
+def alignment = alf[0].viewport.alignment;
+def seq = alignment.getSequenceAt(0);
+</pre>
+ </li>
+ <li>If you wanted to do the same thing from the command line,
+ you can refer to alignment that was just loaded with
+ currentAlFrame:<br> <pre>
+print currentAlFrame.getTitle();</pre>
+ </ul>
+ <p>
+ <em>Example scripts</em><br />If you have downloaded the
+ InstallAnywhere version of Jalview, you can find additional groovy
+ scripts in the examples/groovy subfolder of the installation
+ directory. The examples are also available at <a
+ href="http://www.jalview.org/examples/groovy">http://www.jalview.org/examples/groovy</a>.
+ </p>
+ <p>
+ <em>Using Groovy to add new Alignment Calculations</em><br />We've
+ simplified the alignment analysis programming interface in Jalview
+ 2.10 to make it easy for you to add your own dynamic annotation
+ tracks with Groovy. Have a look at the <a
+ 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>