Cloud Chemistry Simulation Framework
The framework is accessible at coel-sim.org.
COEL is a web-based chemistry simulation framework.
COEL's most prominent features include ODE-based simulations of chemical reaction networks and multicompartment reaction networks, with rich options for user interactions with those networks. COEL provides DNA-strand displacement transformations and visualization (and is to our knowledge the first CRN framework to do so), GA optimization of rate constants, expression validation, an application-wide plotting engine, and SBML/Octave/Matlab export. COEL's visually pleasing and intuitive user interface, simulations that run on a large computational grid, reliable database storage, and transactional services make it ideal for collaborative research and education. Besides chemical reaction networks, COEL provides a unified and extendible environment for the definition and manipulation of complex Boolean and real-valued networks.
COEL framework is built on Grails, Spring, Hibernate, and GridGain technology stack.
A paper summarizing COEL's functionality and architecture can be found here.
This project has been developed and maintained by Peter Banda.
If you wish to collaborate in the development of this project contact me at banda@pdx.edu
.
Here we provide a step-by-step guide demonstrating how COEL can be deployed locally to a Linux-based OS such as Ubuntu, and to Mac OS (not tested). For Windows you can still use this guide but you need to adjust the os-specific parts, e.g., the settings of environmental variables. These instructions apply to the most recent COEL release 0.8.4.
- Install OpenJDK or Oracle JDK version 1.7 manually or by using the Ubuntu package manager:
sudo apt-get install openjdk-7-jdk
or
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
- Be sure that your
JAVA_HOME
points to the installation! For instance:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
- Download the file or copy paste the following:
export COEL_DBUSER=coeladmin
export COEL_DBPASSWORD=CHANGE_ME
export COEL_DB=coel
export COEL_DBHOST=localhost
export COEL_DBPORT=5432
export COEL_GRIDMASTER=localhost
export COEL_GRID_METRICS_TEMPFOLDER=
export COEL_GRID_FS_DISCOVERY_ENABLED=true
export COEL_GRID_STEALING_ENABLED=true
export COEL_AC_DYNAMICS_ANALYSIS_PARALLEL_TASKS=20
export COEL_EMAIL_HOST=CHANGE_ME
export COEL_EMAIL_PORT=465
export COEL_EMAIL_USERNAME=CHANGE_ME
export COEL_EMAIL_PASSWORD=CHANGE_ME
# uncomment and adapt the path if you installed gridgain
# export GRIDGAIN_HOME=/opt/gridgain-fabric-os-6.5.0
-
Override the variable values, especially those marked with
CHANGE_ME
. -
Copy the settings to the central init script such as
/etc/environment
(recommended),.bashrc
, or.bash_profile
. Note that to load these variables a new login or restart might be required.
- Download and install PostgreSQL db server from here or using the Ubuntu package manager as:
sudo apt-get install postgresql-9.4
Note that in production we are using the version 9.3 but any 9.x version should work.
-
Download a zip containing COEL db init scripts and dump from here and unpack it.
-
Open
create_db_and_user.sql
and set the password of the COEL db user. This must match the environmental setting from the step 2. Runcreate_db_and_user.sh
. -
Run
restore_init_dump.sh
.
There are two options how to prepare Tomcat's app server hosting COEL:
-
All-in-one:
- Download a preconfigured Tomcat including the COEL prebuilt war from here.
-
Tomcat and war separately:
COEL already comes with the GridGain lib and this technology is well integrated. However, if you want to spread the grid over several nodes it is required to configure a standalone GridGain instance per each node.
-
Download a preconfigured GridGain fabric app with COEL libs from here and unzip it. Note that we use the version 6.5.0 (community edition), which is freely available.
-
Uncomment the GridGain environmental setting (step 2) and adjust the path accordingly
# uncomment and adapt the path if you installed gridgain
# export GRIDGAIN_HOME=/opt/gridgain-fabric-os-6.5.0
- Override the variables in
gridgain-fabric-os-6.5.0/bin/launch/set_env.sh
if needed, especially the grid master url (ip address):
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export GRIDGAIN_HOME=/opt/gridgain-fabric-os-6.5.0
export GG_HOSTNAME=`hostname -f`
export COEL_GRIDMASTER=CHANGE_ME
- Once the server hosting the master node is up (step 6) you can launch a new computational node by running
cd /gridgain-fabric-os-6.5.0/bin/launch
source set_env.sh
./start.sh
- Go to the Tomcat's bin folder such as
apache-tomcat-7.0.56/bin
and launchstartup.sh
. To stop the app runshutdown.sh
.