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
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.
1. Install Java 1.7
- Install OpenJDK or Oracle JDK version 1.7 manually or by using the Ubuntu package manager:
sudo apt-get install openjdk-7-jdk
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer
- Be sure that your
JAVA_HOMEpoints to the installation! For instance:
2. Set up the environmental variables
- 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
Copy the settings to the central init script such as
.bash_profile. Note that to load these variables a new login or restart might be required.
3. Set up database
- 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.
create_db_and_user.sqland set the password of the COEL db user. This must match the environmental setting from the step 2. Run
4. Set up application server (Tomcat)
There are two options how to prepare Tomcat's app server hosting COEL:
- Download a preconfigured Tomcat including the COEL prebuilt war from here.
Tomcat and war separately:
5. Set up GridGain computational fabric (optional)
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.shif 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
6. Launch the application
- Go to the Tomcat's bin folder such as
startup.sh. To stop the app run