=== James Taylor, Galaxy platform for accessible and reproducible research === - Evolution of biological functional elements and speciation events - In DNA, substitutions, insertions, deletions - Evolutionary constraint prevent changes in functional regions - Lots of development in genomic data warehouses and visualization methods - Many computational methods, too; lots of methods/application papers published with working implementations - Typical workflow: developer provides scripts, grad student runs test cases from Excel worksheet or perl script - Galaxy: an open source framework to integrate computational tools and databases into a cohesive workspace - Web interface for all analysis operations - Register tools, access others by proxy - Integrate existing command-line tools by describing them in XML - Use template to generate command line from parameter values - Include tests, support for multiple "tracks" - Histories: complete records of complex analysis; can be easily shared, rerun - Create workflows - Python 2.4, WSGI web framework, SQLAlchemy, jQuery - Can be run locally, or scale with mod_proxy and pbs-python job dispatching === Gregory Benson, River: reliable virtual resources === - A Python framework for parallel and distributed programming - River core: discovery, process naming and creation, message passing, state management - River extensions: RPC/RMI, Trickle, MPI, MapReduce - Parallel programming still hard, will have to use multiple cores, larger clusters - Find the next set of programming models - Current practice for development cycle - Specify -> Prototype -> Get feedback - Takes months, and early decisions are hard to undo - River purpose - Extend Python's rapid development capabilities to parallel systems - Facilitate short design/implementation cycles - River concepts: - Virtual machines (Python + River Core) - Virtual resources - Named - Code, data, thread, message queue - Coordinated checkpointing - Super flexible messaging - https://www.cs.usfca.edu/river/ === Eric Jones, Block and Contexts: exploring scientific problems and algorithms === - Scientists know how to model problems in software, but exploring them is harder - Code written by scientists usually has few objects, hardcoded parameters, prints out a graph - Make interactive by adding traits to parameters, array output... not that simple - Lots of overhead for graphical applications - Model analysis: - What if (fixed parameter value) - Parametric studies (parameter ranges) - Monte Carlo - *Inverse problem* - Blocks and context - Execute a block (code) in a context (parameter values) - Can do it in python with "exec code in {}, context" string dictionary - Shadow contexts in what-if experimentation to reuse data - Implement in visual interface