SlideShare une entreprise Scribd logo
1  sur  27
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

Contenu connexe

Tendances

2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperimentmyGrid team
 
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to TavernaIMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to TavernaIMPACT Centre of Competence
 
2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced TavernamyGrid team
 
Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3Suresh 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 universitylhkslkdh89009
 
Less07 2 e_testermodule_6
Less07 2 e_testermodule_6Less07 2 e_testermodule_6
Less07 2 e_testermodule_6Suresh 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.0Claire Townend Gee
 
Less10 2 e_testermodule_9
Less10 2 e_testermodule_9Less10 2 e_testermodule_9
Less10 2 e_testermodule_9Suresh Mishra
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedTim Read
 
Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2Suresh Mishra
 
2014 Taverna Tutorial Components
2014 Taverna Tutorial Components2014 Taverna Tutorial Components
2014 Taverna Tutorial ComponentsmyGrid team
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentationtechgajanan
 
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 TransformationsPramod Singla
 

Tendances (17)

2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment2014 Taverna tutorial myExperiment
2014 Taverna tutorial myExperiment
 
IMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to TavernaIMPACT/myGrid Hackathon - Introduction to Taverna
IMPACT/myGrid Hackathon - Introduction to Taverna
 
2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna2014 Taverna tutorial Advanced Taverna
2014 Taverna tutorial Advanced Taverna
 
2310 b 03
2310 b 032310 b 03
2310 b 03
 
Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3Less13 3 e_loadmodule_3
Less13 3 e_loadmodule_3
 
Lecture14
Lecture14Lecture14
Lecture14
 
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
 
Less07 2 e_testermodule_6
Less07 2 e_testermodule_6Less07 2 e_testermodule_6
Less07 2 e_testermodule_6
 
2310 b 06
2310 b 062310 b 06
2310 b 06
 
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
 
Less10 2 e_testermodule_9
Less10 2 e_testermodule_9Less10 2 e_testermodule_9
Less10 2 e_testermodule_9
 
Ivanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys LimitedIvanti Cheat Sheet by Traversys Limited
Ivanti Cheat Sheet by Traversys Limited
 
Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2Less12 3 e_loadmodule_2
Less12 3 e_loadmodule_2
 
2014 Taverna Tutorial Components
2014 Taverna Tutorial Components2014 Taverna Tutorial Components
2014 Taverna Tutorial Components
 
Qtp Presentation
Qtp PresentationQtp Presentation
Qtp Presentation
 
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
 
Django crush course
Django crush course Django crush course
Django crush course
 

Similaire à 2014 Taverna tutorial Shims and Beanshell scripts

2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity examplemyGrid 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 universitylhkslkdh89009
 
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.docxanhlodge
 
ISE 7.1i Software
ISE 7.1i SoftwareISE 7.1i Software
ISE 7.1i SoftwareA 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 ArchitectureShahzad
 
2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial InteractionsmyGrid 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 1jward5519
 
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 1jward5519
 
Adapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedureAdapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedureprathap kumar
 
Less06 2 e_testermodule_5
Less06 2 e_testermodule_5Less06 2 e_testermodule_5
Less06 2 e_testermodule_5Suresh Mishra
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web serviceAbhijit B.
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project AnalyzedPVS-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 nov11vraopolisetti
 

Similaire à 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
 
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
 
zMSC Lab.pdf
zMSC Lab.pdfzMSC Lab.pdf
zMSC Lab.pdf
 
Taverna tutorial
Taverna tutorialTaverna tutorial
Taverna tutorial
 
dbadapters
dbadaptersdbadapters
dbadapters
 
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
 
ISE 7.1i Software
ISE 7.1i SoftwareISE 7.1i Software
ISE 7.1i Software
 
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
 
Mca 504 dotnet_unit5
Mca 504 dotnet_unit5Mca 504 dotnet_unit5
Mca 504 dotnet_unit5
 
Rpt ppt
Rpt pptRpt ppt
Rpt ppt
 
2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions
 
OLT open script
OLT open script OLT open script
OLT open script
 
Appcelerator - using node.ACS (part 1)
Appcelerator - using node.ACS (part 1)Appcelerator - using node.ACS (part 1)
Appcelerator - using node.ACS (part 1)
 
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
 
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
 
Adapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedureAdapters db-104-informixstoredprocedure
Adapters db-104-informixstoredprocedure
 
Less06 2 e_testermodule_5
Less06 2 e_testermodule_5Less06 2 e_testermodule_5
Less06 2 e_testermodule_5
 
Creating & consuming simple web service
Creating & consuming simple web serviceCreating & consuming simple web service
Creating & consuming simple web service
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project Analyzed
 
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
 

Plus de 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 workflowsmyGrid team
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial XpathmyGrid team
 
SWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice DescriptionSWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice DescriptionmyGrid team
 
Taverna workflows in the cloud
Taverna workflows in the cloudTaverna workflows in the cloud
Taverna workflows in the cloudmyGrid team
 
The Taverna Software Suite
The Taverna Software SuiteThe Taverna Software Suite
The Taverna Software SuitemyGrid 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, FuturemyGrid team
 
2014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES22014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES2myGrid team
 
The beauty of workflows and models
The beauty of workflows and modelsThe beauty of workflows and models
The beauty of workflows and modelsmyGrid 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
 

Plus de myGrid team (10)

Taverna summary
Taverna summaryTaverna summary
Taverna summary
 
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
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath
 
SWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice DescriptionSWeDe - Scientific Webservice Description
SWeDe - Scientific Webservice Description
 
Taverna workflows in the cloud
Taverna workflows in the cloudTaverna workflows in the cloud
Taverna workflows in the cloud
 
The Taverna Software Suite
The Taverna Software SuiteThe Taverna Software Suite
The Taverna Software Suite
 
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
 
2014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES22014-06-03-Taverna-IS-ENES2
2014-06-03-Taverna-IS-ENES2
 
The beauty of workflows and models
The beauty of workflows and modelsThe beauty of workflows and models
The beauty of workflows and models
 
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?
 

Dernier

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 

Dernier (20)

Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 

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