The community bonding phase (of GSoC) is a brief period before the beginning of the actual coding phase where students get to know the organization they are selected for works. I had my first (Hangouts) meeting with my mentors Andreas Dräger, Matthias König and Nicolas Rodriguez where we discussed how NRNB works and what they expect from me as a student. It was exciting to learn about setting up the development environment for the simulation core library (SBSCL) and some other resources such as Github Projects which I will use to setup individual milestones.
Setting the development environment for SBSCL:
Download and install Eclipse IDE (latest version is Oxygen) and git. Once you have Eclipse and git on your computer, simple clone the repo using git clone <repo_name>. As per my discussion with mentors, we decided that I fork SBSCL into my Github before cloning it to be safe. This way, I can play around with the code without worrying about the master branch. Once I cloned the repo, I imported it in Eclipse. Since SBSCL uses Maven for build process, it was pretty easy to setup.
Some of you might run into the problem: Error- Unable to find cplex-184.108.40.206.jar and this is because SBSCL’s constraint-based model solver requires IBM’s proprietary linear programming solver library. Fortunately, IBM provides a free student license with the university email and therefore I was able to download jar file and import it as a dependency. Note that current cplex version is 220.127.116.11 and not 18.104.22.168. I wasn’t able to find 12.6 online so I modified the pom.xml file to expect for 22.214.171.124. This worked like a charm! A great thing is that one of my GSoC tasks is to remove this dependency (by using open-source API like SCPSolver) so everyone can use linear programming feature. I will update about it once I finish implementing it.
Workflow of using the simulation core library
The library contains a folder examples which has simple codes to read, parse and simulate a systems biology model. You can write your own SBML model or download some samples from here – http://www.ebi.ac.uk/biomodels-main/. There are a lot of models there and you can simply try downloading model of the month. Once you have your model you can validate it here – http://sbml.org/validator/
Now, you know that you have a valid SBML model you can try making a new java project and try running the SimulatorExample.java file as your main file for the project. Voila! You will get output of the model as a MultiTable which can be plotted using some Java plotting library (also one of my GSoC tasks).
You can also try running CPLEX solver (if you have license) by using COBRASolverExample.java file found in the example folder.
Remember that you need to import the jar dependencies of simulation core, jlibsedml, commonMath etc. All the dependencies are written in the HelloWord code documentation page of SBSCL which can be found inside doc folder.
Wrapping up, I also found a glitch in the README.md filed which says there are multiple jar files in the dist folder. I changed it and pushed my first commit. Yay! It is in my forked Github though.
Let me know any questions or suggestions in comments 🙂