Last year Maciej Swat, Martijn Mone and I contributed a chapter to a book on "Systems Medicine" in the Methods in Molecular Biology series. This is now available as an epub and should be in print soon, our chapter is titled "Modeling and Simulation Tools: From Systems Biology to Systems Medicine".
21 December 2015
28 August 2014
Installing libSBML Python bindings on Ubuntu 14.04 LTS
Now that Ubuntu 14.04 has been around a bit now and I have started upgrading my development machines.
One of the first things that always gets installed is the libSBML and its Python bindings which then gives me access to the best library for reading/writing/manipulating Systems Biology Markup Language (SBML) files out there and is critical for my work.
Thanks to the fantastic work done by the development team installation is this easy:
# Python development packages and Pip install system
sudo apt-get install python-dev python-pip
# libSBML dependencies and development libraries
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install zlib1g zlib1g-dev
sudo apt-get install bzip2 libbz2-dev
# libSBML
sudo pip install python-libsbml
That's it, happy modelling (please look up the above packages, before installing them, if you don't know what they are)!
One of the first things that always gets installed is the libSBML and its Python bindings which then gives me access to the best library for reading/writing/manipulating Systems Biology Markup Language (SBML) files out there and is critical for my work.
Thanks to the fantastic work done by the development team installation is this easy:
# Python development packages and Pip install system
sudo apt-get install python-dev python-pip
# libSBML dependencies and development libraries
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install zlib1g zlib1g-dev
sudo apt-get install bzip2 libbz2-dev
# libSBML
sudo pip install python-libsbml
That's it, happy modelling (please look up the above packages, before installing them, if you don't know what they are)!
01 August 2014
Modelling with Python
I rediscovered this paper the other day, as far as I know, one of the first published uses of Python/SciPy for modelling cellular metabolism (a.k.a systems biology). Today it looks trivial but considering the time it was written/published it's not too bad.
Modelling cellular processes with Python and Scipy
BG Olivier, JM Rohwer, JHS Hofmeyr - Molecular biology reports, 2002
Unfortunately, the PDF was published as a bitmap so the next step is to transcribe the code contained in the paper and see if it still works ... reproducible research in the life sciences with a paper over 10 years old? Watch this space ...
Modelling cellular processes with Python and Scipy
BG Olivier, JM Rohwer, JHS Hofmeyr - Molecular biology reports, 2002
Unfortunately, the PDF was published as a bitmap so the next step is to transcribe the code contained in the paper and see if it still works ... reproducible research in the life sciences with a paper over 10 years old? Watch this space ...
31 July 2014
Fun and games with Win 8.1 pro, VirtualBox and HyperV
Just having bought a new machine that came pre-loaded with Windows 8.1pro I have been spending time getting to grips with Redmonds latest. Metro aside, one of the only major issues was running Virtualbox which turned into a saga that went something like this:
- Installed VirtualBox 4.3.14
- Installed ok, virtual machine crashed on startup with some Vbox error
- Web search ... found a single post on a forum that this was a known 8.1 issue with 4.3.14 and to use 4.3.12 instead.
- Downgraded to 4.3.12 which installed ok, however, vt-x extensions not detected (only single CPU VM's! and bad performance)
- Web search ... found a forum posting that explained how Virtualbox behaved like this when Hyper-V is installed, recommended action uninstall Hyper-V
- Clicked over to windows components ... Hyper V not installed!
- ...
- ...
- The next day a new strategy crystallised ...
- Installed Hyper-V via system components
- Rebooted a few times to be sure
- Uninstalled Hyper-V and rebooted a few times
- Installed VirtualBox 4.3.12 and voila ... vt-x is now available
- !!!!!
30 June 2014
Final work discussion for this season
Had a great time presenting the design and implementation of CBMPy and how it can be used for model driven media design. Python, object-oriented programming, biochemistry, microbiology and algorithms all unleashed on an amazingly awake audience. Especially considering this happened the night before :-)
26 April 2014
Small core SBML L3+FBC model published in Biotechnology Journal
The first SBML3+FBC model (a small core model) published in support of this paper:
Basic concepts and principles of stoichiometric modeling of metabolic networks
Timo R. Maarleveld, Ruchir A. Khandelwal et. al
Biotechnology Journal, Volume 8, Issue 9, pages 997–1008, September 2013
Basic concepts and principles of stoichiometric modeling of metabolic networks
Timo R. Maarleveld, Ruchir A. Khandelwal et. al
Biotechnology Journal, Volume 8, Issue 9, pages 997–1008, September 2013
03 January 2014
New SBML editors for 2014 :-)
Awesome news to end 2013 is that after a community vote I, together with Dagmar Waltemath, have been elected to serve as an SBML editors. This is a great opportunity to contribute to the development of standards in the Life Science community and I'm really looking forward to it.
22 December 2013
Software and standards poster presented at NISB 2012
This is a poster I presented at the NISB meeting in 2012: NISB 2012 Poster
07 November 2013
Generic annotation in constraint based models
During COMBINE 2013 Frank and myself tried to come up with a compromise proposal that would combine the best elements of the two current "generic annotation" proposals that are under discussion.
When we presented this at COMBINE 2013 it was well received by the members of the community that attended the FBC session. For background on this discussion please see this document.
We call this proposal AdditionalProperties and an initial specification can be found here.
When we presented this at COMBINE 2013 it was well received by the members of the community that attended the FBC session. For background on this discussion please see this document.
We call this proposal AdditionalProperties and an initial specification can be found here.
COMBINE 2013 presentations
It was really fantastic to leave a great meeting like COMBINE in Paris and fly straight to South Africa for a vacation. I'll post some vacation pictures elsewhere but for now here are links to my presentation and the slides I made while chairing the FBC session.
A short presentation: Modelling at genome scale: introducing the SBML3 FBC package
And some technical stuff on a new proposal for generic annotation and a formal UML description of the gene association extension discussed during HARMONY 2013.
A short presentation: Modelling at genome scale: introducing the SBML3 FBC package
And some technical stuff on a new proposal for generic annotation and a formal UML description of the gene association extension discussed during HARMONY 2013.
19 September 2013
COMBINE 2013: standards ride again!
Just finished having a very productive meeting at COMBINE 2013, nice to see how standards are developing, especially, that rhere are a number of things that are finally stable enough to implement. Heading up the list: SBML Groups and COMBINE Archive.
Feeling all geeked out so perhaps this is a great time for a vacation ;-)
Feeling all geeked out so perhaps this is a great time for a vacation ;-)
06 September 2013
24 August 2013
The real advantage of a "human readable" model definition format
A colleague of mine wanted to submit a model along with a paper that they had published and had somehow converted from their native format into SBML, unfortunately this had not been entirely successful and I was asked to diagnose the problem after COPASI reported a serious error in the file.
Using PySCeS I converted the file to the PySCeS model format where some translation errors were immediately apparent, could be compared to the original equation and fixed. Reloading the file, testing the steady-state solution and re-exporting it to SBML was a piece of cake.
Not bad going for a Friday afternoon ;-)
Using PySCeS I converted the file to the PySCeS model format where some translation errors were immediately apparent, could be compared to the original equation and fixed. Reloading the file, testing the steady-state solution and re-exporting it to SBML was a piece of cake.
Not bad going for a Friday afternoon ;-)
25 July 2013
Funky Amsterdam promotional video
This is a new advertisement for Amsterdam as a cool tourist destination ... and why its nice to live there ;-)
15 July 2013
Finally registered on GitHub
After using Subversion since it replaced CVS I've decided to get going with Git (username: bgoli) and have committed the PySCeS 0.9.0 release to GitHub to play around with.
16 June 2013
Open source and free-to-use
I've just returned from a trip to Latvia and after discussions there was reminded of the value of open source, freely available/usable software. Of course while working in South Africa I was acutely aware of this but after living in the Netherlands for a while one gets spoilt (and lazy). What do I mean? Unless your definition of Science is such that it is restricted to the "wealthier western world" e.g.
Even though it is more difficult, takes more time and could even be career counter productive, I believe that development in Life Science software (a foundation/basic activity) should be as unrestricted (widely available) as possible.
The question of course is how does one try to convey this to funders, reviewers etc - who are embedded in a more affluent environment - that this is a valid consideration.
A more general question is whether it is worth the effort of developing a freely available tool when one can quickly whip up the code in something like MATLAB (or any other software based on a commercial platform)? In the end this starts to look like more like an ethical question e.g. "Science and Society" than a practical one. of course whether practicing research Scientists should be concerning themselves with this sort of dilemma is up to the individual.
- Windows is not free
- MATLAB (and especially it's toolboxes) are not free
- academic access to commercial software is not free
- publishing in open access journals is not free
Even though it is more difficult, takes more time and could even be career counter productive, I believe that development in Life Science software (a foundation/basic activity) should be as unrestricted (widely available) as possible.
The question of course is how does one try to convey this to funders, reviewers etc - who are embedded in a more affluent environment - that this is a valid consideration.
A more general question is whether it is worth the effort of developing a freely available tool when one can quickly whip up the code in something like MATLAB (or any other software based on a commercial platform)? In the end this starts to look like more like an ethical question e.g. "Science and Society" than a practical one. of course whether practicing research Scientists should be concerning themselves with this sort of dilemma is up to the individual.
05 June 2013
PySCeS 0.9.0 has been released
Finally, after far too long, I'm happy to release a new version of PySCeS. This release has many bug fixes and provides a diverse range of new features, including:
This hopefully is the start of a whole new development/maintenance cycle, more news on the PySCeS website (http://pysces.sf.net) and thanks to Che for helping to debug an irritating Windows issue.
- parallel parameter scanning
- generalized supply demand analysis
- exporting simulations as SED-ML (including COMBINE archives)
- support for scanning moiety totals
- compatbility support for the latest versions of scipy/numpy
- enhanced plotting support e.g. users may now choose the Matplotlib backend
This hopefully is the start of a whole new development/maintenance cycle, more news on the PySCeS website (http://pysces.sf.net) and thanks to Che for helping to debug an irritating Windows issue.
25 April 2013
And now for a real keyboard ...
My old keyboard died and its (long pondered over) replacement arrived today a "Zowie Celeritas" that makes use of mechanical Cherry MX Brown switches. So far so good, it has an awesome feel for typing - once you realize you don't have to push the key all the way down :-)
Other than a small compatibility issue with VirtualBox's USB ghosting I'm sold on mechanical switches. The only problem is that that at work I have a (comparatively) spongy, sticky rubber dome keyboard that is on its way to be replaced ... :-)
Update: a while ago I couldn't take the generic work keyboard anymore and bought a Das Professional model S (silent) also using Cherry MX Browns. This is another amazing keyboard, no more finger strain and I can now create typo's and other gibberish at high speed. I would say the Das is probably my preferred keyboard for typing with the Zowie good for more general use (e.g. Starcraft)
Other than a small compatibility issue with VirtualBox's USB ghosting I'm sold on mechanical switches. The only problem is that that at work I have a (comparatively) spongy, sticky rubber dome keyboard that is on its way to be replaced ... :-)
Update: a while ago I couldn't take the generic work keyboard anymore and bought a Das Professional model S (silent) also using Cherry MX Browns. This is another amazing keyboard, no more finger strain and I can now create typo's and other gibberish at high speed. I would say the Das is probably my preferred keyboard for typing with the Zowie good for more general use (e.g. Starcraft)
25 March 2013
Writing out arrays and linked lists with pysces.write.*
PySCeS array export facilities have been expanded with a new set of array export functions. This includes exporting arrays and linked lists (lists of lists) to various flavours of text file.
These methods are either fully customizable and generic or specifically tailored for writing CSV (comma) and Text (<tab> delimited) files that include the array data and optionally row/col labels. They are all available in the ''pysces.write.*'' module (see documentation/docstrings for details).
These methods are either fully customizable and generic or specifically tailored for writing CSV (comma) and Text (<tab> delimited) files that include the array data and optionally row/col labels. They are all available in the ''pysces.write.*'' module (see documentation/docstrings for details).
In [3]: pysces.write.
pysces.write.exportArray2CSV
pysces.write.exportArray2TXT
pysces.write.exportLabelledArray
pysces.write.exportLabelledArray2CSV
pysces.write.exportLabelledArray2TXT
pysces.write.exportLabelledArrayWithHeader
pysces.write.exportLabelledArrayWithHeader2CSV
pysces.write.exportLabelledArrayWithHeader2TXT
pysces.write.exportLabelledLinkedList
22 March 2013
SED-ML gets more interesting when you start using it: PySCeS
Last year I started getting more active in the "Simulation Experiment Description Markup Language" (SED-ML) community. At its simplest SED-ML is a way of describing time-simulation plots in a standard way, of course it is way more than this, especially after the workshop hosted by Dagmar in Rostock last November year.
Just recently, using Frank Bergmann's.SED-ML tools for the conversion I've added SED-ML support into PySCeS. Its pretty simple to use as well, anything generated with mod.doSimPlot() can be exported.
mod.exportSimAsSedML() does all the work and its arguments specify that output should be produced as raw SBML/SED-ML files, a SEDML archive (the same files zipped together) and a COMBINE archive (*.omex) a recently proposed archive format that includes the same files with all sorts of metadata.
While this is the simplest use-case, to do this I've wrapped most of the SED-ML 1.1 spec into a Python class that can be used to generate arbitrary SED-ML descriptions. This actually generates Frank's SED-ML script which then either uses libSEDML, installed locally, or the web services provided here to generate the SED-ML.
This will all be available in the PySCeS 0.9 release (soon :-))
Just recently, using Frank Bergmann's.SED-ML tools for the conversion I've added SED-ML support into PySCeS. Its pretty simple to use as well, anything generated with mod.doSimPlot() can be exported.
import pysces
mod = pysces.model('chain.psc','d:\\projects\\modeldir')
mod.doSimPlot(50,100)
mod.exportSimAsSedML(output='files,archive,combine')
mod.exportSimAsSedML() does all the work and its arguments specify that output should be produced as raw SBML/SED-ML files, a SEDML archive (the same files zipped together) and a COMBINE archive (*.omex) a recently proposed archive format that includes the same files with all sorts of metadata.
While this is the simplest use-case, to do this I've wrapped most of the SED-ML 1.1 spec into a Python class that can be used to generate arbitrary SED-ML descriptions. This actually generates Frank's SED-ML script which then either uses libSEDML, installed locally, or the web services provided here to generate the SED-ML.
sed = pysces.SED.SED(sed_id, sed_output_path)
In [11]: sed.
sed.addTaskPlot sed.addModel
sed.addDataGenerator sed.addTaskDataGenerators
sed.addModelAlt sed.writeCOMBINEArchive
sed.addPlot sed.writeSedScript
sed.addSimulation sed.writeSedXArchive
sed.addTask sed.writeSedXML
In [11]: sed.
This will all be available in the PySCeS 0.9 release (soon :-))
Subscribe to:
Posts (Atom)