pen-stack 7.1.5__tar.gz → 7.1.6__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.5 → pen_stack-7.1.6}/CHANGELOG.md +32 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/CITATION.cff +2 -2
- {pen_stack-7.1.5 → pen_stack-7.1.6}/PKG-INFO +1 -1
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/__init__.py +1 -1
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/immune_profile.py +33 -1
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/PKG-INFO +1 -1
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pyproject.toml +1 -1
- {pen_stack-7.1.5 → pen_stack-7.1.6}/LICENSE +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/MANIFEST.in +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/bench/run.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_grounding/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_grounding/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_headtohead/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_routing/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_routing/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_safety/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/chat_safety/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/delivery/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_bench/LEADERBOARD.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_bench/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_bench/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_bench/SUBMISSIONS.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_bench/tasks.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_challenge/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/genome_writing_challenge/SUBMISSIONS.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/loop/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/offtarget/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/oracle/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/position_effect/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/position_effect/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/verify/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/writer_efficiency/README.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/writer_efficiency/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/benchmarks/writespec/SHA256SUMS +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/aav_serotype_tropism.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/antipeg.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/atlas_families.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/bridge_offtarget_profile.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/calibration/preexisting_nab_independent.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/capsid_epitope_oracle.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/capsid_sequences.fasta +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/cargo_polish.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/cell_types.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/datasets.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/delivery_constraints.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/delivery_rules.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/delivery_vehicles.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/expression/modifiers.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/expression/promoters.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/gates_v3.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/genotoxicity_oracle.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/gsh_validated_heldout.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/intent_weights.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/known_unknowns.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/llm.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/metric_guide.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/mhc_epitope_oracle.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/monitor_queries.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/oracles/execution.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/oracles/reliability.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/oracles/scope_cards.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/compliance.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/delivery.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/fold.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/multiplex.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/payload.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/rules/reachability.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/safety/hazard_registry.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/safety/policy.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/safety/probes.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/score_axes.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/seroprevalence.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/target_sites.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/universe_crosswalk.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/write_types.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/writer_sequences.fasta +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/configs/wtkb_curated.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/data/curated/bridge_offtarget_energetics.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/data/curated/bridge_offtarget_profile_measured.parquet +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/data/curated/gene_coords.parquet +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/data/curated/unified_editor_universe.parquet +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/BACKLOG.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/DEPLOY.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/INFRA.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/MCP.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/RELEASING.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/REPRO.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/STABILITY.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/agent.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/alphagenome_feasibility.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/autonomy.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/benchmark_circularity.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/biosecurity.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/build_interface.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/atlas.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/durability.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/offtarget_data.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/position_effect_data.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/safety.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/cards/writer_efficiency_data.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/challenge.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/closed_loop.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/co_scientist.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/co_scientist_loop.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/delivery.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/delivery_immunology.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/delivery_recommender.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/digital_twin.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/dissemination.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/environment.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/experiment_design.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/generative_design.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/immune_profiler.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/index.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/integrations.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/live_oracles.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/mechanistic_constraints.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/offtarget.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/oracle_mesh.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/oracles.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/position_effect.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/positioning.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/private_data_formats.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/quickstart.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/responsible_use.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/rule_spec.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/rules.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/scope.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/scorecard.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/tpe_bench.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/tutorials/compare-families.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/tutorials/score-deliverability.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/tutorials/where-can-i-write.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/tutorials/which-writer-reaches-locus.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/uncertainty.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/verify.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/verify_service.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/world_model.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/writer_efficiency.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/writer_verification.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/writespec_bench.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/writespec_profile.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/docs/wtkb.md +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/_resources.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/acquire.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/brains.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/campaign.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/design.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/active/validate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/finetune.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/ingest.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/pipeline.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/recalibrate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/adapt/report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/cite.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/co_scientist.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/epistemic.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/guardrails.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/mcp_server.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/orchestrator.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/orchestrator_live.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/pen_agent.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/scope.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/agent/tools.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/api/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/api/manifest.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/build_wtkb.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/crosslink.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/expand.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/guide_design.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/schema.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/scorecard.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/universe.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/variant_propose.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/writer_efficiency.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/writer_predict.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/writer_recommend.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/atlas/writer_verify.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/activity.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/cli.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/fold_qc.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/guide_qc.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/ingest.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/offtarget.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/offtarget_energetics.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/ortholog_screen.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/bridge/pipeline.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/build/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/build/cloudlab.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/build/ingest.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/build/protocol.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/build/simlab.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/cli.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/encode.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/genome.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/ingest_chromatin.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/ingest_integration.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/ingest_safety_annot.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/data/ingest_trip.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/capsid_generate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/generate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/pareto.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/space.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/design/writer_variants.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/env/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/env/genome_writing_env.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/env/policies.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/build.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/cell_types.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/ingest.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/query.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/graph/schema.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/loop/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/loop/continual.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/loop/cycle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/loop/drift.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/mech/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/mech/classify_atlas.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/mech/whitelist.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/monitor/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/monitor/europepmc.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/monitor/run.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/monitor/triage.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/affinity.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/cache.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/energetics.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/genome.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/protein_design.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/reliability.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/rna.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/schema.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/status.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/structure.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/structure_run.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/oracles/vcell.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/ada_risk.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/antipeg_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/capsid_epitope_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/cargo.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/cargo_polish.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/chromosome.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery_constraints.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery_immune.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery_immunology.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery_predict.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/delivery_vehicles.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/genotoxicity_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/immune_mhc2.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/innate_sensing.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/multiplex.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/optimize.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/pipeline.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/router.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/seroprevalence_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/planner/target_site.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/corpus.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/embed.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/ground.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/index.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/llm.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/qa.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rag/retrieve.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/evaluators.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/loader.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/schema.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/solver.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/rules/spec.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/audit.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/gate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/policy.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/redteam.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/registry.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/screen.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/safety/standards.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/score/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/score/recalibrate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/score/therapeutic.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/server/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/server/api.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/clarify.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/extract.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/cell.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/chem.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/feature.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/gene.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/locus.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/resolvers/phenotype.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/satisfy.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/service.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/spec/writespec.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/calibrate.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/data/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/data/position_effect.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/mechanistic.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/outcome.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/twin/position_effect.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/ui/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/ui/app.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/adapt_demo.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/agent_eval.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_adversarial_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_coscientist_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_graph_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_rule_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_trust_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/bench_writetype_tasks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/blind_gsh_discovery.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/cargo_directionality.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/closed_loop.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/durability_baselines.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/experiment_design.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/expr_controls.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/forward_hypotheses.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/generative_design.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/guide_qc_demo.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/heldout_celltype_expr.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/immune_calibration.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/intent_specification.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/known_biology_expr.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/offtarget_energetics_eval.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/out_of_scope_refusal.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/outcome_calibration.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/outcome_prediction.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/paper3_benchmark.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/paper4_real_validation.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/paper4_validation.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/protocol_safety.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/safety_screening.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/selective_prediction.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/seq_vs_measured.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/target_site_controls.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/uncertainty_eval.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/ungrounded_baseline.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/within_locus_ranking.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/validate/writer_recovery.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/verify/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/verify/proof.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/verify/schema.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/verify/service.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/guide.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/llm.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/llm_provider.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/router.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/server.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/web/tools.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/__init__.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/chromatin_seq.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/durability.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/export_tracks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/features.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/gsh_baseline.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/mesh_features.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/offtarget_assay.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/offtarget_data.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/offtarget_predict.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/ood.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/providers.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/safety.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/structure3d.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/uncertainty.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack/wgenome/writability.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/SOURCES.txt +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/dependency_links.txt +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/entry_points.txt +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/requires.txt +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/pen_stack.egg-info/top_level.txt +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_phase0.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_phase1_5.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_phase2.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_phase3.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_a.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_acq.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_aldesign.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_alvalidate.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_atlas.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_b.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ba.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ba_v33.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ba_v45.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_bench.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_c.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_cal.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_calib.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_challenge.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_chat.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_cite.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_closedloop.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_continual.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_cosci2.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_crit.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ct.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_d.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_delivery.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_drift.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_e.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_env.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ep.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_epitope.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_expr2.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_f.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_frontend.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_g.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_gen.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_genotox.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_graph.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_h.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_hybrid.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_immune.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_immune2.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_ingest.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_innate.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_loop.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_manifest.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_mc.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_mcp.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_mech.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_mon.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_o.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_offtarget.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_openapi.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_oracle.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_orch.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_outcome.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_pareto.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_peg.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_penchat.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_plan.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_policy.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_profile.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_proto.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_r.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_redteam.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_route.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_screen.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_seroprev.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_simlab.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_twincal.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_uq.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_v.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_vcell.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_verify.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_writer.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_writespec.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/SHA256_LOCK_ws_wv.json +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/paper1.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/paper2.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/paper3.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/paper4.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/phase0.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_a.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_acq.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_aldesign.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_alvalidate.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_atlas.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_b.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ba.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ba_v33.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ba_v45.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_bench.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_c.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_cal.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_calib.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_challenge.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_chat.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_cite.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_closedloop.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_continual.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_cosci2.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_crit.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ct.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_d.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_delivery.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_drift.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_e.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_env.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ep.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_epitope.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_expr2.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_f.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_frontend.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_g.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_gen.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_genotox.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_graph.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_h.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_hybrid.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_immune.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_immune2.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_ingest.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_innate.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_loop.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_manifest.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_mc.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_mcp.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_mech.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_mon.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_o.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_offtarget.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_openapi.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_oracle.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_orch.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_outcome.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_pareto.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_peg.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_penchat.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_plan.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_policy.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_profile.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_proto.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_r.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_redteam.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_route.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_screen.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_seroprev.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_simlab.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_twincal.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_uq.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_v.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_vcell.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_verify.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_writer.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_writespec.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/prereg/ws_wv.yaml +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/build_capsid_fitness.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/build_rag_corpus.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/calibrate_immune_axes.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/fetch_licensed_sources.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/offtarget_chromatin_incremental.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/offtarget_chromatin_matched.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/offtarget_chromatin_validation.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_build_atlas.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_build_durability.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_build_position_effect.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_build_writer_eff.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_export_tracks.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_safety_concordance.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_train_safety.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p1_validation_report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p2_build_atlas.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p3_benchmark_report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p4_genome_scan.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p52_build_genotox_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/p53_build_epitope_oracle.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/ws_b_report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/scripts/ws_c_report.py +0 -0
- {pen_stack-7.1.5 → pen_stack-7.1.6}/setup.cfg +0 -0
|
@@ -3,6 +3,38 @@
|
|
|
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.6] - 2026-06-30 - Immune axes wired end-to-end + Delivery folded into Design Studio
|
|
7
|
+
|
|
8
|
+
### Fixed
|
|
9
|
+
- **Four immune-risk axes were unreachable from the web UI and showed as out-of-scope** — innate sensing, anti-PEG,
|
|
10
|
+
and the writer-as-antigen MHC-II + ADA axes abstained on every web design because the design form never collected
|
|
11
|
+
their inputs (the engine computed them correctly when called directly; this was a wiring gap, not a model gap):
|
|
12
|
+
- **`innate`** needs a cargo sequence. The design form now has an optional **Cargo sequence** field; the cargo
|
|
13
|
+
nucleic-acid form (DNA -> CpG/TLR9, mRNA -> U-content + dsRNA, RNP -> transient) is derived from the vehicle's
|
|
14
|
+
defining cargo class (`immune_profile._vehicle_cargo_form`) so the axis computes for any caller (chat / MCP /
|
|
15
|
+
REST) once a sequence is supplied. Empty sequence still abstains; an explicit `cargo_form` still wins. No
|
|
16
|
+
fabrication: an unknown vehicle returns no form and the axis abstains.
|
|
17
|
+
- **`mhc2_writer` / `ada_writer`** need a writer protein. The design form now has a **Writer enzyme** selector
|
|
18
|
+
(the three grounded families with a bundled UniProt sequence + committed NetMHCIIpan-4.0 cache: serine integrase
|
|
19
|
+
Bxb1, bridge recombinase ISCro4, Cas9 SpCas9); `DEFAULT_DESIGN` ships a serine integrase so the two axes populate
|
|
20
|
+
out of the box. No writer selected -> the two axes abstain (never fabricated).
|
|
21
|
+
- **`anti_peg`** applies only to PEGylated vehicles; selecting `lnp_mrna` now surfaces it (with an inline hint),
|
|
22
|
+
and it correctly abstains for non-PEG vehicles.
|
|
23
|
+
- `ImmuneProfileCard` now shows the **writer-as-antigen** summary (representative writer, foreign/self, dominant
|
|
24
|
+
antigen) so the writer axes are self-explanatory.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- **Delivery & Immunity folded into Design Studio.** The standalone Delivery page duplicated the same design form and
|
|
28
|
+
immune profile, so it is merged into Design Studio as a third action - **Profile immune & delivery** - with the
|
|
29
|
+
per-axis immune ScoreGuide, the vehicle quick-switch, the `ImmuneProfileCard` and the scope ledger. Design Studio is
|
|
30
|
+
now one design surface with three actions (Verify / Generate / Profile immune & delivery). `/delivery` redirects to
|
|
31
|
+
`/design`; the nav drops the separate item; old links keep working.
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- `test_ws_profile.py`: tests for the vehicle-derived cargo form (innate computes for a DNA vehicle with a cargo
|
|
35
|
+
sequence; abstains without one; explicit form overrides) and for the writer axes computing when a grounded writer
|
|
36
|
+
is supplied (and abstaining otherwise).
|
|
37
|
+
|
|
6
38
|
## [7.1.5] - 2026-06-29 - Chromosome field: validation, gene concordance, context
|
|
7
39
|
|
|
8
40
|
### Added
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
cff-version: 1.2.0
|
|
2
2
|
message: "If you use PEN-STACK, please cite it as below."
|
|
3
3
|
title: "PEN-STACK: open infrastructure for genome writing"
|
|
4
|
-
version: 7.1.
|
|
5
|
-
date-released: 2026-06-
|
|
4
|
+
version: 7.1.6
|
|
5
|
+
date-released: 2026-06-30
|
|
6
6
|
authors:
|
|
7
7
|
- family-names: "Mahaboob Ali"
|
|
8
8
|
given-names: "Anees Ahmed"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.6
|
|
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.6"
|
|
@@ -53,6 +53,34 @@ _SCORE_KEY = {"genotoxicity": "genotox_score", "cd8_epitope": "capsid_immune_sco
|
|
|
53
53
|
"innate": "innate_score", "preexisting_nab": "preexisting_score",
|
|
54
54
|
"anti_peg": "preexisting_antipeg_score"}
|
|
55
55
|
|
|
56
|
+
# Canonical cargo nucleic-acid FORM per delivery vehicle, used to drive the innate-sensing pathway (DNA -> TLR9
|
|
57
|
+
# CpG; mRNA -> TLR7/8 + RIG-I/MDA5; RNP -> transient) when a design does not state ``cargo_form`` explicitly.
|
|
58
|
+
# This is the vehicle's defining cargo class, NOT a fabricated quantity: an LNP-mRNA vehicle delivers mRNA, a
|
|
59
|
+
# DNA-virus / electroporated-plasmid vehicle delivers DNA, an (e)VLP delivers a transient ribonucleoprotein. A
|
|
60
|
+
# lentivirus is packaged as RNA but the persistent, innate-relevant cassette is the integrated proviral DNA.
|
|
61
|
+
# An unknown vehicle returns None so the innate axis ABSTAINS rather than guesses a form.
|
|
62
|
+
_VEHICLE_CARGO_FORM = {
|
|
63
|
+
"lnp_mrna": "mRNA",
|
|
64
|
+
"aav_single": "DNA", "aav_dual": "DNA", "lentivirus": "DNA",
|
|
65
|
+
"helper_dependent_adenovirus": "DNA", "hsv_amplicon": "DNA", "electroporation": "DNA",
|
|
66
|
+
"evlp": "RNP", "vlp": "RNP",
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _vehicle_cargo_form(vehicle: str | None) -> str | None:
|
|
71
|
+
"""Derive the cargo nucleic-acid form (DNA / mRNA / RNP) from the delivery vehicle, or None when unknown.
|
|
72
|
+
Used only when the design does not supply ``cargo_form`` / ``writer_output_form`` explicitly."""
|
|
73
|
+
if not vehicle:
|
|
74
|
+
return None
|
|
75
|
+
v = str(vehicle).strip().lower()
|
|
76
|
+
if v in _VEHICLE_CARGO_FORM:
|
|
77
|
+
return _VEHICLE_CARGO_FORM[v]
|
|
78
|
+
if "mrna" in v or "lnp" in v:
|
|
79
|
+
return "mRNA"
|
|
80
|
+
if "vlp" in v:
|
|
81
|
+
return "RNP"
|
|
82
|
+
return None
|
|
83
|
+
|
|
56
84
|
|
|
57
85
|
def _axis(result, axis: str) -> dict:
|
|
58
86
|
"""One axis record: value (headline score or None when abstaining) + native uncertainty + scope + the
|
|
@@ -108,7 +136,11 @@ def immune_profile(design: dict) -> dict:
|
|
|
108
136
|
veh = design.get("delivery_vehicle") or design.get("vehicle")
|
|
109
137
|
sero = design.get("serotype")
|
|
110
138
|
cargo_seq = design.get("cargo_seq") or ""
|
|
111
|
-
form
|
|
139
|
+
# cargo form: honour an explicit design field, else derive it from the vehicle's defining cargo class so the
|
|
140
|
+
# innate axis computes for any caller (chat / MCP / REST) once a cargo sequence is supplied. Still abstains
|
|
141
|
+
# with no sequence and for an unknown vehicle (form None) - never fabricates.
|
|
142
|
+
form = (design.get("writer_output_form") or design.get("cargo_form")
|
|
143
|
+
or _vehicle_cargo_form(veh) or "")
|
|
112
144
|
peg = design.get("pegylated")
|
|
113
145
|
|
|
114
146
|
capsid_cd8 = capsid_epitope_oracle(veh)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pen-stack
|
|
3
|
-
Version: 7.1.
|
|
3
|
+
Version: 7.1.6
|
|
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.6"
|
|
8
8
|
description = "Open infrastructure for genome writing: the Writable Genome atlas, the Writer Atlas, and the Write Planner."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|