Quick Start

Certify a single editor

from pen_compare.core.certify import certify

result = certify(
    editor_id="ISCro4",
    s_dsb=1.0,
    s_prog=1.0,
    s_cargo=0.95,
    length_aa=326,
    evidence_sources=["biochemical", "structural", "computational", "cell_based"],
    intrinsic_cargo_mechanism=True,
)
print(result.tier)              # TRUE_WRITER
print(result.qualifying_gates_passed)  # 4

CLI usage

pen-compare --version
pen-compare compare ISCro4 IS621
pen-compare list-writers

Run sensitivity analysis

from pen_compare.core.sensitivity import run_sensitivity_parallel
import pandas as pd

universe = pd.read_parquet("data/unified_editor_universe.parquet")
scorecard = pd.read_parquet("results/truewriter_scorecard_v3.2.parquet")
sensitivity_df = run_sensitivity_parallel(universe, scorecard, n_jobs=24)
print(sensitivity_df[sensitivity_df["entity_id"] == "ISCro4"][["robustness"]])

Triangulation

from pen_compare.triangulation import Triangulator

tri = Triangulator()
universe = pd.read_parquet("data/unified_editor_universe.parquet")
discrepancies = tri.run_full(universe)
print(discrepancies.groupby("category").size())