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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15cf18f1879db0226d3852429b85143844729e555bc91af12b1b388d91da9094
|
|
| MD5 |
cd975fd2b5a7e4420041a7499ab6ece0
|
|
| BLAKE2b-256 |
87746c1a4a58321713ca79027de2c9951eaa08152ab5030afe511349409ab1bf
|
Provenance
The following attestation bundles were made for primeedit-0.1.0.tar.gz:
Publisher:
release.yml on omniscoder/primeforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
primeedit-0.1.0.tar.gz -
Subject digest:
15cf18f1879db0226d3852429b85143844729e555bc91af12b1b388d91da9094 - Sigstore transparency entry: 731817207
- Sigstore integration time:
-
Permalink:
omniscoder/primeforge@e900d9fa718ce9276187ea66de7cfec73523489e -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/omniscoder
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e900d9fa718ce9276187ea66de7cfec73523489e -
Trigger Event:
push
-
Statement type: