<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Inkspot Software Tools</title>
    <link>http://inkspot-master.inkspot.co:8080/blog/david.leahy@inkspotscience.com/R and Inkspot</link>
    <description>Using Inkspot Examples</description>
    <item>
      <title>Defining the service</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fd1150d84f2e</link>
      <description>&lt;p&gt;The proeprties of the service are defined in the file services.xml and an example is below&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="brush: xml;collapse: true; fontsize: 100; first-line: 1; "&gt;&amp;lt;WorkflowService&amp;gt;
    &amp;lt;!-- Name of the service, and also the caption that will appear     --&amp;gt;
    &amp;lt;!-- in the top line of the block on the workflow editor            --&amp;gt;
    &amp;lt;Name&amp;gt;CiteExplore&amp;lt;/Name&amp;gt;

    &amp;lt;!-- Service description that appears at the bottom of the editor   --&amp;gt;
    &amp;lt;!-- window when the block is selected                              --&amp;gt;
    &amp;lt;Description&amp;gt;Searches CiteXplore Repository&amp;lt;/Description&amp;gt;

    &amp;lt;!-- Category to place the service in on the editor palette         --&amp;gt;
    &amp;lt;Category&amp;gt;British Library&amp;lt;/Category&amp;gt;

    &amp;lt;!-- Homepage for block documentation                               --&amp;gt;
    &amp;lt;Homepage&amp;gt;http://www.ebi.ac.uk/citexplore/newSimpleSearch.do&amp;lt;/Homepage&amp;gt;

    &amp;lt;!-- Class name of the service. This needs to extend either the     --&amp;gt;
    &amp;lt;!-- DataProcessorService or the CloudDataProcessorService object   --&amp;gt;
    &amp;lt;ServiceRoutine&amp;gt;CiteExplore&amp;lt;/ServiceRoutine&amp;gt;

    &amp;lt;!-- Auto deployed service. Do NOT change for dynamically deployed  --&amp;gt;
    &amp;lt;!-- services that are uploaded via this editor                     --&amp;gt;
    &amp;lt;ServiceType&amp;gt;AUTO&amp;lt;/ServiceType&amp;gt;

    &amp;lt;!-- Data streaming mode for this service. This can be one of:      --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- nostream   - Data is passed in one block through service       --&amp;gt;
    &amp;lt;!-- sequential - Data is streamed one connection at a time         --&amp;gt;
    &amp;lt;!-- parallel   - Data is streamed from all connections in parallel --&amp;gt;
    &amp;lt;StreamMode&amp;gt;nostream&amp;lt;/StreamMode&amp;gt;
    
    &amp;lt;!-- Editable service parameters. These properties define what is   --&amp;gt;
    &amp;lt;!-- displayed in the properties panel when a block is selected in  --&amp;gt;
    &amp;lt;!-- the workflow editor. The format of properties is:              --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- &amp;lt;Property name="" type="" description="" default=""/&amp;gt;          --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- Where:     name = property name without spaces                 --&amp;gt;
    &amp;lt;!--            type = Document - file reference                    --&amp;gt;
    &amp;lt;!--                   Folder - folder reference                    --&amp;gt;
    &amp;lt;!--                   Integer - integer paramater                  --&amp;gt;
    &amp;lt;!--                   Boolean - true / false value                 --&amp;gt;
    &amp;lt;!--                   String - text parameter                      --&amp;gt;
    &amp;lt;!--                   Double - floating point value                --&amp;gt;
    &amp;lt;!--                   Date - java date parameter                   --&amp;gt;
    &amp;lt;!--                   StringList - vector of text values           --&amp;gt;
    &amp;lt;!--                   TwoColumnList - two columns of text values   --&amp;gt;
    &amp;lt;Properties&amp;gt;
    &amp;lt;Property name="outputFormat" type="String" description="summary or verbose" default="core"/&amp;gt;
    &amp;lt;Property name="Query" type="String" description="search query string" default="TITLE:Blood" /&amp;gt;
    &amp;lt;/Properties&amp;gt;

    &amp;lt;!-- Definition of all of the inputs to a service. The format is:   --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- &amp;lt;Input name="" type="" streaming=""/&amp;gt;                          --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- Where:     name = name of input also displayed on connections  --&amp;gt;
    &amp;lt;!--            type = data-wrapper - mixed matrix of data          --&amp;gt;
    &amp;lt;!--                   file-wrapper - list of file names            --&amp;gt;
    &amp;lt;!--                   object-wrapper - Serialized Java object      --&amp;gt;
    &amp;lt;!--            streaming = true / false - is this a streaming link --&amp;gt;
    &amp;lt;Inputs&amp;gt;
    &amp;lt;!---    &amp;lt;Input name="Query" type="String"/&amp;gt; --&amp;gt;
    &amp;lt;/Inputs&amp;gt;

    &amp;lt;!-- Definition of all of the outputs from service. The format is:  --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- &amp;lt;Output name="" type="" streaming=""/&amp;gt;                         --&amp;gt;
    &amp;lt;!--                                                                --&amp;gt;
    &amp;lt;!-- Where:     name = name of input also displayed on connections  --&amp;gt;
    &amp;lt;!--            type = data-wrapper - mixed matrix of data          --&amp;gt;
    &amp;lt;!--                   file-wrapper - list of file names            --&amp;gt;
    &amp;lt;!--                   object-wrapper - Serialized Java object      --&amp;gt;
    &amp;lt;!--            streaming = true / false - is this a streaming link --&amp;gt;
    &amp;lt;Outputs&amp;gt;
        &amp;lt;Output name="Results" type="data-wrapper"/&amp;gt;
    &amp;lt;/Outputs&amp;gt;

&amp;lt;/WorkflowService&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Wed, 14 Apr 2010 16:05:22 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fd1150d84f2e</guid>
      <dc:date>2010-04-14T16:05:22Z</dc:date>
    </item>
    <item>
      <title>Inkspot Designer</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fd0106f73025</link>
      <description>&lt;p&gt;&amp;nbsp; Below is a screenshot for the current version of Designer showing the service panel. Designer make sit relatively easy to add new services and new workflows. The services and workflows are built and tested in Designer but synchronised with Inkspot so that once the service is built it is immediately available in the Inkspot cloud. The process of adding a new service is as follows.&lt;/p&gt;
&lt;p&gt;Go to File, select new. The options at the moment are to create a java, Gnuplot, octave or binary service or a workflow. We will add other scripting libraries such as R, Python as we get round to it. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="file:///tmp/moz-screenshot.png" alt="" /&gt;&lt;img src="../servlets/download/InkspotDesigner.png?documentid=43e14ff5276ccf310127fcfcda56270a" alt="" width="566" height="321" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;On selecting a new Java service the service editor comes up and we use this to do three things. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Edit services.xml to define the input and output port datatypes of the service and the properties. The input and ouytputs will appear as attachments and arrows in the user interface and the properties will appear in the proeprty tab of the workflow editor&lt;/li&gt;
&lt;li&gt;create the service source code file(s) that reds the input, does stuff and writes the output&lt;/li&gt;
&lt;li&gt;Add any libraries either to this service directory (in lib) or if you are going to use it for multiple services, create a new library from the file menu and add the library to there&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Compile and if successful Designer will synchronise and instal your new service in nkspot&lt;/p&gt;
&lt;p&gt;Piece of cake ...&lt;/p&gt;</description>
      <pubDate>Wed, 14 Apr 2010 15:47:35 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fd0106f73025</guid>
      <dc:date>2010-04-14T15:47:35Z</dc:date>
    </item>
    <item>
      <title>Adding Services ith Inkspot Designer</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fcb0784c46a3</link>
      <description>&lt;p&gt;I have&amp;nbsp; looking been using the new "Inkspot Designer" desktop client for building services and workflows for upload to Inkspot and using the example of search and related functions of interest to Steven Andrews at the British Library. The are several objectives of this work&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;to create interesting workflows demonstrating technology integration that makes use of the Pubchem Central UK database offered as a &lt;a title="CiteXplore Web Service" href="http://www.ebi.ac.uk/citexplore/webservice.jsp" target="_blank"&gt;web service by the EBI&lt;/a&gt; and the &lt;a title="Zetoc British Library Table of Contents search" href="http://zetoc.mimas.ac.uk/zetocsru.html"&gt;ZETOC&lt;/a&gt; table of contents search.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;integrate these services with other technologies such as plotting and analysis&lt;/li&gt;
&lt;li&gt;to test and document experiences with the new Designer client which is aimed at the developer of Inkspot workflow service blocks as well as workflows&lt;/li&gt;
&lt;li&gt;to build a workflow that is personally of interest&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The work is being done using the development version of Inkspot and therefore I can't link directly from here but I will add code snippets for review and screenshots where I can for review.&lt;/p&gt;
&lt;p&gt;The general problem I am interested in the sort of initially vague query an early stage drug discovery project might make that leading to more detailed quantitiative understanding. So for example, I know from some reading I did a few years ago that arachidonic acid metabolism invovles two parallel pathways leading to inflammation nd other effects. One pathway has a drug target enzyme 5-Lipoxygenase that I once worked on and the other has the Cox-2 enzyme that was the target of drug design for alternative pain killers to NSAID's. There was an hypothesis around that a dual inhibitor of Cox-2 and 5-LPO would be an anti-cancer agent. So I want a workflow that automates roughly what I did over several weeks 5 years ago to refresh and update myself on this topic. Broadly speaking what I did was search the BL online catalogues, get the papers and fillet out compounds of interest and more specificaly the detailed Biochemistry (known known as Systems Bioogy) of the pathways involved. I was interested in the dynamics of these pathways and what the control points were as part of an ivestigation into whether the fundamental hypothesis was understandable (by me) and sound. &lt;/p&gt;
&lt;p&gt;So that's what I will do. The automation aspect is that the services and the workflow should be reusabe. So some one else might want to use the workflow for something other than arachidonic acid. &lt;/p&gt;
&lt;p&gt;The workflow will also demonstrate the integration of 3rd party services via clients with Inkspot hosted services such as Gnuplot, Octave, ... he says bravely.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ok. Science over for now. Next post is programming&lt;/p&gt;</description>
      <pubDate>Wed, 14 Apr 2010 14:19:35 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5276ccf310127fcb0784c46a3</guid>
      <dc:date>2010-04-14T14:19:35Z</dc:date>
    </item>
    <item>
      <title>Workflow Hello World</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d49541c46d5c</link>
      <description>&lt;p&gt;How to create a simple workflow programme using the Inkspot workflow editor. The example uses a very simple&amp;nbsp;case of reading a chemical structure property file (.sdf) and&amp;nbsp;converting the chemical structures into SMILES format. FInally the list of structures is written out to a file for display.&lt;/p&gt;
&lt;p&gt;The workflow tool integrates different technologies making it simpler for the user to build programs from components without having to learn lots of different languages. Inkspto already has a large collection of workflow components and this is expected to grow rapidly as new tools for adding software components are introduced and the user base continues to grow. Hello World for Inkspot Workflow&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Tue, 16 Feb 2010 02:22:16 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d49541c46d5c</guid>
      <dc:date>2010-02-16T02:22:16Z</dc:date>
    </item>
    <item>
      <title>Adding a post  with source highlighting</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d132670c0320</link>
      <description>&lt;p&gt;This is an example fo how to add a post, with a linked image and source code highlighting&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#xD;
&#xD;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="345" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;
&lt;param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /&gt;
&lt;param name="flashvars" value="i=47221" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="560" height="345" src="http://screenr.com/Content/assets/screenr_1116090935.swf" flashvars="i=47221" allowfullscreen="true" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;</description>
      <pubDate>Mon, 15 Feb 2010 10:35:26 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d132670c0320</guid>
      <dc:date>2010-02-15T10:35:26Z</dc:date>
    </item>
    <item>
      <title>Creating a Lab Notebook (Blog)</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d1309839031b</link>
      <description>&lt;p&gt;This is the third and shows how to create a new blog or lab notebook such as the one I am using now&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#xD;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="345" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;
&lt;param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /&gt;
&lt;param name="flashvars" value="i=47217" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="560" height="345" src="http://screenr.com/Content/assets/screenr_1116090935.swf" flashvars="i=47217" allowfullscreen="true" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&#xD;
&lt;/object&gt;
&lt;/p&gt;</description>
      <pubDate>Mon, 15 Feb 2010 10:33:27 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d1309839031b</guid>
      <dc:date>2010-02-15T10:33:27Z</dc:date>
    </item>
    <item>
      <title>Data and File management</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d124d7cd02ff</link>
      <description>&lt;p&gt;In this second screencast, I go into more detail on file uploading and control of permissions&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#xD;
&#xD;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="345" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;
&lt;param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /&gt;
&lt;param name="flashvars" value="i=45944" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="560" height="345" src="http://screenr.com/Content/assets/screenr_1116090935.swf" flashvars="i=45944" allowfullscreen="true" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;</description>
      <pubDate>Mon, 15 Feb 2010 10:20:37 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d124d7cd02ff</guid>
      <dc:date>2010-02-15T10:20:37Z</dc:date>
    </item>
    <item>
      <title>Feature Screencast</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d1085a3702da</link>
      <description>&lt;p&gt;I have been making some screencasts showing how to use Inkspot and what can be done with it.&lt;/p&gt;
&lt;p&gt;The first one is a general overview of the site how it can be used to give scientists collaborative access to cloud computing. It shows examples of file, communication and software hosting in a secure, collaborative environment&lt;/p&gt;
&lt;p&gt;&#xD;
&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="345" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0"&gt;
&lt;param name="movie" value="http://screenr.com/Content/assets/screenr_1116090935.swf" /&gt;
&lt;param name="flashvars" value="i=45905" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;&lt;embed width="560" height="345" src="http://screenr.com/Content/assets/screenr_1116090935.swf" flashvars="i=45905" allowfullscreen="true" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&#xD;
&lt;/object&gt;
&lt;/p&gt;</description>
      <pubDate>Mon, 15 Feb 2010 09:49:30 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526bc807b0126d1085a3702da</guid>
      <dc:date>2010-02-15T09:49:30Z</dc:date>
    </item>
    <item>
      <title>File Properties</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526039d3e01261358d1d403fa</link>
      <description>&lt;p&gt;I am just getting used to some of the collaboration tools we've built in to inkspot and rellay starting to like the properties page for any file or other object which manges multiple versions as well allowing you to add tags, linked files/objects,&amp;nbsp; meta data, permissions and other stuff. These properties work for an y object including blog posts, workflows&amp;nbsp; and code blocks of course. Here's a screen grab&lt;img src="../servlets/download/InkspotFileProps.PNG?documentid=43e14ff526039d3e01261357c3c103f7" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Sat, 09 Jan 2010 13:49:33 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526039d3e01261358d1d403fa</guid>
      <dc:date>2010-01-09T13:49:33Z</dc:date>
    </item>
    <item>
      <title>ALOGP from the rcdk library</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526039d3e0126132b72d103c8</link>
      <description>&lt;p&gt;&lt;a href="dataproperties.jsp?id=43e14ff5229cf80b01229d2c5d710126"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="dataproperties.jsp?id=43e14ff52217855c012235d47252096d"&gt;&lt;/a&gt;&lt;a href="dataproperties.jsp?id=43e14ff5229cf80b01229d2c5d710126"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="dataproperties.jsp?id=43e14ff52217855c012235d47252096d"&gt;&lt;/a&gt;&lt;a href="dataproperties.jsp?id=43e14ff5229cf80b01229d2c5d710126"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="dataproperties.jsp?id=43e14ff52217855c012235d47252096d"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is one of the first workflow blocks I wrote using R. Very simple, the rcdk library does all the hard work of parsing the SMILES, creating the molecule and calculating LogP. I just have to read in and write out to the workflow ports correctly. SHould get even easier when Hugo delivers the new workflow block upload/definition tools &lt;/p&gt;
&lt;pre class="brush: R;collapse: true; fontsize: 100; first-line: 1; "&gt;#open the rcdk library&#xD;
library(rcdk);&#xD;
&#xD;
#get the smiles from the input port of the workflow block&#xD;
input &amp;lt;- input_text;&#xD;
&#xD;
#parse the smiles to create a cdl molecule object&#xD;
sp &amp;lt;- get.smiles.parser();&#xD;
mols &amp;lt;- sapply(input, parse.smiles, parser = sp);&#xD;
&#xD;
#add hydrogens&#xD;
lapply(mols, convert.implicit.to.explicit);&#xD;
&#xD;
#calculate ALogP value and pass to output port of workflow block&#xD;
alogp &amp;lt;- data.matrix(as.double(sapply(mols, get.alogp)));&#xD;
&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <pubDate>Sat, 09 Jan 2010 12:59:59 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff526039d3e0126132b72d103c8</guid>
      <dc:date>2010-01-09T12:59:59Z</dc:date>
    </item>
    <item>
      <title>Model Assessment</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5213e8d0c01214839dea6002b</link>
      <description>&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Roc&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Receiver_operating_characteristic"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;http://en.wikipedia.org/wiki/Receiver_operating_characteristic&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;odds ratio&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Odds_ratio#Worked_example"&gt;&lt;span style="font-family: Calibri; color: #0000ff; font-size: small;"&gt;http://en.wikipedia.org/wiki/Odds_ratio#Worked_example&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;a href="http://bio-geeks.com/?tag=roc"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;http://bio-geeks.com/?tag=roc&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 16 May 2009 07:01:40 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff5213e8d0c01214839dea6002b</guid>
      <dc:date>2009-05-16T07:01:40Z</dc:date>
    </item>
    <item>
      <title>How to add an R service to Inkspot</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff520f7a2f10120fbabbd700088</link>
      <description>&lt;p&gt;The example workflow shown as HSA_HERG uses a block created from an R script. This particular R script uses the &lt;a title="RCDK Cheminformatics Package" href="http://cran.r-project.org/web/packages/rcdk/index.html"&gt;"rcdk" package &lt;/a&gt;by Rajarshi Guha for cheminformatics and the workflow has one standard block for accessing a file, in this case an &lt;a title="SDF File format description" href="http://en.wikipedia.org/wiki/SD_format"&gt;.sdf&lt;/a&gt; format file downloaded from QSAR World and containing chemical structures and Herg toxicity data.&lt;/p&gt;
&lt;p&gt;The block readSDF is written using an R script using the rcdk library and reads an sdf file to produce two outpots, a data matrix of text, the smiles of the chemical structures, and the values in the sdf. The block allows the user to define a property value and in this case it is the sdf tag that describes the property values in the file.&lt;/p&gt;
&lt;p&gt;To write a script go to the Apps tab and open the Service Editor and click "Add new service" to launch the service editor.&lt;/p&gt;
&lt;p&gt;Add in the name of the new service, a text description. YOu overwrite the "My Services" entry if you want to locate the service under a different heading. Addd in the invocation url which locates the RServe service that will run your block, and give the service a name in the final field entry.&lt;/p&gt;
&lt;p&gt;Click on the external script button and the R service which is what we are using in this case. Note that Inkspot will be ading more scripting engines for Octave, Python and others in the near future.&lt;/p&gt;
&lt;p&gt;Create a new script file by clicking on "New" and write the R script that you would like to use. In the case of readSDF the script is shown here. What it does is load the rcdk library and parses some molecules by reading the sdf from an input file produced by the previous block using the "load molecules" function from rcdk.&lt;/p&gt;
&lt;p&gt;The script then converts the molecules to a matrix of smiels strings for output into the next block. It also gets the property values from the sdf and passes them as a second output.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;
&lt;hr /&gt;
&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;# Load the R-CDK Library&lt;br /&gt;library(rcdk);&lt;br /&gt;&lt;br /&gt;# Parse some molecules&lt;br /&gt;mol &amp;lt;- load.molecules(infile[1]);&lt;br /&gt;&lt;br /&gt;# output as smiles&lt;br /&gt;smi &amp;lt;- data.matrix(sapply(mol,get.smiles));&lt;br /&gt;&lt;br /&gt;print(smi);&lt;br /&gt;&lt;br /&gt;# output prop value&lt;br /&gt;prop &amp;lt;- data.matrix(as.double(lapply(mol, get.property, key = label)));&lt;/p&gt;
&lt;p&gt;
&lt;hr /&gt;
&lt;/p&gt;
&lt;p&gt;Save the script file with a menaingful name. We then need to define the input and outputs for the block as well as any properties that the user can define.&lt;/p&gt;
&lt;p&gt;Select "add new input" and give it the name you used in the script, in this case "infile". It is a file wrapper so select that radio button and save.&lt;/p&gt;
&lt;p&gt;Select "add new output" and add the outputs, in this case there are two, both data wrappers and they are "smi" and "prop"&lt;/p&gt;
&lt;p&gt;Finally, we click on "Add new property" and fill in the editor form. In this case it is a string "label" whihc is used in the script to define the proeprty label. It is a string and we give it a default value of "Label".&lt;/p&gt;
&lt;p&gt;Save the new block and it is ready for testing.&lt;/p&gt;
&lt;p&gt;If you know return to the workflow editor you should see the block in the services list, under the heading you used. You may need to click refresh. You can test it out on some real data files.&lt;/p&gt;
&lt;p&gt;To help with testing, you can add some print statements. The output can be viewed by clicking the small magnifying glass on th ebottom right corner of the editor window.&lt;/p&gt;
&lt;p&gt;Note that you are allowed to pass variables as matrices of doubles or of text. In the case your input is text simply append the input variable name as "input_text" in your script.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 01 May 2009 10:15:17 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff520f7a2f10120fbabbd700088</guid>
      <dc:date>2009-05-01T10:15:17Z</dc:date>
    </item>
    <item>
      <title>R Scripting</title>
      <link>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff520f7a2f10120fb7038070086</link>
      <description>&lt;p&gt;&lt;a href="http://www.r-project.org/"&gt;R&lt;/a&gt; is the leading open source software package for statistical analysis with a very wide range of sophisticated data handling, analysis and graphing components. Inskpot supports R scripting and the integration into the workflow and other tools which mean work in R can be integrated within a wide range of other tools and such R scripts can be shared as with all Inkspot objects.&lt;br /&gt;&lt;br /&gt;A number of worked examples of R scripting partly taken from introductory books such as&amp;nbsp; &lt;a href="http://www.amazon.com/Handbook-Statistical-Analyses-Using-R/dp/1584885394"&gt;Everitt &amp;amp; Hothorn&lt;/a&gt; and &lt;a href="http://www.amazon.com/Statistics-Introduction-Michael-J-Crawley/dp/0470022981/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1241168501&amp;amp;sr=1-1"&gt;Crawley&lt;/a&gt; will be developed here.&lt;/p&gt;</description>
      <pubDate>Fri, 01 May 2009 09:10:16 GMT</pubDate>
      <guid>http://inkspot-master.inkspot.co:8080/InkSpot/secure/viewpost.jsp?id=43e14ff520f7a2f10120fb7038070086</guid>
      <dc:date>2009-05-01T09:10:16Z</dc:date>
    </item>
  </channel>
</rss>

