nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
114 stars 38 forks source link

Adding Direct Runtime Access to Models in libRoadRunner #105

Closed hsauro closed 4 years ago

hsauro commented 6 years ago

Background

LibRoadrunner is a high performance SBML based simulator that uses LLVM to generate very efficient runtime code. This enables libRoadrunner to simulate models on par with compiled C/C++ code. At runtime, values for parameters and variables can be modified, however the structure of the model itself cannot be changed without having to reload a new SBML model. By structure we mean the structure of the reaction network, the division between boundary and floating species and the particular rate laws used by the model.

Since loading SBML is relatively time consuming, running simulations where the model structure changes is very inefficient. The ability to change the structure of the model at runtime would open up new application areas, in particular multicellular development and the evolution of biological systems are two key areas of interest.

Goal

The goal of this project is to refactor libroadrunner so that the internal object model can be directly accessed and changed at runtime without having to load a new SBML model.

Difficulty Level 2

This project requires some understanding of systems biology and modeling. Most of the challenge will be in architecting the runtime engine.

Skills

This project is especially suited to those who want to learn new high level skills in computer programming especially related the LLVM programming and modeling.

C/C++ (essential) LLVM (nice to have) Python (nice to have)

Public Repository

https://github.com/sys-bio/roadrunner

Potential Mentors

Herbert M Sauro

Contact

Herbert M Sauro