Rapid Whole-Genome Identification of High Quality CRISPR Guide RNAs with the Crackling Method
The design of CRISPR-Cas9 guide RNAs is not trivial. In particular, it is crucial to evaluate the risk of unintended, off-target modifications, but this is computationally expensive. To avoid a brute-force approach where each guide RNA is compared against every possible CRISPR target site in the genome, we previously introduced Crackling, a guide RNA design tool that relies on exact matches over 4bp subsequences to approximate a neighbourhood and accelerate off-target scoring by greatly reducing the search space. While this was faster than other existing tools, it still generates large neighbourhoods. Here, we aim to further reduce the search space by requiring more, now non-contiguous, exact matches. The new implementation, called Crackling++, is benchmarked against our initial approach and other off-target evaluation tools. We show that it provides the fastest way to assess candidate guide RNAs. By using memorymapped files, it also scales to the largest genomes. Crackling++ is available at https://github.com/bmds-lab/CracklingPlusPlus under the Berkeley Software Distribution (BSD) 3-Clause license.
Note: Please ensure that your version of Boost that you have installed is supported by your version of CMake.
- Clone or download the repo.
git clone https://github.com/bmds-lab/CracklingPlusPlus.git ~/CracklingPlusPlus
cd ~/CracklingPlusPlus
- Create build directory
mkdir build
cd build
- Run CMake to generate build files
CMake ..
- Run build system command. E.g.
make
make
All of the programs (CracklingPlusPlus, ISSLCreateIndex and ExtractOfftargets) have now been built.
The Bowtie2 manual can be found here.
Our recommended usage:
bowtie2-build --threads 128 input-file output-file
For example:
bowtie2-build --threads 128 ~/genomes/mouse.fa ~/genomes/mouse.fa.bowtie2
Note: Bowtie2 produces multiple files for its index. When setting the Bowtie2 index variable in the config.ini
file please use the value you used for output-file
. So for the example above, you would set bowtie2-index = ~/genomes/mouse.fa.bowtie2
Note: You will need to ensure you have completed the installation step before completing this step as the installation will also install the program needed to extract off-targets.
The ExtractOfftargets binary can be found in build folder. Based on the install instructions that will be:
~/CracklingPlusPlus/build/ExtractOfftargets/ExtractOfftargets
Usage:
ExtractOfftargets <output-file> {<input-file-1> <input-file-2> ... <input-file-n> | <input-dir>}
Arguements:
output-file: A filepath to save the off-target sites
input-file-x: A single, or a space serpated list, of multi-FASTA formatted files
input-dir: A directory, containing multiple multi-FASTA formatted files. (Note: This will process EVERY file in the directory)
For example:
ExtractOfftargets ~/genomes/mouse_offtargets.txt ~/genomes/mouse.fa
or
ExtractOfftargets ~/genomes/mouse_offtargets.txt ~/genomes/mouse_chromosone_1.fa ~/genomes/mouse_chromosone_2.fa ~/genomes/mouse_chromosone_3.fa
or
ExtractOfftargets ~/genomes/mouse_offtargets.txt ~/genomes/mouse_fasta_files/
Note: You will need to ensure you have completed the installation step before completing this step as the installation will also install the program needed to build the ISSL Index.
The ISSLCreateIndex binary can be found in build folder. Based on the install instructions that will be:
~/CracklingPlusPlus/build/ISSLCreateIndex/ISSLCreateIndex
Usage:
ISSLCreateIndex <offtarget-sites> <slice-config> <sequence-length> <output-file>
Arguements:
offtarget-sites: A text file containing off-target sites
slice-config: A text file containing a set of slice configurations (See samples folder in repository)
sequence-length: The length of an off-target site
output-file: A filepath to save the ISSL index
For example:
ISSLCreateIndex ~/genomes/mouse_offtargets.txt ~/CracklingPlusPlus/sample/slice4-5.txt 20 ~/genomes/mouse_indexed.issl
Please ensure all of the above steps have been completed before running the program.
To run the program simply fill out the provided config.ini
in the samples folder and call the program as follows:
CracklingPlusPlus <config-file>
Ben Langmead and Steven L Salzberg. Fast gapped-read alignment with Bowtie2. Nature Methods, 9(4):357, 2012.
Bradford, J., Chappel, T., & Perrin, D. (2022). Rapid Whole-Genome Identification of High Quality CRISPR Guide RNAs with the Crackling Method. The CRISPR Journal, 5(3), 410-421.
Bradford, J., & Perrin, D. (2019). A benchmark of computational CRISPR-Cas9 guide design methods. PLoS computational biology, 15(8), e1007274.
Bradford, J., & Perrin, D. (2019). Improving CRISPR guide design with consensus approaches. BMC genomics, 20(9), 931.
Chari, R., Yeo, N. C., Chavez, A., & Church, G. M. (2017). sgRNA Scorer 2.0: a species-independent model to predict CRISPR/Cas9 activity. ACS synthetic biology, 6(5), 902-904.
Lorenz, R., Bernhart, S. H., Zu Siederdissen, C. H., Tafer, H., Flamm, C., Stadler, P. F., & Hofacker, I. L. (2011). ViennaRNA Package 2.0. Algorithms for molecular biology, 6(1), 1-14.
Montague, T. G., Cruz, J. M., Gagnon, J. A., Church, G. M., & Valen, E. (2014). CHOPCHOP: a CRISPR/Cas9 and TALEN web tool for genome editing. Nucleic acids research, 42(W1), W401-W407.
Sunagawa, G. A., Sumiyama, K., Ukai-Tadenuma, M., Perrin, D., Fujishima, H., Ukai, H., ... & Shimizu, Y. (2016). Mammalian reverse genetics without crossing reveals Nr3a as a short-sleeper gene. Cell reports, 14(3), 662-677.