Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.


Web app for CRISPR experiment setup and analysis. Fill in a 96-well plate and analyze it as a whole.

See it live at


This app was developed by Greg Dingle starting in July 2018 for the genome engineering group in the CZ Biohub. The intention was to streamline the CRISPR experimentation process of researchers in the Biohub and provide a permanent record of experiments and results.


CrispyCrunch calls out to several bioinformatics web services.

Currently, CrispyCrunch calls out to mirrors for Crispor and Crispresso:

NOTE: The Crispor mirror is modified to support HDR primer design. See this PR.

NOTE: The Crispresso mirror is running in a Docker container on the same machine as Crispor. Docker service is modified on the machine to store all its data in /mnt/data/docker. The code of was modified from the public image to fix a bug in HDR stats. The number of Celery workers was increased from the default of 1 to 3 for better parallelism.

Tech stack

CrispyCrunch is built with the following technologies and frameworks.

  • Postgres
  • Python3.6+
  • Django
  • Bootstrap


Clone the repo. You must have czbiohub github access.

git clone

Install python dependencies

pip install -r requirements.txt

Start postgres. The exact command will depend on how you installed it.

brew services start postgresql

Configure DATABASES in if needed.

Initialize the database.

python migrate

Create a superuser for admin.

python createsuperuser

NOTE: a superuser is automatically created by eb deploy.


Go to http://localhost:8000/. Create a new experiment and follow the subsequent steps.


Currently, CrispyCrunch uses Amazon's Elasticbeanstalk for deployment and hosting. EB manages a web server (EC2) and a database (RDS) in one deployment environment (prod). Open the EB control panel at

Install EB CLI.

pip install awsebcli

Commit any changes you wish to deploy.

git commit -a -m'fancy stuff'

Deploy to Amazon Elasticbeanstalk.

eb deploy

Wait for deployment to finish, then view the live site at

For more info, see and .

To download fastq files stored in s3, you must configure


See and


To inspect the state of the app, use the built-in Django admin interface at http://localhost:8000/admin/main/ or

A default admin user is created on first installation. Change the password of that first superuser on first deployment.

You can give any other user admin or superuser status here: .

To inspect the source of fastq files, open

To read the error logs in prod:

eb ssh
tail /opt/python/log/django.log

To login to prod postgres:

eb ssh

Hint: Look in /opt/python/current/env for secrets.

To create pre-authenticaed URLs for sharing using

# local
eb ssh
# remote
cd /opt/python/current/
source env
source /opt/python/run/venv/bin/activate
cd app && python shell
# python shell
>>> from django.contrib.auth.models import User
>>> user = User.objects.get(username='demo')
>>> from sesame import utils
>>> utils.get_query_string(user)


There should be at least one downtime alert setup here:

And you should receive emails of Django errors if you are the owner of ADMIN_EMAIL. They are throttled with .

You can see a table of error counts at


Web app for CRISPR experiment setup and analysis





No releases published


No packages published