nrnb / GoogleSummerOfCode

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

Develop a simulator which will support all the features of SBML core specification #100

Closed funasoul closed 3 years ago

funasoul commented 6 years ago

Background

Currently, there are over 290 software packages that support SBML. While there are enormous numbers of software packages to support mathematical modeling, simulation, and analysis tools for research related to systems biology, there only exist limited numbers of simulators that support all the features described in the SBML specifications. We have been working on the development of a simulation library LibSBMLSim, which supports all the features of SBML for simulating ODE models.

To make the library more usable and reliable, we decided to develop a whole new version. In version 2, we are going to adopt the reliable ODE solver, e.g., LSODA or CVODE. Also, to achieve maintainability and reliability, we are implementing it in C++ and integrating it with CI platforms.

While considering these, we aim to make the library to pass all the test cases and to have language bindings for major programming languages. This portability makes it easy for software tools to embed simulation features. The more software tools employ the library; the more researchers are motivated to have their biological models in SBML format. Therefore it's expected that this full-featured simulation library keeps the SBML ecosystem more sustainable.

This summer, we would like to mentor a student in extending LibSBMLSim version 2, which will pass all (over 1,000) test cases. If a student completes this task and is interested in further development, creating language bindings and switching different ODE solvers will be another advanced task.

Goal

The project will be split down into the following three tasks.

Difficulty Level 2

We already have an implementation in C (LibSBMLSim v1), which succeeded in passing all test cases. In this project, we will focus on writing code in an OOP manner, improving maintainability and reliability.

Skills

C++ programming skills and some basic knowledge of handling XML documents are required. Nice to have a knowledge/experience on SBML and mathematical background on numerical integration.

Public Repository

References

Potential Mentors

Contact

Akira Funahashi Akito Tabira

Xinghom commented 6 years ago

Hi @funasoul @mythosil,

I am considering to do a c++ project for a while. Fortunately, I find this project! I‘d like to join this issue and contribute to it. My motivation is to practice, learn and have fun with c++ and math. My background: A master student of computer engineering, having C++ coding skill and solid mathematical knowledge, pretty enjoying OOP development manner. Also, since I have Android development experience, I know how to deal with XML basically.

I will spend some time to get familiar with SBML firstly, then LibSBMLSim v1 is the next target. Besides, I would write a draft proposal ASAP to get feedback from you. If I could get some suggestions so far, that would be great!

funasoul commented 6 years ago

Hi @Xinghom,

Thank you for your interest in our project. Please look into the specification of SBML, and SBML test suite (http://sbml.org/Software/SBML_Test_Suite). It will be great if you could start writing your proposal with the following template https://tinyurl.com/nrnb-gsoc-application-template and share it with me and @mythosil.

Xinghom commented 6 years ago

Hi @funasoul,

I have done a draft proposal. Should I share it with you firstly by GSoC or your Email?

funasoul commented 6 years ago

Great. Please share it with me and @mythosil.