SlideShare a Scribd company logo
1 of 28
Advanced Taverna 
Stian Soiland-Reyes and Christian Brenninkmeijer 
University of Manchester 
materials by Katy Wolstencroft, Aleksandra Pawlik, Alan Williams 
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 
http://orcid.org/0000-0003-3156-2105 
Bonn University, 2014-09-01 / 2014-09-03 
This work is licensed under a http://www.taverna.org.uk/ 
Creative Commons Attribution 3.0 Unported License
Advanced Exercises 
 The Taverna engine can also help you control the data flow 
through your workflows. It allows you to manage iterations 
and loops, add your own scripts and tools, and make your 
workflows more robust 
 The following exercises give you a brief introduction to some 
of these features 
 Like in the previous tutorial workflows in this practical use 
small data-sets and are designed to run in a few minutes. In 
the real world, you would be using larger data sets and 
workflows would typically run for longer
List handling - cross or dot product 
As you may have already seen, Taverna can automatically 
iterate over sets of data, calling a service multiple times for 
each value in the input list. 
When 2 sets of iterated data are combined (one to each input 
port), Taverna needs extra information about how they 
should be combined. You can have: 
A cross product – combining every item from port A with 
every item from port B - all against all 
A dot product – only combining item 1 from port A with item 
1 from port B, item 2 with item 2, and so on – line against 
line
List handling – example workflow 
 Download and open the workflow “Demonstration of 
configurable iteration” from 
http://www.myexperiment.org/workflows/4332 
 Or see “Run this workflow in Taverna” on myExperiment, and copy the 
link into File -> Open Workflow Location 
 Read the workflow metadata to find out what the workflow 
does (by looking at the ‘Details’) 
 Run the workflow and look at the results 
 Click on individual services to inspect the intermediate values 
and multiple invocations for: 
 AnimalsList, ColourAnimals, ShapeAnimals 
 Alternatively, add additional workflow output ports from AnimalsList 
and ColourAnimals, and rerun.
List handling - configuration 
 Go back to the Design view 
 Select the ColourAnimals service by clicking on it 
 Select the Details tab in the workflow explorer, open List 
handling and click on Configure, 
 or right-click on ColourAnimals, select Configure running… 
then List handling… 
 Click on Dot product in the pop-up window. This allows you to 
switch to cross product (see the next slide)
List handling– configuring - 1
List handling – configuring - 2 
 Click on Dot Product 
 Click Change to Cross 
Product on the right 
 Click OK 
 Run the workflow again
List handling - difference 
 What is the difference between the results of the two runs? 
What does it mean to specify dot or cross product? 
NOTE: The iteration strategies are very important. Setting cross 
product instead of dot when you have 2000x2000 data items 
can cause large and unnecessary increases in computation!
List handling - workflow 
e.g. red, green, 
blue, yellow 
How does Taverna 
combine them? 
e.g. cat, donkey, 
koala
List handling - Cross product 
Red 
Green 
Blue 
Yellow 
Cat 
Donkey 
Koala 
Red cat, red donkey, red koala 
Green cat, green donkey, green koala 
Blue cat, blue donkey, blue koala 
Yellow cat, yellow donkey, yellow koala
List handling - Dot product 
Red 
Green 
Blue 
Yellow 
Cat 
Donkey 
Koala 
Red cat 
Green donkey 
Blue koala 
There is no yellow animal because the list lengths don’t match!
List handling - summary 
 The default in Taverna is cross product 
 Be careful! All against all in large iterations give very big 
numbers! 
 For more complex list handling, e.g. combination of 3 or more 
ports, see 
http://dev.mygrid.org.uk/wiki/display/tav250/List+handling
Looping asynchronous services 
 Find the workflow “EBI_InterproScan_broken” in the workshop 
pack on myExperiment 
 InterproScan analyses a given protein sequence (or set of 
sequences) for functional motifs and domains 
 This workflow is asynchronous. This means that when you 
submit data to the ‘runInterproScan’ service, it will return a 
jobID and place your job in a queue (this is very useful if your 
job will take a long time!) 
 The ‘Status’ nested workflow will query your job ID to find out 
if it is complete
Looping 
The default behaviour in a workflow is to call each service 
only once for each item of data – so what if your job has not 
finished when ‘Status’ workflow asks? 
 Download and run the workflow, using the default protein 
sequence and your own email address 
 Almost every time, the workflow will fail because the results 
are not available before the workflow reaches the 
‘get_results’ service – the ‘status’ output is still RUNNING
Looping 
 This is where looping is useful. Taverna can keep running the 
Status service until it reports that the job is done. 
 Go back to the Design view 
 Select the Status nested workflow 
 Select the Details tab in the workflow explorer, open 
Advanced and click on Add looping, 
 or right-click on Status, select Configure running… then 
Looping… 
 (Example on next slide)
Looping
Looping 
 Use the drop-down boxes in the looping window to set 
getStatus_output_status is not equal to RUNNING
Looping 
 Save the workflow and run it again 
 This time, the workflow will run until the ‘Status’ nested 
workflow reports that it is either DONE, or it has an ERROR. 
 You will see results for text, but you will still get an error for 
‘xml’. This is because there is one more configuration to change 
– we also need Control Links to delay the exectution of 
getXmlResult.
Control Links 
 Normally a service in a workflow will run as 
soon as all its input ports are available – 
even if graphically it may be “further down” 
 A control link specifies that there is a 
dependency on another service even if there 
is no direct or indirect data flowing between 
them. 
 In a way the data still flows, but internally on the 
called service, outside the workflow 
 A control link is shown as a line with a white 
circle at the end. In our workflow this means 
that getTextResult will not run until the 
Status nested workflow is finished
Control Links 
 We will add control links to fix the ‘xml’ output 
 Switch to the Design view 
 Right-click on getXmlResult and select Run after from the drop 
down menu. 
 getXmlResults is moved down in the diagram, showing the 
new control link 
 Set it to Run after -> Status 
 Save and run the workflow 
 Now you will see that getXmlResults and getTextResults take a 
bit longer before they run 
 This time, results are available for both xml and text
Control Links
Retries: Making your Workflow Robust 
 Web services can sometimes fail due to network connectivity 
 If you are iterating over lots of data items, this is more likely to 
cause problems because Taverna will be making lots of 
network connections. 
 You can guard against these temporary interruptions by adding 
retries to your workflow 
 As an example, we’ll use two local services to emulate 
iteration and occasional failures. 
 Click a File -> New workflow
Retries: Making your Workflow Robust 
 In the Service panel, 
 Select the service 
Create Lots Of Strings under Available Services -> Local 
services -> test 
 Add it to the workflow by dragging 
it into the workflow diagram 
 Also add Sometimes Fails
Retries: Making your Workflow Robust 
 Add an output port and connect the service as on the picture 
below 
 Run the workflow as it is and count the number of failed 
iterations. (Tip: Change view values to view errors) 
 Run the workflow again. Is the number the same? 
 Inspect the intermediate values at Sometimes_fails.
Retries: Making your Workflow Robust 
 Now, select the Sometimes_Fails service and select the Details 
tab in the workflow explorer panel 
 Click on Advanced and Configure for Retry 
 In the pop-up box, change it so that it retries each service 
iteration 2 times 
 Run the workflow again – how many failures do you get this 
time? Did you notice the slow down due to retries? 
 Change the workflow to retry 5 times – does it work every 
time now?
Retries: Making your Workflow Robust 
 In network communication, a common strategy for handling 
errors is to incrementally wait longer and longer before a 
retry – improving chance of recovery. 
 In Taverna Retries this can be set by modifying “Delay 
increase factor” and “Maximum delay2. 
 The settings on the right would retry 
after delays of: 
1. 1.0 s 
2. 1.5 s (1.0 s * 1.5) 
3. 2.3 s (1.5 s * 1.5) 
4. 3.4 s (2.3 s * 1.5) 
5. 5.0 s (3.4 s * 1.5 = 5.1s) – above max 5.0 s
Parallel Service Invocation 
 If Taverna is iterating over lots of independent input data, you 
can often improve the efficiency of the workflow by running 
those iterated jobs in parallel 
 Run the Retry workflow again and time how long it takes 
 Go back to the Design window, right-click on the 
‘sometimes_fails’ service, and select ‘configure running’ 
 This time select ‘Parallel jobs’ and change the maximum 
number to 20 
 Run the workflow again 
 Does it run faster?
Parallel Service Invocation : 
Use with Caution 
 Setting parallel jobs usually makes your workflows run faster 
(at a cost of more memory/cpu usage) 
 Be careful if you are using remote services. Sometimes they have 
policies for the number of concurrent jobs individuals should run (e.g. 
The EBI ask that you do not submit more than 25 at once). 
 If you exceed the limits, your service invocations may be blocked by the 
provider. In extreme cases, the provider may block your whole 
institution! 
 Some remote services don’t handle parallel calls well, as it could cause 
concurrency issues server side – e.g. overwriting internal files. 
 A good number of concurrent jobs can be anything between 3 
and 20 – trial and error is as important as checking the service 
documentation.

More Related Content

Similar to 2014 Taverna tutorial Advanced Taverna

2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity examplemyGrid 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 Nested workflows
2014 Taverna Tutorial Nested workflows2014 Taverna Tutorial Nested workflows
2014 Taverna Tutorial Nested workflowsmyGrid team
 
2014 Taverna tutorial Shims and Beanshell scripts
2014 Taverna tutorial Shims and Beanshell scripts2014 Taverna tutorial Shims and Beanshell scripts
2014 Taverna tutorial Shims and Beanshell scriptsmyGrid team
 
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]Accumulo Summit
 
2014 Taverna tutorial introduction to Taverna workflows
2014 Taverna tutorial introduction to Taverna workflows2014 Taverna tutorial introduction to Taverna workflows
2014 Taverna tutorial introduction to Taverna workflowsmyGrid team
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0Joe Stein
 
StreamSets DataOps Platform Fundamentals.pptx
StreamSets DataOps Platform Fundamentals.pptxStreamSets DataOps Platform Fundamentals.pptx
StreamSets DataOps Platform Fundamentals.pptxssuser4c04eb
 
Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)Leila Morteza
 
Java Enterprise Performance - Unburdended Applications
Java Enterprise Performance - Unburdended ApplicationsJava Enterprise Performance - Unburdended Applications
Java Enterprise Performance - Unburdended ApplicationsLucas Jellema
 
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
 
Real-World Pulsar Architectural Patterns
Real-World Pulsar Architectural PatternsReal-World Pulsar Architectural Patterns
Real-World Pulsar Architectural PatternsDevin Bost
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerSamaySharma10
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsMike Brittain
 
Munit junit test case
Munit junit test caseMunit junit test case
Munit junit test caseprudhvivreddy
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationJay Jha
 
2014 Taverna tutorial Simple workflow
2014 Taverna tutorial Simple workflow2014 Taverna tutorial Simple workflow
2014 Taverna tutorial Simple workflowmyGrid team
 
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
 
]project-open[ Workflow Developer Tutorial Part 3
]project-open[ Workflow Developer Tutorial Part 3]project-open[ Workflow Developer Tutorial Part 3
]project-open[ Workflow Developer Tutorial Part 3Klaus Hofeditz
 

Similar to 2014 Taverna tutorial Advanced Taverna (20)

2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example2014 Taverna Tutorial Biodiversity example
2014 Taverna Tutorial Biodiversity example
 
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 Nested workflows
2014 Taverna Tutorial Nested workflows2014 Taverna Tutorial Nested workflows
2014 Taverna Tutorial Nested workflows
 
2014 Taverna tutorial Shims and Beanshell scripts
2014 Taverna tutorial Shims and Beanshell scripts2014 Taverna tutorial Shims and Beanshell scripts
2014 Taverna tutorial Shims and Beanshell scripts
 
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]
Accumulo Summit 2015: Using Fluo to incrementally process data in Accumulo [API]
 
2014 Taverna tutorial introduction to Taverna workflows
2014 Taverna tutorial introduction to Taverna workflows2014 Taverna tutorial introduction to Taverna workflows
2014 Taverna tutorial introduction to Taverna workflows
 
Apache Cassandra 2.0
Apache Cassandra 2.0Apache Cassandra 2.0
Apache Cassandra 2.0
 
StreamSets DataOps Platform Fundamentals.pptx
StreamSets DataOps Platform Fundamentals.pptxStreamSets DataOps Platform Fundamentals.pptx
StreamSets DataOps Platform Fundamentals.pptx
 
Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)Lsmw (Legacy System Migration Workbench)
Lsmw (Legacy System Migration Workbench)
 
Java Enterprise Performance - Unburdended Applications
Java Enterprise Performance - Unburdended ApplicationsJava Enterprise Performance - Unburdended Applications
Java Enterprise Performance - Unburdended Applications
 
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
 
Real-World Pulsar Architectural Patterns
Real-World Pulsar Architectural PatternsReal-World Pulsar Architectural Patterns
Real-World Pulsar Architectural Patterns
 
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleanerOptimizing Autovacuum: PostgreSQL's vacuum cleaner
Optimizing Autovacuum: PostgreSQL's vacuum cleaner
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
Munit junit test case
Munit junit test caseMunit junit test case
Munit junit test case
 
dbadapters
dbadaptersdbadapters
dbadapters
 
Performance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authenticationPerformance testing using Jmeter for apps which needs authentication
Performance testing using Jmeter for apps which needs authentication
 
2014 Taverna tutorial Simple workflow
2014 Taverna tutorial Simple workflow2014 Taverna tutorial Simple workflow
2014 Taverna tutorial Simple workflow
 
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
 
]project-open[ Workflow Developer Tutorial Part 3
]project-open[ Workflow Developer Tutorial Part 3]project-open[ Workflow Developer Tutorial Part 3
]project-open[ Workflow Developer Tutorial Part 3
 

More from 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 Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial InteractionsmyGrid team
 
2014 Taverna tutorial Tool service
2014 Taverna tutorial Tool service2014 Taverna tutorial Tool service
2014 Taverna tutorial Tool servicemyGrid team
 
2014 Taverna tutorial REST and Biocatalogue
2014 Taverna tutorial REST and Biocatalogue2014 Taverna tutorial REST and Biocatalogue
2014 Taverna tutorial REST and BiocataloguemyGrid team
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial XpathmyGrid team
 
2014 Taverna tutorial Spreadsheet import
2014 Taverna tutorial Spreadsheet import2014 Taverna tutorial Spreadsheet import
2014 Taverna tutorial Spreadsheet importmyGrid 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
 

More from myGrid team (14)

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 Interactions
2014 Taverna Tutorial Interactions2014 Taverna Tutorial Interactions
2014 Taverna Tutorial Interactions
 
2014 Taverna tutorial Tool service
2014 Taverna tutorial Tool service2014 Taverna tutorial Tool service
2014 Taverna tutorial Tool service
 
2014 Taverna tutorial REST and Biocatalogue
2014 Taverna tutorial REST and Biocatalogue2014 Taverna tutorial REST and Biocatalogue
2014 Taverna tutorial REST and Biocatalogue
 
2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath2014 Taverna tutorial Xpath
2014 Taverna tutorial Xpath
 
2014 Taverna tutorial Spreadsheet import
2014 Taverna tutorial Spreadsheet import2014 Taverna tutorial Spreadsheet import
2014 Taverna tutorial Spreadsheet import
 
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?
 

Recently uploaded

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
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
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
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
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
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
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 

Recently uploaded (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
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
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
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
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
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...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
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
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 

2014 Taverna tutorial Advanced Taverna

  • 1. Advanced Taverna Stian Soiland-Reyes and Christian Brenninkmeijer University of Manchester materials by Katy Wolstencroft, Aleksandra Pawlik, Alan Williams 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 http://orcid.org/0000-0003-3156-2105 Bonn University, 2014-09-01 / 2014-09-03 This work is licensed under a http://www.taverna.org.uk/ Creative Commons Attribution 3.0 Unported License
  • 2. Advanced Exercises  The Taverna engine can also help you control the data flow through your workflows. It allows you to manage iterations and loops, add your own scripts and tools, and make your workflows more robust  The following exercises give you a brief introduction to some of these features  Like in the previous tutorial workflows in this practical use small data-sets and are designed to run in a few minutes. In the real world, you would be using larger data sets and workflows would typically run for longer
  • 3. List handling - cross or dot product As you may have already seen, Taverna can automatically iterate over sets of data, calling a service multiple times for each value in the input list. When 2 sets of iterated data are combined (one to each input port), Taverna needs extra information about how they should be combined. You can have: A cross product – combining every item from port A with every item from port B - all against all A dot product – only combining item 1 from port A with item 1 from port B, item 2 with item 2, and so on – line against line
  • 4. List handling – example workflow  Download and open the workflow “Demonstration of configurable iteration” from http://www.myexperiment.org/workflows/4332  Or see “Run this workflow in Taverna” on myExperiment, and copy the link into File -> Open Workflow Location  Read the workflow metadata to find out what the workflow does (by looking at the ‘Details’)  Run the workflow and look at the results  Click on individual services to inspect the intermediate values and multiple invocations for:  AnimalsList, ColourAnimals, ShapeAnimals  Alternatively, add additional workflow output ports from AnimalsList and ColourAnimals, and rerun.
  • 5. List handling - configuration  Go back to the Design view  Select the ColourAnimals service by clicking on it  Select the Details tab in the workflow explorer, open List handling and click on Configure,  or right-click on ColourAnimals, select Configure running… then List handling…  Click on Dot product in the pop-up window. This allows you to switch to cross product (see the next slide)
  • 7. List handling – configuring - 2  Click on Dot Product  Click Change to Cross Product on the right  Click OK  Run the workflow again
  • 8. List handling - difference  What is the difference between the results of the two runs? What does it mean to specify dot or cross product? NOTE: The iteration strategies are very important. Setting cross product instead of dot when you have 2000x2000 data items can cause large and unnecessary increases in computation!
  • 9. List handling - workflow e.g. red, green, blue, yellow How does Taverna combine them? e.g. cat, donkey, koala
  • 10. List handling - Cross product Red Green Blue Yellow Cat Donkey Koala Red cat, red donkey, red koala Green cat, green donkey, green koala Blue cat, blue donkey, blue koala Yellow cat, yellow donkey, yellow koala
  • 11. List handling - Dot product Red Green Blue Yellow Cat Donkey Koala Red cat Green donkey Blue koala There is no yellow animal because the list lengths don’t match!
  • 12. List handling - summary  The default in Taverna is cross product  Be careful! All against all in large iterations give very big numbers!  For more complex list handling, e.g. combination of 3 or more ports, see http://dev.mygrid.org.uk/wiki/display/tav250/List+handling
  • 13. Looping asynchronous services  Find the workflow “EBI_InterproScan_broken” in the workshop pack on myExperiment  InterproScan analyses a given protein sequence (or set of sequences) for functional motifs and domains  This workflow is asynchronous. This means that when you submit data to the ‘runInterproScan’ service, it will return a jobID and place your job in a queue (this is very useful if your job will take a long time!)  The ‘Status’ nested workflow will query your job ID to find out if it is complete
  • 14. Looping The default behaviour in a workflow is to call each service only once for each item of data – so what if your job has not finished when ‘Status’ workflow asks?  Download and run the workflow, using the default protein sequence and your own email address  Almost every time, the workflow will fail because the results are not available before the workflow reaches the ‘get_results’ service – the ‘status’ output is still RUNNING
  • 15. Looping  This is where looping is useful. Taverna can keep running the Status service until it reports that the job is done.  Go back to the Design view  Select the Status nested workflow  Select the Details tab in the workflow explorer, open Advanced and click on Add looping,  or right-click on Status, select Configure running… then Looping…  (Example on next slide)
  • 17. Looping  Use the drop-down boxes in the looping window to set getStatus_output_status is not equal to RUNNING
  • 18. Looping  Save the workflow and run it again  This time, the workflow will run until the ‘Status’ nested workflow reports that it is either DONE, or it has an ERROR.  You will see results for text, but you will still get an error for ‘xml’. This is because there is one more configuration to change – we also need Control Links to delay the exectution of getXmlResult.
  • 19. Control Links  Normally a service in a workflow will run as soon as all its input ports are available – even if graphically it may be “further down”  A control link specifies that there is a dependency on another service even if there is no direct or indirect data flowing between them.  In a way the data still flows, but internally on the called service, outside the workflow  A control link is shown as a line with a white circle at the end. In our workflow this means that getTextResult will not run until the Status nested workflow is finished
  • 20. Control Links  We will add control links to fix the ‘xml’ output  Switch to the Design view  Right-click on getXmlResult and select Run after from the drop down menu.  getXmlResults is moved down in the diagram, showing the new control link  Set it to Run after -> Status  Save and run the workflow  Now you will see that getXmlResults and getTextResults take a bit longer before they run  This time, results are available for both xml and text
  • 22. Retries: Making your Workflow Robust  Web services can sometimes fail due to network connectivity  If you are iterating over lots of data items, this is more likely to cause problems because Taverna will be making lots of network connections.  You can guard against these temporary interruptions by adding retries to your workflow  As an example, we’ll use two local services to emulate iteration and occasional failures.  Click a File -> New workflow
  • 23. Retries: Making your Workflow Robust  In the Service panel,  Select the service Create Lots Of Strings under Available Services -> Local services -> test  Add it to the workflow by dragging it into the workflow diagram  Also add Sometimes Fails
  • 24. Retries: Making your Workflow Robust  Add an output port and connect the service as on the picture below  Run the workflow as it is and count the number of failed iterations. (Tip: Change view values to view errors)  Run the workflow again. Is the number the same?  Inspect the intermediate values at Sometimes_fails.
  • 25. Retries: Making your Workflow Robust  Now, select the Sometimes_Fails service and select the Details tab in the workflow explorer panel  Click on Advanced and Configure for Retry  In the pop-up box, change it so that it retries each service iteration 2 times  Run the workflow again – how many failures do you get this time? Did you notice the slow down due to retries?  Change the workflow to retry 5 times – does it work every time now?
  • 26. Retries: Making your Workflow Robust  In network communication, a common strategy for handling errors is to incrementally wait longer and longer before a retry – improving chance of recovery.  In Taverna Retries this can be set by modifying “Delay increase factor” and “Maximum delay2.  The settings on the right would retry after delays of: 1. 1.0 s 2. 1.5 s (1.0 s * 1.5) 3. 2.3 s (1.5 s * 1.5) 4. 3.4 s (2.3 s * 1.5) 5. 5.0 s (3.4 s * 1.5 = 5.1s) – above max 5.0 s
  • 27. Parallel Service Invocation  If Taverna is iterating over lots of independent input data, you can often improve the efficiency of the workflow by running those iterated jobs in parallel  Run the Retry workflow again and time how long it takes  Go back to the Design window, right-click on the ‘sometimes_fails’ service, and select ‘configure running’  This time select ‘Parallel jobs’ and change the maximum number to 20  Run the workflow again  Does it run faster?
  • 28. Parallel Service Invocation : Use with Caution  Setting parallel jobs usually makes your workflows run faster (at a cost of more memory/cpu usage)  Be careful if you are using remote services. Sometimes they have policies for the number of concurrent jobs individuals should run (e.g. The EBI ask that you do not submit more than 25 at once).  If you exceed the limits, your service invocations may be blocked by the provider. In extreme cases, the provider may block your whole institution!  Some remote services don’t handle parallel calls well, as it could cause concurrency issues server side – e.g. overwriting internal files.  A good number of concurrent jobs can be anything between 3 and 20 – trial and error is as important as checking the service documentation.