<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to RScriptTutorial</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>Recent changes to RScriptTutorial</description><atom:link href="https://sourceforge.net/p/chipster/wiki/RScriptTutorial/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 11 Jul 2014 12:37:05 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/chipster/wiki/RScriptTutorial/feed" rel="self" type="application/rss+xml"/><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -1,6 +1,7 @@
-[TOC]
+# R script integration tutorial

-## R script integration tutorial
+&amp;gt; **Note! This is an unmaintained archive site.**
+&amp;gt; Wiki has been moved to Github and current documentation is available at [https://github.com/chipster/chipster/wiki](https://github.com/chipster/chipster/wiki)

 This tutorial will show how to modify or add new analysis tool to a Chipster server. Integrating analysis tools is a straightforward process, allowing you to use Chipster as a medium for serving and supporting large number of users not experienced in data analysis and programming. Here we focus on tools written using the R programming language, but the process is pretty much the same also with other flavours of analysis tools. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Fri, 11 Jul 2014 12:37:05 -0000</pubDate><guid>https://sourceforge.netdf895afe484d9c4e66b2264a394d028f4e78f453</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.netae64167a438c33be2a04f5e22fd5ca316ff0b073</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.net9c264c7121330df68551d7417d032867045cbf8e</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.net1a601cf10af4099c1a07d4443a6e731fd50a475b</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -2,22 +2,22 @@

 ## R script integration tutorial

-This tutorial will show how to modify or add new analysis tool to a Chipster server. Integrating analysis tools is a pretty straightforward process and you can easily use Chipster as a medium for serving and supporting a large number of users who are not as capable in data analysis and programming. Here we focus on tool written using the R programming language, but the process is pretty much the same also with other flavours of analysis tool. 
+This tutorial will show how to modify or add new analysis tool to a Chipster server. Integrating analysis tools is a straightforward process, allowing you to use Chipster as a medium for serving and supporting large number of users not experienced in data analysis and programming. Here we focus on tools written using the R programming language, but the process is pretty much the same also with other flavours of analysis tools. 

-To be able to work with tool scripts you need to be able to log into the server that is running Chipster. This is an important restriction to guarantee security of the server: analysis tools are essentially unrestricted pieces of code that will be run on the server, meaning that the ability to add or modify tools is equal to the ability to log into the system. 
+To be able to work with tool scripts you need to be able to log into the Chipster server. This is an important restriction to guarantee security of the server: analysis tools are essentially unrestricted pieces of code that will be run on the server, meaning that the ability to add or modify tools is equal to the ability to log into the system. 

-Developing R scripts for Chipster basically means editing files on the _comp/modules_ subdirectory of the Chipster installation inside the server. This can be done either by logging into the Linux command line and running the file editor there, or connecting the server filesystem and editing the files using the file editor you normally use. Let's first have a look at the command line option, as you always need the command line for some server administration tasks anyway. 
+In practice, developing R scripts for Chipster means editing files on the _comp/modules_ subdirectory of the Chipster installation inside the server. This can be done either by logging into the Linux command line and running the file editor there, or connecting the server filesystem and editing the files using the file editor you normally use. Let's first have a look at the command line option, as you always need the command line for some server administration tasks anyway. 

-### Working with command line
+### Working in command line

-Once you have started a fresh Chipster server using the virtual images that are provided, you need to login there for the first time. To do this, you typically use the virtual console provided you virtualisation software (e.g. VirtualBox or VMware). This virtual console corresponds to the physical console (display and keyboard) of a real server machine. It opens up when you start the virtual machine. 
+Once you have started a fresh Chipster server using the virtual machine images that are provided, you need to login there for the first time. To do this, you typically use the virtual console of your virtualisation software (e.g. VirtualBox or VMware). This virtual console corresponds to a physical console (display and keyboard) of a real server machine. It opens up when you start the virtual machine. 

 Login using the username "chipster". If you haven't already changed the password, then it is "chipster" by default. 

-Now you are at the console command line. The virtual consoles provided by the virtualisation software are not user friendly, so it is recommended that you use SSH to connect to the server. When you logged in, you were provided with a "message of the day" that contains some useful bits of information, including the IP address of the virtual server. Record the IP address and log out. 
+Now you are at the console command line. Virtual consoles are not very user friendly, so it is recommended to use SSH to connect to the server. When you logged in, you were provided with a "message of the day" that contains some useful bits of information, including the IP address of the virtual server. Record the IP address and log out. 

 Next open up your favourite SSH client and point it to the IP address of the server. Login using the "chipster" account again. Switch into directory that contains analysis tool modules and list them. 

@@ -26,9 +26,9 @@
     ls

-There you can see the analysis modules, typically "common", "microarray" and "ngs". Module "common" contains utility functionts that can be used by the actual tool scripts in the other modules. 
+There you can see the analysis modules, typically **common**, **microarray** and **ngs**. Module **common** contains utility functions that can be used by the actual tool scripts in the other modules. 

-Each module as a configuration file that describes the tools inside the module. 
+Each module has a configuration file that describes the tools inside the module. 

     cat microarray/microarray-module.xml
@@ -43,7 +43,7 @@
     ls

-You can see a large number of scripts, each of them corresponding to a single tool you have on the client GUI. To make things as simple as possible, Chipster has a one-to-one mapping between tools and files. To create a tool, you need to create only a single file. And a single file is related to only to a one tool. If you need to share functionality between the tools, the "common" module is available for that. 
+You can see a large number of scripts, each of them corresponding to a single tool you have on the client GUI. To make things as simple as possible, Chipster has a one-to-one mapping between tools and files. To create a tool, you need to create only a single file. And a single file is related to a single tool. If you need to share functionality between tools, the **common** module is available for that. 

 To modify a tool, you can just edit it with a text editor: 

@@ -64,7 +64,7 @@
     # Loads the file
     file

-As you can see, there are two parts in the scripts. First there is 3 lines of header, which describes the tool for Chipster. After the header you have the script itself, just a regular script of R commands. The header is commented, so that the description snippet can be conveniently part of the executable R script file. The header is written using simple and compact description language called SADL. The most practical way to get started with SADL descriptions is to have a look at similar tools and their headers. For complete reference, look at: 
+As you can see, there are two parts in the script. First there are 3 lines of header, which describes the tool for Chipster. After the header you have the script itself, just a regular script of R commands. The header is commented so that the description snippet can be conveniently part of the executable R script file. It is written using simple and compact description language called SADL. The most practical way to get started with SADL descriptions is to have a look at similar tools and their headers. For complete reference, look at: 

 https://sourceforge.net/apps/mediawiki/chipster/index.php?title=TechnicalManual#Describing_tools_with_SADL 

@@ -74,21 +74,21 @@
     # I was here!

-When you open the Chipster client and click Show sourcecode for Remove missing values tool, you should see your additional line there. If you remove the line, save and hit Show source on client again, you will see that the line has vanished. An important to remember is that if you change the header part of the script, then you need to restart your client so that it can recreate its internal data structures and GUI components to match the updated tool. 
+When you open the Chipster client and click Show sourcecode for Remove missing values tool, you should see your additional line there. If you remove the line, save and hit Show sourcecode again, you will see that the line has disappeared. It is important to remember that if you change the header part of the script, then you need to restart your client so that it can recreate its internal data structures and GUI components to match the updated tool. 

 ### Adding and removing tools

-To add or remove tool, edit the corresponding module configuration file, e.g.: 
+To add or remove a tool, edit the corresponding module configuration file, e.g.: 

     cd /opt/chipster/comp/modules/microarray/
     nano microarray-module.xml

-Tool can be removed by simple removing or commenting out the XML entry from the file. To add a tool, create a new entry. As an example, consider this snippet from **microarray-module.xml**: 
+Tool can be removed by simply removing or commenting out the XML entry from the file. To add a tool, create a new entry. As an example, consider this snippet from **microarray-module.xml**: 

     &amp;lt;tool runtime="R-2.12"&amp;gt;&amp;lt;resource&amp;gt;filter-expression.R&amp;lt;/resource&amp;gt;&amp;lt;/tool&amp;gt;
@@ -104,18 +104,18 @@
     &amp;lt;tool runtime="R-2.12"&amp;gt;&amp;lt;resource&amp;gt;filter-pvalue.R&amp;lt;/resource&amp;gt;&amp;lt;/tool&amp;gt;

-The **runtime** attribute defines the runtime environment to use when running the tool. They are defined in **comp/config/runtimes.xml**. For R scripts, you need to pick the correct version of the R environment for your script (in these examples, it is R 2.12). As we have seen, scripts are stored in runtime specific subdirectories of the module. It means that a tool can have different versions for different runtimes, allowing to cater for e.g. differences between R syntax. Mostly this functionality is used when a set of scripts is gradually updated to a later R version. 
+The **runtime** attribute defines the runtime environment to use when running the tool. They are specified in _comp/config/runtimes.xml_. For R scripts, you need to pick the correct version of the R environment for your script (in these examples, it is R 2.12). As we have seen, scripts are stored in runtime specific subdirectories of the module. It means that tools can have different versions for different runtimes, allowing to cater for e.g. differences between R syntax. Mostly this functionality is used when a set of scripts is gradually updated to a later R version. 

 ### Creating manual pages

-The client has a More help button associated with each tool. It takes user to a tool specific manual page, assuming the page exists. The manual is hosted in the server, and more particularly, on the **webstart** component that also serves the startup page. In the server, switch to **manual** directory and check it: 
+The client has a More help button associated with each tool. It takes user to a tool specific manual page, assuming the page exists. Manual is hosted in the server, and more particularly, on the **webstart** component that also serves the startup page. In the server, switch to **manual** directory and check it: 

     cd /opt/chipster/webstart/web-root/manual
     ls

-You can see a long list of HTML pages. Their names match the tool names, but manual pages are not organised into module and runtime hierarchies. 
+You can see a long list of HTML pages. Their names match tool names, but manual pages are not organised into module and runtime hierarchies. 

 To create a manual page for a tool saved in foobar.R, create a file called foobar.html and fill it in by e.g. using this template: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.net058531731215b69a9ba697e8c270e249dcb268c2</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,4 +1,6 @@
-\---++ R script integration tutorial 
+[TOC]
+
+## R script integration tutorial

 This tutorial will show how to modify or add new analysis tool to a Chipster server. Integrating analysis tools is a pretty straightforward process and you can easily use Chipster as a medium for serving and supporting a large number of users who are not as capable in data analysis and programming. Here we focus on tool written using the R programming language, but the process is pretty much the same also with other flavours of analysis tool. 

@@ -7,7 +9,9 @@
 Developing R scripts for Chipster basically means editing files on the _comp/modules_ subdirectory of the Chipster installation inside the server. This can be done either by logging into the Linux command line and running the file editor there, or connecting the server filesystem and editing the files using the file editor you normally use. Let's first have a look at the command line option, as you always need the command line for some server administration tasks anyway. 

-\---+++ Working with command line 
+
+
+### Working with command line

 Once you have started a fresh Chipster server using the virtual images that are provided, you need to login there for the first time. To do this, you typically use the virtual console provided you virtualisation software (e.g. VirtualBox or VMware). This virtual console corresponds to the physical console (display and keyboard) of a real server machine. It opens up when you start the virtual machine. 

@@ -73,7 +77,9 @@
 When you open the Chipster client and click Show sourcecode for Remove missing values tool, you should see your additional line there. If you remove the line, save and hit Show source on client again, you will see that the line has vanished. An important to remember is that if you change the header part of the script, then you need to restart your client so that it can recreate its internal data structures and GUI components to match the updated tool. 

-\---+++ Adding and removing tools 
+
+
+### Adding and removing tools

 To add or remove tool, edit the corresponding module configuration file, e.g.: 

@@ -100,7 +106,7 @@

 The **runtime** attribute defines the runtime environment to use when running the tool. They are defined in **comp/config/runtimes.xml**. For R scripts, you need to pick the correct version of the R environment for your script (in these examples, it is R 2.12). As we have seen, scripts are stored in runtime specific subdirectories of the module. It means that a tool can have different versions for different runtimes, allowing to cater for e.g. differences between R syntax. Mostly this functionality is used when a set of scripts is gradually updated to a later R version. 

-\---+++ Creating manual pages 
+### Creating manual pages

 The client has a More help button associated with each tool. It takes user to a tool specific manual page, assuming the page exists. The manual is hosted in the server, and more particularly, on the **webstart** component that also serves the startup page. In the server, switch to **manual** directory and check it: 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.net3979610a185290e677bf2c0767e7b4a61ed09c87</guid></item><item><title>RScriptTutorial modified by Aleksi Kallio</title><link>https://sourceforge.net/p/chipster/wiki/RScriptTutorial/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;---++ R script integration tutorial &lt;/p&gt;
&lt;p&gt;This tutorial will show how to modify or add new analysis tool to a Chipster server. Integrating analysis tools is a pretty straightforward process and you can easily use Chipster as a medium for serving and supporting a large number of users who are not as capable in data analysis and programming. Here we focus on tool written using the R programming language, but the process is pretty much the same also with other flavours of analysis tool. &lt;/p&gt;
&lt;p&gt;To be able to work with tool scripts you need to be able to log into the server that is running Chipster. This is an important restriction to guarantee security of the server: analysis tools are essentially unrestricted pieces of code that will be run on the server, meaning that the ability to add or modify tools is equal to the ability to log into the system. &lt;/p&gt;
&lt;p&gt;Developing R scripts for Chipster basically means editing files on the &lt;em&gt;comp/modules&lt;/em&gt; subdirectory of the Chipster installation inside the server. This can be done either by logging into the Linux command line and running the file editor there, or connecting the server filesystem and editing the files using the file editor you normally use. Let's first have a look at the command line option, as you always need the command line for some server administration tasks anyway. &lt;/p&gt;
&lt;p&gt;---+++ Working with command line &lt;/p&gt;
&lt;p&gt;Once you have started a fresh Chipster server using the virtual images that are provided, you need to login there for the first time. To do this, you typically use the virtual console provided you virtualisation software (e.g. VirtualBox or VMware). This virtual console corresponds to the physical console (display and keyboard) of a real server machine. It opens up when you start the virtual machine. &lt;/p&gt;
&lt;p&gt;Login using the username "chipster". If you haven't already changed the password, then it is "chipster" by default. &lt;/p&gt;
&lt;p&gt;Now you are at the console command line. The virtual consoles provided by the virtualisation software are not user friendly, so it is recommended that you use SSH to connect to the server. When you logged in, you were provided with a "message of the day" that contains some useful bits of information, including the IP address of the virtual server. Record the IP address and log out. &lt;/p&gt;
&lt;p&gt;Next open up your favourite SSH client and point it to the IP address of the server. Login using the "chipster" account again. Switch into directory that contains analysis tool modules and list them. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;chipster&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;comp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="n"&gt;ls&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;There you can see the analysis modules, typically "common", "microarray" and "ngs". Module "common" contains utility functionts that can be used by the actual tool scripts in the other modules. &lt;/p&gt;
&lt;p&gt;Each module as a configuration file that describes the tools inside the module. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cat&lt;/span&gt; &lt;span class="n"&gt;microarray&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;microarray&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xml&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Typically you would edit the file to add or remove tools and tool categories. &lt;/p&gt;
&lt;p&gt;Next we switch to a directory that contains the actual analysis scripts and have a look at there. &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="n"&gt;microarray&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;2.12&lt;/span&gt;
&lt;span class="n"&gt;ls&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can see a large number of scripts, each of them corresponding to a single tool you have on the client GUI. To make things as simple as possible, Chipster has a one-to-one mapping between tools and files. To create a tool, you need to create only a single file. And a single file is related to only to a one tool. If you need to share functionality between the tools, the "common" module is available for that. &lt;/p&gt;
&lt;p&gt;To modify a tool, you can just edit it with a text editor: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;nano&lt;/span&gt; &lt;span class="n"&gt;na&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;omitted&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The tool should look like the following: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="cp"&gt;# TOOL na-omitted.R: &amp;quot;Remove missing values&amp;quot; (Removal of missing values. All observations, i.e., genes that have at least one missing value are excluded from the data set.)&lt;/span&gt;
&lt;span class="cp"&gt;# INPUT normalized.tsv: normalized.tsv TYPE GENE_EXPRS &lt;/span&gt;
&lt;span class="cp"&gt;# OUTPUT na-omitted.tsv: na-omitted.tsv&lt;/span&gt;

&lt;span class="cp"&gt;# Removal of missing values&lt;/span&gt;
&lt;span class="cp"&gt;# JTT 22.6.2006&lt;/span&gt;

&lt;span class="cp"&gt;# Loads the file&lt;/span&gt;
&lt;span class="n"&gt;file&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;As you can see, there are two parts in the scripts. First there is 3 lines of header, which describes the tool for Chipster. After the header you have the script itself, just a regular script of R commands. The header is commented, so that the description snippet can be conveniently part of the executable R script file. The header is written using simple and compact description language called SADL. The most practical way to get started with SADL descriptions is to have a look at similar tools and their headers. For complete reference, look at: &lt;/p&gt;
&lt;p&gt;&lt;a href="https://sourceforge.net/apps/mediawiki/chipster/index.php?title=TechnicalManual#Describing_tools_with_SADL"&gt;https://sourceforge.net/apps/mediawiki/chipster/index.php?title=TechnicalManual#Describing_tools_with_SADL&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Next we work with the script a bit. Changes to tool scripts are visible immediately. You can try this out by adding this to the end of the script (and saving it): &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="c"&gt;# I was here!&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;When you open the Chipster client and click Show sourcecode for Remove missing values tool, you should see your additional line there. If you remove the line, save and hit Show source on client again, you will see that the line has vanished. An important to remember is that if you change the header part of the script, then you need to restart your client so that it can recreate its internal data structures and GUI components to match the updated tool. &lt;/p&gt;
&lt;p&gt;---+++ Adding and removing tools &lt;/p&gt;
&lt;p&gt;To add or remove tool, edit the corresponding module configuration file, e.g.: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;chipster&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;comp&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;modules&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;microarray&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;
&lt;span class="n"&gt;nano&lt;/span&gt; &lt;span class="n"&gt;microarray&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;xml&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Tool can be removed by simple removing or commenting out the XML entry from the file. To add a tool, create a new entry. As an example, consider this snippet from &lt;strong&gt;microarray-module.xml&lt;/strong&gt;: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;expression&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;flags&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;To remove flag filtering and add p-value filtering, you would change the snippet to following: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;expression&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sd&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;runtime&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;R-2.12&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;pvalue&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;R&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;resource&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;strong&gt;runtime&lt;/strong&gt; attribute defines the runtime environment to use when running the tool. They are defined in &lt;strong&gt;comp/config/runtimes.xml&lt;/strong&gt;. For R scripts, you need to pick the correct version of the R environment for your script (in these examples, it is R 2.12). As we have seen, scripts are stored in runtime specific subdirectories of the module. It means that a tool can have different versions for different runtimes, allowing to cater for e.g. differences between R syntax. Mostly this functionality is used when a set of scripts is gradually updated to a later R version. &lt;/p&gt;
&lt;p&gt;---+++ Creating manual pages &lt;/p&gt;
&lt;p&gt;The client has a More help button associated with each tool. It takes user to a tool specific manual page, assuming the page exists. The manual is hosted in the server, and more particularly, on the &lt;strong&gt;webstart&lt;/strong&gt; component that also serves the startup page. In the server, switch to &lt;strong&gt;manual&lt;/strong&gt; directory and check it: &lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;cd&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;opt&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;chipster&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;webstart&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;web&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;manual&lt;/span&gt;
&lt;span class="n"&gt;ls&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can see a long list of HTML pages. Their names match the tool names, but manual pages are not organised into module and runtime hierarchies. &lt;/p&gt;
&lt;p&gt;To create a manual page for a tool saved in foobar.R, create a file called foobar.html and fill it in by e.g. using this template: &lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aleksi Kallio</dc:creator><pubDate>Thu, 26 Jun 2014 06:41:52 -0000</pubDate><guid>https://sourceforge.nete8bd6cd3127764b5ac0f5455048cfe7244ca3938</guid></item></channel></rss>