Setup
Three things must be on hand: the crisprware Python env, the GPU-built off-target engine, and the
UCSC binaries (bedToBigBed, bgzip).
Environment variables
Define these once; every later command reuses them.
export PROJ=/path/to/cas12a-track # working directory for this build
export REPO=/path/to/crisprware # cloned crisprware repo
export ENV=/path/to/conda_envs/crisprware # env with crisprware + its deps
export BIN=$REPO/crispr-ots/target-gpu/release/crispr-ots # GPU off-target engine
export PYTHONPATH=$REPO
export PATH=/path/to/conda_envs/ucsc/bin:$(dirname "$BIN"):$PATH # bedToBigBed, bgzip, crispr-ots
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:-} # nvrtc/libcuda for the GPU scanner
Important
The GPU path needs the engine built with the gpu feature (target-gpu/release/crispr-ots, a cudarc
build). A plain CPU build errors with “requires a binary built with –features gpu” the moment you pass
--ucscgb_scanner gpu. The LD_LIBRARY_PATH line is mandatory: the scanner JITs its CFD kernel via
nvrtc at runtime.
The CLI
crisprware exposes the pipeline subcommands used below:
crisprware index_genome ... # build the off-target index
crisprware generate_guides ... # enumerate protospacers
crisprware score_guides ... # score + (with --ucscgb) assemble the track
crisprware <cmd> is equivalent to python -m crisprware.cli <cmd>; the latter is handy when running
straight from a repo checkout without installing.
Input genome
Start from a FASTA of just the sequences you want in the track. For the GRCh38 worked example we keep the
24 canonical chromosomes and drop chrM and all unplaced/unlocalized GL*/KI* scaffolds, then
build a chrom.sizes for bedToBigBed:
cd $PROJ
samtools faidx /path/to/GRCh38.primary_assembly.genome.fa \
chr1 chr2 chr3 chr4 chr5 chr6 chr7 chr8 chr9 chr10 chr11 chr12 \
chr13 chr14 chr15 chr16 chr17 chr18 chr19 chr20 chr21 chr22 chrX chrY > hg38_primary_chr.fna
samtools faidx hg38_primary_chr.fna
cut -f1,2 hg38_primary_chr.fna.fai > hg38.chrom.sizes
chroms kept: 24 total bp: 3,088,269,832