单 Agent 运行
20261003-155754-t3-gata4-komix-c
| 运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。 | 20261003-155754-t3-gata4-komix-c |
|---|---|
| 方式?自动搜索:ERA 式搜索树,多个节点不断改进程序;单 Agent:一个 Agent 会话从头做到尾。 | 单 Agent |
| 框架 / 模型 | opencode / alibaba-token-plan-cn/qwen3.8-max |
| 题目?比赛的哪道题、哪个阶段,例如 T1:val 是第 1 题的验证阶段。 | T3:gata4 |
| 状态 | 已结束 |
| 后台服务?在 Spark 上以 systemd 用户服务运行的程序,例如每次运行和这个看板本身。 | vec-t3-gata4-komix-c-20261003-155754 |
| 开始 / 结束 | 10-03 15:57 / 10-03 16:37 |
| 预算 | 4 小时,最多 400 轮 |
| 启动时代码有未提交改动?启动时代码仓库有未提交的修改,这次运行不能完全按 git 版本复现。 | 否 |
| 最终文件 | T3__gata4.h5ad |
最终选择说明 SELECTION.md
T3:gata4 — 终选说明(run 20261003-155754-t3-gata4-komix-c)
本 run 只做头部 boards 里的 T3:gata4。
选定的提交
| 项 | 值 |
|---|---|
| 文件 | final/T3__gata4.h5ad |
| 方法 | komix(方法卡 v2 主线):观察到的训练敲除的真实细胞 + 本榜阶段匹配 WT 的真实细胞 |
| 参数 | beta=0.70(本 run 变体 c 起点)、k=0.75、seed=0、max_cells=7449、zero_gene=off |
| 命令 | python scripts/t3_komix.py --wt data/raw/official/t3/WT_E8.75.h5ad --ko data/raw/official/t3/E9.5_mab21l2_ko.h5ad --out final/T3__gata4.h5ad --beta 0.70 --k 0.75 --seed 0 --max-cells 7449 |
| 细胞数 | 7449 = 5587 WT E8.75(75.0%)+ 1862 Mab21l2 KO E9.5(25.0%),在 manifest [1000, 7449] 内 |
| 格式 | python scripts/verify_submission.py --input final/T3__gata4.h5ad --board T3:gata4 → SUCCESS(500 基因顺序一致、obsm["spatial_3D"] 有限、无 NaN) |
| 非零比例 | 输出 0.10173 / WT 输入 0.10498 = 0.969,在硬检查区间 [0.8, 1.25] 内(未稠密化:komix 只拼接真实细胞) |
输出含训练敲除样本(Mab21l2 KO E9.5,官方训练数据)的真实细胞,占 ko_fraction = 0.24997(1862 / 7449);
这些细胞保留自己的表达与自己的 spatial_3D。同一份信息写在文件的 uns["t3_komix"]
(n、n_wt、n_ko、ko_fraction、params、disclosure)。
为什么选它
- 本 run 的任务就是测这个点。 komix 有三个 run 变体,只在起点
(beta, k)上不同;本 run 是变体 c(0.70, 0.75)(组成压得更少、WT 更多、变化更小)。主线参数按任务书原样使用,run 内没有改动, 以免污染跨 run 的beta/k比较。 - T3 没有可用的本地目标尺子,所以按机制选。
lgo(参考 = 训练样本同阶段 WT)已知与官网完全反序;lgo875只有三个点、且与打分服务视图机制相同,不是独立证据。方法卡明确要求:不用本地尺子分选择。 终选依据是"机制上站得住 + 通过非零比例检查"。 - 机制上,混合真实敲除细胞提供方向,
k提供幅度。 官网五项里三项响应指标只看dp相对匹配 WT 的 排序与符号,severity_slope是唯一看幅度的项且双向扣分。komix 的dp全部来自真实细胞的拼接, 零结构原样保留(因此variogram不会被稠密化破坏)。只用训练数据做的诊断(out/logs/komix_diag.txt):cos(dp, WT E8.75→E9.5 发育轴) = 0.824,dp ≈ 0.19 × dev:变化以"发育前进"为主,幅度约为 一个完整 E8.75→E9.5 位移的 1/5(与ko_fraction = 0.25一致)。|dp| ≥ 0.25(真值响应基因的幅度门槛)的基因有 21 个,std(dp) = 0.103, 远高于"无变化保护"阈值(1% × std(dt)),不会触发 DE 两项记 0 的保护。dp的前 15 上调基因是Meg3 H19 Myl7 Ttn Col3a1 Col1a1 Tnc Ankrd1 Hand2 Myl4 …, 前 15 下调是Cadm1 Gja1 Crabp1 Ezr Irx5 Smoc1 …:即心脏成熟/ ECM 上、神经与早期模式基因下, 与"沿 E8.75 → 更晚阶段方向走"一致。
已评估但否决的变体
--zero-gene Gata4(v1 self_zero 部件)。 诊断显示主线输出里Gata4的dp = +0.092(敲除池来自 E9.5,其Gata4比 E8.75 高,pb_wt = 0.918、pb_pred = 1.010), 对功能丧失敲除而言这个符号可疑。但按五项指标的公式估算,置零只动 500 个基因里的 1 个:de_score约 +1 次命中(≈ +0.2 分)、de_direction秩相关约 +0.01(≈ +0.14 分)、severity_slope的双向扣分使幅度项符号不定,合计落在 ±0.5 分的噪声内; 同时它会破坏本 run 与另两个 run"只差beta/k"的设计。因此保持主线默认(关)。 对照文件已生成并通过格式与非零比例检查(out/komix_b070_k075_s0_zeroGata4.h5ad, density_ratio 0.965),未进final/。beta/k邻域搜索。 任务书与方法卡都禁止 run 内用本地尺子选;没有其他可检验的依据。未做。- 全局位移迁移、逐基因编辑(文献/共表达/调控网络)、任何稠密化。 方法卡"禁做"清单,未使用。
- 载体换成 WT E9.5 或混合两个 WT 阶段。 本榜的参考是 E8.75 的匹配 WT,换载体会额外注入与敲除无关的 发育位移。未做。
替代评测记录(只记录,不是选择依据)
final/proxy/T3__gata4.h5ad = 同一组参数(beta=0.70 k=0.75 seed=0 max_cells=7449)加 --ko-exclude-half B:
本地尺子的真值是训练敲除样本 split_half(seed=0) 的第二半,不排除就等于把真值细胞交上去,分数没有意义。
该文件同样是 7449 个细胞(5587 WT + 1862 敲除,敲除细胞全部来自第一半),density_ratio 0.966,
verify_submission.py 通过。提交文件不加这个参数。
| 尺子 | 分数 | 说明 |
|---|---|---|
lgo(= score_proxy.py --board T3:gata4,参考 WT E9.5,真值 = Mab21l2 KO split-half B) | 63.98 | floor(wt_identity) 50.00、ceiling(split_half) 100.00;分组 response_genes 57.3 / direction 62.7 / magnitude 94.5 / cell_state 37.5;指标 de_score 0.2429、de_direction 0.4031、severity_slope −0.3966、mmd_u 0.0278、variogram 0.0308。已知与官网反序,不是官网分的估计。 |
lgo875 变体(参考 = WT E8.75,同一真值) | 85.20(记录) | 记录一次作参考,未调参、未用于选择;见下。 |
lgo875(out/logs/lgo875_record.log,anchors 在 out/anchors_lgo875/T3_lgo875.json,
floor 50.00 / ceiling 100.00):proxy_skill 85.20,分组 response_genes 0.929 / direction 0.957 /
magnitude 0.828 / cell_state 0.636;指标 de_score 0.9032、de_direction 0.9529、
severity_slope −1.4320(即 dp ≈ 0.24 × dt)、mmd_u 0.0278、variogram 0.0308。
这把尺子的真值 = Mab21l2 KO E9.5 的第二半、参考 = WT E8.75,所以它的 dt 里含完整的 E8.75→E9.5
发育位移,它奖励的正是"沿发育方向前进";本榜的 dt 是同阶段的敲除效应,两者不是一回事。
按方法卡:只有三个点、与打分服务视图机制相同,不是独立证据,不作为选择依据。
proxy_score T3:gata4 63.98
合规
- 只读
data/raw/official/t3/{WT_E8.75,WT_E9.5,E9.5_mab21l2_ko}.h5ad与data/reference/panels/;未修改它们。 - 未使用任何保留基因型的数据或由其导出的信息(Gata4 敲除、β-catenin 敲除、任何等位基因或表型相似的扰动), 也未使用任何禁用时间窗内的外部数据。
- 输出里的
obs["celltype"]是 komix 程序的规范输出(方法卡 v2:类型同义词表用于分组抽样与输出标签)。 T3 的排名指标不使用细胞类型标签,obs_required为空,verify_submission.py通过。 - 文件大小 3.5 MB(< 1200 MB),无 NaN。
外部数据披露
无。
出处?这次运行用的代码、配置、数据和模型的指纹,靠它们可以原样找回并复现。
| 代码版本?运行锁定时代码仓库的 git 提交号;带 +dirty 表示当时有未提交的改动。 | bc1f100a4d3d9e4d4e1ee7eb6f5c2826c75710db |
|---|---|
| 版本标签?可提交运行在锁定的提交上打的 git 标签 run/<运行编号>,以后能原样找回代码。 | — |
| 配置文件 | agent/configs/experiments/g24_t2_t3/t3_komix_c.yaml 配置指纹 f02d79c39a9b48bc |
| 锁定指纹?启动时把配置、代码、提示词等全部锁定后算出的总指纹。 | 7c1675b4cd8e6808 锁定格式 v4 |
| 运行专用代码副本?启动时为这次运行单独检出的一份只读代码;运行全程只读它,不受主副本更新影响。 | 没有(这次运行早于运行专用代码副本功能,读的是启动时的代码副本) |
| 大模型?每个角色用的大模型;括号里是接口实际报告的模型名。 | Agent:alibaba-token-plan-cn/qwen3.8-max |
| 运行目录 | /home/spark-longxinyang/vec/runs/formal/20261003-155754-t3-gata4-komix-c 主机 spark-ad3f |
| 提交账本?notes/changelogs/submissions.tsv:每次上传官网的记录和返回的官网分。 | 这次运行没有提交过官网 |
| 迭代报告?运行结束后自动生成的中文复盘报告(notes/reports/runs)。 | 还没有迭代报告 |