Carbonate 2.0: Now with a SMILES-to-molecule parser, a reasonable API, and some embeddable user interfaces! Summer 2014.
Python JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Carbonate 2.0


Clone the repository:

git clone
git config --global "Your Name"
git config --global

Open a command line in the same folder as the repository, and start Vagrant. (Problems? Try reinstalling VirtualBox.) (No command Vagrant found? If you're using a Mac, try running: export PATH=/Applications/Vagrant/bin:$PATH.)

vagrant up
vagrant ssh

Now you're in the virtual machine! It has Django installed, but you need to install some other things. Open requirements.txt and run the commands there. For example:

sudo apt-get install python-openbabel
sudo apt-get install sqlite3
sudo apt-get install python-django-south
sudo pip install django-forkit
sudo pip install django-crispy-forms
sudo pip install rply

To test that OpenBabel installed correctly:

>>> import openbabel

Now, try to run the Django server. This code will run the server locally, at port 4000.

cd /vagrant
cd orgo_django/
python runserver

If everything goes well, you will be able to access your copy running on the local server. Open localhost:4000 in your browser.

Project Layout

This Django project is divided into three folders: /api, /app, and /orgo.


This contains the chemistry engine of Carbonate, which other parts of the website can access through its API. It knows about reagents, reactions, and molecules. It can convert molecules to and from the SMILES representation, and export them as SVG images.


This contains standalone user interfaces -- for example, the Reaction Tutor, simple single-step problems, and predict-the-products problems -- that could easily be embedded as iframes in other pages.


This contains the code of the site, mostly unmodified except for those parts that were refactored into the API.