CRISPulator: a discrete simulation tool for designing pooled genetic screens

CRISPulator was developed by Tamas Nagy and Martin Kampmann, UCSF.
The software was written by Tamas Nagy.

Please cite the following reference for CRISPulator:

Nagy T, Kampmann M (2017). CRISPulator: a discrete simulation tool for pooled genetic screens. BMC Bioinformatics. 18(1):347. PMID: 28732459

Article freely available here.

Visit the CRISPulator Github site:

You can find documentation here:

Or follow the instructions below to install and run CRISPulator:


To run the simulation, you will need a recent version of Julia installed and in your PATH. Start Julia and enter the following command in the Julia command line interface (REPL):

Pkg.update(); Pkg.clone("");"Crispulator")

this downloads Crispulator and installs all of its dependencies. We also recommend that you run:


which loads and runs all of the project's internal tests and makes sure that everything is ready.

Usage via Julia REPL/Jupyter Notebooks

Once installed, run the following commands into the Julia command line:

include(joinpath(Pkg.dir("Crispulator"), "src", "run.jl"))

this loads the runscript into the REPL. Then run

cp(joinpath(Pkg.dir("Crispulator"), "example_config.yml"), joinpath(pwd(), "custom_config.yml"))

this copies the YAML configuration file over into your current working directory. Edit this file to change the parameters of the simulation. Any standard text editor should be able to open it (e.g. Vim, Atom, SublimeText, TextEdit, Notepad, etc). If you are using a Jupyter Notebook then it should appear under the Files tab, clicking on it will let you edit it.

Once you've made your changes, run:

bootstrap_config(joinpath(pwd(), "custom_config.yml"), "test_output/", false)

which runs the simulation according to the parameters in custom_config.yml and saves the output in the test_outputdirectory.

Usage via terminal

While REPL usage is convenient, it can be beneficial to interact with Crispulator via the terminal. First, make sure that julia is in your PATH (i.e. check that julia -e "versioninfo()" runs properly and shows 0.5+ as the version number). Then from the Crispulator package root directory, run:

julia src/run.jl config example_config.yml test_output

where config tells CRISPulator to use the provided config example_config.yml and test_output is the directory where the results will be saved. This directory will be created if it doesn't exist.