pen-stack 7.2.1__tar.gz → 7.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-7.2.1 → pen_stack-7.2.2}/CHANGELOG.md +18 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/CITATION.cff +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/PKG-INFO +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/offtarget/integrase/SHA256SUMS +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/offtarget_data.md +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/__init__.py +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_integrase.py +30 -12
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/PKG-INFO +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pyproject.toml +1 -1
- {pen_stack-7.2.1 → pen_stack-7.2.2}/LICENSE +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/MANIFEST.in +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/bench/run.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_grounding/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_grounding/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_headtohead/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_routing/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_routing/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_safety/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/chat_safety/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/delivery/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/loop/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/offtarget/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/offtarget/integrase/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/oracle/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/position_effect/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/position_effect/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/verify/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/writer_efficiency/README.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/writer_efficiency/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/benchmarks/writespec/SHA256SUMS +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/aav_serotype_tropism.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/antipeg.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/atlas_families.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/calibration/preexisting_nab_independent.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/cargo_polish.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/cell_types.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/datasets.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/delivery_rules.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/expression/modifiers.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/expression/promoters.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/gates_v3.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/intent_weights.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/known_unknowns.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/llm.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/metric_guide.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/mhc_epitope_oracle.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/monitor_queries.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/oracles/execution.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/oracles/reliability.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/compliance.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/delivery.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/fold.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/payload.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/rules/reachability.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/safety/policy.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/safety/probes.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/score_axes.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/seroprevalence.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/target_sites.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/write_types.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/writer_sequences.fasta +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/cast_systems.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/integrase_att.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/offtarget/enumerated_cache.parquet +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/data/offtarget/motif_cache.parquet +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/BACKLOG.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/DEPLOY.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/INFRA.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/MCP.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/RELEASING.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/REPRO.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/STABILITY.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/agent.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/autonomy.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/benchmark_circularity.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/biosecurity.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/build_interface.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/atlas.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/durability.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/position_effect_data.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/safety.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/cards/writer_efficiency_data.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/challenge.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/closed_loop.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/co_scientist.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/co_scientist_loop.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/delivery.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/delivery_immunology.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/delivery_recommender.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/digital_twin.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/dissemination.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/environment.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/experiment_design.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/generative_design.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/immune_profiler.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/index.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/integrations.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/live_oracles.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/offtarget.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/oracle_mesh.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/oracles.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/position_effect.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/positioning.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/private_data_formats.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/quickstart.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/responsible_use.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/rule_spec.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/rules.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/scope.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/scorecard.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/tpe_bench.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/uncertainty.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/verify.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/verify_service.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/world_model.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/writer_efficiency.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/writer_verification.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/writespec_bench.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/writespec_profile.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/docs/wtkb.md +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/_resources.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/acquire.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/brains.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/campaign.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/design.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/active/validate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/adapt/report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/cite.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/scope.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/agent/tools.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/api/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/api/manifest.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/guide_design.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/writer_efficiency.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/writer_predict.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/writer_recommend.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/build/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/build/cloudlab.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/build/ingest.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/build/protocol.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/build/simlab.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/cli.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/encode.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/genome.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/capsid_generate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/generate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/pareto.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/space.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/design/writer_variants.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/env/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/env/policies.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/build.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/query.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/graph/schema.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/loop/continual.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/loop/drift.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/monitor/run.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/affinity.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/reliability.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/status.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/structure_run.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/ada_risk.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/chromosome.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery_immune.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery_predict.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/immune_mhc2.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/immune_profile.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/router.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/corpus.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/embed.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/ground.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/index.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/llm.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/qa.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rag/retrieve.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/loader.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/schema.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/solver.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/rules/spec.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/audit.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/gate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/policy.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/registry.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/screen.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/safety/standards.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/score/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/server/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/server/api.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/clarify.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/extract.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/cell.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/chem.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/feature.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/gene.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/locus.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/resolvers/phenotype.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/satisfy.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/service.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/spec/writespec.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/data/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/data/position_effect.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/twin/position_effect.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/ui/app.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/expr_controls.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/heldout_celltype_expr.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/known_biology_expr.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/verify/proof.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/verify/schema.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/verify/service.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/guide.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/llm.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/llm_provider.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/router.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/server.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/web/tools.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_assay.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_bridge.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_cast.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_data.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_enumerate.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_nuclease.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_paste.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/offtarget_predict.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_closedloop.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_delivery.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_expr2.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_hybrid.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_immune2.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_offtarget.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_offtarget2.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_oracle.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_penchat.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_verify.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_writer.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_writespec.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/paper1.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/paper2.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/paper3.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/paper4.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/phase0.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_a.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_acq.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_b.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ba.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_bench.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_c.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_cal.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_calib.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_chat.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_cite.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_closedloop.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_continual.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_crit.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ct.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_d.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_delivery.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_drift.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_e.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_env.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ep.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_expr2.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_f.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_g.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_gen.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_graph.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_h.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_hybrid.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_immune.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_immune2.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_innate.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_loop.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_mc.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_mech.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_mon.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_o.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_offtarget.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_offtarget2.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_oracle.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_orch.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_peg.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_penchat.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_plan.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_policy.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_profile.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_proto.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_r.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_route.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_screen.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_uq.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_v.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_verify.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_writer.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_writespec.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/prereg/ws_wv.yaml +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/build_capsid_fitness.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/build_rag_corpus.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/calibrate_immune_axes.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/fetch_licensed_sources.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/offtarget_chromatin_incremental.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/offtarget_chromatin_matched.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/offtarget_chromatin_validation.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_build_durability.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_build_position_effect.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_build_writer_eff.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_train_safety.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p1_validation_report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/ws_b_report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/scripts/ws_c_report.py +0 -0
- {pen_stack-7.2.1 → pen_stack-7.2.2}/setup.cfg +0 -0
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to PEN-STACK are documented here. This file follows
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/).
|
|
5
5
|
|
|
6
|
+
## [7.2.2] - 2026-07-02 - Integrase: precise capability framing (the negative is about a method, not the biology)
|
|
7
|
+
|
|
8
|
+
A framing/presentation refinement of the v7.2.1 sealed-negative result — no science changes, the number is
|
|
9
|
+
unchanged and the negative stands.
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- **Precise claim, everywhere:** what the sealed PhiC31 benchmark showed is that a specific *method* (attP
|
|
13
|
+
sequence-similarity scanning) is insufficient — **NOT** that pseudosites are unpredictable. The signal is real
|
|
14
|
+
(Chalberg's palindromic consensus; IntQuery's success on 410,776 cryptic attB), just not capturable by simple
|
|
15
|
+
identity. So the honest, narrow claim is "sequence similarity is insufficient," and this negative is the
|
|
16
|
+
empirical justification for a learned/DMS model (the indicated next step). Sharpened in `offtarget_integrase.py`,
|
|
17
|
+
`phic31_recall_metrics.json`, and the data card so nothing reads as "unpredictable."
|
|
18
|
+
- **App presentation:** `nominate_integrase` now returns a `capability` disclosure (badge + plain microcopy). The
|
|
19
|
+
Off-Target page shows a badge reading **"mechanism-based · not predictive by sequence alone"** (not a bare red
|
|
20
|
+
flag) plus one line — *"φC31 pseudosite activity is sequence-guided but not predictable from similarity alone
|
|
21
|
+
(sealed benchmark, negative); confirm empirically"* — separating the grounded facts (verified att + documented
|
|
22
|
+
pseudo-attP with GenBank accessions) from the honest capability limit. A trust-building disclosure, not an alarm.
|
|
23
|
+
|
|
6
24
|
## [7.2.1] - 2026-07-02 - PhiC31 integrase: close the O-WS3/O-G2 data gap with verified data + a sealed recall benchmark (honest NEGATIVE)
|
|
7
25
|
|
|
8
26
|
Closes the one genuine open item from v7.2.0 — the PhiC31 integrase data gap — with independently-verified,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.2.
|
|
3
|
+
Version: 7.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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
701efce23441ba6ec3865060aa3a749d7165d013628f3ed8010737861b306557 README.md
|
|
2
2
|
888dd4ba69bbe1eccd323797adc89b242b1c8ec6208a5f9f41df839d641d10e6 harness.py
|
|
3
3
|
fe23827ff34204bc2cd1f903fcd3e32b120c4521787342e6590824249573a4d4 phic31_pseudo.fasta
|
|
4
|
-
|
|
4
|
+
8ac9ee21ddab7ddc9af4d68f6eef872c30069f6dbc6ae8de89f62c981d1868cd phic31_recall_metrics.json
|
|
@@ -103,7 +103,7 @@ disclosure** where it does not. No mechanism is ever presented as validated wher
|
|
|
103
103
|
| Writer class | Mechanism | Enumeration | Status | Ground truth / benchmark |
|
|
104
104
|
|---|---|---|---|---|
|
|
105
105
|
| **Nuclease** (SpCas9/SaCas9/Cas12a) | mismatch-tolerant cleavage at protospacer+PAM | Cas-OFFinder genome scan | ✅ **validated** | 4-assay Off-Target-Bench (above) + **O-G1**: enumeration recovers 100% of EMX1's documented GUIDE-seq off-targets ≤5 mm |
|
|
106
|
-
| **Serine integrase** (Bxb1, PhiC31) | recombination at genomic pseudo-attP | fixed-sequence att-window scan | 🔵 **mechanism-based, sealed-NEGATIVE benchmark** (v7.2.1) | att verified (Bxb1: FlyBase FBto0000359 / Ghosh 2003 `10.1016/S1097-2765(03)00444-1`; PhiC31: **PDB 9U2T/9U2S** + Groth 2000 `10.1073/pnas.090527097`); the PhiC31 human pseudo-attP set is verified (Thyagarajan 2001, **GenBank AF333429/30/31**, `10.1128/MCB.21.12.3926-3934.2001`; chr8/16/15). The v7.2.1 **SEALED recall benchmark** (`benchmarks/offtarget/integrase/`) is **NEGATIVE**: att-sequence-similarity does NOT recover the documented pseudo-attP above random background (all three at 14 mm / 30 bp = the background median). The genome-wide similarity RANKING is therefore **
|
|
106
|
+
| **Serine integrase** (Bxb1, PhiC31) | recombination at genomic pseudo-attP | fixed-sequence att-window scan | 🔵 **mechanism-based, sealed-NEGATIVE benchmark** (v7.2.1) | att verified (Bxb1: FlyBase FBto0000359 / Ghosh 2003 `10.1016/S1097-2765(03)00444-1`; PhiC31: **PDB 9U2T/9U2S** + Groth 2000 `10.1073/pnas.090527097`); the PhiC31 human pseudo-attP set is verified (Thyagarajan 2001, **GenBank AF333429/30/31**, `10.1128/MCB.21.12.3926-3934.2001`; chr8/16/15). The v7.2.1 **SEALED recall benchmark** (`benchmarks/offtarget/integrase/`) is **NEGATIVE**: att-sequence-similarity does NOT recover the documented pseudo-attP above random background (all three at 14 mm / 30 bp = the background median). The genome-wide similarity RANKING is therefore **not predictive by sequence alone**. **Precise claim:** what failed is a specific *method* (attP sequence-similarity), NOT the existence of predictable pseudosites — the signal is real (Chalberg 2006's palindromic consensus `10.1016/j.jmb.2005.11.098`; IntQuery's 410,776 cryptic attB), just not capturable by simple identity. "Sequence similarity is insufficient," never "unpredictable." This negative is the empirical justification for a learned/DMS model (the indicated next step). Documented pseudosites surfaced as verified known loci; the negative is reported verbatim (a stronger, more honest O-G2 than an untested "semi-validated"). |
|
|
107
107
|
| **Bridge** (IS110/IS621) | recombination at bridge-RNA target-loop matches | core-seeded genome scan (pysam) | 🔵 **mechanism-based, unvalidated** | **NO genome-wide unbiased CELLULAR off-target assay exists** (technology ~2024). The mismatch-tolerance RANKER is validated on the measured Perry-2025 in-vitro DMS specificity (held-out ranking AUROC 0.88), but genomic recovery is unvalidated. |
|
|
108
108
|
| **CAST** (ShCAST V-K / VchCAST I-F) | guide-directed integration + guide-independent untargeted transposition | spacer scan + per-system untargeted background | 🔵 **mechanism-based, unvalidated** | untargeted-transposition rates documented per system (`data/curated/cast_systems.yaml`): ShCAST high/AT-biased (Strecker 2019 `10.1126/science.aax9181`; Science 2024 `10.1126/science.adj8543`), VchCAST >95–99% on-target (Klompe 2019 `10.1038/s41586-019-1323-z`; Vo 2021 `10.1038/s41587-020-00745-y`). No genome-wide cellular assay for human-cell CAST. |
|
|
109
109
|
| **PASTE / (ee)PASSIGE** | Cas9-nickase off-target + integrase pseudo-attP | compose(nuclease, integrase) | composite (✅ nickase + 🟡 integrase) | inherits the nuclease benchmark for the nickase and the integrase status for the installed att; recommends BOTH a nuclease assay AND an integrase assay |
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "7.2.
|
|
2
|
+
__version__ = "7.2.2"
|
|
@@ -24,6 +24,22 @@ _ALIAS = {"bxb1": "Bxb1", "serine_integrase": "Bxb1", "pe_integrase": "Bxb1",
|
|
|
24
24
|
"phic31": "PhiC31", "phic31_integrase": "PhiC31"}
|
|
25
25
|
_CONFIRM = "Cryptic-seq / HIDE-seq (Tome Biosciences, 2024 preprint)"
|
|
26
26
|
|
|
27
|
+
# Capability disclosure (v7.2.2): be PRECISE about what the sealed benchmark showed. What failed is a specific
|
|
28
|
+
# METHOD (attP sequence-similarity scanning), NOT the existence of predictable pseudosites — the signal is real
|
|
29
|
+
# (Chalberg's ~30-bp palindromic consensus; IntQuery's success on 410,776 cryptic attB), just not capturable by
|
|
30
|
+
# simple similarity. The honest claim is narrow: "sequence similarity is insufficient", never "unpredictable".
|
|
31
|
+
_CAPABILITY = {
|
|
32
|
+
"badge": "mechanism-based · not predictive by sequence alone",
|
|
33
|
+
"microcopy": ("phiC31 pseudosite activity is sequence-guided but NOT predictable from similarity alone "
|
|
34
|
+
"(sealed benchmark, negative); confirm empirically (Cryptic-seq / HIDE-seq)."),
|
|
35
|
+
"what_failed": ("attP sequence-SIMILARITY scanning (a specific method) — NOT the existence of predictable "
|
|
36
|
+
"pseudosites."),
|
|
37
|
+
"signal_is_real": ("the pseudosite signal IS real — Chalberg's ~30-bp palindromic consensus and IntQuery's "
|
|
38
|
+
"success on 410,776 cryptic attB show it — just not capturable by simple sequence identity."),
|
|
39
|
+
"indicated_next_step": ("a learned / DMS model (as IntQuery uses); this sealed negative is the empirical "
|
|
40
|
+
"justification for it, not evidence that pseudosites are unpredictable."),
|
|
41
|
+
}
|
|
42
|
+
|
|
27
43
|
|
|
28
44
|
@lru_cache(maxsize=1)
|
|
29
45
|
def integrase_att() -> dict:
|
|
@@ -69,15 +85,17 @@ def nominate_integrase(integrase: str = "Bxb1", top: int = 20) -> dict:
|
|
|
69
85
|
"att_doi": rec["doi"], "pdb": rec.get("pdb"),
|
|
70
86
|
"documented_pseudo_attP": rec.get("pseudo_attP_positive_set"),
|
|
71
87
|
"documented_source": rec.get("positive_set_source"), "documented_doi": rec.get("positive_set_doi"),
|
|
72
|
-
"sealed_recall_benchmark": bench, "similarity_ranking_validated": False,
|
|
88
|
+
"sealed_recall_benchmark": bench, "similarity_ranking_validated": False, "capability": _CAPABILITY,
|
|
73
89
|
"specificity_note": rec.get("specificity_note"),
|
|
74
90
|
"method": ("PhiC31 documented human pseudo-attP (verified GenBank AF333429/30/31, Thyagarajan 2001) "
|
|
75
|
-
"are surfaced as known off-target loci
|
|
76
|
-
"based
|
|
77
|
-
"
|
|
91
|
+
"are surfaced as verified known off-target loci. Separately, the att-SIMILARITY genome "
|
|
92
|
+
"scan is a mechanism-based method whose sealed recall benchmark is NEGATIVE: sequence "
|
|
93
|
+
"similarity is INSUFFICIENT to rank these sites (the signal is real but needs a learned "
|
|
94
|
+
"model, not raw identity). Reported verbatim."),
|
|
78
95
|
"confirm_assay": _CONFIRM,
|
|
79
|
-
"honesty": "verified documented pseudosites
|
|
80
|
-
"
|
|
96
|
+
"honesty": "verified documented pseudosites (grounded facts) PLUS an explicit capability disclosure: "
|
|
97
|
+
"sequence-similarity scanning does not reliably rank them; NOT a clearance. Confirm "
|
|
98
|
+
"empirically.",
|
|
81
99
|
"nomination_is_not_clearance": True}
|
|
82
100
|
|
|
83
101
|
# Bxb1 (and any integrase with a committed genome-scan cache): genome-wide similarity candidates
|
|
@@ -100,12 +118,12 @@ def nominate_integrase(integrase: str = "Bxb1", top: int = 20) -> dict:
|
|
|
100
118
|
"scan_window": window, "source": enum["source"], "att_doi": rec["doi"],
|
|
101
119
|
"n_sites_genome_wide": len(noms), "nominations": noms[:top],
|
|
102
120
|
"specificity_note": rec.get("specificity_note"),
|
|
103
|
-
"sealed_recall_benchmark": bench, "similarity_ranking_validated": False,
|
|
121
|
+
"sealed_recall_benchmark": bench, "similarity_ranking_validated": False, "capability": _CAPABILITY,
|
|
104
122
|
"method": ("fixed-sequence Cas-OFFinder scan of the attP core window over GRCh38, scored by att-arm "
|
|
105
|
-
"similarity. The similarity RANKING is mechanism-based and
|
|
106
|
-
"recall benchmark is NEGATIVE (
|
|
107
|
-
"
|
|
123
|
+
"similarity. The similarity RANKING is mechanism-based and NOT predictive by sequence alone: "
|
|
124
|
+
"the sealed PhiC31 recall benchmark is NEGATIVE (sequence similarity is insufficient to "
|
|
125
|
+
"rank pseudo-attP; the signal is real but needs a learned model, per IntQuery)."),
|
|
108
126
|
"confirm_assay": _CONFIRM,
|
|
109
|
-
"honesty": "genome-wide pseudo-attP candidates by att similarity;
|
|
110
|
-
"(sealed-negative benchmark)
|
|
127
|
+
"honesty": "genome-wide pseudo-attP candidates by att similarity; sequence similarity is insufficient "
|
|
128
|
+
"to rank them (sealed-negative benchmark) -> mechanism-based, confirm empirically. NOT a clearance.",
|
|
111
129
|
"nomination_is_not_clearance": True}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.2.
|
|
3
|
+
Version: 7.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
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pen-stack"
|
|
7
|
-
version = "7.2.
|
|
7
|
+
version = "7.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
|