<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Building Science Gateways with EnginFrame: a Life Science  example </article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Livia Torterolo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ivan Porro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marco Fato</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Maurizio Melato</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Calanducci</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Roberto Barbera</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Communication, Computer and System Sciences of the University of Genoa</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Physics and Astronomy of the University of Catania</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Italian National Institute of Nuclear Physics, Division of Catania</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Nice Srl</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Given their ability to hide the complexities of the underlying computational environment, Science gateways, Grid portals and Web Service interfaces are crucial in enhancing user adoption of e-Infrastructures. Much effort has been invested in this field to create virtual environments that allow researchers to focus on their research carried out within the Virtual Organisations they belong to. The approach presented in the paper follows the Teragrid vision, according to which gateways enable entire communities of users associated with a common scientific goal to use the resources of a cyberinfrastructure through a common interface. The paper describes the EnginFrame framework developed to easily build Science Gateway prototypes and presents a use case from the Life Sciences domain.</p>
      </abstract>
      <kwd-group>
        <kwd>1Nextage srl</kwd>
        <kwd>Italy</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>INTRODUCTION </title>
      <p>One of the most rapidly evolving areas of Grid and Distributed
Computing is the construction of Grid Portals, high level graphic
interfaces that greatly simplify the execution of scientific
applications on e-Infrastructure exploiting the various middleware
services in a transparent and ubiquitous way.</p>
      <p>
        The main goal of Grid Portals is to hide the details and the
complexity of the Grid infrastructure from the users in order to
improve usability and utilization of the Grid. Usability can be
enhanced by lowering end-user requirements for accessing the
Grid and verticalizing the service offering. In parallel utilization
can be improved making the Grid evolution transparent to the
enduser and enforcing Grid utilization policies [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        A number of Grid portals have become popular in the last few
years in the scientific research community [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] but most of them are
designed on the basis of requirements coming from a specific user
community thus appearing like “vertical” web-based applications
(or collection of services) rather than “horizontal” portals. The
      </p>
      <p>DEGREE project1, for example, has particularly been both efficient
and effective in the exploitation and dissemination of Grid
technology in the field of Earth Science identifying a short list of
requirements for Grid portals for Earth Science (ES) applications.
In order to achieve its aims of making the Grid easier to use for the
ES community, DEGREE has successfully integrated ES
applications and middleware functionalities but only within
specific web Portals2.</p>
      <p>
        Notable exceptions are the EnginFrame portal3, that boasts relevant
references in the industrial world (Ferrari, Schlumberger, ENI,
Partners Healthcare, etc.) and it has been used in various research
projects such as A-WARE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], DEISA [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], BEinGRID4, and EGEE
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and the P-Grade Portal [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] used as a Multi-Grid portal serving
several EGEE Virtual Organizations and based on GridSphere [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
However, at present the most limiting aspects of existing solutions
are related to how users authenticate themselves to the portal and
the underlying infrastructure and to how many and what kind of
resources they can access. The first great distinction should be
done between EGEE-like and non EGEE-like portals, since the
first ones often require the user to have an existing account on Grid
middleware resources too (certificate and VO membership). The
second classification takes into account the available underlying
middleware. Most portals are tailored to a specific middleware
while others may launch jobs on different kind of resources.
Finally, data storage also plays a part when comparing portals, as
access to the storage via the portal can vary from case to case.
Most EGEE-like portals, for example, can easily access only
storage services controlled by gLite middleware [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
1 Dissemination and Exploitation of GRids in Earth sciencE,
http://www.eu-degree.eu
2Deliverable 4.1 and Deliverable 4.3,
http://www.eudegree.eu/DEGREE/internal-section/wp4/
3 EnginFrame Portal, http://www.enginframe.com
4 BEinGRID project, http://www.beingrid.eu/
      </p>
      <p>Those issues may be approached with a paradigm shift:
considering that a portal should be kept as generic as possible, in
order to be used by the largest possible number of communities,
and considering that scientific communities require specific
services, tools and interfaces on top of the general purpose ones,
researchers are migrating towards the Science Gateway concept.
This is explained in the next section. The EnginFrame framework
is outlined in section 3 in the context of a Science Gateway for
Life Sciences and an exemplar use case is shown in section 4.
Conclusions are then drawn in section 5.
2</p>
    </sec>
    <sec id="sec-2">
      <title>THE SCIENCE GATEWAY VISION</title>
      <p>According to TeraGrid5, a Science Gateway is a
communitydeveloped set of tools, applications, and data that is integrated in
graphical user interface via a portal or a suite of applications and
that is customized to meet the needs of the targeted community.
Some gateways expose customized sets of community codes so
that scientists or students can run them. Others bring new services
and applications to the community that would not be accessible
otherwise. Depending on the needs of the specific community, any
of the capabilities listed below should be provided by a typical
Science Gateway:
(1)
(2)
(3)
(4)
(5)
(6)
(7)</p>
      <p>Job execution services: the classical preparation,
submission, monitoring and output retrieval;</p>
      <sec id="sec-2-1">
        <title>Access to data collections: the ability to access and</title>
        <p>query data collections, intended as collection of files and
describing metadata;
Workflows: the possibility to design and run virtual
experiments in the form of organized sequence of tasks
with inter-dependencies;</p>
      </sec>
      <sec id="sec-2-2">
        <title>Visualization software and hardware: the availability</title>
        <p>of high-end visualization tools and systems to visualize
complex and large datasets;</p>
      </sec>
      <sec id="sec-2-3">
        <title>Data analysis and movement tools: the capability to</title>
        <p>provision data to a specific location accordingly to user,
network, and performance requirements;
Resource discovery: an indexed collection of resources
that applications and user-services will rely on;</p>
      </sec>
      <sec id="sec-2-4">
        <title>Domain-specific computational applications: specific</title>
        <p>services that may collect several of those aspects
resulting in end-user applications that address a specific,
complex issue.</p>
        <p>According to the Science Gateway definition, in the next section
we present a Science Gateway for Life Sciences based on
EnginFrame, a Grid framework through which it is possible to
integrate these functional elements in a stable and powerful
environment. Missing key aspects in the above check-list, such as
authentication and authorization, will be addressed in detail.
5 Teragrid project, http://www.teragrid.org/gateways/</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>THE ENGINFRAME FRAMEWORK</title>
      <p>
        The Science Gateway described in this section belongs to Life
Science and has its focus on biomedical informatics, in which the
authors have a significant experience [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>In this section we will concentrate on the architecture and general
functionalities of the portal, based on EnginFrame, while a use
case will be presented in section 4.</p>
      <p>The work benefits from hardware infrastructure donated as a SUR
Grant from IBM to the University of Genoa in 2008. It is
composed by a Blade Centre architecture with one visualization
blade, four Intel based computing nodes and three IBM PowerCell/
BE based computing nodes. The computing cluster is accessed by
users using the portal described in this paper.</p>
      <p>
        Moreover, thanks to the collaboration with RENCI6, North
Carolina, and the INFN GILDA team [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] in Catania, Italy, two
different Grid middleware have been tested in our prototype:
iRDOS [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and gLite [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>The portal is based on EnginFrame, a framework that allows
virtual organizations to provide application-oriented computing
and data services both to users (via Web browsers) and in-house
applications (via SOAP/WSDL based Web services), hiding all the
complexity of the underlying Cluster, Grid, or Cloud
infrastructure.</p>
      <p>EnginFrame as Grid Portal framework offers a wide range of
facilities to IT developers and provides end users with
applicationoriented vertical services.</p>
      <p>In particular, it simplifies the development of Web portals
exposing computing services that can run on different
computational Grid systems such as Platform LSF7, Sun Grid
Engine8, Altair PBS9, EGEE gLite10, etc.</p>
      <p>EnginFrame supports several open and vendor neutral standards,
distributed file systems, GUI virtualization tools and different
kinds of authentication systems.</p>
      <p>The EnginFrame Grid portal receives incoming requests from the
Web, authenticates and authorizes the requests, and then executes
the required actions in the underlying Grid computational
environment. Then, it gathers the results and transforms them into
a suitable format before sending the response to the client.
Transformation of results is performed according to the nature of
the client: HTML for Web browsers and XML for Web-services
based client applications.</p>
      <p>EnginFrame architecture is layered in three tiers, as shown in
Figure 1.
6 Renaissance Computing Institute, http://www.renci.org/
7 Platform Computing, http://www.platform.com/
8 Open source Grid Engine, http://gridengine.sunsource.net
9 Altair PBSpro, http://www.altair.com/software/pbspro.htm
10 EGEE gLite, http://glite.web.cern.ch/glite
The Client Tier consists of the user's Web browser. In EF, this
interface is based on well established Web standards like XHTML
and JavaScript. This tier is independent of the specific software
and hardware environment used by the end user. The Client Tier
also integrates remote visualization technologies.</p>
      <p>The Server Tier consists of a Server that interacts with the EF
Agents and manages the interaction with the users. EF Server is a
Java Web application and must be deployed inside a Java Servlet
Container (e.g., Apache Tomcat). It takes care of exposing
services to users.</p>
      <p>The Resource Tier consists of one or more EF Agents deployed on
the back-end infrastructure. EnginFrame Agents are stand/alone
Java applications which manage computing resources on user's
behalf and interact with the underlying operating system, job
scheduler, and Grid infrastructure to execute the portal services
(e.g., starting jobs, moving data, retrieving cluster load, etc.).
EnginFrame allows exposure of computing services solutions on
the Web. This is done by developing XML-based descriptions of
the services and scripts representing the actual services
implementations. Most of the information managed by
EnginFrame is described by dynamically generated XML
documents. The source of such information is typically the service
execution environment: an XML abstraction layer aims to submit
service actions and translate raw results (from the computational
environment) into XML structures. The XML abstraction layer is
designed to decouple the portal from the actual Grid environment.
This characteristic allows to extend the functionalities of the portal
by developing ad hoc plug-ins for specific Grid middleware and
legacy applications.</p>
      <p>A plug-in is a self-contained software bundle that encapsulates
XML service descriptions and the scripts or executables involved
with the services actions. In other words, a plug-in is a piece of
software that extends the EnginFrame portal functionalities in
many different areas:
•
•
•
•
•
•
•
•</p>
      <p>Bundle - full featured package containing other plug-ins,
e.g. Grid Portal for LSF;
Kernel - extension that enriches the portal’s core system,
e.g. Enterprise Portal;
Auth - extension that authenticates users towards an
authoritative source (e.g., Operating system, NIS, LDAP,
etc.);
Data - extension that helps display user data inside the
portal, e.g. a Remote Spooler Plug-in;
Grid - extension that connects the Grid portal with a
Grid manager, e.g. LSF Power Pack;
SOA - extension that transforms the Grid portal into a
SOA provider, e.g. the EnginFrame Web Service
Integration Kit;
Interactive - extension that allows clients to
interactively use the applications launched by the Grid
portal, e.g. VNC Plug-in;
Application – extension providing a set of services for
integrated back-end industry applications, e.g. EDA11 or
MCAE12 applications.</p>
      <p>The plug-in mechanism provided by EnginFrame allows
developers to easily and dynamically extend its set of
functionalities and services offering a full set of plug-ins targeting
each of the domains and capabilities covered by the Science
Gateway model.
3.1</p>
      <sec id="sec-3-1">
        <title>Authentication and authorization</title>
        <p>A flexible authentication delegation offers a wide set of
preconfigured authentication mechanisms: Linux Operating system,
NIS, PAM, LDAP, Microsoft Active Directory, MyProxy, Globus,
etc. It can also be extended throughout the plug-in mechanism.
Besides authentication, EnginFrame provides an authorization
framework that allows to define or inherit from the underlying
system group of users, access control lists (ACLs) and to bind
ACLs to resources, services, service parameters and service results.
The Web interface of the services provided by the Portal can be
authorized and thus tailored to the specific users’ roles or access
rights.
11 EDA: Electronic Design Automation
12 MCAE: Mechanical Computer-Aided Engineering
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Job execution services</title>
        <p>EnginFrame supports a wide variety of compute environments like
the MAUI and Torque scheduler, PBS (both OpenPBS and PBS
Pro), the Platform LSF product suite, Sun Grid Engine, and Grid
middleware like Globus, gLite, etc. An XML virtualization layer
invokes specific middleware commands and translates results, jobs
and Grid resources descriptions into a portable XML format called
GridML that abstracts from the actual underlying Grid technology
in use.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Access to data collections</title>
        <p>
          Concerning data management, the EnginFrame framework allows
users to browse and handle data on the client side or remotely
archived in the Grid and then to host service working environment
in filesystem areas called Spoolers. On the Grid side, the approach
we followed is twofold: both SRB/iRODS and gLite Grid
middleware can be integrated as DataGrid layers with EnginFrame.
SRB and iRODS
The integration of EnginFrame with SRB is provided through a
plug-in. The set of functionalities includes the possibility to get
and send data to SRB and to browse the SRB structures directly
from the user’s browser. Moreover, the plug-in also extends the
Spoolers view in order to link to SRB areas and see files and
collections together with the metadata associated to them.
The plug-in contains a collection of Unix scripts that interact with
SRB commands, a set of XML services, XSL and Javascript code
[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Another plug-in integrates EnginFrame with iRODS, a data-Grid
technology that is an evolution of SRB. The rich set of
functionalities includes the ability to get and send data to iRODS
and to browse and manage the iRODS data Grid structures directly
from the user’s browser. It is also possible to obtain audit data for
every object in the data Grid and to retrieve and search for
associated metadata, ACL, quota information and so on in a very
comfortable way through a web browser.</p>
        <p>Moreover, the plug-in provides a unique feature for managing
iRODS rules, in order to give the user the ability to visually create,
edit, save and run rules.</p>
        <p>The plug-in contains a collection of Unix scripts which interact
with iRODS commands, rules and microservices, a set of XML
services, XSL and Javascript/Ajax code.
gLite
Concerning the data management with the EGEE middleware,
gLite provides three kinds of services to deal with data on the Grid:
Storage Elements (SE), the LCG File Catalog (LFC) and the
AMGA Metadata Catalog. Files are stored into Storage Elements
(SE, the Grid service that takes care of data persistence). Files can
be replicated on several geographically distributed SEs for
ubiquity, security, redundancy and load-balancing purposes. LFC
provides a global hierarchical namespace of Logical File Names
(LFNs) of stored files, keeping track of the mapping between these
LFNs and the physical replica paths of the storage containing the
actual data. Finally, the AMGA Metadata Catalog can include
descriptive information (metadata) in the content of each file.
Using this metadata, users and applications can make queries to the
service to quickly individuate and later retrieve the files they are
interested in.</p>
        <p>Sometimes the direct usage of the three previous services can be
difficult because of the complexity and fragmentation of those
service’s APIs. In order to cope with this problem, two higher level
services have been developed to provide a transparent and easy
interface to the underlying services.</p>
        <p>
          The first is a Java Object Oriented Framework, named Grid
Storage Access Framework (GSAF) [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. This has been designed
for developers of applications that adopt data Grids as repository
infrastructure, and allows applications to manage files in a
coherent way among the tree main data management services
offered by gLite. Looking at the design viewpoint, GSAF identifies
a kind of Grid software engineering pattern trying to offer a
standard solution for common problems. GSAF wraps each gLite
data services through a corresponding software module built on top
of the related API, providing functions to interact with Storage
Elements, the File and Metadata Catalog. It has already been
integrated in EnginFrame and successfully tested within a
neuroinformatics application for the early diagnosis of the
Alzheimer disease [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>
          The second service easily integrable in our portal, is gLibrary [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ],
a system to manage digital libraries on Grid infrastructures. With
gLibrary all the complexity of the underlying Grid system is
hidden to users and applications. They only deal with concepts like
repositories, digital objects types and collections: once a repository
has been created by the administrator, a list of types and
collections for the objected that can be stored in the repository has
to be defined with their attributes. Those attributes represent the
metadata of the digital objects that will be actually stored into
some Grid Storage Elements. Additionally, filter attributes need to
be defined per each type, allowing to find quickly the desired
object. At present, a web interface has been developed that
implements cascading filters values, in a manner similar to the
Apple iTunes software, to browse multimedia collections. It allows
users to find and download a given object with few mouse clicks.
In the next release of gLibrary, a REST API is planned that will
allow to issue queries and manage uploads and downloads using
the nowadays very popular and easy-to-use web 2.0 paradigm of
the HTTP(s) GET, PUT, POST, DELETE commands supporting
using X.509 certificates to ensure the compliance with the Grid
Security Infrastructure requirements.
3.4
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Workflows</title>
        <p>
          Several workflow technologies have been integrated in the
EnginFrame framework and can use through it. In the context of
the A-WARE [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]– project, a workflow designer application, a
workflow orchestrator service and a workflow repository service
have been developed to implement in EnginFrame the main tasks
of designing, storing, executing, monitoring and orchestrating
workflows and the involved resources. The Grid middleware
adopted by A-WARE was Unicore [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], but the services developed
could be interfaced to other middlewares as well, such as gLite.
The MOTEUR workflow engine [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] has also been tested to enact
the execution of workflows designed with the Taverna Workbench
[
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] in a scalable way. Since MOTEUR is a Java application, its
execution has been easily integrated in EnginFrame providing
users with the opportunity to submit workflow as if they were
normal jobs. Workflows were based on simple WSDL web
services available on the Internet.
3.5
        </p>
      </sec>
      <sec id="sec-3-5">
        <title>Visualization software and hardware</title>
        <p>A client with pluggable image processing and visualization tools is
available through the Web portals powered by EnginFrame.
Traditional 2D visualization of graphics and GUI-based
applications is possible thanks to the VNC Plug-in for
EnginFrame. VNC13 is an industry standard technology for
Desktop remotization, since it provides the ability to view a remote
computer Desktop on a network connected client with minimal
bandwidth overhead, thus making possible to control a computer
using DSL and low-level broadband home connections. The VNC
plug-in available in EnginFrame covers only 2D applications. To
obtain unmodified 3D performances on clients that are not capable
of accelerated 3D, an extension to the classical architecture is
required. Basically, it consists of compressing the 3D component
of the scene (OpenGL) and send it to clients as a separate stream.
This is achieved using a visualization plug-in implemented with
IBM Deep Computing Visualization (DCV)14, SUN VirtualGL15
and HP RGS16. These are advanced 2D/3D GUI virtualization
solutions that can provide 3D content from unmodified 3D
OpenGL applications to clients. The approach may benefit from
the availability, on the server side, of server nodes equipped with
computer graphics hardware.</p>
        <p>EnginFrame plays a central role in the remote visualization
architecture: it allows users to run and control their interactive
applications just using a common Web browser and to share
sessions with other users (e.g., for teleconsulting, training, etc.).
A screen-shot of the Portal, running two interactive services (a 3D
brain viewer and a computational chemistry software) is reported
in Figure 2.</p>
        <p>Client-server paradigm allows for lightweight, noiseless, low
powered and small form factor clients, enabling the provision of
complex 3D and 4D data on small client, remote displays and
mobile devices. From a computational point of view, computing
intensive tasks, such as integration among medical imaging
modalities (CT, PET, MRI, fMRI), brain surface extraction, voxel
based analysis, are performed on server side and can benefit from
powerful hardware.
13http://www.realvnc.com/vnc/index.html
14http://www-03.ibm.com/systems/deepcomputing
15http://www.virtualgl.org
16http://h20331.www2.hp.com/hpsub/cache/286504-0-0-225-121.html
Different sites can be integrated into a distributed architecture
which enables users to access their data transparently and run
complex analyses.</p>
        <p>Data are usually stored in different locations - in most cases there
is no shared file system or common namespace - and they need to
be moved between locations.</p>
        <p>For these reasons, components such as File and Replica Catalogs
(to keep track where data are stored) and File transfer services (for
scheduled, reliable file transfer) represent important layers in every
Grid middleware stack.</p>
        <p>Depending on the middleware, EnginFrame “speaks” the right
language to interact with the appropriate component: e.g., LFC17,
SRM18 and gridFTP19 for gLite middleware or iCAT20 and
iCommands21 for iRODS.</p>
        <p>From the user perspective, distributed data are accessible in an
easy and transparent way, regardless their physical location, in line
with the concept of global virtual file system(s).
3.7</p>
      </sec>
      <sec id="sec-3-6">
        <title>Resource discovery</title>
        <p>Resource discovery systems are essential components in every
Grid environment because they provide information about Grid
resources and their status, with the possibility to use this
information for monitoring and accounting purposes. gLite
Information System and iRODS Resource Monitoring System are
just two examples of solutions we have tested.</p>
        <p>EnginFrame has the capability to internally monitor new resources
availability. Every time the administrator of the portal publishes a
new resource (plugins, computing and storage nodes, services,
17LCG File catalog, http://www.gridpp.ac.uk/wiki/LCG_File_Catalog
18Storage Resource Manager, https://sdm.lbl.gov/srm/
19GridFTP, http://www.globus.org/grid_software/data/gridftp.php
20ICAT, https://www.irods.org/index.php/iCAT
21iCommands, https://www.irods.org/index.php/icommands
features, etc.), it can be automatically visualized and used by the
other users entitled to do so.</p>
        <p>An example of high-level resource discovery system has been
implemented in the context of the A-WARE project. The
AWARE architecture basically involves four layers, from the top to
the bottom:
(1)
(2)
(3)</p>
        <sec id="sec-3-6-1">
          <title>Client layer (the Web browser);</title>
        </sec>
        <sec id="sec-3-6-2">
          <title>Front-end layer (the Grid portal, e.g. EnginFrame);</title>
          <p>Middle-layer: an ESB (Enterprise Service Bus) called
ASB (A-WARE Service Bus), an integration layer
providing many services and functionalities. E.g.
applicative services, Grid integration, Workflow
orchestrator, etc;
(4)</p>
        </sec>
        <sec id="sec-3-6-3">
          <title>Grid layer, Unicore.</title>
          <p>Grid services are defined in the back-end Grid environment and
automatically exposed on the ASB.</p>
          <p>The portal, interfacing the ASB, was thus able to dynamically
expose EF services, ASB services, and Grid services (through the
ASB).
3.8</p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>Domain-specific computational applications</title>
        <p>This aspect is widely described in the next section reporting the use
case from Life Sciences.
4
4.1</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>A USE CASE</title>
      <sec id="sec-4-1">
        <title>Application design</title>
        <p>We present in this section an example of bioinformatics
application integrated in a portal based on EnginFrame and
successfully tested and used in production mode by the Functional
Genomics laboratory of the National Cancer Research Institute of
Genoa.</p>
        <p>The service developed, Survival Online (available at
http://ada.dist.unige.it:8080/enginframe/bioinf/bioinf.xml), is a
novel method to perform correlations between microarray gene
expression data and clinic-pathological data through a combination
of available and newly developed processing tools.</p>
        <p>Microarray data analyses procedures are usually made of several
steps ranging from preprocessing (background correction,
normalization, summarization) to the statistical analysis of
differential gene expression. This may involve different computer
programs, ranging from specialized tools and statistical software
environments to simple spreadsheets. It is therefore difficult for
single researchers to analyze large datasets just using their local
resources and, even if it is possible, it requires time, costs and
skills.</p>
        <p>The service becomes a good solution to the challenge of translating
a complex manual procedure into an automated and consolidated
Web-based process which can benefit from a back-end Grid
infrastructure.</p>
        <p>
          The automated procedure is shown in Figure 3. It represents the
workflow of the processing steps required by the analysis.
As first step, microarray data are preprocessed (using background
correction and normalization methods) and gene expression values
are obtained by running a parallel version of dChip [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
dChip software, which had been ported on Linux platforms and
parallelized, is able to run on both cluster environments and
distributed Grid infrastructures, like EGEE. In this scenario, the
added value of using Grid technologies is the possibility to analyze
a large number of arrays in parallel thus reducing computational
times and data transfers.
        </p>
        <p>
          The following processing steps further evaluate expression values
by means of several R/Bioconductor methods [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>
          First, under/over-expressed genes are filtered so that only a
userdefined set of genes is retained. Then, specific phenodata are
associated to samples. Finally, a Cox regression analysis, possibly
combined with a multivariate analysis, is performed and the
Kaplan-Meier survival plot is computed [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].The Kaplan-Meier
model graphically describes a step function with sudden changes in
the estimated probability whenever an event is observed. It
estimates the survival function from life-time data. In this context,
it is used to measure the fraction of patients living for a certain
amount of time after treatment.
        </p>
        <p>An example of resulting Kaplan-Meier plot is shown in Figure 4.
The application presented in the above subsection has been
integrated in a Science Gateway based on EnginFrame. Thanks to
EnginFrame, it has been possible to develop new portal services
with very little effort.</p>
        <p>EnginFrame services are made of an XML description, input
parameters and the action to be executed. Normally, all the
services exported by EnginFrame are described in a XML file
called Services Definition File (SDF). For the sake of
completeness and clearness, a fragment of SDF file for Survival
analysis service is reported in Figure 5.
contained in the ef:action (in this specific case
EF_COMMAND="${EF_PLUGIN_PATH}/bin/ma_serv.sh") is
submitted to the EnginFrame Agent which executes it on the
backend resource tier. The input parameters of the service provided by
the user in the HTML form fields are passed to the script as
environment variables. Looking at the specific example in Figure
4, the option with id=“FILE” is rendered as a HTML file widget.
When the user presses the “Submit job” button, the selected file is
uploaded (via HTTP) from the user’s machine to the spooler area
created for the submitted service and then a job is submitted to the
back-end infrastructure (gLite, SRB, LSF, etc., depending on the
plug-in used). The path of the transferred file is stored in the
environment variable FILE. Layout and graphical aspects of the
portal are kept separated from the services definition and involve
XSL programming. EnginFrame system XSL provides libraries
coping with the translation of XML into HTML and this makes the
task of configuring the graphical layout straightforward.
The whole development process is very rapid thanks to the
possibility of re-using existing scripts and to the framework ability
to dynamically catch any changes in services and layout avoiding
in this way complex and tedious deployments iterations.
A graphical overview of the developed service is given by the
portal screen-shots shown in Figures 4 and 6.</p>
        <p>Figure 6 represents the user interface for application parameters
and data upload.
The fragment shows the basic elements for the description of any
service. The ef:option tags represent the input parameters for the
service and are transformed to HTML form fields by the
EnginFrame Server according to their type. When a user requests
the service execution, pressing the “submit” button, the script
The user is first enabled to select - remotely or locally - datasets or
single samples thereof, as well as single genes or lists of genes.
Expression values of selected genes are then correlated with
sample annotation data by running mono- or multi-variate Cox
regression, depending on user preferences.</p>
        <p>Survival analyses results, together with the Kaplan Meier plot, are
shown in the spooler area of the portal (see Figure 4). Execution
status of the analysis (DONE) is visible as well.</p>
        <p>The system was tested using publicly available breast cancer
datasets and GO (Gene Ontology) derived gene lists or single
genes for survival analyses.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>CONCLUSIONS</title>
      <p>In this paper we present a framework to integrate Grid resources
and application tools according to the Science Gateway paradigm.
The goal is to deliver customized graphical user interfaces for
those applications which require many computational resources, so
they need to be performed either on Grid infrastructures or on
High-Performance Computing facilities.</p>
      <p>Based on a service-oriented framework, EnginFrame provides a
platform for many kinds of Science Gateways belonging to many
domains
A bioinformatics application for the analysis of Affymetrix
GeneChip microarrays, successfully deployed at IST, National
Cancer Research Institute of Genoa, has been presented as an
example of EnginFrame usage and benefits.</p>
      <p>As future work, special attention will be given to Web 2.0
technologies as a new way to enrich user interface and allow
scientists to run their analysis through social web sites.</p>
    </sec>
    <sec id="sec-6">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work is developed within the Italian FIRB project
ITALBIONET (“Rete italiana di bioinformatica”). We would like
to thank Carla Milani from IBM Italian University Relation Office
who made the competition of the University of Genoa in the 2008
edition of IBM SUR Grant possible, and prof. Enrico Giunchiglia,
formal winner of the grant.</p>
      <p>Thanks also go to Dott. Ulrich Pfeffer from National Cancer
Research Institute, Genoa, for his support in experiment design and
validation phases.</p>
      <p>Finally we would like to acknowledge the support of the e-Science
Institute in Edinburgh.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dove</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hayes</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calleja</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murray-Rust</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2006</year>
          )
          <article-title>Survey of Major Tools and Technologies for Grid-enabled Portal Development</article-title>
          ,
          <source>Proceedings of the UK e-Science All Hands Meeting 2006</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Gentzsch</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , (
          <year>2009</year>
          )
          <article-title>Grid and Cloud Portals for Design, Simulation, and Collaboration, Parallel, Distributed and Grid Computing for Engineering</article-title>
          , SaxeCoburg Publications, pp.
          <fpage>83</fpage>
          -
          <lpage>10</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Menday</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hagemeier</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schuller</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Snelling</surname>
          </string-name>
          , D., van den Berghe, S.,
          <string-name>
            <surname>Cacciari</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <string-name>
            <given-names>A</given-names>
            <surname>One-Stop</surname>
          </string-name>
          ,
          <article-title>Fire-and-(almost)Forget, Droppingoff</article-title>
          and
          <string-name>
            <given-names>Rendezvous</given-names>
            <surname>Point</surname>
          </string-name>
          . Springer,
          <year>2007</year>
          .Lecture Notes in Computer Science;
          <volume>4375</volume>
          ), doi: 10.1007/978-3-
          <fpage>540</fpage>
          -72337-0_
          <fpage>22</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Lederer</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <article-title>and</article-title>
          <string-name>
            <surname>Alessandrini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>DEISA: Enabling Cooperative Extreme Computing in Europe, Parallel Computing: Architectures, Algorithms and Applications</article-title>
          . Volume
          <volume>15</volume>
          Advances in Parallel Computing; eds. C. Bischof et al.
          <source>(ISBN: 978-1-58603-796-3)</source>
          , IOS press, p.
          <fpage>689</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Andronico</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ardizzone</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barbera</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Catania</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carrieri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Falzone</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giorgio</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>La Rocca</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monforte</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pappalardo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Passaro</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Platania</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>GILDA: The Grid INFN Virtual Laboratory for Dissemination Activities</article-title>
          ,
          <string-name>
            <surname>TRIDENTCOM</surname>
          </string-name>
          <year>2005</year>
          :
          <fpage>304</fpage>
          -
          <lpage>305</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Kacsuk</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Sipos</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>(2005) Multi-Grid, Multi-User Workflows in the PGRADE</article-title>
          <source>Portal Journal of Grid Computing</source>
          , Vol.
          <volume>3</volume>
          , No.
          <fpage>3</fpage>
          -
          <issue>4</issue>
          , Springer Publishers, pp.
          <fpage>221</fpage>
          -
          <lpage>238</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Novotny</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Russell</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Wehrens</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          (
          <year>2004</year>
          )
          <article-title>GridSphere: an advanced portal framework</article-title>
          .
          <source>Euromicro Conference</source>
          ,
          <volume>412</volume>
          -
          <fpage>419</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Scardaci</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scuderi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>(2007) Managing Confidential Data in the gLite Middleware, Enabling Technologies</article-title>
          , IEEE International Workshops on, pp.
          <fpage>298</fpage>
          -
          <lpage>299</lpage>
          , 16th IEEE International Workshops on Enabling Technologies:
          <article-title>Infrastructure for Collaborative Enterprises (WETICE</article-title>
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Torterolo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porro</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Venuti</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gatti</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calanducci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scifo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Fato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>BMPortal: A Bio Medical Informatics Framework EGEE User Forum 2007, Manchester</article-title>
          , UK,
          <volume>176</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Zhu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marciano</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Moore</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , (
          <year>2009</year>
          )
          <article-title>Enabling Inter-repository Access Management between iRODS and Fedora"</article-title>
          .
          <source>Accepted by the 4th International Conference on Open Repositories. Atlanta</source>
          , Georgia, USA. May 18-21.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Beltrame</surname>
            <given-names>F</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maggi</surname>
            <given-names>P</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melato</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molinari</surname>
            <given-names>E</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sisto</surname>
            <given-names>R</given-names>
          </string-name>
          , and Torterolo L. (
          <year>2006</year>
          )
          <article-title>SRB Data Grid and Computer Grid Integration via the EnginFrame Grid Portal</article-title>
          , SRB Workshop San Diego Supercomputing Center.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Scifo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>GSAF Grid Storage Access Framework</article-title>
          .
          <source>Enabling Technologies: Infrastructure for Collaborative Enterprises</source>
          ,
          <fpage>296</fpage>
          -
          <lpage>297</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Torterolo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corradi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canesi</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barbera</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scifo</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calanducci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scardaci</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parisi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Scuderi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>A new paradigm to design, implement and deply Grid oriented application: a biomedical use case”</article-title>
          .
          <source>Handbook of Research on Computational Grid Technologies for Life Sciences, Biomedicine and Healthcare.</source>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Calanducci</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Castrillo</surname>
            ,
            <given-names>F.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pollàn</surname>
            ,
            <given-names>R.R.</given-names>
          </string-name>
          ,
          <source>del Solar</source>
          , (
          <year>2008</year>
          )
          <article-title>Enabling Digital Repositories on the Grid, Advanced Engineering Computing and</article-title>
          Applications in Sciences, International Conference on, pp.
          <fpage>45</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Clementi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cacciari</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Melato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menday</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hagemeier</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , (
          <year>2007</year>
          )
          <string-name>
            <given-names>A</given-names>
            <surname>Business-Oriented Grid</surname>
          </string-name>
          Workflow Management
          <source>System Proceedings of 3rd UNICORE Summit</source>
          <year>2007</year>
          , Springer, LNCS
          <volume>4854</volume>
          , pp.
          <fpage>131</fpage>
          -
          <lpage>140</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Glatard</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Montagnat</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lingrand</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pennac</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          (
          <year>2007</year>
          )
          <article-title>Flexible and efficient workflow deployment of data-intensive applications on grids with MOTEUR</article-title>
          ,
          <source>International Journal of High Performance Computing and Applications.</source>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Oinn</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and et al.(
          <year>2000</year>
          )
          <article-title>Taverna: Lessons in creating a workflow environment0 for the life sciences</article-title>
          ,
          <source>Concurrency Computat: Pract Exper</source>
          ,
          <fpage>1</fpage>
          -
          <lpage>36</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Corradi</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fato</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porro</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scaglione</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Torterolo</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>A Webbased and Grid-enabled dChip version for the analysis of large sets of gene expression data</article-title>
          .
          <source>BMC Bioinformatics</source>
          ,
          <volume>9</volume>
          :
          <fpage>480</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Gentleman</surname>
            ,
            <given-names>R</given-names>
          </string-name>
          , Carey,
          <string-name>
            <given-names>J. V.</given-names>
            ,
            <surname>Huber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Irizarry</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.R,</surname>
          </string-name>
          <article-title>and</article-title>
          <string-name>
            <surname>Dudoit</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          (
          <year>2005</year>
          )
          <article-title>Bioinformatics and Computational Biology Solutions Using R and Bioconductor</article-title>
          .
          <source>Statistics for Biology and Health</source>
          , Springer.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Kaplan</surname>
            ,
            <given-names>E</given-names>
          </string-name>
          and Meier,
          <string-name>
            <surname>P.</surname>
          </string-name>
          (
          <year>1958</year>
          )
          <article-title>Nonparametric estimation from incomplete observations</article-title>
          .
          <source>J Am Stat Assoc</source>
          ,
          <volume>53</volume>
          :
          <fpage>457</fpage>
          -
          <lpage>481</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>