100 likes | 110 Views
Advanced Software Development. applied to (Symbolic) Systems Biology Karl Lieberherr. Overview. Advanced Software Development Separation of Concerns Loose coupling, modularity Concerns typically influence a collaboration Adaptive Programming Aspect-Oriented Programming
E N D
Advanced Software Development applied to (Symbolic) Systems Biology Karl Lieberherr
Overview • Advanced Software Development • Separation of Concerns • Loose coupling, modularity • Concerns typically influence a collaboration • Adaptive Programming • Aspect-Oriented Programming • Generic Programming: Families of algorithms
Applied to Systems Biology • Why study biological systems? • Need to better understand ourselves to live better lives. • What is good for you depends on your genome • food • drugs • Can we build biological systems that perform useful computations or that produce useful chemicals? Symbolic Systems Biology: Patrick Lincoln (SRI)
Interesting computational topics in biology • How can we develop a model of a system that is very complex and hard to test? • Modularity in biological systems • How can we design experiments that give maximal information about the model. • How can we design experiments that give us true explanations for a behavior (and not an accidental explanation).
Interesting computational topics in biology (2) • Modeling biological systems • Pathway Logic (Carolyn Talcott, SRI) • Finite State Machines (Statecharts) • Sequential Dynamical Systems (SDS) • attractors = fix points • Rewrite-Rule based systems • Stochastic pi-calculus • Maude • BIOCHAM
Pathway Logic (SRI) • Use Maude from SRI to represent biological knowledge contained in biological literature. • Biologist mines literature and produces Maude rules • Maude is distinguished from other systems by supporting abstract data types
Interesting computational topics in biology (3) • Generalized Maximum Satisfiability Problem plays an important role in biological modeling • Efficient Haplotype Inference with Boolean Satisfiability • Reasoning with uncertainty • MPE problem for Bayesian networks • Checking properties of biological models
Satisfiability • The first problem to be shown NP-complete (Cook 1971) • Surprising Development since then: Satisfiability solvers have really been fine-tuned to a degree so that many problems can be solved by translating them to satisfiability. Numerous application domains profit from SAT solvers: program verification, electronic design automation, Bayesian network evaluation, etc.
Satisfiability Solvers • kinds • complete: yes and no • stochastic: yes only • useful when instances are likely to be satisfiable • Relatively small pieces of software: a few thousand lines • Algorithms involved are complex
Components of a DPLL SAT Solver • Branching heuristics • when no more deduction is possible, choose a free variable. • take structure of formula into account? • works well for random instances • but not so well for structured instances