Metadata-Version: 2.4
Name: pen-compare
Version: 0.1.0
Summary: Hierarchical Certification Framework for Non-Destructive Genome Editors
Author-email: Anees Ahmed Mahaboob Ali <ahmedaneesm@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/ahmedanees-m/pen-compare
Project-URL: Documentation, https://ahmedanees-m.github.io/pen-compare
Project-URL: Repository, https://github.com/ahmedanees-m/pen-compare
Project-URL: Issues, https://github.com/ahmedanees-m/pen-compare/issues
Keywords: genome-engineering,bridge-recombinase,IS110,writer-not-scissors,PEN-STACK
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: genome-atlas<0.8.0,>=0.7.2
Requires-Dist: mech-class<0.6.0,>=0.5.4
Requires-Dist: pen-score<0.2.0,>=0.1.3
Requires-Dist: pen-assemble<0.6.0,>=0.5.2
Requires-Dist: numpy>=1.24
Requires-Dist: pandas>=2.0
Requires-Dist: scipy>=1.10
Requires-Dist: scikit-learn>=1.3
Requires-Dist: pyyaml>=6.0
Requires-Dist: pyarrow>=14.0
Requires-Dist: click>=8.0
Requires-Dist: tqdm>=4.66
Requires-Dist: joblib>=1.3
Requires-Dist: pydantic>=2.5
Provides-Extra: webserver
Requires-Dist: streamlit>=1.32; extra == "webserver"
Requires-Dist: plotly>=5.18; extra == "webserver"
Requires-Dist: matplotlib>=3.8; extra == "webserver"
Provides-Extra: rag
Requires-Dist: ollama>=0.1.7; extra == "rag"
Requires-Dist: sentence-transformers>=2.5; extra == "rag"
Requires-Dist: chromadb>=0.4.20; extra == "rag"
Requires-Dist: requests>=2.31; extra == "rag"
Provides-Extra: literature
Requires-Dist: biopython>=1.83; extra == "literature"
Provides-Extra: dev
Requires-Dist: pytest>=7.4; extra == "dev"
Requires-Dist: pytest-cov>=4.1; extra == "dev"
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
Requires-Dist: ruff>=0.4; extra == "dev"
Requires-Dist: mypy>=1.8; extra == "dev"
Requires-Dist: pre-commit>=3.5; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.2; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
Requires-Dist: myst-parser>=2.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Provides-Extra: all-papers
Requires-Dist: pen-compare[literature,rag,webserver]; extra == "all-papers"
Provides-Extra: everything
Requires-Dist: pen-compare[dev,docs,literature,rag,webserver]; extra == "everything"
Dynamic: license-file

# PEN-COMPARE

[![CI](https://github.com/ahmedanees-m/pen-compare/workflows/CI/badge.svg)](https://github.com/ahmedanees-m/pen-compare/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

**Hierarchical Certification Framework for Non-Destructive Genome Editors**

Part of [PEN-STACK](https://github.com/ahmedanees-m/genome-atlas) — the first unified computational infrastructure for programmable genome integration design.

**Status:** Alpha (v0.1.0a1) — under active development.

---

## What is PEN-COMPARE?

PEN-COMPARE is the capstone integrative paper of PEN-STACK. It answers:

> *Given the four PEN-STACK datasets, how do we operationally certify an editor as a "Molecular Pen" rather than a "Molecular Scissor"?*

The deliverable is a **framework** (5-gate hierarchical TrueWriterScore certification), an **analysis** (cross-source triangulation across all 4 PEN-STACK packages), a **public tool** (Streamlit webserver + local LLM RAG Q&A), and a **paper** (*Bioinformatics* Application Note).

## Quick start

```bash
pip install pen-compare
pen-compare compare ISCro4 IS621
```

## 5-Gate Framework

| Gate | Type | Axis | Threshold |
|---|---|---|---|
| G1 — DSB Avoidance | **Necessary** | S_DSB | ≥ 0.95 |
| G2 — Programmability | Qualifying | S_Prog | ≥ 0.95 |
| G3 — Native Cargo | Qualifying | S_Cargo + intrinsic | ≥ 0.90 |
| G4 — Deliverability | Qualifying | length_aa | ≤ 900 aa |
| G5 — Evidence | Qualifying | multi-source | ≥ 2 sources |

| Tier | Requirement |
|---|---|
| **TRUE_WRITER** | G1 + all 4 qualifying + cell-based evidence |
| **PROBABLE_WRITER** | G1 + 3–4 qualifying (no cell-based OR 3/4 with cell-based) |
| **EMERGING_WRITER** | G1 + 1–2 qualifying |
| **NOT_WRITER** | G1 fails OR 0 qualifying |

## Upstream packages (pinned versions)

| Package | Version | Role |
|---|---|---|
| genome-atlas | ≥ 0.7.2 | Knowledge graph, PFAM evidence, triangulation |
| mech-class | ≥ 0.5.4 | DSB classification, Tier-A gate decisions |
| pen-score | ≥ 0.1.3 | 8-axis PenScores, `get_editor_metadata()` API |
| pen-assemble | ≥ 0.5.2 | 1,029-design catalog with cargo/cell-based fields |

## Documentation

https://ahmedanees-m.github.io/pen-compare

## Citation

```bibtex
@software{pen_compare_2026,
  author = {Mahaboob Ali, Anees Ahmed},
  title  = {PEN-COMPARE: Hierarchical Certification Framework for Non-Destructive Genome Editors},
  year   = {2026},
  url    = {https://github.com/ahmedanees-m/pen-compare},
}
```

## License

MIT — see [LICENSE](LICENSE).
