pen-stack 6.2.1__tar.gz → 6.2.2__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-6.2.1 → pen_stack-6.2.2}/CHANGELOG.md +13 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/CITATION.cff +1 -1
- {pen_stack-6.2.1 → pen_stack-6.2.2}/PKG-INFO +3 -3
- {pen_stack-6.2.1 → pen_stack-6.2.2}/README.md +2 -2
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/__init__.py +1 -1
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/crosslink.py +3 -6
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/optimize.py +13 -2
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/PKG-INFO +3 -3
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pyproject.toml +1 -1
- {pen_stack-6.2.1 → pen_stack-6.2.2}/LICENSE +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/MANIFEST.in +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/bench/run.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/antipeg.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/atlas_families.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/cargo_polish.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/cell_types.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/datasets.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/delivery_rules.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/gates_v3.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/intent_weights.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/known_unknowns.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/llm.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/monitor_queries.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/rules/delivery.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/rules/fold.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/rules/payload.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/rules/reachability.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/safety/policy.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/safety/probes.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/score_axes.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/seroprevalence.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/target_sites.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/write_types.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/BACKLOG.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/DEPLOY.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/INFRA.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/MCP.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/RELEASING.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/REPRO.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/STABILITY.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/agent.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/autonomy.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/benchmark_circularity.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/biosecurity.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/build_interface.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/cards/atlas.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/cards/durability.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/cards/safety.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/challenge.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/closed_loop.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/co_scientist.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/co_scientist_loop.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/delivery.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/delivery_immunology.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/digital_twin.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/dissemination.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/environment.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/experiment_design.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/generative_design.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/index.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/integrations.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/oracles.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/positioning.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/private_data_formats.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/quickstart.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/responsible_use.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/rules.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/scope.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/scorecard.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/uncertainty.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/verify.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/world_model.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/writer_verification.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/docs/wtkb.md +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/_resources.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/active/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/active/acquire.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/active/design.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/active/validate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/adapt/report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/cite.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/scope.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/agent/tools.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/api/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/api/manifest.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/build/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/build/ingest.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/build/protocol.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/build/simlab.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/cli.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/encode.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/genome.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/design/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/design/generate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/design/pareto.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/design/space.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/env/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/env/policies.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/build.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/query.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/graph/schema.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/loop/continual.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/loop/drift.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/monitor/run.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/immune_profile.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/router.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rag/index.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rag/llm.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rag/qa.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rules/loader.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rules/schema.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/rules/solver.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/audit.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/gate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/policy.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/registry.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/safety/screen.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/score/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/server/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/server/api.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/ui/app.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/verify/schema.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/verify/service.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/web/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/web/llm.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/web/server.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/web/tools.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/paper1.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/paper2.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/paper3.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/paper4.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/phase0.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_a.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_acq.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_b.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ba.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_bench.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_c.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_cal.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_calib.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_chat.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_cite.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_continual.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_crit.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ct.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_d.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_drift.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_e.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_env.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ep.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_f.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_g.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_gen.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_graph.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_h.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_immune.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_innate.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_loop.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_mc.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_mech.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_mon.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_o.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_orch.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_peg.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_plan.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_policy.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_profile.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_proto.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_r.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_route.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_screen.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_uq.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_v.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/prereg/ws_wv.yaml +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_build_durability.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_train_safety.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p1_validation_report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/ws_b_report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/scripts/ws_c_report.py +0 -0
- {pen_stack-6.2.1 → pen_stack-6.2.2}/setup.cfg +0 -0
|
@@ -3,6 +3,19 @@
|
|
|
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
|
+
## [6.2.2] - 2026-06-12 - v6.2.2: safe-harbour locus-nickname resolution (patch)
|
|
7
|
+
|
|
8
|
+
**Usability fix.** Site Finder / `/plan` / `/writable` returned 0 plans for `AAVS1` because it is a genomic
|
|
9
|
+
safe-harbour *locus nickname*, not an HGNC gene symbol, so the gene→coordinate lookup (`gene_coords`, 60,888
|
|
10
|
+
symbols) could not resolve it — honest empty, but unhelpful for the most-typed safe harbour. (The cell-type
|
|
11
|
+
atlases are complete; real symbols like `PCSK9`/`HBB`/`CCR5`/`CLYBL` resolved fine.)
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- `pen_stack/planner/optimize.py`: `resolve_gene()` maps well-documented safe-harbour nicknames to their host
|
|
15
|
+
gene (`AAVS1`→`PPP1R12C` 19q13.42; `H11`/`Hipp11`→`EIF4ENIF1` 22q12) at every gene→coordinate lookup
|
|
16
|
+
(`gene_region`, `plan`, `crosslink.loci_for_gene`); real symbols pass through unchanged. Regression test
|
|
17
|
+
`tests/unit/test_ws_api.py::test_safe_harbour_nickname_resolves_to_host_gene`.
|
|
18
|
+
|
|
6
19
|
## [6.2.1] - 2026-06-12 - v6.2.1: JSON-safe atlas/crosslink endpoints (patch)
|
|
7
20
|
|
|
8
21
|
**Bug fix.** The `/atlas`, `/writable`, and `/crosslink/loci` endpoints returned raw DataFrame records, which
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.2
|
|
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
|
|
@@ -90,9 +90,9 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
90
90
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
91
91
|
[](LICENSE)
|
|
92
92
|
[](https://www.python.org/)
|
|
93
|
-
[](CHANGELOG.md)
|
|
94
94
|
[](docs/STABILITY.md)
|
|
95
|
-
[](tests/)
|
|
96
96
|
[](https://github.com/astral-sh/ruff)
|
|
97
97
|
[](docker/)
|
|
98
98
|
[](prereg/)
|
|
@@ -15,9 +15,9 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
15
15
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
16
16
|
[](LICENSE)
|
|
17
17
|
[](https://www.python.org/)
|
|
18
|
-
[](CHANGELOG.md)
|
|
19
19
|
[](docs/STABILITY.md)
|
|
20
|
-
[](tests/)
|
|
21
21
|
[](https://github.com/astral-sh/ruff)
|
|
22
22
|
[](docker/)
|
|
23
23
|
[](prereg/)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "6.2.
|
|
2
|
+
__version__ = "6.2.2"
|
|
@@ -99,13 +99,10 @@ def writers_for_locus(chrom: str, bin_idx: int, ct: str = "k562") -> pd.DataFram
|
|
|
99
99
|
|
|
100
100
|
def loci_for_gene(gene: str, ct: str = "k562", gene_coords: str | Path | None = None) -> pd.DataFrame:
|
|
101
101
|
"""Writable bins overlapping a gene body (forward query helper)."""
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
else:
|
|
105
|
-
from pen_stack.planner.optimize import gene_coords_path
|
|
106
|
-
gc_path = gene_coords_path()
|
|
102
|
+
from pen_stack.planner.optimize import gene_coords_path, resolve_gene
|
|
103
|
+
gc_path = Path(gene_coords) if gene_coords else gene_coords_path()
|
|
107
104
|
gc = pd.read_parquet(gc_path)
|
|
108
|
-
g = gc[gc["gene"] == gene]
|
|
105
|
+
g = gc[gc["gene"] == resolve_gene(gene)] # resolve safe-harbour nicknames (AAVS1 -> PPP1R12C)
|
|
109
106
|
if g.empty:
|
|
110
107
|
return pd.DataFrame()
|
|
111
108
|
r = g.iloc[0]
|
|
@@ -209,9 +209,20 @@ def _gene_coords(path: str | None = None) -> pd.DataFrame:
|
|
|
209
209
|
return pd.read_parquet(Path(path) if path else gene_coords_path())
|
|
210
210
|
|
|
211
211
|
|
|
212
|
+
# Genomic safe-harbour *locus nicknames* are not HGNC gene symbols, so they are absent from gene_coords; map the
|
|
213
|
+
# well-documented ones to their host gene so a user who types the common name still gets a plan. AAVS1 = intron 1
|
|
214
|
+
# of PPP1R12C (19q13.42); H11/Hipp11 = an intron of EIF4ENIF1 (22q12). (CCR5, CLYBL, HPRT1 are real symbols.)
|
|
215
|
+
_GSH_ALIASES = {"AAVS1": "PPP1R12C", "H11": "EIF4ENIF1", "HIPP11": "EIF4ENIF1"}
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
def resolve_gene(gene: str) -> str:
|
|
219
|
+
"""Map a safe-harbour locus nickname (e.g. AAVS1) to its HGNC host gene; pass real symbols through unchanged."""
|
|
220
|
+
return _GSH_ALIASES.get(str(gene).strip().upper(), gene)
|
|
221
|
+
|
|
222
|
+
|
|
212
223
|
def gene_region(gene: str, flank_kb: int = 50) -> tuple[str, int, int] | None:
|
|
213
224
|
gc = _gene_coords()
|
|
214
|
-
g = gc[gc["gene"] == gene]
|
|
225
|
+
g = gc[gc["gene"] == resolve_gene(gene)]
|
|
215
226
|
if g.empty:
|
|
216
227
|
return None
|
|
217
228
|
r = g.iloc[0]
|
|
@@ -232,7 +243,7 @@ def plan(gene: str, intent: EditIntent | str, cargo_bp: int, writable_df: pd.Dat
|
|
|
232
243
|
return pd.DataFrame()
|
|
233
244
|
# on_target = bin overlaps the gene body (not just the flank)
|
|
234
245
|
g = _gene_coords()
|
|
235
|
-
gr = g[g["gene"] == gene].iloc[0]
|
|
246
|
+
gr = g[g["gene"] == resolve_gene(gene)].iloc[0]
|
|
236
247
|
sub["on_target"] = sub["bin"].between(int(gr["start"]) // BIN_BP, int(gr["end"]) // BIN_BP)
|
|
237
248
|
scored = score_candidates(sub, intent, cargo_bp)
|
|
238
249
|
cols = ["chrom", "bin", "writer", "safety", "p_durable", "writer_activity",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 6.2.
|
|
3
|
+
Version: 6.2.2
|
|
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
|
|
@@ -90,9 +90,9 @@ every design against rule-grounded mechanism, reports calibrated confidence, cit
|
|
|
90
90
|
[](https://codecov.io/gh/ahmedanees-m/pen-stack)
|
|
91
91
|
[](LICENSE)
|
|
92
92
|
[](https://www.python.org/)
|
|
93
|
-
[](CHANGELOG.md)
|
|
94
94
|
[](docs/STABILITY.md)
|
|
95
|
-
[](tests/)
|
|
96
96
|
[](https://github.com/astral-sh/ruff)
|
|
97
97
|
[](docker/)
|
|
98
98
|
[](prereg/)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pen-stack"
|
|
7
|
-
version = "6.2.
|
|
7
|
+
version = "6.2.2"
|
|
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
|