SlideShare a Scribd company logo
Shim (Helper) Services 
and Beanshell Services 
Stian Soiland-Reyes and Christian Brenninkmeijer 
University of Manchester 
materials by Katy Wolstencroft and Aleksandra Pawlik 
http://orcid.org/0000-0001-9842-9718 
http://orcid.org/0000-0002-2937-7819 
http://orcid.org/0000-0002-1279-5133 
http://orcid.org/0000-0001-8418-6735 
Bonn University, 2014-09-01 
http://www.taverna.org.uk/ 
This work is licensed under a 
Creative Commons Attribution 3.0 Unported License
Taverna Tutorial 
Building a simple workflow 
Stian Soiland-Reyes and Christian Brennikmeijer 
University of Manchester 
materials by Katy Wolstencroft and Aleksandra Pawlik 
http://orcid.org/0000-0001-9842-9718 
http://orcid.org/0000-0002-2937-7819 
http://orcid.org/0000-0002-1279-5133 
http://orcid.org/0000-0001-8418-6735 
Bonn University, 2014-09-01 
http://www.taverna.org.uk/ 
This work is licensed under a 
Creative Commons Attribution 3.0 Unported License
 Taverna is good way to access lots of 
globally distributed services out there on 
the Web 
 This saves you the considerable trouble of 
installing stuff (e.g. databases, tools etc) 
on your personal machine or laboratory 
server
 Provided by third parties: 
 EMBOSS / SOAPlab - UK 
 BioMOBY - 
Canada/Germany/Australi 
a etc 
 BioMART / EBI - UK 
 NCBI and PathPort - US 
 KEGG - Japan 
 SeqHound / BIND – 
Canada 
 The catch – services are 
not designed to work 
together
A two-stage process 
1. Assembly – identifying services that perform 
the scientific functions needed for the 
experiment 
2. Gluing – identifying how (or more usually, if) 
theses services are compatible 
If they are incompatible – we need services 
that convert data formats and act as 
connectors – we call these services Shims (or 
helper services)
 Lots of services don’t match: A into B doesn’t go 
 Lots of services are poorly described – can you 
even tell if A goes into B?
UniProt record 
Match 
Mismatch 
protein_sequence Shim
DNA fasta 
Match 
Mismatch 
DNA embl Shim
 If you’re lucky someone will have already created a 
service that does what you want and will have 
described / annotated it in a way that lets you find it 
 …if no service exists, one way to solve the problem 
is to create a lightweight BeanShell script 
(essentially a “lighter” version of Java) that runs on 
your local machine (not on a server like the services 
do) 
 These come in two flavours: Ready made “Local 
Java Widgets” and roll-your-own “Local Services’’,
 BioCatalogue – some shims are regular WSDL 
or REST services 
 myExperiment – look for all workflows 
containing the scientific services. Has anyone 
linked them together before?
Exploring Shims 
 A shim is a service that doesn’t perform an experimental 
function, but acts as a connector, or glue, when 2 
experimental services have incompatible outputs and 
inputs 
 A shim can be any type of service – WSDL, soaplab etc. 
Many are simple Beanshell scripts 
 We have already used many shims in these exercises
Shims for Data Input 
 We will use the simple workflow that we build in the introductory 
tutorial 
 So far, we have only added a few input values to our workflows. 
Normally, you would have a much larger data set. The 
“GetProteinFasta” activity can only handle one ID at a time.
Shims for Data Input 
 You can add a list of IDs by configuring the input port 
 Right-click on the ID input and select ‘Edit workflow input port’ and 
change the depth to 1 (a list). 
 Now, when you run the workflow, you can add multiple ID values
Shims for Data Input 
 Try running it with 215422388 and 1220173 
 Press “Add value” to add each new value. 
 If you have hundreds of IDs, however, this is not very practical. 
Instead, we need an extra service to split a list of data items into 
individual values
Shims for Data Input 
 In the services panel, search for “split” 
 Select “Split string into string list by regular expression” 
(a purple local java service) and drag it into the workflow 
 Delete the data link between the “ID” input and 
“GetProteinFasta” by selecting and right-clicking on the 
diagram 
 Connect “ID” to the “string” port of the new “split” activity 
 Hint: Press To Display all Service ports 
 Add “n” as a constant value to the “regex” input on 
“split…” by right-clicking and selecting “Set constant 
value”
Shims for Data Input 
 In the services panel, search for “split” 
 Select 
“split_string_into_string_list_by_regular_expression” (a 
purple local java service) and drag it into the workflow
Shims for Data Input 
 Delete the data link between the “ID” input and 
“GetProteinFasta” by selecting and right-clicking on the diagram 
 Connect “ID” to the “string” port of the new “split” activity 
 Hint: If you don’t see the “string” port press the “Display all 
Service ports” button
Shims for Data Input 
 Add a text constant. (Hint rightclick a blank part of the workflow 
and select “Text constant”) 
 Set the value to “n” and press “Apply” and “Close” 
 Rename the service “regex_value” (Hint: rightclick the 
Text_constant” service and select Rename Service)
Shims for viewing data 
 Connect the “regex_value” to 
the “regex” port. 
 Connect the “split” output port to 
Get_protein_Fasta (“ID” input 
port)
Shims for Data Input 
 Run the workflow 
 This time, instead of adding individual IDs add a file of 
IDs. If you don’t have one to hand, there is one to 
download here: 
 http://www.myexperiment.org/files/1267/download 
 You can download and add the file, or you can add the 
URL from the input window 
 As the workflow runs, you will see it iterate over the IDs 
in the file
Pre-configured Shims 
 The local workers are ‘pre-configured’ shims. Have a 
look at the different categories on offer.
Writing your own shim services - 
Beanshells 
 Many shims are actually Beanshell scripts. 
 Beanshell scripts allow you to add simple data 
transformation steps into your workflow in an easy way. 
 We will take a brief look at writing Beanshells
Writing your Own Beanshell 
 Create a new workflow by 
selecting ‘file’ and ‘New 
Workflow’ 
 Add a new Beanshell 
 Hint (right click on blank part 
of the workflow) 
 A configure window will pop-up
Writing your Own Beanshell 
 Create 2 input ports named: “myName” and mySurname 
 Hint: Press “Add Port” after selecting the ‘Input Ports’ tab 
 Cretate 1 output port named: myFullname
Writing your Own Beanshell 
 Select the script tab and Paste 
the following script 
 myFullname = myName + "t" 
+ mySurname 
 The variable names must 
match exactly the names of 
the input and output ports 
 Hint: They are shown in purple 
when correctly matching 
 Then “Apply” and “Close” the 
“Beanshell” Window
Writing your Own Beanshell 
 Create 2 workflow inputs and 1 workflow output and 
connect them to the configured beanshell service. 
 Hint: The names of the input and output ports do not need to 
be the same as the names used in the script.
Writing your Own Beanshell 
 Run the workflow 
 You should get your full name printed in the output. 
This is a very simple example of using helper services to 
format results from your workflow
Ad

More Related Content

What's hot (17)

2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment
myGrid team
 
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to TavernaIMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT Centre of Competence
 
2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna
myGrid team
 
2310 b 03
2310 b 032310 b 03
2310 b 03
Krazy Koder
 
Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3
Suresh Mishra
 
Lecture14
Lecture14Lecture14
Lecture14
Châu Thanh Chương
 
Cis407 a ilab 4 web application development devry university
Cis407 a ilab 4 web application development devry universityCis407 a ilab 4 web application development devry university
Cis407 a ilab 4 web application development devry university
lhkslkdh89009
 
Less07 2 e_testermodule_6
Less07 2 e_testermodule_6Less07 2 e_testermodule_6
Less07 2 e_testermodule_6
Suresh Mishra
 
2310 b 06
2310 b 062310 b 06
2310 b 06
Krazy Koder
 
Swift LA Meetup at eHarmony- What's New in Swift 2.0
Swift LA Meetup at eHarmony- What's New in Swift 2.0Swift LA Meetup at eHarmony- What's New in Swift 2.0
Swift LA Meetup at eHarmony- What's New in Swift 2.0
Claire Townend Gee
 
Less10 2 e_testermodule_9
Less10 2 e_testermodule_9Less10 2 e_testermodule_9
Less10 2 e_testermodule_9
Suresh Mishra
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys Limited
Tim Read
 
Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2
Suresh Mishra
 
2014 Taverna Tutorial Components
2014 Taverna Tutorial Components2014 Taverna Tutorial Components
2014 Taverna Tutorial Components
myGrid team
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentation
techgajanan
 
6.2\9 SSIS 2008R2_Training - DataFlow Transformations
6.2\9 SSIS 2008R2_Training - DataFlow Transformations6.2\9 SSIS 2008R2_Training - DataFlow Transformations
6.2\9 SSIS 2008R2_Training - DataFlow Transformations
Pramod Singla
 
Django crush course
Django crush course Django crush course
Django crush course
Mohammed El Rafie Tarabay
 
2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment
myGrid team
 
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to TavernaIMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT Centre of Competence
 
2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna
myGrid team
 
Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3
Suresh Mishra
 
Cis407 a ilab 4 web application development devry university
Cis407 a ilab 4 web application development devry universityCis407 a ilab 4 web application development devry university
Cis407 a ilab 4 web application development devry university
lhkslkdh89009
 
Less07 2 e_testermodule_6
Less07 2 e_testermodule_6Less07 2 e_testermodule_6
Less07 2 e_testermodule_6
Suresh Mishra
 
Swift LA Meetup at eHarmony- What's New in Swift 2.0
Swift LA Meetup at eHarmony- What's New in Swift 2.0Swift LA Meetup at eHarmony- What's New in Swift 2.0
Swift LA Meetup at eHarmony- What's New in Swift 2.0
Claire Townend Gee
 
Less10 2 e_testermodule_9
Less10 2 e_testermodule_9Less10 2 e_testermodule_9
Less10 2 e_testermodule_9
Suresh Mishra
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys Limited
Tim Read
 
Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2
Suresh Mishra
 
2014 Taverna Tutorial Components
2014 Taverna Tutorial Components2014 Taverna Tutorial Components
2014 Taverna Tutorial Components
myGrid team
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentation
techgajanan
 
6.2\9 SSIS 2008R2_Training - DataFlow Transformations
6.2\9 SSIS 2008R2_Training - DataFlow Transformations6.2\9 SSIS 2008R2_Training - DataFlow Transformations
6.2\9 SSIS 2008R2_Training - DataFlow Transformations
Pramod Singla
 

Similar to 2014 Taverna tutorial Shims and Beanshell scripts (20)

2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example
myGrid team
 
Cis407 a ilab 5 web application development devry university
Cis407 a ilab 5 web application development devry universityCis407 a ilab 5 web application development devry university
Cis407 a ilab 5 web application development devry university
lhkslkdh89009
 
zMSC Lab.pdf
zMSC Lab.pdfzMSC Lab.pdf
zMSC Lab.pdf
Marna Walle
 
Taverna tutorial
Taverna tutorialTaverna tutorial
Taverna tutorial
Rafael C. Jimenez
 
dbadapters
dbadaptersdbadapters
dbadapters
XAVIERCONSULTANTS
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
anhlodge
 
ISE 7.1i Software
ISE 7.1i SoftwareISE 7.1i Software
ISE 7.1i Software
Dr. A. B. Shinde
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application Architecture
Shahzad
 
Mca 504 dotnet_unit5
Mca 504 dotnet_unit5Mca 504 dotnet_unit5
Mca 504 dotnet_unit5
Rai Saheb Bhanwar Singh College Nasrullaganj
 
Rpt ppt
Rpt pptRpt ppt
Rpt ppt
sindhu T
 
2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions
myGrid team
 
OLT open script
OLT open script OLT open script
OLT open script
Sujay Raghuraj
 
Appcelerator - using node.ACS (part 1)
Appcelerator - using node.ACS (part 1)Appcelerator - using node.ACS (part 1)
Appcelerator - using node.ACS (part 1)
Mobile Data Systems Ltd.
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Adapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedureAdapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedure
prathap kumar
 
Less06 2 e_testermodule_5
Less06 2 e_testermodule_5Less06 2 e_testermodule_5
Less06 2 e_testermodule_5
Suresh Mishra
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web service
Abhijit B.
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project Analyzed
PVS-Studio
 
Atlanta user group presentation configero 8 nov11
Atlanta user group presentation configero 8 nov11Atlanta user group presentation configero 8 nov11
Atlanta user group presentation configero 8 nov11
vraopolisetti
 
2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example
myGrid team
 
Cis407 a ilab 5 web application development devry university
Cis407 a ilab 5 web application development devry universityCis407 a ilab 5 web application development devry university
Cis407 a ilab 5 web application development devry university
lhkslkdh89009
 
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docxScanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
Scanned by CamScannerModule 03 Lab WorksheetWeb Developmen.docx
anhlodge
 
White Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application ArchitectureWhite Paper On ConCurrency For PCMS Application Architecture
White Paper On ConCurrency For PCMS Application Architecture
Shahzad
 
2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions
myGrid team
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1Creating Semantic Mashups  Bridging Web 2 0 And The Semantic Web Presentation 1
Creating Semantic Mashups Bridging Web 2 0 And The Semantic Web Presentation 1
jward5519
 
Adapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedureAdapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedure
prathap kumar
 
Less06 2 e_testermodule_5
Less06 2 e_testermodule_5Less06 2 e_testermodule_5
Less06 2 e_testermodule_5
Suresh Mishra
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web service
Abhijit B.
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project Analyzed
PVS-Studio
 
Atlanta user group presentation configero 8 nov11
Atlanta user group presentation configero 8 nov11Atlanta user group presentation configero 8 nov11
Atlanta user group presentation configero 8 nov11
vraopolisetti
 
Ad

More from myGrid team (10)

Taverna summary
Taverna summaryTaverna summary
Taverna summary
myGrid team
 
2014 Taverna Tutorial Introduction to eScience and workflows
2014 Taverna Tutorial Introduction to eScience and workflows2014 Taverna Tutorial Introduction to eScience and workflows
2014 Taverna Tutorial Introduction to eScience and workflows
myGrid team
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath
myGrid team
 
SWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice DescriptionSWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice Description
myGrid team
 
Taverna workflows in the cloud
Taverna workflows in the cloudTaverna workflows in the cloud
Taverna workflows in the cloud
myGrid team
 
The Taverna Software Suite
The Taverna Software SuiteThe Taverna Software Suite
The Taverna Software Suite
myGrid team
 
The Taverna Workflow Management Software Suite - Past, Present, Future
The Taverna Workflow Management Software Suite - Past, Present, FutureThe Taverna Workflow Management Software Suite - Past, Present, Future
The Taverna Workflow Management Software Suite - Past, Present, Future
myGrid team
 
2014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES22014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES2
myGrid team
 
The beauty of workflows and models
The beauty of workflows and modelsThe beauty of workflows and models
The beauty of workflows and models
myGrid team
 
If we build it will they come?
If we build it will they come?If we build it will they come?
If we build it will they come?
myGrid team
 
2014 Taverna Tutorial Introduction to eScience and workflows
2014 Taverna Tutorial Introduction to eScience and workflows2014 Taverna Tutorial Introduction to eScience and workflows
2014 Taverna Tutorial Introduction to eScience and workflows
myGrid team
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath
myGrid team
 
SWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice DescriptionSWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice Description
myGrid team
 
Taverna workflows in the cloud
Taverna workflows in the cloudTaverna workflows in the cloud
Taverna workflows in the cloud
myGrid team
 
The Taverna Software Suite
The Taverna Software SuiteThe Taverna Software Suite
The Taverna Software Suite
myGrid team
 
The Taverna Workflow Management Software Suite - Past, Present, Future
The Taverna Workflow Management Software Suite - Past, Present, FutureThe Taverna Workflow Management Software Suite - Past, Present, Future
The Taverna Workflow Management Software Suite - Past, Present, Future
myGrid team
 
2014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES22014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES2
myGrid team
 
The beauty of workflows and models
The beauty of workflows and modelsThe beauty of workflows and models
The beauty of workflows and models
myGrid team
 
If we build it will they come?
If we build it will they come?If we build it will they come?
If we build it will they come?
myGrid team
 
Ad

Recently uploaded (20)

Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
What Do Contribution Guidelines Say About Software Testing? (MSR 2025)
Andre Hora
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 

2014 Taverna tutorial Shims and Beanshell scripts

  • 1. Shim (Helper) Services and Beanshell Services Stian Soiland-Reyes and Christian Brenninkmeijer University of Manchester materials by Katy Wolstencroft and Aleksandra Pawlik http://orcid.org/0000-0001-9842-9718 http://orcid.org/0000-0002-2937-7819 http://orcid.org/0000-0002-1279-5133 http://orcid.org/0000-0001-8418-6735 Bonn University, 2014-09-01 http://www.taverna.org.uk/ This work is licensed under a Creative Commons Attribution 3.0 Unported License
  • 2. Taverna Tutorial Building a simple workflow Stian Soiland-Reyes and Christian Brennikmeijer University of Manchester materials by Katy Wolstencroft and Aleksandra Pawlik http://orcid.org/0000-0001-9842-9718 http://orcid.org/0000-0002-2937-7819 http://orcid.org/0000-0002-1279-5133 http://orcid.org/0000-0001-8418-6735 Bonn University, 2014-09-01 http://www.taverna.org.uk/ This work is licensed under a Creative Commons Attribution 3.0 Unported License
  • 3.  Taverna is good way to access lots of globally distributed services out there on the Web  This saves you the considerable trouble of installing stuff (e.g. databases, tools etc) on your personal machine or laboratory server
  • 4.  Provided by third parties:  EMBOSS / SOAPlab - UK  BioMOBY - Canada/Germany/Australi a etc  BioMART / EBI - UK  NCBI and PathPort - US  KEGG - Japan  SeqHound / BIND – Canada  The catch – services are not designed to work together
  • 5. A two-stage process 1. Assembly – identifying services that perform the scientific functions needed for the experiment 2. Gluing – identifying how (or more usually, if) theses services are compatible If they are incompatible – we need services that convert data formats and act as connectors – we call these services Shims (or helper services)
  • 6.  Lots of services don’t match: A into B doesn’t go  Lots of services are poorly described – can you even tell if A goes into B?
  • 7. UniProt record Match Mismatch protein_sequence Shim
  • 8. DNA fasta Match Mismatch DNA embl Shim
  • 9.  If you’re lucky someone will have already created a service that does what you want and will have described / annotated it in a way that lets you find it  …if no service exists, one way to solve the problem is to create a lightweight BeanShell script (essentially a “lighter” version of Java) that runs on your local machine (not on a server like the services do)  These come in two flavours: Ready made “Local Java Widgets” and roll-your-own “Local Services’’,
  • 10.  BioCatalogue – some shims are regular WSDL or REST services  myExperiment – look for all workflows containing the scientific services. Has anyone linked them together before?
  • 11. Exploring Shims  A shim is a service that doesn’t perform an experimental function, but acts as a connector, or glue, when 2 experimental services have incompatible outputs and inputs  A shim can be any type of service – WSDL, soaplab etc. Many are simple Beanshell scripts  We have already used many shims in these exercises
  • 12. Shims for Data Input  We will use the simple workflow that we build in the introductory tutorial  So far, we have only added a few input values to our workflows. Normally, you would have a much larger data set. The “GetProteinFasta” activity can only handle one ID at a time.
  • 13. Shims for Data Input  You can add a list of IDs by configuring the input port  Right-click on the ID input and select ‘Edit workflow input port’ and change the depth to 1 (a list).  Now, when you run the workflow, you can add multiple ID values
  • 14. Shims for Data Input  Try running it with 215422388 and 1220173  Press “Add value” to add each new value.  If you have hundreds of IDs, however, this is not very practical. Instead, we need an extra service to split a list of data items into individual values
  • 15. Shims for Data Input  In the services panel, search for “split”  Select “Split string into string list by regular expression” (a purple local java service) and drag it into the workflow  Delete the data link between the “ID” input and “GetProteinFasta” by selecting and right-clicking on the diagram  Connect “ID” to the “string” port of the new “split” activity  Hint: Press To Display all Service ports  Add “n” as a constant value to the “regex” input on “split…” by right-clicking and selecting “Set constant value”
  • 16. Shims for Data Input  In the services panel, search for “split”  Select “split_string_into_string_list_by_regular_expression” (a purple local java service) and drag it into the workflow
  • 17. Shims for Data Input  Delete the data link between the “ID” input and “GetProteinFasta” by selecting and right-clicking on the diagram  Connect “ID” to the “string” port of the new “split” activity  Hint: If you don’t see the “string” port press the “Display all Service ports” button
  • 18. Shims for Data Input  Add a text constant. (Hint rightclick a blank part of the workflow and select “Text constant”)  Set the value to “n” and press “Apply” and “Close”  Rename the service “regex_value” (Hint: rightclick the Text_constant” service and select Rename Service)
  • 19. Shims for viewing data  Connect the “regex_value” to the “regex” port.  Connect the “split” output port to Get_protein_Fasta (“ID” input port)
  • 20. Shims for Data Input  Run the workflow  This time, instead of adding individual IDs add a file of IDs. If you don’t have one to hand, there is one to download here:  http://www.myexperiment.org/files/1267/download  You can download and add the file, or you can add the URL from the input window  As the workflow runs, you will see it iterate over the IDs in the file
  • 21. Pre-configured Shims  The local workers are ‘pre-configured’ shims. Have a look at the different categories on offer.
  • 22. Writing your own shim services - Beanshells  Many shims are actually Beanshell scripts.  Beanshell scripts allow you to add simple data transformation steps into your workflow in an easy way.  We will take a brief look at writing Beanshells
  • 23. Writing your Own Beanshell  Create a new workflow by selecting ‘file’ and ‘New Workflow’  Add a new Beanshell  Hint (right click on blank part of the workflow)  A configure window will pop-up
  • 24. Writing your Own Beanshell  Create 2 input ports named: “myName” and mySurname  Hint: Press “Add Port” after selecting the ‘Input Ports’ tab  Cretate 1 output port named: myFullname
  • 25. Writing your Own Beanshell  Select the script tab and Paste the following script  myFullname = myName + "t" + mySurname  The variable names must match exactly the names of the input and output ports  Hint: They are shown in purple when correctly matching  Then “Apply” and “Close” the “Beanshell” Window
  • 26. Writing your Own Beanshell  Create 2 workflow inputs and 1 workflow output and connect them to the configured beanshell service.  Hint: The names of the input and output ports do not need to be the same as the names used in the script.
  • 27. Writing your Own Beanshell  Run the workflow  You should get your full name printed in the output. This is a very simple example of using helper services to format results from your workflow