pen-stack 4.5.0__tar.gz → 4.5.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pen_stack-4.5.0 → pen_stack-4.5.1}/CHANGELOG.md +11 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/CITATION.cff +1 -1
- {pen_stack-4.5.0 → pen_stack-4.5.1}/PKG-INFO +2 -2
- {pen_stack-4.5.0 → pen_stack-4.5.1}/README.md +1 -1
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/cell_types.yaml +2 -2
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/__init__.py +1 -1
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/build.py +2 -2
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/PKG-INFO +2 -2
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pyproject.toml +1 -1
- {pen_stack-4.5.0 → pen_stack-4.5.1}/LICENSE +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/MANIFEST.in +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/bench/run.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/atlas_families.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/cargo_polish.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/datasets.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/delivery_rules.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/gates_v3.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/intent_weights.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/known_unknowns.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/llm.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/monitor_queries.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/rules/delivery.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/rules/fold.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/rules/payload.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/rules/reachability.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/score_axes.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/target_sites.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/write_types.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/BACKLOG.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/DEPLOY.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/INFRA.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/MCP.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/RELEASING.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/REPRO.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/agent.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/benchmark_circularity.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/cards/atlas.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/cards/durability.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/cards/safety.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/delivery.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/dissemination.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/environment.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/index.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/oracles.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/positioning.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/private_data_formats.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/quickstart.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/rules.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/scope.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/scorecard.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/uncertainty.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/verify.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/world_model.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/writer_verification.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/docs/wtkb.md +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/_resources.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/adapt/report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/scope.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/agent/tools.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/cli.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/encode.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/genome.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/env/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/env/policies.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/query.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/graph/schema.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/monitor/run.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/router.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rag/index.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rag/llm.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rag/qa.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rules/loader.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rules/schema.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/rules/solver.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/score/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/server/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/server/api.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/ui/app.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/verify/schema.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/verify/service.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/paper1.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/paper2.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/paper3.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/paper4.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/phase0.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_a.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_b.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_ba.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_bench.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_c.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_cal.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_ct.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_d.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_e.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_env.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_ep.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_f.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_g.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_graph.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_h.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_mc.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_mon.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_o.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_r.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_route.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_uq.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_v.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/prereg/ws_wv.yaml +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_build_durability.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_train_safety.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p1_validation_report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/ws_b_report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/scripts/ws_c_report.py +0 -0
- {pen_stack-4.5.0 → pen_stack-4.5.1}/setup.cfg +0 -0
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to PEN-STACK are documented here. This file follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/) and the program's phase structure.
|
|
5
5
|
|
|
6
|
+
## [4.5.1] - 2026-06-09 - ID-correctness patch: cell-type ontology IDs
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
Two of the three new v4.5 Tier-A cell-type ontology IDs in `configs/cell_types.yaml` were wrong (verified via
|
|
10
|
+
EBI-OLS): `EFO:0002322` resolved to the **RPMI8226 myeloma line** (not a T cell) and `EFO:0004146` to an
|
|
11
|
+
**obsolete myopathy term** (not hepatocyte). Corrected to the canonical, non-obsolete Cell Ontology terms:
|
|
12
|
+
**primary_T_cell → `CL:0000084`** (T cell), **hepatocyte → `CL:0000182`** (hepatocyte). iPSC (`EFO:0004905`),
|
|
13
|
+
K562 (`EFO:0002067`), HepG2 (`EFO:0001187`) verified correct, as was the ISPpu10 back-test record (Europe PMC
|
|
14
|
+
**PPR1218813** — "ISPpu10 is a structure-gated bridge RNA recombinase…"). No result/test change (the IDs are
|
|
15
|
+
coverage-card metadata; `cell_types.py` reads coverage, not the ontology id).
|
|
16
|
+
|
|
6
17
|
## [4.5.0] - 2026-06-09 - v4.5 release: the Living World-Model (knowledge graph + gated living loop)
|
|
7
18
|
|
|
8
19
|
v4.5 promotes the flat tables into a queryable knowledge graph that keeps itself current. Workstreams
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 4.5.
|
|
3
|
+
Version: 4.5.1
|
|
4
4
|
Summary: Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner.
|
|
5
5
|
Author-email: Anees Ahmed Mahaboob Ali <ahmedaneesm@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -89,7 +89,7 @@ and durably write new DNA, **which enzyme** can write it there, and **how** to d
|
|
|
89
89
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
90
90
|
[](LICENSE)
|
|
91
91
|
[](https://www.python.org/)
|
|
92
|
-
[](CHANGELOG.md)
|
|
93
93
|
[](tests/)
|
|
94
94
|
[](https://github.com/astral-sh/ruff)
|
|
95
95
|
[](docker/)
|
|
@@ -14,7 +14,7 @@ and durably write new DNA, **which enzyme** can write it there, and **how** to d
|
|
|
14
14
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
15
15
|
[](LICENSE)
|
|
16
16
|
[](https://www.python.org/)
|
|
17
|
-
[](CHANGELOG.md)
|
|
18
18
|
[](tests/)
|
|
19
19
|
[](https://github.com/astral-sh/ruff)
|
|
20
20
|
[](docker/)
|
|
@@ -36,13 +36,13 @@ cell_types:
|
|
|
36
36
|
note: "iPSC/ESC; broad chromatin but TRIP durability not measured here -> durability OOD-labelled, degraded."
|
|
37
37
|
primary_T_cell:
|
|
38
38
|
tier: A
|
|
39
|
-
|
|
39
|
+
ontology: "CL:0000084" # T cell (Cell Ontology); CAR-T relevant
|
|
40
40
|
coverage: partial
|
|
41
41
|
tracks: [atac, expression]
|
|
42
42
|
note: "primary T cells (CAR-T context); accessibility + expression only -> histone-dependent safety degraded."
|
|
43
43
|
hepatocyte:
|
|
44
44
|
tier: A
|
|
45
|
-
|
|
45
|
+
ontology: "CL:0000182" # hepatocyte (Cell Ontology); in-vivo liver target
|
|
46
46
|
coverage: partial
|
|
47
47
|
tracks: [atac, h3k27ac, expression]
|
|
48
48
|
note: "primary hepatocytes (in-vivo liver target); partial panel -> graceful degradation, scope-flagged."
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "4.5.
|
|
2
|
+
__version__ = "4.5.1"
|
|
@@ -75,8 +75,8 @@ def build_graph() -> Graph:
|
|
|
75
75
|
cts = _yaml("configs/cell_types.yaml")["cell_types"]
|
|
76
76
|
for ct, card in cts.items():
|
|
77
77
|
g.add_node(Node(id=f"cell_type:{ct}", type="cell_type", props={
|
|
78
|
-
"tier": card.get("tier"), "
|
|
79
|
-
"tracks": card.get("tracks", []), "note": card.get("note")}))
|
|
78
|
+
"tier": card.get("tier"), "ontology": card.get("efo") or card.get("ontology"),
|
|
79
|
+
"coverage": card.get("coverage"), "tracks": card.get("tracks", []), "note": card.get("note")}))
|
|
80
80
|
|
|
81
81
|
# ---- locus nodes (DOI-validated GSH) -------------------------------------------------------
|
|
82
82
|
gsh = _yaml("configs/gsh_validated_heldout.yaml")["gsh"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 4.5.
|
|
3
|
+
Version: 4.5.1
|
|
4
4
|
Summary: Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner.
|
|
5
5
|
Author-email: Anees Ahmed Mahaboob Ali <ahmedaneesm@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -89,7 +89,7 @@ and durably write new DNA, **which enzyme** can write it there, and **how** to d
|
|
|
89
89
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
90
90
|
[](LICENSE)
|
|
91
91
|
[](https://www.python.org/)
|
|
92
|
-
[](CHANGELOG.md)
|
|
93
93
|
[](tests/)
|
|
94
94
|
[](https://github.com/astral-sh/ruff)
|
|
95
95
|
[](docker/)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pen-stack"
|
|
7
|
-
version = "4.5.
|
|
7
|
+
version = "4.5.1"
|
|
8
8
|
description = "Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|