In systems biology, it is very important to standardize the model for a given biological phenomenon and analyze the system based on this model. Such a model is most of the time based on ordinary differential equation (ODE).
Such a systems biology model is normally described in a standard format, with Systems Biology Markup Language (SBML) being the de-facto standard in the field. Several software tools exist to create SBML models easily. Regarding the analysis of such models, which is mainly via simulation, steady state analysis, or parameter estimation.
-
Time course simulation
provides the information of each species in the model over time which enables us to understand the dynamical variation of species in model. -
Steady state analysis
can give us the values of model objects after enough time has passed and a steady state is reached. -
Parameter estimation
focuses on the identification of unknown parameters in the model based on experimental data.
Time course simulation, steady state simulation and parameter estimation are implemented in multiple libraries and tools for SBML, e.g. COPASI, libroadrunner, or the Simulation Core Library. However, establishing the environment for such analysis is often difficult for biologists and a major obstacle to analyze ODE models easily.
This project is part of Google Summer of Code 2017 with the goal of developing a Web App for SBML models which provides functionality for
time course simulation
steady state analysis
parameter estimation
The Web App will provide options for uploading SBML models and experimental data files and run the respective simulations with the models.
This repository includes the following files and directories
docs/
SBML example files for analysisexamples/
SBML example files for analysislib/
Library dependenciessrc/
Source code for web appWebContent/
Web content for web appREADME.md
Overview informationpom.xml
Maven pom file
GitHub: https://github.com/TakahiroYamada/SBMLWebApp
Blog: http://gsoc2017developwebservice.blogspot.jp
PivotalTracker: https://www.pivotaltracker.com/n/projects/2020229
This project is created in Java as a Maven project. To run the web app locally one can run the server from within eclipse.
Apache tomcat is not contained in the installation, but must be installed separately. During the development
Apache TomCat v6.0.48
is used which is available as apache-tomcat-6.0.48.tar.gz
from
https://archive.apache.org/dist/tomcat/tomcat-6/v6.0.48/bin/
After download the files should be unpacked in the correct position (e.g. :/Applications/
).
When you use Eclipse , eclipse tomcat plugin is needed. This file can be downloaded following Task.
- Select Help - Eclipse Marketplace
- Type "tomcat" in find text box
- Install "Eclipse Tomcat Plugin 9.1.2"
Then you start-up eclipse. When you can see the icon of tomcat in Eclipse , the install is accomplished.
After you complete installation of eclipse tomcat plugin, you should choose the tomcat version
and tomcat home
from Environment -> Tomcat
. For version, please check version 6.x and select
the aforementioned distribution of apache-tomcat-6.0.48
.
After finishing the tomcat configuration one can run the server in Eclipse via:
- Clone repository
git clone https://github.com/TakahiroYamada/SBMLWebApp.git
- Select
File -> Open Projects from File System
- Choose the directory of this project in
Import source
- Select
Properties -> Java Build Path -> Libraries - add library - Server Runtime - Apache Tomcat v6.0
Run | Edit Configurations | + | Tomcat Server | Local
- Select tomcat:
Configure -> Select apache-tomcat-6.0.48
- Select artifact to deploy:
Artifact GSOC_WebMavenProject:war
- Add external libraries to
java.library.path
in VM options i.e.
-Djava.library.path=/path/to/SBMLWebApp/lib/COPASI-4.19.140-Java-Bindings-Darwin
see also https://www.jetbrains.com/help/idea/2017.1/run-debug-configuration-tomcat-server.html
Docker composed container of this application has been already prepared. If you felt annoying when you use this application via our server, running composed containers and executing analysis is better for you.
Docker installation : https://docs.docker.com/engine/installation/
Docker-compose installation : https://docs.docker.com/compose/install/
We have confirmed that the docker image works in the following environment.
. | OS version | docker | docker-compose |
---|---|---|---|
macOS | macOS Mojave 10.14.6 x86_64 | 20.10.7 | 1.29.2 |
Linux | Ubuntu 18.04.6 LTS x86_64 | 20.10.8 | 1.17.1 |
- for macOS
$ cd docker
$ export LOCAL_HOST_IP=$(/sbin/ifconfig en0 | awk '/inet / { print $2 }') # or export LOCAL_HOST_IP=(Your Private IP Address)
$ docker-compose up -d
- for Linux
$ cd docker
$ export DEV_ETHER=$(/sbin/route | grep default | awk '{print $8}')
$ export LOCAL_HOST_IP=$(/sbin/ifconfig $DEV_ETHER | awk '/inet / { print $2 }') # or export LOCAL_HOST_IP=(Your Private IP Address)
$ unset DEV_ETHER
$ sudo LOCAL_HOST_IP=$LOCAL_HOST_IP docker-compose up -d
Then you can execute analysis using your favorite browser with the URL of http://localhost/SBMLWebApp/
When you want to finish it, please type docker-compose down
.
After checking out the project using git clone
make sure the folder WebContent/
contains required third-party applications.
In some cases, recursive cloning might not work properly.
The followoing steps are only necesary if you cannot find the subfolders CytoScape
, ScrollTrigger
, and FileSaver.js
within the folder WebContent/
or if they are empty, please navigate to WebContent/
and use git clone
for these three:
git clone https://github.com/terwanerik/ScrollTrigger.git
git clone https://github.com/eligrey/FileSaver.js.git
andgit clone https://github.com/cytoscape/cytoscape.js.git
Next, please rename the folder cytoscape.js
to CytoScape
and make sure that the right versions are present by checking out the following specific git tags within the correspoinding sub-repositories:
- FileSaver.js : v2.0.4 → move to the folder and use
git checkout tags/v2.0.4
- cytoscape.js : v3.2.3 → move to the folder and use
git checkout tags/v3.2.3
- ScrollTrigger : v0.3.6 → move to the folder and use
git checkout tags/v0.3.6
Now, you should navigate back to the project's root folder where you can run
mvn package
to build the project.
The main problems that might prevent it from succesfully compiling the project could be missing links to required dependencies.
Your system might not find the Systems Biology Simulation Core Library (SBSCL) version 1.5, libSBML, or libSBMLsim.
For the libSBML dependency, it is, on most systems, sufficient to set the environment variable LD_LIBRARY_PATH
to the directory where libSBML is installed on your system.
LibSBMLsim and SBSCL can be copied over to the subfolder lib
if missing:
lib/SimulationCore/dist/SimulationCoreLibrary-1.5/SimulationCoreLibrary_v1.5_slim.jar
lib/libSBMLsim/build/src/bindings/java/libsbmlsimj.jar
. You can download SBSCL version 1.5 from the corresponding project and name itSimulationCoreLibrary_v1.5_slim.jar
after placing it at the specified location. On many systems you may need to build libSBMLsim yourself and place it in the right folder (see the build instructions). Before proceeding, you may want to runmvn clean
before attempting another build process withmvn package
.
If everything worked as supposed, you should now find the war
file in the subfolder target
of the project's root.
The next steps are:
- Distributing created
war
file under target directory to the apache tomcatwebapp
directory - Running RabbitMQ with
rabbitmq-server
after the configuration written before. - Running TomCat with executing
startup.sh
underbin
directory of apache tomcat.