Skip to content

About

Claude Code Agent Skill for running CRISPRme+ variant- and haplotype-aware CRISPR off-target searches from plain-language requests

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

12 Commits

Folders and files

Repository files navigation

CRISPRme skill

A Claude Code Agent Skill that runs CRISPRme+ from plain-language requests: install it from scratch, run variant- and haplotype-aware off-target searches, and turn the results into a readable risk summary.

Written for and tested against CRISPRme+ v2.7.9.

The skill is a document plus a handful of scripts. It does not wrap or reimplement CRISPRme: every command it runs is a real crisprme.py subcommand, and CRISPRme's own outputs (including the shareable report.html) are the deliverables. What the skill adds is the operational knowledge around those commands — which questions to ask before a search, what the current defaults are, how to run hour-long jobs without blocking, and which failure modes look like success.


What it does

Ask What happens
"Set up CRISPRme for me" Scans for existing installs first, then registers the official v2.7.9 container (Apptainer, Docker, or an existing source install) and downloads the reference data and a variant index as background jobs
"Check this guide for off-targets" Asks only about the choices that matter, states its assumptions for the rest, estimates the cost of deep searches, and runs complete-search as a background job
"What did it find?" Points at CRISPRme's own report and prints a plain-language summary: counts, on-target ambiguity, variant-driven sites, co-occurring variants, and the recommended validation panel
"Who carries these off-targets?" Switches to --per-sample analysis; generate-personal-card for one named individual
"Does my install work?" complete-test smoke test, or validate-test to cross-check against an exhaustive brute-force search
"Can it do SaCas9 / pig / my own cohort VCF?" Builds the needed index via build-index-only or the published enriched-genome kit, with the time and disk cost stated up front
"Search this person's assembled genome" assembly-search on both haplotypes, reconciled against hg38

A worked walkthrough of these paths, with real command output, is in docs/ (see Documentation below).


Requirements

  • Claude Code (any recent version).
  • A container runtime: Docker on a laptop or workstation, or Apptainer/Singularity on an HPC or shared server (no root needed). A conda environment with CRISPRme+ installed from source also works.
  • Disk: ~4.2 GB for the container image, ~26 GB for the hg38 reference data, and ~70–90 GB per variant index. Budget ~130 GB for a standard variant-aware setup.
  • Memory: a genome-wide variant-aware search needs at least 64 GB of RAM (it peaks around 68–75 GB). Reference-only or single-chromosome searches fit in ~16 GB.

Bioconda's crisprme package is still the old 2.1.x line and is not suitable — the skill expects CRISPRme+ 2.6 or later.

Install

git clone https://github.com/pinellolab/crisprme-skill.git

# make it available to Claude Code, either for one project...
mkdir -p <your-project>/.claude/skills
cp -r crisprme-skill <your-project>/.claude/skills/crisprme

# ...or for every project
cp -r crisprme-skill ~/.claude/skills/crisprme

Then, from the directory where CRISPRme's data and results should live, ask Claude to set CRISPRme up — or run the installer yourself:

cd /path/to/your/crisprme-data-dir
~/.claude/skills/crisprme/scripts/install_crisprme.sh      # pulls the v2.7.9 image

That writes a .crisprme_runtime file recording how to run CRISPRme in this directory. Every later command goes through scripts/crisprme_cmd.sh, so the rest of the skill works the same whether CRISPRme runs under Apptainer, Docker, or a source install.

Layout

SKILL.md                            the skill itself: what Claude reads and follows
scripts/
  crisprme_cmd.sh                   runs any crisprme.py command through the configured runtime
  run_crisprme_job.sh               launches a subcommand as a tracked background job
  check_run_status.sh               reports a job's status, liveness, and recent log
  install_crisprme.sh               registers a runtime (container image or conda env)
  find_existing_crisprme_installs.sh  read-only scan for installs already on the machine
  analyze_results.py                turns a finished run into a plain-language risk summary
examples/flagship-search/           real output from a genome-wide variant-aware run

SKILL.md is the substance. The scripts exist so that Claude never has to improvise a docker run or apptainer run invocation, and so long jobs can be launched and checked without blocking the conversation.


Tested against v2.7.9

Every route below was executed end-to-end through this skill's own scripts on a shared Linux server (88 cores, 1 TB RAM), using the published pinellolab/crisprme:v2.7.9 image under Apptainer, on 2026-10-13. "Executed" means the commands and scripts were run and checked; the parameters were chosen by hand rather than by a Claude session, except for the search in examples/flagship-search/, which a session drove from a one-line request.

Route Result Wall time
Runtime registration from an existing image (install_crisprme.sh --sif) pass seconds
Container image pull (apptainer pull, run directly — not via the installer) pass 5 min, 4.9 GB → 4.2 GB .sif
download --what index (NRG_3_hg38+hg38_HGDP1kGP, the new default) pass 18 min, ~87 GB
download --what genome --source ucsc (pig, susScr11) pass 9 min, 3.0 GB
download --what pams pass seconds
scorer-env check (CRISPR-Bulge ML scorer) pass, compute self-test OK seconds
complete-test smoke test, genome-wide, variant index pass 14 min
complete-search, genome-wide variant-aware, population-level pass 59 min
complete-search, same guide with --per-sample pass 61 min
generate-personal-card for one individual pass 18 s
complete-test (benchmark mode) + validate-test 2 benchmarks passed, 0 failed 21 min + 6 s
build-index-only on a non-human genome (pig), then search pass 12 min + 21 min
SaCas9 index from the published kit, then variant-aware search pass 8 min + 33 min
analyze_results.py on every run above pass 3 s, 16 MB RAM on genome-wide output

Known limits

  • assembly-search has not been run on v2.7.9. It is documented from the source and checked against the output of an earlier real run (v2.6.2, HPRC HG01255), so expect rough edges.
  • download --what all and --what assembly are untested. The --what index, --what genome and --what pams modes were exercised.
  • GPU scoring is unavailable through the wrapper, which does not pass a GPU into the container, so scoring runs on CPU.
  • Non-SpCas9 nucleases get no CFD or CRISPR-Bulge score — both models are SpCas9-trained — so those runs are ranked by edit distance alone. A missing score is not a low score.

Example

examples/flagship-search/ holds real, unedited output from a genome-wide variant-aware search — produced by a fresh Claude Code session given a single one-line request, not by a hand-assembled command. Searching 4,091 people's genomes at the version's recommended depth, it found 205,415 off-target sites, of which 97,879 (48%) do not exist in the reference genome and are only visible because the search covers population variation, plus a lone perfect match in BCL11A — which CRISPRme treats as the presumed on-target, since it cannot know the intended site — and a 101-site recommended validation panel.

The directory ships CRISPRme's own run manifest and parameters, that validation panel, the per-guide summary table, and the skill's plain-language summary. Its README has the full provenance, the exact command, and what each number means.

Documentation

  • SKILL.md — the operational document Claude follows. It is also the most complete written account of how to run CRISPRme+ v2.7.9 on a shared server.
  • Upstream: pinellolab/crisprme-plus. The skill defers to CRISPRme's own documentation for the science and the file formats; it does not duplicate them.

Keeping up with upstream

This skill targets v2.7.9. If scripts/crisprme_cmd.sh --version reports something else, flags and defaults may have moved — confirm with <subcommand> --help and upstream's CHANGELOG.md before relying on this document.

Citing CRISPRme

This skill is a thin operational layer. The tool, the methods, and the data are CRISPRme's — cite the CRISPRme paper and CRISPRme+ as directed by upstream.

CRISPRme+ itself is licensed under the MGB Open Access License 1.0: free for non-commercial academic use, with commercial use requiring a separate licence.

About

Claude Code Agent Skill for running CRISPRme+ variant- and haplotype-aware CRISPR off-target searches from plain-language requests

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages