Week 4: Integration and Testing Begins
Hi readers,
It’s week 4 of my GSoC journey, and this week was all about building bridges — between code and interface, and initial testing. As I move from core algorithm development into integration, things are getting both more exciting and more layered.What I did this week?
After completing the lsoda driver function last week, I began working on the integration mechanism — i.e., how users will interact with the solver, and how models will be parsed, solved, and tested.
Here’s what I’ve done so far:
- I implemented the computeChange abstract method which is the go to method for AbstractDESolver for solving the ODE systems. It is the single most important method for the integration mechanism.
-
I created a new test class
LSODASystemTest
, specifically to validate how LSODA handles various ODE systems and error scenarios in an end-to-end manner. -
I’ve designed the LSODA solver to work in two different modes:
-
Direct ODE system input – where users can directly provide an implementation of the
DESystem
interface. This mimics the libLSODA style API. -
SBML-based input – the standard SBSCL way, where the solver receives an SBML model file and integrates it through SBSCL’s internal pipeline.
-
This makes the solver flexible: researchers familiar with libLSODA can use it in a familiar way, while SBSCL users benefit from seamless integration with SBML models.
Understanding SBML Parsing in SBSCL
While the direct ODE system tests are working well, I’ve hit a bit of a wall in fully understanding how SBSCL handles SBML model parsing and result output using existing solvers.
To address this, I’ve been diving into:
-
SBMLInterpreter
– which is responsible for reading and interpreting SBML models. -
Multitable
– which stores and structures the results of a simulation.
Both these classes play a central role in how SBSCL processes models and displays results, so understanding their internals is crucial for proper integration.
Mentor Meeting
I had my usual weekly meeting on June 26 2025 where I presented my progress so far followed by a discussion on the dual interface architecture which I decided to use — something my mentors found valuable. I also shared the current challenges in tracing how SBSCL solvers connect with
Multitable.
Dr. Funahashi shared a detailed presentation on SBML, to help me understand the fundamentals of the markup language and how it represents models and simulations. Dr. Dräger shared a YouTube video that also explains SBML. They also introduced me to SBMLSimulator, another project from the dräger-lab. It has a wide range of SBML simulation examples. Studying this will help me understand how simulations are executed and how the results are stored using
Multitable
.
That’s all for this week!
Till then,
Bye! 👋
Comments
Post a Comment