Posts

Showing posts from August, 2025

Week 13: Signing Off With Gratitude and Growth

 Hi everyone, This is my final blog in the weekly series documenting my GSoC journey with SBSCL. Over the past 12 weeks, these posts have been a way for me to not only track progress but also share insights, challenges, and milestones as they happened in real time. This Week’s Highlights My last PR was merged , marking the completion of the main development work. We’re now discussing the next big step — merging the feature branch I’ve been working on throughout the summer into the main branch of SBSCL . This feels like the perfect culmination of the project: to see the work become part of the official codebase and ready for broader use. With this, everything is set for the final submission and the close of this GSoC cycle. Looking Back When I started, the idea of implementing and refining numerical solvers within SBSCL felt both exciting and daunting. Over time, I’ve grown not just in terms of coding and technical depth, but also in how I collaborate, document, an...

Week 12: Strengthening LSODA & Final Preparations

Image
Hi everyone, Following up from last blog’s deep dive into the PR, this blog will cover the ongoing activities. Here’s a summary of that: Key Updates Following my meeting with Dr. Dräger, I incorporated the changes he suggested in the PR review. We talked about observer pattern and he suggested that I should read about it in more detail. Observer pattern is a software design pattern where an object, known as subject, maintains a list of its dependents, known as observers, and automatically notifies them of any state changes. I have now published the new updated SBSCL wikipedia page . This was an exciting contribution as it not only documents SBSCL’s presence in the wider community but also makes it more discoverable for researchers and developers who may benefit from it. Implemented the absolute tolerance adjustment factor approach for assigning default absolute tolerances to the species. Thanks to Lucian for sharing this. Now, once this PR gets merged I will create another PR for th...

Week 11: A Closer Look at the Latest PR

Hi everyone, This week’s update is a little delayed, but I’ll focus here on walking you through the details of my latest Pull Request . I’ll cover the other activities separately in the next blog.  Refactoring LSODAContext One of the first changes I made was updating the odesystem member variable in LSODAContext . Previously, it was an object of  DESystem interface, but since  DESystem  itself implements  FirstOrderDifferentialEquations  interface and also brings in methods not directly needed by LSODA (specifically for storing the ode system purpose), I switched the type to  FirstOrderDifferentialEquations . This simplifies the workflow significantly: when using SBSCL with a direct ODE system, users now only need to implement computeDerivative() and getDimension() . Everything else is handled automatically, making the integration smoother and more intuitive. Default Tolerance Values I added sensible default tolerances in LSODAOptions : Rel...

Week 10: Starting Documentation and Polishing LSODA-Integrator

 Hi everyone, This week was about moving from testing to outreach and deeper documentation. I wrote a document for the SBSCL Wikipedia update , and incorporated suggestions from Dr. Draeger. I added a  default relative and absolute tolerance values for LSODA-Integrator, after discussing it with my mentors.  We also agreed that some legacy files like LSODAFunctions and LSODACommonContext can now be removed. I have now sent the announcement emails to relevant mailing lists. I have now created a Pull Request with code from the testing phase, which primarily includes SBMLTestSuiteRunner wrapper and some documentation files along with few more changes to improve the readability. We talked about the next major step which is writing detailed HTML documentation for LSODA, matching the style of SBSCL’s other solver docs. What’s Next Finalize and publish the updated SBSCL Wikipedia entry. Write comprehensive HTML documentation for LSODA-Integrator. Polish the codeb...

Week 9: Wrapping Up Testing

Hi everyone, As shared in the last blog that we have achieved a respectable result after running our algorithm against SBML Test Suite (Although, we are actively  looking into the remaining failed test cases). The focus has a little shifted from testing to documentation , community engagement, and preparing LSODA-Integrator for its final polished form. We kicked off the week with a full-team meeting where I shared the latest SBML Test Suite results with the mentors. This marks a big milestone, as the LSODA-Integrator is now stable, accurate, and well integrated into SBSCL. Our discussion revolved around the remaining 1% of failing cases — particularly those producing errors or no output . Dr. Dräger and Dr. Funahashi emphasized prioritizing these over tests with merely incorrect results. I explained my approach to event handling, delayed reactions, and fast reaction tags (described in detail in my Week 8 blog post ). Dr. Funahashi shared libSBMLsim as a possible resource to help i...