A tool for designing highly specific CRISPR-Cas12a crRNAs targeting user-defined bacterial genera.
CrispHunter is a comprehensive bioinformatics pipeline that integrates pan-genome analysis with CRISPR-Cas12a targeting to identify highly specific guide RNAs for bacterial detection and targeting. The tool identifies conserved regions across a genus of interest and designs crRNAs that provide maximum coverage with minimal off-target effects.
- Automated genome retrieval from NCBI GenBank database
- Pan-genome analysis to identify core genes across all genomes of a genus
- Intelligent crRNA design that ensures 100% coverage across target genomes
# Clone the repository
git clone https://github.com/2021JohnSheng/CrispHunter.git
cd CrispHunter
# Create and activate the Conda environment
conda env create -f environment.yml
conda activate CrispHunterThis document provides detailed instructions for using the CrispHunter tool.
The tool works in several distinct stages:
-
Genome retrieval and processing
- Download genomes from NCBI GenBank (optional)
- Extract and decompress genome files
-
Genome annotation
- Annotate genomes using Prokka
- Extract GFF files for pan-genome analysis
-
Pan-genome analysis
- Identify core genes across all genomes using Panaroo
- Extract core gene sequences
-
crRNA design
- Design candidate crRNAs using CaSilico
- Extract designed crRNAs from web interface results
-
Target coverage analysis
- Evaluate crRNA coverage across all target genomes
- Select crRNAs with 100% coverage
-
Off-target evaluation
- Build database of potential off-target genomes
- Analyze potential off-target binding sites using FlashFry
- Filter crRNAs based on off-target analysis
-
Output generation
- Combine target coverage and off-target information
- Generate final list of optimal crRNAs
-
-g, --genus: The target bacterial genus (and species) to design crRNAs for. Example: "Burkholderia pseudomallei" -
-offg, --offgenomes: Path to the FASTA file containing genomes to check for off-target effects. This should include genomes of organisms that you want to ensure your crRNAs do NOT bind to (e.g., human genome, closely related bacterial species). -
-firedriver, --firefox_driver_path: Path to the GeckoDriver executable. This is required for web scraping the CaSilico results. Download from: https://github.com/mozilla/geckodriver/releases -
-ffry, --flashfry_path: Path to the FlashFry JAR file. Download from: https://github.com/mckennalab/FlashFry/releases
-
-i, --input_path: If you already have downloaded genome files, provide the path to the directory containing them. This will skip the download step. -
-gff, --gff_file: If you have already annotated your genomes with Prokka, provide the path to the directory containing the GFF files. -
-coregene, --core_gene_folder: If you have already performed pan-genome analysis and identified core genes, provide the path to the directory containing those results. -
-m, --memory: Memory allocation for FlashFry. Format: "30g" for 30 gigabytes. Increase for larger genomes. -
-maxOff, --maximumOffTargets: Maximum number of off-target sites to consider during FlashFry analysis. Default is 12000. -
-PAM, --PAM_sequence: The PAM sequence to use for crRNA design. Default is "TTTN" for Cas12a. -
-t, --threads: Number of CPU threads to use for parallel processing steps. Default is 8.
The final output file "off_target_and_target_coverage.tsv" contains the following columns:
- gRNA ID: Unique identifier for the guide RNA
- gRNA Sequence: The sequence of the guide RNA
- Number of Targeted Genomes: How many of the input genomes this gRNA can target
- Total Genomes Analyzed: Total number of genomes that were analyzed
- Targeting Coverage (%): Percentage of analyzed genomes that can be targeted
- Potential Off-target Sites: Number of potential off-target binding sites
The best crRNAs will have:
- 100% Targeting Coverage
- 0 Potential Off-target Sites
The default GC content filter is set to 40-65%. If you need to modify this range, you can edit the R code in the summarize_crawler_results function.
To target different Cas enzymes, you can modify the PAM sequence using the -PAM parameter. Default is "TTTN" for Cas12a.
- Memory Errors in FlashFry: Increase the
-mparameter value - WebDriver Issues: Ensure GeckoDriver version is compatible with your Firefox version
- Pan-genome Analysis Failures: Reduce thread count to 16 using the
-tparameter