Week4 : Form to send the parameters of analysis to server side and analyse based on these parameters

Hi all!

As always I will firstly explain what I did this week and discussion.
Then I will confirm the task next week.

1. What I did this week
As I mentioned last week, I mainly implemented the system for users to set the parameters of analysis( ex : End time of simulation, algorithm to execute parameter estimation such as Leven-Berg Marquardt and Genetic Algorithm etc) and execute it based on these parameters.
Completing this task, it is important to set the system to send these parameters as JSON format to server side.

1.1 Major Implementation : Client side html and JavaScript to send the parameters of analysis( ex End time of simulation) to server side
I mainly set the "Select form" for the selection of libraries and "Input form" for the parameters. Considering AJA JSON, these form's onchange property was set and the analysis is dynamically executed when the libraries or parameters are changed.
The data of library and parameters are sent to client side as JSON and these data format let server side program be easily implemented compared to XML format.

1.2 Major Implementation : Server side Java program to accept the parameters from client side
Server side Java servlet accept the parameters from client side. In order to do that, I prepared the class to contain the information of these parameters. Using this class, the parameters of analysis are set and the execution is bifurcated depend on the library user selects.

This implementation solved the problem of Hard Coded style of my last implementation. It means, I will add some programs of analysis with other library easily. The main reason being that the execution with other library can be easily added using "if statement" in servlet.

1.3 Minor Implementation
Following points are minor implementation.

- Colouring each line of species in simulation result using the algorithm of golden angle to set the colour( with API of MorphoLibJ_ : https://imagej.net/MorphoLibJ)
- Fixing the bug of visualising the name of label of simulation and experiment results in parameter estimation

1.4 Demo of this implementation
As a representative, the demo of parameter estimation is shown here.

1.4.1 Select the SBML model and experiment data

Fig 1.4.1 : Showing the result of parameter estimation( Upper : Before fitting, Bottom : After fitting) with Leven-Berg Marquardt method

1.4.2 Select the algorithm and change the parameters of analysis

Fig 1.4.2 : Changing the algorithm of fitting to Genetic Algorithm

1.4.3 Change the visualisation result immediately after changing the parameters

Fig1.4.3 : Changing the "Number of Population" is drastically low, the fitting result( Bottom panel) showed that the simulation results(line) are deviated from experiment results(cross). This is the evidence to accept the parameters correctly in Server side program.

1) Setting the default parameters and library of analysis
Very simple question : What is the best algorithm to execute parameter fitting?
The answer is sometimes easy for mathematician or computational biologists. However, our main targets are completely different and the best way to select the algorithm is quite difficult problem. Therefore it is significant to set the default algorithm and parameters to execute analysis. My mentors advised me the published article which is benchmark of parameter estimation[1].
Based on this result, I will set the default value of analysis in parameter estimation. Regarding on simulation and steady state analysis, I planned to set it following COPASI UI's one.

2 The task of next week
Following my proposal I planned to configure the server side program to accept the parameters from client side. However, as you confirmed in 1.2, I have already finished basically. Therefore, I planned to do following tasks.

1) Adding the server side program with other libraries to this implementation.
Now I implemented using COPASI only and this is sometimes insufficient for users to check their result. As I raised some libraries two weeks ago, I will add server side program which execute analysis with these libraries.
The information of addition is following

Simulation : simulationCore( SBSCL) , libRoadRunner
Steady state analysis : libRoadRunner

These implementations of analysis are mathematically different from COPASI's one. Therefore, this is significant because of aforementioned reason.

2) Preparing test server

My project is basically implementing Web Application. Until now I tried to implement these program and confirmed the result using local host. However, I should consider the situation when many users are to execute analysis simultaneously. Before trying to implement the system regarding this situations, I should prepare test server and then I can confirm whether the system can work correctly or not.
My professor gave me a great idea for this issue using the system of tomcat hosting of a2hosting(https://www.a2hosting.com/tomcat-hosting). This service forgives users to set tomcat and it is correctly matched to my project.

Using this system,  I will set the test server, deploy my servlet and confirm that the analysis works correctly same as the situation of local host.

Thank you!

Reference :
[1] Dräger, Andreas, et al. "Modeling metabolic networks in C. glutamicum: a comparison of rate laws in combination with various parameter optimization strategies." BMC Systems Biology 3.1 (2009): 5.



Final Week : Create document and implement some minor UI

Week9 : Numerical table of the result from simulation and parameter estimation

Week12 : Download widget was created and all javascript code to execute ajax transfer is changed based on JQuery