Biomedical Imaging workflows


Scientific researchers working on biomedical imaging are used to develop their own filters for processing the data. Each filter can be configured using a set of parameters. When composing several filters in a pipeline, the configuration of the execution pipeline and the parameters is difficult to manage.

A new approach for composition and execution of biomedical workflows is presented. Taverna Workbench is used as a scientific workflow composition tool and execution engine. GIMIAS is the intermediate layer that executes the requested workflow components providing a web services interface. ITK is used at the bottom layer for processing the data using the already available filters. However, other processing libraries like VTK, Netgen or VMTK can be used together at the bottom layer.

This approach has been successfully tested in a concrete complex workflow for anatomical atlas generation of the heart. The workflow has been tested using GIMIAS-1.5 (open source) with an input set of 10 patient CT images of the heart.

You can see a complete video showing this feature here.



Anatomical atlas generation workflow

This workflow computes an anatomical atlas based on a set of patient images using registration methods. The workflow is automatic and does not require user interaction. The computed anatomical atlas is composed of a mean image and the set of transformation registrations for each patient between the mean image and the patient image. The atlas can be used to segment the mean image once and propagate the segmentation results to each patient image automatically.


Taverna Workbench

Taverna Workbench provides the following features:

  • Facilitates the sharing of workflows: The workflow is available in the myExperiment public web site and can be downloaded and executed locally
  • Allows graphical composition of complex workflows: Using Taverna Workbench, it’s possible to compose graphically the workflow, without the need to learn scripting languages and configuring a complex pipeline execution
  • Looping, batch processing, conditional branches: Taverna Workbench allows configuring looping, batch processing and conditional branches
  • Parallel execution: Taverna allows to execute several process in parallel
  • Local/Remote execution: The services can be executed in local or a remote machine. This is useful for concurrent execution and for filters that require high computational resources
  • Inspect execution results: Taverna allows to inspect the time consumed for each service and trace the inputs/outputs values of each service execution



GIMIAS provides the set of components that are used by Taverna to compose the workflow. The filters are provided using web service methodology. The web services are deployed using the GIMIAS Web Services plugin. The WSDL of the service is generated automatically from an XML that defines the inputs/outputs and parameters.

The simplest method to deploy a web service in GIMIAS is using a command line plugin (CLP). A command line plugin is a small processing component that takes some input data and produces some output data. One or several filters can be combined in a CLP. The main benefits of a CLP are:

  • Is an executable that does not depend on GIMIAS Framework. It does not use any GUI library.
  • Focuses on the processing of the data. It only depends on the used processing libraries, like ITK
  • Empowers rapid development and reusability
  • GIMIAS provides automatic GUI generation of CLP for easy execution and testing

As an example, you can take a look at the Gaussian Blur Image filter.

The main features of GIMIAS for this approach are:

  • Provides a set of open source services ready to be used in Taverna
  • Using the Custom Application Wizard, is possible to execute any application as a web service
  • Can execute services that require user interaction
  • Can be executed in a remote computer or in a cloud computing
  • Provides a development environment that allows creating command line plugins
  • Cross-platform: can be executed in Windows or Linux



ITK provides a set of image processing filters that can be combined to create complex workflows. In this example, several registration filters are used for the computation of anatomical atlas



One strategy for execution of a workflow is to use a scripting language like Perl. The developer uses system calls to execute the applications and set the correct parameters and input/output file names for each step of the workflow. This strategy is difficult to handle, modify and share when creating complex workflows.


Anatomical atlas generation workflow in Taverna

The workflow is publicly available in myExperiment:

The first layer of the workflow is the main loop that iterates over the entire processing pipeline. The number of iterations can be configured in Taverna. The inputs are the:

  •  FilesExtension: File extension for the input images (.vtk)
  • Patients: Comma separated list of patient images (PA01,PA02,PA03,…)
  • InputPath: Path of the input images (P:\Data\Cardio\Atlas\data_MSCT\Res4\)
  • ReferencePatient: Initial patient image taken as reference (PA01)


The second layer is divided into two parts:

  •  Pairwise registration: registers each patient image to the reference image. It takes the set of patient images as input and iterates over each image. This part of the workflow can be executed in parallel because each computation is independent
  • Mean: computes the mean of all computed vector fields


The Pairwise registration is composed of 5 steps:

  • Affine transformation: Compute an affine transformation between two images. Affine Transform will only be executed for the first iteration. For the rest of iterations, the results already computed will be reused.
  • BSplines transformation: Compute a non-rigid transformation between two images.
  • Chain transforms to VF: Represent a concatenation of transforms as a vector field.
  • VF Downsample: Downsample/resample a 3D vector field
  • VF Log: Compute the logarithm of a vector field


Finally, the mean is composed of 7 steps:

  • VF Mean: Compute the mean of a set of vector fields.
  • VF Exp: Compute the exponential of a vector field
  • VF Compose: Compose two vector fields
  • VF Downsample: Downsample/resample a 3D vector field
  • VF Crop: Crop a vector field to the grid of an image and produce its magnitude image on the same grid.
  • VF Warp Image: Warp an image using a vector field.


Workflow Composition

All required command line plugins (CLP) are loaded in GIMIAS. WebServices plugin is started and all CLP are deployed as web services. From Taverna, the WSDL address of the local machine is introduced and the user can start composing the workflow.

Workflow Execution

When Taverna executes the workflow, several web services requests are send in parallel to GIMIAS. When a request is received, the SOAP message is translated to a command line call. Once the execution of the command line is finished, the request response is sent back to Taverna.


Several executions have been launched with and without parallel execution.


Conclusions and future work

An approach for composition and execution of biomedical imaging workflows is being proposed, showing a concrete example of this approach for a complex workflow. The workflow contains loops, conditional branches, parallel executions and batch processing. This approach presents advantages compared to the use of scripting and empowers reusability and sharing of workflows.

This is the list of issues that we plan to work for the future:

  • In cloud computing environment, usually is not possible to start applications with graphical interface. It will be needed to execute GIMIAS with the web services server without Graphical User Interface.
  • When executing a service in Taverna, timeout should be enough to wait until the process is finished. A better strategy will check the status of the execution regularly.
  • Better integration between Taverna and GIMIAS will allow using a single application instead of two separate applications. Facilitating the inspection of the intermediate results on the fly will allow detecting mistakes on the parameters configuration.
  • Simplification of conditional branches in Taverna will reduce the complexity of the workflows.


This work has been made possible thanks to the projects cvREMOD and VPHShare.