pen-stack 7.1.6__tar.gz → 7.1.7__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.1.6 → pen_stack-7.1.7}/CHANGELOG.md +25 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/CITATION.cff +1 -1
- {pen_stack-7.1.6 → pen_stack-7.1.7}/PKG-INFO +1 -1
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/__init__.py +1 -1
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/immune_profile.py +65 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/PKG-INFO +1 -1
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pyproject.toml +1 -1
- {pen_stack-7.1.6 → pen_stack-7.1.7}/LICENSE +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/MANIFEST.in +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/bench/run.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_grounding/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_grounding/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_headtohead/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_routing/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_routing/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_safety/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/chat_safety/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/delivery/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/loop/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/offtarget/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/oracle/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/position_effect/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/position_effect/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/verify/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/writer_efficiency/README.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/writer_efficiency/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/benchmarks/writespec/SHA256SUMS +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/aav_serotype_tropism.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/antipeg.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/atlas_families.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/calibration/preexisting_nab_independent.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/cargo_polish.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/cell_types.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/datasets.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/delivery_rules.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/expression/modifiers.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/expression/promoters.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/gates_v3.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/intent_weights.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/known_unknowns.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/llm.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/metric_guide.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/mhc_epitope_oracle.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/monitor_queries.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/oracles/execution.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/oracles/reliability.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/compliance.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/delivery.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/fold.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/payload.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/rules/reachability.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/safety/policy.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/safety/probes.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/score_axes.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/seroprevalence.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/target_sites.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/write_types.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/writer_sequences.fasta +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/BACKLOG.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/DEPLOY.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/INFRA.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/MCP.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/RELEASING.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/REPRO.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/STABILITY.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/agent.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/autonomy.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/benchmark_circularity.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/biosecurity.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/build_interface.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/atlas.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/durability.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/offtarget_data.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/position_effect_data.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/safety.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/cards/writer_efficiency_data.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/challenge.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/closed_loop.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/co_scientist.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/co_scientist_loop.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/delivery.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/delivery_immunology.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/delivery_recommender.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/digital_twin.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/dissemination.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/environment.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/experiment_design.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/generative_design.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/immune_profiler.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/index.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/integrations.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/live_oracles.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/offtarget.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/oracle_mesh.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/oracles.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/position_effect.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/positioning.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/private_data_formats.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/quickstart.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/responsible_use.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/rule_spec.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/rules.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/scope.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/scorecard.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/tpe_bench.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/uncertainty.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/verify.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/verify_service.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/world_model.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/writer_efficiency.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/writer_verification.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/writespec_bench.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/writespec_profile.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/docs/wtkb.md +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/_resources.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/acquire.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/brains.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/campaign.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/design.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/active/validate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/adapt/report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/cite.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/scope.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/agent/tools.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/api/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/api/manifest.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/guide_design.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/writer_efficiency.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/writer_predict.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/writer_recommend.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/build/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/build/cloudlab.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/build/ingest.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/build/protocol.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/build/simlab.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/cli.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/encode.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/genome.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/capsid_generate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/generate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/pareto.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/space.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/design/writer_variants.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/env/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/env/policies.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/build.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/query.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/graph/schema.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/loop/continual.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/loop/drift.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/monitor/run.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/affinity.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/reliability.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/status.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/structure_run.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/ada_risk.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/chromosome.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery_immune.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery_predict.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/immune_mhc2.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/router.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/corpus.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/embed.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/ground.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/index.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/llm.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/qa.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rag/retrieve.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/loader.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/schema.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/solver.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/rules/spec.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/audit.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/gate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/policy.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/registry.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/screen.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/safety/standards.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/score/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/server/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/server/api.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/clarify.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/extract.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/cell.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/chem.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/feature.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/gene.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/locus.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/resolvers/phenotype.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/satisfy.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/service.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/spec/writespec.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/data/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/data/position_effect.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/twin/position_effect.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/ui/app.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/expr_controls.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/heldout_celltype_expr.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/known_biology_expr.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/verify/proof.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/verify/schema.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/verify/service.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/guide.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/llm.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/llm_provider.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/router.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/server.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/web/tools.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/offtarget_assay.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/offtarget_data.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/offtarget_predict.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_closedloop.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_delivery.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_expr2.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_hybrid.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_immune2.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_offtarget.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_oracle.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_penchat.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_verify.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_writer.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_writespec.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/paper1.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/paper2.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/paper3.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/paper4.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/phase0.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_a.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_acq.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_b.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ba.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_bench.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_c.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_cal.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_calib.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_chat.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_cite.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_closedloop.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_continual.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_crit.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ct.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_d.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_delivery.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_drift.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_e.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_env.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ep.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_expr2.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_f.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_g.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_gen.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_graph.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_h.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_hybrid.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_immune.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_immune2.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_innate.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_loop.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_mc.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_mech.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_mon.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_o.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_offtarget.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_oracle.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_orch.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_peg.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_penchat.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_plan.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_policy.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_profile.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_proto.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_r.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_route.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_screen.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_uq.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_v.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_verify.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_writer.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_writespec.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/prereg/ws_wv.yaml +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/build_capsid_fitness.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/build_rag_corpus.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/calibrate_immune_axes.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/fetch_licensed_sources.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/offtarget_chromatin_incremental.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/offtarget_chromatin_matched.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/offtarget_chromatin_validation.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_build_durability.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_build_position_effect.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_build_writer_eff.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_train_safety.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p1_validation_report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/ws_b_report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/scripts/ws_c_report.py +0 -0
- {pen_stack-7.1.6 → pen_stack-7.1.7}/setup.cfg +0 -0
|
@@ -3,6 +3,31 @@
|
|
|
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.1.7] - 2026-06-30 - Administration context (in-vivo / ex-vivo) now drives the immune profile
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- **The in-vivo / ex-vivo "Context" toggle had no effect on the immune profile.** It already drove the Generate
|
|
10
|
+
vehicle sweep (route-compatible vehicles) and the Verify germline-prohibition legality rule, but `immune_profile()`
|
|
11
|
+
ignored it, so the per-axis immune profile was identical for in-vivo and ex-vivo. It now applies a documented,
|
|
12
|
+
grounded administration modifier (`immune_profile._administration_modifier` / `_apply_administration`):
|
|
13
|
+
- **Pre-existing NAb is muted to "no barrier" (1.0) ex vivo.** Ex-vivo delivery (cells transduced in a dish and
|
|
14
|
+
washed before transplant) never exposes the vector to the patient's circulating antibodies, so pre-existing
|
|
15
|
+
anti-vector NAb does not gate eligibility — the eligibility fraction is 1.0 regardless of titer. The original
|
|
16
|
+
seroprevalence value is preserved (`pre_admin_value`) and the muting is explained in the axis note. This is the
|
|
17
|
+
same in-vivo/ex-vivo distinction the v5.1 `delivery_immunology` profile already encodes (`computed_ex_vivo_muted`).
|
|
18
|
+
- **CD8 capsid is flagged muted ex vivo** (systemic anti-capsid response minimal), but its intrinsic presentability
|
|
19
|
+
value is kept — transduced cells can still present capsid epitopes, a real residual concern, so no number is
|
|
20
|
+
fabricated.
|
|
21
|
+
- **Genotoxicity, innate, anti-PEG and the writer axes are unchanged** by administration context (insertional risk
|
|
22
|
+
and cargo/writer immunogenicity are intrinsic, not a function of circulating-antibody exposure).
|
|
23
|
+
- A `administration_modifier` block (parallel to the existing `route_modifier`) is added to the profile; the
|
|
24
|
+
`ImmuneProfileCard` shows an in-vivo/ex-vivo chip, a per-axis "ex-vivo muted" badge with the reason, and the
|
|
25
|
+
administration effect line. In-vivo and unspecified contexts leave every axis untouched (backward compatible).
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- `test_ws_profile.py`: `test_administration_context_mutes_vector_facing_axes_ex_vivo` (ex-vivo mutes pre-existing
|
|
29
|
+
NAb to 1.0 and flags CD8; in-vivo/unspecified are unchanged; genotoxicity is never muted by administration).
|
|
30
|
+
|
|
6
31
|
## [7.1.6] - 2026-06-30 - Immune axes wired end-to-end + Delivery folded into Design Studio
|
|
7
32
|
|
|
8
33
|
### Fixed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.7
|
|
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,2 +1,2 @@
|
|
|
1
1
|
"""PEN-STACK v3.0 - open infrastructure for genome writing."""
|
|
2
|
-
__version__ = "7.1.
|
|
2
|
+
__version__ = "7.1.7"
|
|
@@ -48,6 +48,65 @@ def _route_modifier(route: str | None) -> dict | None:
|
|
|
48
48
|
"note": "DOCUMENTED qualitative modifier on the realized response, NOT a quantified magnitude "
|
|
49
49
|
"(the magnitude stays a known-unknown)."}
|
|
50
50
|
|
|
51
|
+
|
|
52
|
+
# v7.1.7 WS-ADMIN, administration-context (in-vivo vs ex-vivo) modifier on the VECTOR-FACING immune axes.
|
|
53
|
+
# Ex-vivo delivery (cells transduced in a dish and washed before transplant) does NOT expose the vector to the
|
|
54
|
+
# patient's circulating antibodies, so the pre-existing anti-vector NAb axis - a humoral, bloodstream eligibility
|
|
55
|
+
# barrier - does not gate ex-vivo use (it is muted to "no barrier"). The systemic anti-capsid CD8 response is also
|
|
56
|
+
# muted ex vivo (the host barely sees the capsid), but transduced cells can still present capsid epitopes (a real,
|
|
57
|
+
# residual concern), so that axis is FLAGGED muted without overwriting its intrinsic value. This is the SAME
|
|
58
|
+
# in-vivo/ex-vivo distinction the v5.1 delivery_immunology profile already encodes ("computed_ex_vivo_muted").
|
|
59
|
+
# A DOCUMENTED, mechanistic modifier - never a fabricated magnitude; the realized response stays a known-unknown.
|
|
60
|
+
_EX_VIVO_MUTED_AXES = ("preexisting_nab", "cd8_epitope")
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _is_ex_vivo(in_vivo) -> bool:
|
|
64
|
+
return str(in_vivo).strip().lower() in ("false", "0", "no", "ex_vivo", "ex vivo", "exvivo")
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def _administration_modifier(in_vivo) -> dict | None:
|
|
68
|
+
"""Documented administration-context modifier (in-vivo / ex-vivo) on the vector-facing axes, or None when the
|
|
69
|
+
design does not state an administration context. Qualitative, never a fabricated magnitude."""
|
|
70
|
+
if in_vivo is None:
|
|
71
|
+
return None
|
|
72
|
+
if _is_ex_vivo(in_vivo):
|
|
73
|
+
return {"context": "ex_vivo", "muted_axes": list(_EX_VIVO_MUTED_AXES),
|
|
74
|
+
"effect": "ex-vivo administration: the vector contacts cells in a dish and is washed before "
|
|
75
|
+
"transplant, so it is not exposed to the patient's circulating antibodies. Pre-existing "
|
|
76
|
+
"anti-vector NAb does not gate eligibility (humoral barrier bypassed); the systemic "
|
|
77
|
+
"anti-capsid CD8 response is muted, though transduced cells may still present capsid "
|
|
78
|
+
"epitopes (a residual, separate consideration).",
|
|
79
|
+
"note": "DOCUMENTED qualitative administration modifier (the same in-vivo/ex-vivo distinction as the "
|
|
80
|
+
"v5.1 delivery profile); the realized immune MAGNITUDE remains a known-unknown."}
|
|
81
|
+
return {"context": "in_vivo", "muted_axes": [],
|
|
82
|
+
"effect": "in-vivo (systemic / local) administration: the vector is exposed to the patient's "
|
|
83
|
+
"circulating antibodies and immune system, so the pre-existing NAb and anti-capsid CD8 "
|
|
84
|
+
"axes apply as reported.",
|
|
85
|
+
"note": "DOCUMENTED qualitative administration modifier; the realized magnitude is a known-unknown."}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def _apply_administration(axes: dict, admin: dict | None) -> None:
|
|
89
|
+
"""Mutate the vector-facing axes in place for an ex-vivo administration context. Pre-existing NAb is muted to
|
|
90
|
+
'no barrier' (eligibility not gated when the vector never meets circulating antibody); CD8 capsid is flagged
|
|
91
|
+
muted but its intrinsic value is kept (transduced cells can still present). No-op for in-vivo / unspecified."""
|
|
92
|
+
if not admin or admin.get("context") != "ex_vivo":
|
|
93
|
+
return
|
|
94
|
+
na = axes.get("preexisting_nab")
|
|
95
|
+
if na and na.get("available") and na.get("value") is not None:
|
|
96
|
+
na["pre_admin_value"] = na["value"]
|
|
97
|
+
na["value"] = 1.0
|
|
98
|
+
na["uncertainty"] = 0.0
|
|
99
|
+
na["administration_muted"] = True
|
|
100
|
+
na["note"] = (f"ex-vivo administration: pre-existing circulating anti-vector antibodies do not reach the "
|
|
101
|
+
f"vector (transduction in a dish), so pre-existing NAb does not gate eligibility "
|
|
102
|
+
f"(muted from {na['pre_admin_value']} to 1.0 = no barrier). " + (na.get("note") or ""))
|
|
103
|
+
cd = axes.get("cd8_epitope")
|
|
104
|
+
if cd and cd.get("available") and cd.get("value") is not None:
|
|
105
|
+
cd["administration_muted"] = True
|
|
106
|
+
cd["note"] = ("ex-vivo administration: the systemic anti-capsid CD8 response is muted (minimal host capsid "
|
|
107
|
+
"exposure); transduced cells may still present capsid epitopes, so the intrinsic value is "
|
|
108
|
+
"kept. " + (cd.get("note") or ""))
|
|
109
|
+
|
|
51
110
|
# headline score key inside each oracle's value dict, per axis.
|
|
52
111
|
_SCORE_KEY = {"genotoxicity": "genotox_score", "cd8_epitope": "capsid_immune_score",
|
|
53
112
|
"innate": "innate_score", "preexisting_nab": "preexisting_score",
|
|
@@ -162,6 +221,11 @@ def immune_profile(design: dict) -> dict:
|
|
|
162
221
|
"no bundled writer sequence -> abstains", "ada_writer"),
|
|
163
222
|
}
|
|
164
223
|
|
|
224
|
+
# v7.1.7 administration context: ex-vivo delivery bypasses the patient's circulating antibodies, so the
|
|
225
|
+
# vector-facing axes (pre-existing NAb, capsid CD8) are muted - documented, not a fabricated magnitude.
|
|
226
|
+
admin = _administration_modifier(design.get("in_vivo"))
|
|
227
|
+
_apply_administration(axes, admin)
|
|
228
|
+
|
|
165
229
|
# writer-as-antigen comparison: for non-viral delivery (no foreign capsid) or a foreign writer outscoring the
|
|
166
230
|
# capsid, the WRITER is the dominant antigen, the v6.9 insight, never collapsed into the other axes.
|
|
167
231
|
dominant = None
|
|
@@ -180,6 +244,7 @@ def immune_profile(design: dict) -> dict:
|
|
|
180
244
|
"writer_as_antigen": ({**writer_card, "dominant_antigen": dominant,
|
|
181
245
|
"writer_dominant_risk": writer_dominant_risk} if writer_card else None),
|
|
182
246
|
"route_modifier": _route_modifier(design.get("route")), # v5.6 WS-EXT documented route modifier (or None)
|
|
247
|
+
"administration_modifier": admin, # v7.1.7 in-vivo / ex-vivo documented modifier on the vector-facing axes
|
|
183
248
|
"known_unknowns": KNOWN_UNKNOWNS,
|
|
184
249
|
"no_fabrication": True,
|
|
185
250
|
"note": ("relative immune-risk SCREEN across axes (now incl. CD4/MHC-II + ADA over the writer enzyme); each "
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.7
|
|
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.1.
|
|
7
|
+
version = "7.1.7"
|
|
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
|