SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Development and deployment of
a cross-platform
open-source software package:
the Infobiotics Workbench
Jonathan BlakesJonathan Blakes
26/10/201026/10/2010
Supervised by Professor Natalio KrasnogorSupervised by Professor Natalio Krasnogor
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 2
Outline
 Introduction to Infobiotics
 Organisation of software
 Supporting technologies
 Tour of the Infobiotics Dashboard UI
 Interface considerations
 Deployment on Windows, Mac and Linux
 Finishing touches and availability
 Conclusions
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 3
Infobiotics Workbench
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 4
Infobiotics Models (syntax)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 5
Infobiotics Models (semantics)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 6
Infobiotics Experiments
 Command line tools with a common parameter
file format:
 simulation (mcss)
 model checking (pmodelchecker)
 model structure and parameter optimisation
(poptimizer)
 Desktop applications (not cloud-based)
 Written in C++ for speed
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 7
Infobiotics Dashboard
 User friendly graphical user interface for
perform Infobiotics experiments
 setting, loading and saving of parameters
 running experiments and reporting progress
 plotting output
 Present options in a clear and understandable
manner, setting limits on parameter values
 Give feedback when things go wrong!
 Written in Python
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 8
Why Python?
 Dynamic language: rapid prototyping
 Large stdlib: tempfile, XML parsers, itertools

3rd
party Libraries:
 NumPy – n-dimensional arrays and ufuncs
 pytables – HDF5 (simulator output)
 PyQt – Qt GUI bindings (GPL), QScintilla text editor
 Matplotlib – 2D plotting
 Mayavi – 3D VTK-based visualisation (TVTK)
 Traits...
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 9
Traits = Reactive Programming
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 10
Simulation Parameters (file)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 11
Simulation Parameters (GUI)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 12
Model checker parameters (1)
MC2
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 13
Model checker parameters (2)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 14
Simulator Results
 Simulation output – amounts of each species in
each compartment at each timepoint for each
run - quickly become very large (gigabytes), but
only some data is of use to the modeller.
 selecting important information
 scaling amounts (molecules) to biologist-friendly
units (e.g. nanomolar)
 calculating statistics across runs (and other
dimensions)
 plotting timeseries, exporting data, etc.
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 15
SimulatorResultsDialog
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 16
Selecting data (filtering)
 Filter compartments by name using wildcards
 Using set class difference method
 Custom ListWidget is a factory for filter LineEdit
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 17
Selecting data (sorting)
 By providing custom QListWidget with regular
expression and function map
 Sort species by name
 Sort compartments by name and/or positions
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 18
Selecting data (sampling)
 Reducing data size by
sampling reduces
memory requirements,
speeds up
calculations and
unclutters plots
 100 of 10,000 runs

Every 100th
recorded
timepoint
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 19
Transforming data (scaling)
 Converts time, substance quantities and
volumes from simulator data units into user-
friendly display units, using python-quantities
 For calculating concentrations, use compartment
volumes (at each timepoint) if recorded, otherwise use
one volume for all compartments at all timepoints
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 20
Exporting data
 Selected data can be exported in several
common formats for use with other tools:
 text (.csv)
 Excel (.xls)
 NumPy (.npz)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 21
Plotting timeseries (old)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 22
Plotting timeseries (improved)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 23
Exporting figures
 Added ability to save figures resized to specific
screen dimensions (pixels), as surprisingly,
matplotlib only supports physical dimensions
(inches)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 24
Model checker results
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 25
Visualising simulations (Mayavi)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 26
Cross-platform issues
 A lot of communication in Workbench uses
temporary files – these behave differently on
Windows to Linux
 must close temp files before use, which can delete
them!
 Pseudo-terminal emulation library pexpect used
to gather progress information not for Windows
 winpexpect port not functioning at time of release
 fall back to 'working' progress indicator
not good for long experiments
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 27
Deploying Python apps
 A lot of dependencies inc. Python
 Python comes with most Linux distributions, but not
with Windows (unlike JVM) and Mac system Python is
crippled
 Therefore we needed to bundle Python interpreter and
all libraries for Windows/Mac
 Possible solution: 'freezing' Python applications,
creates a single executable (~100 megabytes!)
 Need a solid base to start from and add missing
libraries also python(x,y)
for Windows
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 28
Freezing Python applications
 Freezing works well for small scripts, not so well for
applications with many libraries
 uses static code analysis for determine libraries for
bundling – TraitsUI/Matplotlib use dynamic imports
 Freezers: cx_freeze, bbfreeze, PyInstaller,
 Wrap python setup.py py2exe/py2app with bash scripts
 copy missed files, unzip zipped Python classes
 patch Matplotlib
 fix Mac library paths using install_name_tool
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 29
Windows and Mac non-Python
 mcss, pmodelchecker and poptimizer need cross-
compiling for 32/64-bit Linux (chroot), Windows (32-
bit) and Mac (OSX Snow Leopard only)
 pmodelchecker requires PRISM and MC2 which are
both Java applications
 InstallJammer builds cross-platform installer:
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 30
Linux (Debian)
 Not trivial either – no authorative packaging
guide
 Make packages for mcss, ..., PRISM, MC2, libhdf5-
1.8
 Used python-support to install Dashboard for
system Python(s)
 (1) add apt repository to sources.list
 (2) sudo apt-get install infobiotics-workbench
 Automatic updates!
 Fedora/Suse packages made using Alien
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 31
Documentation (User Guide)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 32
Documentation (User Guide)
 Produced using Sphinx:
 input is reStructuredText
 output is high-quality formatted HTML, PDF, …
 Used Enthought reST editor for writing
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 33
Documentation (API)
 HTML API
generated from
docstrings
using Endo
 Alternatives:
 Epydoc
 Doxygen
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 34
Code availability
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 35
Soliciting user feedback
 getsatisfaction.com Javascript added to Sphinx template
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 36
Conclusions
 Cross-platform application development in
Python is easy, deployment is hard
 Need to become an expert in knowing the
differences between platforms
 50 / 50 development vs. the rest
 Good to be part of a team :)
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 37
Publications
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 38
Acknowledgements
 Jamie Twycross (mcss, packaging)
 Fran Romero Campero (IML, pmodelchecker, docs)
 Claudio Lima (poptimizer, docs)
 Pawel (for turning me on to Python)
 Natalio Krasnogor
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 39
Questions?
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 40
Slides available on web
Jonathan Blakes - Development and deployment of a cross-platform open-source software package 41
Infobiotics

Weitere ähnliche Inhalte

Andere mochten auch

Reaching out to external students online
Reaching out to external students onlineReaching out to external students online
Reaching out to external students onlineSally Cummings
 
Verkostot Kantavat Kuormittavat
Verkostot Kantavat KuormittavatVerkostot Kantavat Kuormittavat
Verkostot Kantavat KuormittavatPekka Ihanainen
 
Mediapolku Aloitustapaaminen 4.11.2010
Mediapolku Aloitustapaaminen 4.11.2010Mediapolku Aloitustapaaminen 4.11.2010
Mediapolku Aloitustapaaminen 4.11.2010Oskari Niitamo
 
Messages from Shaltazar
Messages from ShaltazarMessages from Shaltazar
Messages from ShaltazarJeffrey Eisen
 
1er Ignite Valencia Cosas que aprendí jugando a wargames
1er Ignite Valencia Cosas que aprendí jugando a wargames1er Ignite Valencia Cosas que aprendí jugando a wargames
1er Ignite Valencia Cosas que aprendí jugando a wargamesPedro-Juan Ferrer Matoses
 
10 tips for_a_happier_life 8 slides
10 tips for_a_happier_life 8 slides10 tips for_a_happier_life 8 slides
10 tips for_a_happier_life 8 slidesPraveen Ojha
 
Vedení čtenářských blogů
Vedení čtenářských blogůVedení čtenářských blogů
Vedení čtenářských blogůAdam Javurek
 
1 conceitosessenciaisde ym
1 conceitosessenciaisde ym1 conceitosessenciaisde ym
1 conceitosessenciaisde ymCarlos Serra
 
Pwsd Grade 6 Outdoor Classroom
Pwsd Grade 6 Outdoor ClassroomPwsd Grade 6 Outdoor Classroom
Pwsd Grade 6 Outdoor ClassroomDavid Juce
 
Location contract customised
Location contract customisedLocation contract customised
Location contract customisedmseabarbosa
 

Andere mochten auch (17)

Projetoagua
ProjetoaguaProjetoagua
Projetoagua
 
2011 sizevweight
2011 sizevweight2011 sizevweight
2011 sizevweight
 
Reaching out to external students online
Reaching out to external students onlineReaching out to external students online
Reaching out to external students online
 
Verkostot Kantavat Kuormittavat
Verkostot Kantavat KuormittavatVerkostot Kantavat Kuormittavat
Verkostot Kantavat Kuormittavat
 
Mediapolku Aloitustapaaminen 4.11.2010
Mediapolku Aloitustapaaminen 4.11.2010Mediapolku Aloitustapaaminen 4.11.2010
Mediapolku Aloitustapaaminen 4.11.2010
 
Messages from Shaltazar
Messages from ShaltazarMessages from Shaltazar
Messages from Shaltazar
 
1er Ignite Valencia Cosas que aprendí jugando a wargames
1er Ignite Valencia Cosas que aprendí jugando a wargames1er Ignite Valencia Cosas que aprendí jugando a wargames
1er Ignite Valencia Cosas que aprendí jugando a wargames
 
Social Media Council Introduction
Social Media Council IntroductionSocial Media Council Introduction
Social Media Council Introduction
 
Chiropractic help for misalignment
Chiropractic help for misalignmentChiropractic help for misalignment
Chiropractic help for misalignment
 
Joga bonito
Joga bonitoJoga bonito
Joga bonito
 
Succesfactoren voor bedrijfsgroei in 7 tegeltjes
Succesfactoren voor bedrijfsgroei in 7 tegeltjesSuccesfactoren voor bedrijfsgroei in 7 tegeltjes
Succesfactoren voor bedrijfsgroei in 7 tegeltjes
 
10 tips for_a_happier_life 8 slides
10 tips for_a_happier_life 8 slides10 tips for_a_happier_life 8 slides
10 tips for_a_happier_life 8 slides
 
Vedení čtenářských blogů
Vedení čtenářských blogůVedení čtenářských blogů
Vedení čtenářských blogů
 
1 conceitosessenciaisde ym
1 conceitosessenciaisde ym1 conceitosessenciaisde ym
1 conceitosessenciaisde ym
 
Pwsd Grade 6 Outdoor Classroom
Pwsd Grade 6 Outdoor ClassroomPwsd Grade 6 Outdoor Classroom
Pwsd Grade 6 Outdoor Classroom
 
Гений продаж
Гений продажГений продаж
Гений продаж
 
Location contract customised
Location contract customisedLocation contract customised
Location contract customised
 

Ähnlich wie 20101026 ASAP Seminar

project introduction
project introductionproject introduction
project introductionstinmon
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Fwdays
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Embarcados
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Sauce Labs
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerIOSR Journals
 
Software used in Electronics and Communication
Software used in Electronics and CommunicationSoftware used in Electronics and Communication
Software used in Electronics and Communicationashishsoni1505
 
Free/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringFree/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringKinshuk Sunil
 
09 The Extreme-scale Scientific Software Stack for Collaborative Open Source
09 The Extreme-scale Scientific Software Stack for Collaborative Open Source09 The Extreme-scale Scientific Software Stack for Collaborative Open Source
09 The Extreme-scale Scientific Software Stack for Collaborative Open SourceRCCSRENKEI
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaIntel® Software
 
Clc Bio Basic Company Presentation
Clc Bio Basic Company PresentationClc Bio Basic Company Presentation
Clc Bio Basic Company Presentationclcbio
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...University of Antwerp
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KernelThomas Graf
 

Ähnlich wie 20101026 ASAP Seminar (20)

project introduction
project introductionproject introduction
project introduction
 
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
Oleksii Moskalenko "Continuous Delivery of ML Pipelines to Production"
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
 
Build 2019 Recap
Build 2019 RecapBuild 2019 Recap
Build 2019 Recap
 
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
Slow, Flaky and Legacy Tests: FTFY - Our New Testing Strategy at Net-A-Porter...
 
Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)Sudha Madhuri Yagnamurthy Resume 2 (5)
Sudha Madhuri Yagnamurthy Resume 2 (5)
 
SE1.ppt
SE1.pptSE1.ppt
SE1.ppt
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Linux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop ComputerLinux-Based Data Acquisition and Processing On Palmtop Computer
Linux-Based Data Acquisition and Processing On Palmtop Computer
 
Software used in Electronics and Communication
Software used in Electronics and CommunicationSoftware used in Electronics and Communication
Software used in Electronics and Communication
 
Free/Open Source Software for Science & Engineering
Free/Open Source Software for Science & EngineeringFree/Open Source Software for Science & Engineering
Free/Open Source Software for Science & Engineering
 
09 The Extreme-scale Scientific Software Stack for Collaborative Open Source
09 The Extreme-scale Scientific Software Stack for Collaborative Open Source09 The Extreme-scale Scientific Software Stack for Collaborative Open Source
09 The Extreme-scale Scientific Software Stack for Collaborative Open Source
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and AnacondaPython Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
 
Clc Bio Basic Company Presentation
Clc Bio Basic Company PresentationClc Bio Basic Company Presentation
Clc Bio Basic Company Presentation
 
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...Keynote VST2020 (Workshop on  Validation, Analysis and Evolution of Software ...
Keynote VST2020 (Workshop on Validation, Analysis and Evolution of Software ...
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
RTBN
RTBNRTBN
RTBN
 
Divya_Resume
Divya_ResumeDivya_Resume
Divya_Resume
 
All in one
All in oneAll in one
All in one
 

Mehr von Jonathan Blakes

Genome Exploration in A-T G-C space (mk1)
Genome Exploration in A-T G-C space (mk1)Genome Exploration in A-T G-C space (mk1)
Genome Exploration in A-T G-C space (mk1)Jonathan Blakes
 
20080516 Spontaneous separation of bi-stable biochemical systems
20080516 Spontaneous separation of bi-stable biochemical systems20080516 Spontaneous separation of bi-stable biochemical systems
20080516 Spontaneous separation of bi-stable biochemical systemsJonathan Blakes
 
20090608 Abstraction and reusability in the biological modelling process
20090608 Abstraction and reusability in the biological modelling process20090608 Abstraction and reusability in the biological modelling process
20090608 Abstraction and reusability in the biological modelling processJonathan Blakes
 
20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex ExperimentJonathan Blakes
 
20090219 The case for another systems biology modelling environment
20090219 The case for another systems biology modelling environment20090219 The case for another systems biology modelling environment
20090219 The case for another systems biology modelling environmentJonathan Blakes
 
20080620 Formal systems/synthetic biology modelling re-engineered
20080620 Formal systems/synthetic biology modelling re-engineered20080620 Formal systems/synthetic biology modelling re-engineered
20080620 Formal systems/synthetic biology modelling re-engineeredJonathan Blakes
 
20080110 Genome exploration in A-T G-C space: an introduction to DNA walking
20080110 Genome exploration in A-T G-C space: an introduction to DNA walking20080110 Genome exploration in A-T G-C space: an introduction to DNA walking
20080110 Genome exploration in A-T G-C space: an introduction to DNA walkingJonathan Blakes
 

Mehr von Jonathan Blakes (7)

Genome Exploration in A-T G-C space (mk1)
Genome Exploration in A-T G-C space (mk1)Genome Exploration in A-T G-C space (mk1)
Genome Exploration in A-T G-C space (mk1)
 
20080516 Spontaneous separation of bi-stable biochemical systems
20080516 Spontaneous separation of bi-stable biochemical systems20080516 Spontaneous separation of bi-stable biochemical systems
20080516 Spontaneous separation of bi-stable biochemical systems
 
20090608 Abstraction and reusability in the biological modelling process
20090608 Abstraction and reusability in the biological modelling process20090608 Abstraction and reusability in the biological modelling process
20090608 Abstraction and reusability in the biological modelling process
 
20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment20090918 Agile Computer Control of a Complex Experiment
20090918 Agile Computer Control of a Complex Experiment
 
20090219 The case for another systems biology modelling environment
20090219 The case for another systems biology modelling environment20090219 The case for another systems biology modelling environment
20090219 The case for another systems biology modelling environment
 
20080620 Formal systems/synthetic biology modelling re-engineered
20080620 Formal systems/synthetic biology modelling re-engineered20080620 Formal systems/synthetic biology modelling re-engineered
20080620 Formal systems/synthetic biology modelling re-engineered
 
20080110 Genome exploration in A-T G-C space: an introduction to DNA walking
20080110 Genome exploration in A-T G-C space: an introduction to DNA walking20080110 Genome exploration in A-T G-C space: an introduction to DNA walking
20080110 Genome exploration in A-T G-C space: an introduction to DNA walking
 

Kürzlich hochgeladen

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Kürzlich hochgeladen (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

20101026 ASAP Seminar

  • 1. Development and deployment of a cross-platform open-source software package: the Infobiotics Workbench Jonathan BlakesJonathan Blakes 26/10/201026/10/2010 Supervised by Professor Natalio KrasnogorSupervised by Professor Natalio Krasnogor
  • 2. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 2 Outline  Introduction to Infobiotics  Organisation of software  Supporting technologies  Tour of the Infobiotics Dashboard UI  Interface considerations  Deployment on Windows, Mac and Linux  Finishing touches and availability  Conclusions
  • 3. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 3 Infobiotics Workbench
  • 4. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 4 Infobiotics Models (syntax)
  • 5. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 5 Infobiotics Models (semantics)
  • 6. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 6 Infobiotics Experiments  Command line tools with a common parameter file format:  simulation (mcss)  model checking (pmodelchecker)  model structure and parameter optimisation (poptimizer)  Desktop applications (not cloud-based)  Written in C++ for speed
  • 7. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 7 Infobiotics Dashboard  User friendly graphical user interface for perform Infobiotics experiments  setting, loading and saving of parameters  running experiments and reporting progress  plotting output  Present options in a clear and understandable manner, setting limits on parameter values  Give feedback when things go wrong!  Written in Python
  • 8. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 8 Why Python?  Dynamic language: rapid prototyping  Large stdlib: tempfile, XML parsers, itertools  3rd party Libraries:  NumPy – n-dimensional arrays and ufuncs  pytables – HDF5 (simulator output)  PyQt – Qt GUI bindings (GPL), QScintilla text editor  Matplotlib – 2D plotting  Mayavi – 3D VTK-based visualisation (TVTK)  Traits...
  • 9. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 9 Traits = Reactive Programming
  • 10. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 10 Simulation Parameters (file)
  • 11. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 11 Simulation Parameters (GUI)
  • 12. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 12 Model checker parameters (1) MC2
  • 13. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 13 Model checker parameters (2)
  • 14. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 14 Simulator Results  Simulation output – amounts of each species in each compartment at each timepoint for each run - quickly become very large (gigabytes), but only some data is of use to the modeller.  selecting important information  scaling amounts (molecules) to biologist-friendly units (e.g. nanomolar)  calculating statistics across runs (and other dimensions)  plotting timeseries, exporting data, etc.
  • 15. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 15 SimulatorResultsDialog
  • 16. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 16 Selecting data (filtering)  Filter compartments by name using wildcards  Using set class difference method  Custom ListWidget is a factory for filter LineEdit
  • 17. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 17 Selecting data (sorting)  By providing custom QListWidget with regular expression and function map  Sort species by name  Sort compartments by name and/or positions
  • 18. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 18 Selecting data (sampling)  Reducing data size by sampling reduces memory requirements, speeds up calculations and unclutters plots  100 of 10,000 runs  Every 100th recorded timepoint
  • 19. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 19 Transforming data (scaling)  Converts time, substance quantities and volumes from simulator data units into user- friendly display units, using python-quantities  For calculating concentrations, use compartment volumes (at each timepoint) if recorded, otherwise use one volume for all compartments at all timepoints
  • 20. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 20 Exporting data  Selected data can be exported in several common formats for use with other tools:  text (.csv)  Excel (.xls)  NumPy (.npz)
  • 21. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 21 Plotting timeseries (old)
  • 22. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 22 Plotting timeseries (improved)
  • 23. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 23 Exporting figures  Added ability to save figures resized to specific screen dimensions (pixels), as surprisingly, matplotlib only supports physical dimensions (inches)
  • 24. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 24 Model checker results
  • 25. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 25 Visualising simulations (Mayavi)
  • 26. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 26 Cross-platform issues  A lot of communication in Workbench uses temporary files – these behave differently on Windows to Linux  must close temp files before use, which can delete them!  Pseudo-terminal emulation library pexpect used to gather progress information not for Windows  winpexpect port not functioning at time of release  fall back to 'working' progress indicator not good for long experiments
  • 27. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 27 Deploying Python apps  A lot of dependencies inc. Python  Python comes with most Linux distributions, but not with Windows (unlike JVM) and Mac system Python is crippled  Therefore we needed to bundle Python interpreter and all libraries for Windows/Mac  Possible solution: 'freezing' Python applications, creates a single executable (~100 megabytes!)  Need a solid base to start from and add missing libraries also python(x,y) for Windows
  • 28. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 28 Freezing Python applications  Freezing works well for small scripts, not so well for applications with many libraries  uses static code analysis for determine libraries for bundling – TraitsUI/Matplotlib use dynamic imports  Freezers: cx_freeze, bbfreeze, PyInstaller,  Wrap python setup.py py2exe/py2app with bash scripts  copy missed files, unzip zipped Python classes  patch Matplotlib  fix Mac library paths using install_name_tool
  • 29. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 29 Windows and Mac non-Python  mcss, pmodelchecker and poptimizer need cross- compiling for 32/64-bit Linux (chroot), Windows (32- bit) and Mac (OSX Snow Leopard only)  pmodelchecker requires PRISM and MC2 which are both Java applications  InstallJammer builds cross-platform installer:
  • 30. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 30 Linux (Debian)  Not trivial either – no authorative packaging guide  Make packages for mcss, ..., PRISM, MC2, libhdf5- 1.8  Used python-support to install Dashboard for system Python(s)  (1) add apt repository to sources.list  (2) sudo apt-get install infobiotics-workbench  Automatic updates!  Fedora/Suse packages made using Alien
  • 31. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 31 Documentation (User Guide)
  • 32. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 32 Documentation (User Guide)  Produced using Sphinx:  input is reStructuredText  output is high-quality formatted HTML, PDF, …  Used Enthought reST editor for writing
  • 33. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 33 Documentation (API)  HTML API generated from docstrings using Endo  Alternatives:  Epydoc  Doxygen
  • 34. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 34 Code availability
  • 35. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 35 Soliciting user feedback  getsatisfaction.com Javascript added to Sphinx template
  • 36. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 36 Conclusions  Cross-platform application development in Python is easy, deployment is hard  Need to become an expert in knowing the differences between platforms  50 / 50 development vs. the rest  Good to be part of a team :)
  • 37. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 37 Publications
  • 38. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 38 Acknowledgements  Jamie Twycross (mcss, packaging)  Fran Romero Campero (IML, pmodelchecker, docs)  Claudio Lima (poptimizer, docs)  Pawel (for turning me on to Python)  Natalio Krasnogor
  • 39. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 39 Questions?
  • 40. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 40 Slides available on web
  • 41. Jonathan Blakes - Development and deployment of a cross-platform open-source software package 41 Infobiotics