This protocol suite serves as a comprehensive automation framework for sgRNA design. The Python script build_sgrna_library.py
is available for integration into complex pipelines by users with advanced proficiency.
This repository extends the work by John S. Hawkins and is accessible at John S. Hawkins Repository. Commands from the NCBI Entrez Direct Utilities are provided as helper steps.
Clone the sgrna_design
GitHub repository and navigate to the directory.
This operation is performed once.
git clone https://github.com/ryandward/sgrna_design.git
cd sgrna_design
Prepare a conda environment utilizing the sgrna_design.yml
file.
This operation is performed once.
conda env create -f sgrna_design.yml
Prior to running any scripts, activate the conda environment to load dependencies.
Required for each new session.
conda activate sgrna_design
Consult the NCBI Nucleotide Database to identify the accession number associated with the target chromosome. Update the ACC_NO
environment variable accordingly. The example uses E. coli MG1655 chromosome "U00096.3".
ACC_NO="U00096.3"
efetch -db nuccore -format gb -style withparts -id $ACC_NO > ${ACC_NO}.gb && \
{ file ${ACC_NO}.gb | grep -iq ascii && echo "File contains data, continue." || echo "Empty file, retry this step."; }
Execute the main Python script, generating a tab-separated variable file that is named based on the accession number, appended by "_sgrna".
./build_sgrna_library.py --input_genbank_genome_name ${ACC_NO}.gb --tsv_output_file ${ACC_NO}_sgrna.tsv
Author: John S. Hawkins [really@gmail.com]
For bacteria, we suggest using guides that:
- have a small, positive offset
- are on the antisense strand ('anti' in the 'transdir' column)
- have a SPECIFICITY score of 39
If a guide meeting these criteria is not available, lower specificity can be used, but you should check for near-matches elsewhere in the genome to see if they are likely to cause issues. Guides on the 'sense' strand are not recommended. They generally have a greatly reduced, and hard to predict, level of effect. If reduced effect is desired, we suggest the use of mismatch_crispri to achieve more reliable outcomes.