230 likes | 362 Views
The BASIS system. BASIS is a GRID pilot project to provide a tool for the quantitative study of the biology of ageing (BBSRC, MRC, DTI and Unilever) Colin Gillespie School of Mathematics & Statistics and Centre for Integrated Systems Biology of Ageing and Nutrition
E N D
The BASIS system BASIS is a GRID pilot project to provide a tool for the quantitative study of the biology of ageing (BBSRC, MRC, DTI and Unilever) Colin Gillespie School of Mathematics & Statistics and Centre for Integrated Systems Biology of Ageing and Nutrition Newcastle University, UK
Overview • Overview of the biology • SBML • Web-services • Other technical aspects of BASIS • The future
What is BASIS? • A flexible web-service based modelling system • Model construction and development • Users can store, share and simulate their models. • The system is accessed through web-services using any language (e.g. Python or Java) or under any operating system (e.g. Linux or Windows). • A web-front end has also been created • Model editing, storage • Simulation • Funding: 2002 - 2010
Ageing Ageing is the result of the accumulation of unrepaired random molecular damage Individual mechanisms include: • telomere shortening • somatic mutations • mitochondrial damage • aberrant proteins And gene regulation (e.g. Sir2, IGF-1)
Virtual Ageing Cell • Telomere loss and oxidative stress: Proctor & Kirkwood Mech Ageing Dev 2001. • Mitochondrial mutation:Kowald & Kirkwood J Theor Biol 2000. • Somatic mutation: Kirkwood & Proctor Mech Ageing Dev 2003. • Telomere capping: Proctor & Kirkwood Aging Cell 2003 • Extrachromosomal DNA circles: Gillespie et al J Theor Biol 2004 • Genetic pathways: e.g. Sir2 gene action (in progress) • Protein turnover: Chaperones, ubiquitin-proteasome system (Proctor et al. Mech Ageing Dev 2005, Proc Roy Soc 2006) • Antioxidant system: Shanley et al (in progress) • Network models: • Mitochondrial mutation, oxidative stress, protein turnover (Kowald & Kirkwood Mutation Res 1996) • Somatic mutation, telomere loss, mitochondrial mutation (oxidative stress (Sozou & Kirkwood J Theor Biol 2001)
Virtual Ageing Tissue Fibroblasts Neuronal networks Intestinal epithelium
Linking models together EndNote analogy • You enter specific details of your reference into EndNote, • Author, year, journal, title • You don’t specify the format • E.g. underline journal • Rather you apply different ‘style-sheets’ to the references • There is a separation of Content and Style.
Modelling • Separate the model from the algorithm and operating system • We want to specify the number reactions, chemical species, compartments that are in the model. • It shouldn’t tell us what to do with them. • An agreed standard to write the model • Not as easy as it sounds • Lots of different issues • Need a critical mass of people to get the standard moving
SBML • SBML – Systems Biology Mark-up Language • The most popular language to describe a model • XML language; trendy • Similar to HTML (the language of web-pages) • Only the ‘bare-bones’ has been agreed on • Still not sure how to encode cell models
Overview Pathway visualiser SBML Model Stochastic simulator Sensitivity analysis
Systems Biology Markup Language SBML is a method for representing a model in XML <?xml version=“1.0”encoding=“UTF-8”?> <sbml xmlns= “http://www.sbml.org/sbml/level2”level= “1”version= “1” > <model name= “Simple Model”> <listOfSpecies> <specie name= “M0”initialAmount= “10” /> <specie name= “M1”initialAmount= “0”/> </listOfSpecies> <listOfReactions> <reaction name= “first reaction”reversible= “false”> <listOfReactants> <specieReference specie= “M0”stoichiometry= “1”/> </listOfReactants> <listOfProducts> <specieReference specie= “M1”stoichiometry= “1”/> </listOfProducts> <kineticLaw formula= “k*M0”> <listOfParameters> <parameter name= “k”value= “1”/> </listOfParameters> </kineticLaw> </reaction> </listOfReactions> </model> </sbml>
Traditional approaches to the web • Uniform Resource Identifiers (URI) • User at browser interacts with application at Web Server • Web Server Application sends HTML to Web user agents for human display • Protocol is HTTP HTML web application
Web services • Machine to Machine interaction: No human assistance or intervention! • Client application interacts with Web Service application • Client and Service exchange XML • Protocol may be HTTP or other XML client application web application
The architecture User PC Web browser BASIS client software Internet (GRID) Web server BASIS file server Spyce/apache notification Python ZSI Web services postgresql R Graphviz Job Scheduler Simulator Linux beowulf cluster/GRID
Other system aspects • Web server is running apache • Condor as a job scheduler • python as an all purpose glue • SBML is parsed and manipulated using libSBML for C & python • graphviz for the visualisation of the SBML models
model and simulation urn’s • Every model/simulation will have a unique urn • once a model is public, it can no longer be deleted/altered • the model urn has the form urn:basis.ncl:model:# - the # is taken from a model id in the database • associated web-services are called using the urn. • The simulation urn has the form • urn:basis.ncl:model:#:simulation:#:<seed_generator>-<seed>-<maxtime>-<#steps> • e.g. urn:basis.ncl:model:26:simulation:10:gsl-12345-100-1000
Web services • Web services use the python ZSI module • they are ‘dispatched as CGI’, e.g. through apache • messages can be dispatched through ssl to increase security – not ideal • Python isn’t too fussy about incoming SOAP messages • e.g. wrongly declared types
more web-services #Model web-services def getSBML(sessionId, modelUrn+xpath): return dbSessionId(sessionId).getSBML(modelUrn+xpath) def delSBML(sessionId, modelUrn): return dbSessionId(sessionId).delSBML(modelUrn) def copySBML(sessionId, modelUrn): return dbSessionId(sessionId).copySBML(modelUrn) #simulator web-services def simulate(sessionId,modelUrn,runName,seed,maxTime): return dbSessionId(sessionId).simulate(modelUrn,runName,seed,maxTime) def delSimulation(sessionId,simulationUrn): return dbSessionId(sessionId).delSimulation(simulationUrn) def killSimulation(sessionId, simulationUrn): return dbSessionId(sessionId).killSimulation(simulationUrn)
Problems with python WS • We have to hand-write WSDL files! • (WSDL file describes the web-services) • Possibly need ‘java wrap’ the services • Not really sure about python and WS-Security • ‘Java wrapping’ would overcome this problem too.
The future • Java wrapped web-services • Upgrade security to WS-security • e-Science certificates • When a simulation is completed need some sort of notification, WS’s? • Construct client software that will directly interact with BASIS • Store models in a XML way • Track revisions
The CaliBayes project (case study) • Integration of GRID-based post-genomic data resources through Bayesian calibration of biological simulators • The models in BASIS contain many parameters with uncertain values that are not easy to directly estimate from existing data sources • However, there are many large on-line databases that contain data indirectly informative for the models in BASIS
The CaliBayes project Bayesian Calibration engine WWW iface OGSA iface WS DBfetch WS iface users other grid apps SMD KEGG BASIS EBI
Acknowledgements Tom Kirkwood Darren Wilkinson Richard Boys Steve Gilroy Connor Lawless Carole Proctor Daryl Shanley