Skip to main content

Deterministic prime editing design core with optional CUDA backends

Project description

primeforge

Prime editing design SDK: modern C++ core + thin Python API, with deterministic pegRNA / nicking-guide enumeration for PE2/PE3 and batch-friendly data models. v0.1 is CPU-first and pure logic; CUDA backends are available for high-throughput PAM scanning and will later host thermodynamics/ML scoring.

Status

  • Core C++ library with explicit edit model (subs/ins/del), strand-aware design, PBS/RTT heuristics, and optional PE3 companion guides.
  • Python bindings and dataclasses mirror the C++ API.
  • CUDA PAM scanner available (opt-in); benchmarks included. Scoring/thermo GPU kernels come next.

Build (C++)

cmake -S . -B build -DPRIMEFORGE_ENABLE_CUDA=OFF
cmake --build build
ctest --test-dir build  # runs C++ (and Python if bindings + pytest present)

Python (dev)

pip install -r python/requirements-dev.txt
# build/install once bindings are implemented
# from repo root:
# cmake -S . -B build -DPRIMEFORGE_BUILD_PYTHON=ON -DPRIMEFORGE_ENABLE_CUDA=OFF
# cmake --build build
# pytest python/tests  (PYTHONPATH=build:$PYTHONPATH)

Benchmarks (optional)

PAM scan throughput (CPU by default, set DEVICE=cuda when built with CUDA):

cmake -S . -B build -DPRIMEFORGE_BUILD_BENCHMARKS=ON -DPRIMEFORGE_ENABLE_CUDA=OFF
cmake --build build --target bench_pam
./build/primeforge-core/benchmarks/bench_pam 5000000 NGG 3  # args: length motif iterations (first is warm-up)
# With CUDA (example for GTX 1060, compute 6.1):
# CUDACXX=/usr/bin/nvcc cmake -S . -B build -DPRIMEFORGE_ENABLE_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=61 -DPRIMEFORGE_BUILD_BENCHMARKS=ON
# cmake --build build
# DEVICE=cuda ./build/primeforge-core/benchmarks/bench_pam 5000000 NGG 3
# Recent run (GTX 1060, NGG, 5 Mb): CPU ~12 Mb/s, CUDA ~19 Mb/s (post warm-up)

To gate benchmarks in CI: add -DPRIMEFORGE_RUN_BENCH=ON (requires CUDA build) and ctest will run a short CUDA PAM check.

Features (v0.1)

  • Typed edit specs (substitution/insertion/deletion) with strand awareness.
  • pegRNA assembly: spacer, PAM cut logic, PBS/RTT enumeration, GC heuristics, distance flags.
  • Optional PE3 companion nicking guide selection with configurable PAM motifs.
  • Batch APIs for large edit sets; zero I/O in the core.
  • CUDA hook points for PAM scanning (present) and future scoring/thermo kernels.

Roadmap

  • GPU-optimized thermodynamics + secondary-structure heuristics.
  • Plug-in scoring interface (EasyPrime/OPED/etc.).
  • Library-scale workflows and genome-provider abstractions.

Design goals

  • Explicit edit model (subs/ins/del) instead of magic strings.
  • pegRNA anatomy first-class: spacer, PBS, RTT, nicking guides.
  • Deterministic rule-based design; ML hooks added without entangling the core.
  • Library-scale batch APIs; zero I/O in the C++ core.

CUDA roadmap (high level)

  • GPU PAM scanning for genome-scale sweeps.
  • Batched thermo/secondary-structure heuristics and ML scoring.
  • Variant-aware masking for personalized genomes.

See docs/design_rules.md for the rule set and docs/api.md for the API sketch.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

primeedit-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file primeedit-0.1.0.tar.gz.

File metadata

  • Download URL: primeedit-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for primeedit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 15cf18f1879db0226d3852429b85143844729e555bc91af12b1b388d91da9094
MD5 cd975fd2b5a7e4420041a7499ab6ece0
BLAKE2b-256 87746c1a4a58321713ca79027de2c9951eaa08152ab5030afe511349409ab1bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for primeedit-0.1.0.tar.gz:

Publisher: release.yml on omniscoder/primeforge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page