SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Más de 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
 

Más de 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
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

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