总览 · ← 返回运行 20261003-043412-search-t2-embryo-interp-g24-D-s1
节点 n24
实现 b 侧选胞后型内方差恢复(f_c=1+β(σ²_all/σ²_sel−1) 径向膨胀);mmd_u 三 seed 一致改善但 variogram 等量变差、cell_state 微降,净榜分噪声内证伪,提交 β=0 与父逐位一致。
| 运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。 | 20261003-043412-search-t2-embryo-interp-g24-D-s1 |
|---|---|
| 父节点 | n21 |
| 子节点 | n26 |
| 操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。 | 改进 |
| 状态 | 已打分 |
| 分数 | 搜索目标分 62.15(+0.0) · proxy 62.15(+0.0) |
| 审查 | 未审查 |
| 用时?从运行开始到结束(或到现在)的挂钟时间。 | 13 分 |
| 程序版本 | 382cb0c1863e1928b72dc844f2115f46b8b299ba (programs.git) |
方法说明?节点程序自带的 METHOD.md:这个程序做了什么、为什么。
来自 programs.git 382cb0c186:solution/METHOD.md
实现 b 侧选胞后型内方差恢复(f_c=1+β(σ²_all/σ²_sel−1) 径向膨胀);mmd_u 三 seed 一致改善但 variogram 等量变差、cell_state 微降,净榜分噪声内证伪,提交 β=0 与父逐位一致。
方法(family T2EI-09,improve over node 21)
底座不变:interp_bracket → procrustes3d → scale_damp=0.5 目标 RMS → κ=0.65 组成阻尼 → b 侧型内中间态偏好选胞(SEL_P=1.0,blend 质心)→ b 侧全局 xy 径向膨胀 γ=1.15 → jitter + 终缩放。
新增一步(run.py 中 VARRESTORE_* 段,b 侧选胞后、jitter 前):对每个共有型 c,
在双阶段合并 z-scored panel 空间计算 σ²_all(该型全体 b 细胞、按型内均值中心化的逐基因方差之和)
与 σ²_sel(被选子集同法),膨胀因子 f_c=1+β·(σ²_all/σ²_sel−1);每个被选 b 细胞
z′=μ_sel_c+f_c·(z−μ_sel_c),逆变换回表达空间并 clip≥0。坐标不动。
型内被选 <3(VARRESTORE_MIN)跳过。单输入退路:无括号 → 无 b 侧 → 跳过,与父一致。
机制证据(mechanism_evidence)
机制确实运行:β=0.5/seed0 诊断显示 11 个共有型、675 个被选 b 细胞全部被膨胀; σ²_all/σ²_sel 型间均值 2.81(选择确实把型内方差压缩到 ~1/2.8,验证 PLAN 前提), f_c 均值 1.91,膨胀后 var_after/var_before 均值 3.86 ≈ 1+β·(ratio−1) 的理论值。 表达分布宽度指标 mmd_u 随 β 单调改善且跨 seed 一致: 0.01116→0.01049(β=0.25, s0)、0.01096→0.01030(s1)、0.01080→0.01018(s2)。 即"选胞压缩型内方差、恢复宽度能改善分布匹配"这一半是成立的。
但四组分变化与 PLAN 预期不符:目标组 cell_state 没有上升——β=0.25 时三个 seed 分别 −0.04/−0.08/−0.11(52.84→52.80、53.27→53.19、53.46→53.35)。 原因在 cell_state 的另一个成分 variogram 随 β 单调变差且跨 seed 一致: 0.01094→0.01163(s0)、0.01076→0.01147(s1)、0.01074→0.01144(s2)—— 逐细胞径向膨胀放大了空间邻近细胞间的表达差,破坏表达的空间自相关, 与 mmd_u 的收益互相抵消。expression_change 在 seed0/1 上 +0.75/+0.62(de_score 0.25→0.2857) 但 seed2 上 −0.10(de_score 不动),不稳定。local_spatial/shape_scale 如预期不变(坐标未动)。
机制对照(mechanism_off_control)与查分全表
off 对照 = VARRESTORE_BETA=0(代码默认,提交态),f_c≡1、z′=z,输出与父节点逐位一致 (md5 b86afc108c424bc0761200595d6a772b,与节点 21 提交态相同;重跑确定性验证通过,vec-check ok)。
A 半代理(E6.75+E8.0→E7.25,t=0.4):
| 配置 | seed | 榜分 | cell_state | expr_change | shape | local | mmd_u | variogram |
|---|---|---|---|---|---|---|---|---|
| β=0(父,提交) | 0 | 61.14 | 52.84 | 60.50 | 72.18 | 59.03 | 0.01116 | 0.01094 |
| β=0.15 | 0 | 61.17 | 52.84 | 60.55 | 72.18 | 59.09 | 0.01072 | 0.01136 |
| β=0.25 | 0 | 61.33 | 52.80 | 61.25 | 72.18 | 59.08 | 0.01049 | 0.01163 |
| β=0.35 | 0 | 61.28 | 52.71 | 61.18 | 72.18 | 59.04 | 0.01032 | 0.01190 |
| β=0.5 | 0 | 60.98 | 52.50 | 60.31 | 72.18 | 58.93 | 0.01014 | 0.01230 |
| β=0(父) | 1 | 61.62 | 53.27 | 60.93 | 72.28 | 60.00 | 0.01096 | 0.01076 |
| β=0.25 | 1 | 61.76 | 53.19 | 61.55 | 72.28 | 60.03 | 0.01030 | 0.01147 |
| β=0(父) | 2 | 61.58 | 53.46 | 60.59 | 72.23 | 60.03 | 0.01080 | 0.01074 |
| β=0.25 | 2 | 61.53 | 53.35 | 60.49 | 72.23 | 60.04 | 0.01018 | 0.01144 |
β 响应曲线在 0.25 附近见顶(+0.19),但 3-seed 均值只有 +0.09(61.45→61.54), 小于噪声,且 PLAN 目标组 cell_state 三 seed 一致微降。按 PLAN 停止条款 (首查 cell_state 无升反降 → 停止并提交 β=0)提交父配置。
结论与教训
- 机制部分成立、整体证伪:中间态选胞确实压缩型内方差(ratio≈2.8),等比恢复确实一致改善 mmd_u;但 cell_state 不是只看分布宽度——variogram(空间表达自相关)以几乎等量恶化, 净收益为零。这说明表达空间里逐细胞各向同性的方差操纵(无论收缩还是膨胀)都被 mmd_u 与 variogram 的对冲卡死:节点 8/12/17/21 证伪了收缩方向,本节点证伪了膨胀方向。
- 若要利用"方差缺口",恢复必须以不破坏空间自相关的方式进行,例如按空间平滑的 型×区域局部均值偏移(同区域细胞同向移动)而非逐细胞独立径向膨胀;或只在 与空间无关的基因子集上恢复方差。留给后续节点。
- de_score 对表达扰动的响应是台阶状(0.25↔0.2857)且跨 seed 不稳定,不能作为优化信号。
验证过 / 没验证
- 验证过:β=0 与父 md5 逐位一致;β∈{0.15,0.25,0.35,0.5}×seed0 与 β=0.25×seed{1,2} 的完整响应曲线(9 次查分,额度内);确定性重跑;vec-check ok;单输入退路代码路径与父一致。
- 没验证:空间平滑型方差恢复(上面的后续方向);β 与 κ/γ 的交互(底座参数未动)。
知识来源
无新增外部生物学知识;全部计算只来自视图内两个输入阶段的表达、标签与坐标。
调研员的计划
| 名称 | b侧选胞型内方差恢复(variance restoration after mid-state selection) |
|---|---|
| 动机 | 父节点21提交态与节点11/19逐位一致(62.15),最弱组cell_state=54.35。四次证伪(节点8/12/17/21)表明表达向质心收缩系统性有害,但ANALYSIS指出未验证反方向:SEL_P=1.0的中间态选胞必然压缩型内方差(只选距blend质心最近的细胞),导致输出分布比参考窄。节点21诊断显示δ≈0.14仅~1%的收缩已使mmd_u恶化,说明scorer对型内方差极为敏感,方向可能是需要更多方差而非更少。 |
| 做法 | 在b侧选胞之后、jitter之前新增方差恢复步骤:对每个共有型c,计算选前全体b细胞的型内方差σ²_all与选后子集方差σ²_sel(均在合并z-scored panel空间、按型内均值中心化后计算各基因方差之和)。膨胀因子f_c=1+β·(σ²_all/σ²_sel−1),β∈{0.25,0.5,0.75,1.0}。对每个被选b细胞:z'=μ_sel_c+f_c·(z−μ_sel_c),逆变换回表达空间并clip≥0。坐标不动。关键初值β=0.5(恢复一半方差缺口)。搜索范围β∈[0.25,1.0]步长0.25,共4配置。单输入退路:无括号→无b侧→跳过,与父一致。vec-score快速筛选:先跑β=0.5/seed0,若cell_state<54.35则立即停止提交β=0;若升则补测β=0.25和0.75确认单调性。型内被选<3个细胞跳过(与SHRINK_MIN一致)。 |
| 风险 | 1)参考目标型内方差可能并不比全选b侧更宽(若目标更同质),则膨胀有害→首查β=0.5即可发现(cell_state降则停)。2)f_c过大可能将表达推出合理范围→clip≥0兜底,且β≤1限制最大膨胀为σ²_all/σ²_sel(通常<2)。3)expression_change可能受微小影响(方差变但均值不变,理论上影响极小)。Engineer应在首查后同时检查四组分,若expression_change降>0.5则停止。 |
代码改动?这个节点的程序和父节点程序的逐行差别:绿色是新增,红色是删除。
对比:父节点版本 f24a81326d。改动的文件:solution/METHOD.md +55 −42、solution/run.py +62 −1
diff --git a/solution/METHOD.md b/solution/METHOD.mdindex 0815e9f..18d5d96 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,60 +1,73 @@-按 PLAN T2EI-09 实现 b 侧选入细胞的型内分级表达收缩(向混合质心 (1−t)μ_a+tμ_b 移动 δ=α·d/d_max,保坐标);代理上 cell_state 随 α 单调下降、机制证伪,提交态 SHRINK_ALPHA=0,输出与节点 11/19 逐位一致(md5 相同)。+实现 b 侧选胞后型内方差恢复(f_c=1+β(σ²_all/σ²_sel−1) 径向膨胀);mmd_u 三 seed 一致改善但 variogram 等量变差、cell_state 微降,净榜分噪声内证伪,提交 β=0 与父逐位一致。 -## 方法(family T2EI-09,improve over node 19)+## 方法(family T2EI-09,improve over node 21) -底座不变:interp_bracket → procrustes3d 对齐 → scale_damp=0.5 目标 RMS → κ=0.65 组成阻尼-→ b 侧型内中间态偏好选胞(blend 质心,SEL_P=1.0)→ b 侧全局 xy 径向膨胀 γ=1.15 → jitter + 终缩放。-新增一步(在 b 侧选胞之后、jitter 之前,`run.py` 中 `SHRINK_*` 段):对每个共有型中被选入的 b 细胞,-在双阶段合并 z-scored panel 空间里计算到型混合质心 μ_blend=(1−t)μ_a+tμ_b 的距离 d_i,-δ_i=SHRINK_ALPHA·d_i/d_max(型),x′_i=x_i−δ_i·(x_i−μ_blend)/‖x_i−μ_blend‖,逆变换回表达空间并 clip≥0。-坐标不动。SHRINK_GRADED=0 时 δ 统一为 SHRINK_ALPHA(对照分级);型内被选 <3 跳过。-单输入退路:无括号 → 无 b 侧 → 收缩跳过,与父一致。+底座不变:interp_bracket → procrustes3d → scale_damp=0.5 目标 RMS → κ=0.65 组成阻尼+→ b 侧型内中间态偏好选胞(SEL_P=1.0,blend 质心)→ b 侧全局 xy 径向膨胀 γ=1.15 → jitter + 终缩放。++新增一步(`run.py` 中 `VARRESTORE_*` 段,b 侧选胞后、jitter 前):对每个共有型 c,+在双阶段合并 z-scored panel 空间计算 σ²_all(该型全体 b 细胞、按型内均值中心化的逐基因方差之和)+与 σ²_sel(被选子集同法),膨胀因子 f_c=1+β·(σ²_all/σ²_sel−1);每个被选 b 细胞+z′=μ_sel_c+f_c·(z−μ_sel_c),逆变换回表达空间并 clip≥0。坐标不动。+型内被选 <3(VARRESTORE_MIN)跳过。单输入退路:无括号 → 无 b 侧 → 跳过,与父一致。 ## 机制证据(mechanism_evidence) -机制确实运行:α=0.15/seed0 诊断显示 11 个共有型、675 个被选 b 细胞全部被收缩,-δ 均值 0.139、P90 0.148(z 单位),型内表达方差比 var_after/var_before 均值 0.980;-local_spatial(59.03→59.02)与 shape_scale(72.18→72.18)如预期不变(坐标未动)。-但四组分变化方向与 PLAN 预期相反:cell_state 随 α 单调**下降**,expression_change 持平。+机制确实运行:β=0.5/seed0 诊断显示 11 个共有型、675 个被选 b 细胞全部被膨胀;+σ²_all/σ²_sel 型间均值 2.81(选择确实把型内方差压缩到 ~1/2.8,验证 PLAN 前提),+f_c 均值 1.91,膨胀后 var_after/var_before 均值 3.86 ≈ 1+β·(ratio−1) 的理论值。+表达分布宽度指标 mmd_u 随 β 单调改善且跨 seed 一致:+0.01116→0.01049(β=0.25, s0)、0.01096→0.01030(s1)、0.01080→0.01018(s2)。+即"选胞压缩型内方差、恢复宽度能改善分布匹配"这一半是成立的。++但四组分变化与 PLAN 预期不符:目标组 cell_state 没有上升——β=0.25 时三个 seed+分别 −0.04/−0.08/−0.11(52.84→52.80、53.27→53.19、53.46→53.35)。+原因在 cell_state 的另一个成分 variogram 随 β 单调变差且跨 seed 一致:+0.01094→0.01163(s0)、0.01076→0.01147(s1)、0.01074→0.01144(s2)——+逐细胞径向膨胀放大了空间邻近细胞间的表达差,破坏表达的空间自相关,+与 mmd_u 的收益互相抵消。expression_change 在 seed0/1 上 +0.75/+0.62(de_score 0.25→0.2857)+但 seed2 上 −0.10(de_score 不动),不稳定。local_spatial/shape_scale 如预期不变(坐标未动)。 ## 机制对照(mechanism_off_control)与查分全表 -off 对照 = SHRINK_ALPHA=0(代码默认,提交态),输出与父节点 11/19 逐位一致-(md5 b86afc10…,重复运行确定性验证通过,vec-check ok)。A 半代理(E6.75+E8.0→E7.25,t=0.4)seed0:+off 对照 = VARRESTORE_BETA=0(代码默认,提交态),f_c≡1、z′=z,输出与父节点逐位一致+(md5 b86afc108c424bc0761200595d6a772b,与节点 21 提交态相同;重跑确定性验证通过,vec-check ok)。 -| 配置 | 榜分 | cell_state | expr_change | shape | local |-|---|---:|---:|---:|---:|---:|-| α=0(父,**提交**) | 61.14* | 52.84* | 60.50* | 72.18* | 59.03* |-| α=0.05 分级 | 61.05 | 52.49 | 60.50 | 72.18 | 59.03 |-| α=0.15 分级 | 60.98 | 52.24 | 60.50 | 72.18 | 59.02 |-| α=0.15 均匀(GRADED=0) | 60.98 | 52.20 | 60.50 | 72.18 | 59.02 |-| α=0.25 分级 | 60.94 | 52.04 | 60.51 | 72.18 | 59.01 |+A 半代理(E6.75+E8.0→E7.25,t=0.4): -*父值取自节点 19 METHOD.md 的同半同 seed 实测(本节点未重复查父,md5 一致故分数相同)。+| 配置 | seed | 榜分 | cell_state | expr_change | shape | local | mmd_u | variogram |+|---|---|---:|---:|---:|---:|---:|---:|---:|+| β=0(父,**提交**) | 0 | 61.14 | 52.84 | 60.50 | 72.18 | 59.03 | 0.01116 | 0.01094 |+| β=0.15 | 0 | 61.17 | 52.84 | 60.55 | 72.18 | 59.09 | 0.01072 | 0.01136 |+| β=0.25 | 0 | 61.33 | 52.80 | 61.25 | 72.18 | 59.08 | 0.01049 | 0.01163 |+| β=0.35 | 0 | 61.28 | 52.71 | 61.18 | 72.18 | 59.04 | 0.01032 | 0.01190 |+| β=0.5 | 0 | 60.98 | 52.50 | 60.31 | 72.18 | 58.93 | 0.01014 | 0.01230 |+| β=0(父) | 1 | 61.62 | 53.27 | 60.93 | 72.28 | 60.00 | 0.01096 | 0.01076 |+| β=0.25 | 1 | 61.76 | 53.19 | 61.55 | 72.28 | 60.03 | 0.01030 | 0.01147 |+| β=0(父) | 2 | 61.58 | 53.46 | 60.59 | 72.23 | 60.03 | 0.01080 | 0.01074 |+| β=0.25 | 2 | 61.53 | 53.35 | 60.49 | 72.23 | 60.04 | 0.01018 | 0.01144 | -结论:**机制证伪**。按 PLAN 风险条款(α=0.15 首查 cell_state 无升反降 → 立即停止;-两配置差 <0.5 → 放弃切换),提交父配置。诊断:δ≈0.14 z 单位仅为 d≈14 的 ~1%,-如此微小的向质心位移已使 mmd_u 变差(0.01116→0.01120)、cell_state 单调降,-说明「b 侧细胞的中间态偏好」在选胞(选哪些细胞)阶段已榨干,任何进一步向型质心的-表达收缩都只侵蚀型内方差而不改善分布匹配;分级与均匀无差别(52.24 vs 52.20)进一步-说明问题在收缩方向本身而非分级方式。与节点 8(向 a 型均值收缩)、节点 12(配对插值)、-节点 17(OT 投影)同族证伪:**表达空间的型内线性收缩/插值在此代理上系统性有害**。+β 响应曲线在 0.25 附近见顶(+0.19),但 3-seed 均值只有 +0.09(61.45→61.54),+小于噪声,且 PLAN 目标组 cell_state 三 seed 一致微降。按 PLAN 停止条款+(首查 cell_state 无升反降 → 停止并提交 β=0)提交父配置。 -## 验证过 / 没验证+## 结论与教训 -- 验证过:4 个 α 配置 + 均匀对照各 seed0(4 次查分,额度内);SHRINK_ALPHA=0 与父 md5 逐位一致;- seed0/seed1 重跑确定性;vec-check(α=0 与 α=0.15 输出均 ok)。-- 没验证:多 seed 的 α>0 配置(单调趋势已明确,浪费额度);负 α(远离质心膨胀表达)——- 方向上等价于放大型内方差,与节点 5/6 的占据结论无冲突,可作为后续探索。+- 机制部分成立、整体证伪:中间态选胞确实压缩型内方差(ratio≈2.8),等比恢复确实一致改善+ mmd_u;但 cell_state 不是只看分布宽度——variogram(空间表达自相关)以几乎等量恶化,+ 净收益为零。这说明**表达空间里逐细胞各向同性的方差操纵(无论收缩还是膨胀)都被+ mmd_u 与 variogram 的对冲卡死**:节点 8/12/17/21 证伪了收缩方向,本节点证伪了膨胀方向。+- 若要利用"方差缺口",恢复必须以不破坏空间自相关的方式进行,例如按空间平滑的+ 型×区域局部均值偏移(同区域细胞同向移动)而非逐细胞独立径向膨胀;或只在+ 与空间无关的基因子集上恢复方差。留给后续节点。+- de_score 对表达扰动的响应是台阶状(0.25↔0.2857)且跨 seed 不稳定,不能作为优化信号。 -## 下一步建议+## 验证过 / 没验证 -- cell_state 的余量不在「表达向质心收缩」维度(节点 8/12/17/21 四次证伪),- 要么改变 b 侧细胞的身份来源(如用 a-b 近邻差分外推生成真正的新中间态,而非搬运/收缩真实细胞),- 要么转向 local_spatial / shape_scale 的各向异性占据补偿(节点 13 建议)。-- 可低成本试 SHRINK_ALPHA<0(沿远离质心方向移动 δ,放大型内方差)验证 cell_state- 对型内方差的敏感性方向,作为下一个 improve 节点的一票筛选。+- 验证过:β=0 与父 md5 逐位一致;β∈{0.15,0.25,0.35,0.5}×seed0 与 β=0.25×seed{1,2}+ 的完整响应曲线(9 次查分,额度内);确定性重跑;vec-check ok;单输入退路代码路径与父一致。+- 没验证:空间平滑型方差恢复(上面的后续方向);β 与 κ/γ 的交互(底座参数未动)。 ## 知识来源 -无新增外部生物学知识;全部计算只来自视图内两个输入阶段(E6.75/E8.0)的表达、标签与坐标。+无新增外部生物学知识;全部计算只来自视图内两个输入阶段的表达、标签与坐标。diff --git a/solution/run.py b/solution/run.pyindex c52a56b..274fcb0 100644--- a/solution/run.py+++ b/solution/run.py@@ -65,6 +65,12 @@ only ~1% of d (delta ~0.14 z-units vs d ~14). The mid-state preference is already exhausted by WHICH cells are selected; pulling them further toward the centroid only erodes within-type variance. Submitted default SHRINK_ALPHA=0 is bit-identical to node 11/19 (md5 verified).++Change (PLAN T2EI-09, node 24): within-type variance restoration of the+selected b cells. Midstate selection compresses within-type variance; for+each shared type, f_c = 1 + beta*(sigma2_all/sigma2_sel - 1) and selected+cells expand radially around their selected-subset mean in pooled z-space+(env VARRESTORE_BETA, default 0 = off, bit-identical to parent). """ from __future__ import annotations@@ -103,6 +109,8 @@ SPREAD_MU = os.environ.get("SPREAD_MU", "global").strip().lower() # type|global SHRINK_ALPHA = float(os.environ.get("SHRINK_ALPHA", "0.0")) SHRINK_GRADED = os.environ.get("SHRINK_GRADED", "1").strip().lower() not in ("0", "off", "false") SHRINK_MIN = int(os.environ.get("SHRINK_MIN", "3"))+VARRESTORE_BETA = float(os.environ.get("VARRESTORE_BETA", "0.0"))+VARRESTORE_MIN = int(os.environ.get("VARRESTORE_MIN", "3")) def _spread_apply(X: np.ndarray, rows: np.ndarray, mu: np.ndarray, f: float) -> None:@@ -347,7 +355,7 @@ def main() -> None: la = stage_a.labels.astype(str) lb = stage_b.labels.astype(str) shared: set = set(np.unique(la)).intersection(np.unique(lb))- if SELECTION == "midstate" or SHRINK_ALPHA > 0.0:+ if SELECTION == "midstate" or SHRINK_ALPHA > 0.0 or VARRESTORE_BETA != 0.0: Za, Zb, zmu, zsd = _zscore_pair(Xa, Xb) if SELECTION == "midstate": if SEL_SIDE in ("both", "a"):@@ -417,6 +425,52 @@ def main() -> None: Xb_use[all_rows] = np.clip( Zb2[all_rows] * zsd + zmu, 0.0, None).astype(np.float32) + # PLAN T2EI-09 (node 24): within-type variance restoration of the selected b+ # cells. Midstate selection (SEL_P=1) takes the cells closest to the blend+ # centroid, systematically compressing within-type expression variance. For+ # each shared type, sigma2_all = per-gene variance sum over ALL b cells of the+ # type (mean-centered), sigma2_sel = same over the SELECTED subset; expansion+ # factor f_c = 1 + beta*(sigma2_all/sigma2_sel - 1). Each selected cell moves+ # radially in pooled z-space: z' = mu_sel + f_c*(z - mu_sel). Inverse-transform+ # to expression space, clip >= 0. Coordinates untouched. beta=0 => f_c=1 =>+ # bit-identical to parent.+ varrestore_diag = []+ if VARRESTORE_BETA != 0.0 and ib.size and Zb is not None:+ Zb3 = Zb2 if shrink_diag else Zb+ Zb3 = Zb3.copy()+ lab_sel = lb[ib]+ touched = []+ for tname in sorted(shared):+ rows_b = np.flatnonzero(lb == tname)+ sel = np.flatnonzero(lab_sel == tname)+ if rows_b.size < 2 or sel.size < VARRESTORE_MIN:+ continue+ rows = ib[sel]+ Zall = Zb3[rows_b]+ Zsel = Zb3[rows]+ sigma2_all = float(Zall.var(axis=0).sum())+ sigma2_sel = float(Zsel.var(axis=0).sum())+ if sigma2_sel <= 1e-12 or sigma2_all <= 1e-12:+ continue+ ratio = sigma2_all / sigma2_sel+ f_c = 1.0 + VARRESTORE_BETA * (ratio - 1.0)+ if f_c <= 1.0 + 1e-9:+ continue+ mu_sel = Zsel.mean(axis=0)+ Zb3[rows] = mu_sel + f_c * (Zsel - mu_sel)+ touched.append(rows)+ varrestore_diag.append({+ "type": tname, "n_all": int(rows_b.size), "n_sel": int(rows.size),+ "ratio": ratio, "f_c": float(f_c),+ "var_before": sigma2_sel,+ "var_after": float(Zb3[rows].var(axis=0).sum()),+ })+ if varrestore_diag:+ all_rows = np.concatenate(touched)+ Xb_use = Xb.copy()+ Xb_use[all_rows] = np.clip(+ Zb3[all_rows] * zsd + zmu, 0.0, None).astype(np.float32)+ spread_plan = [] spread_diag = [] if ib.size and SPREAD_ALPHA > 0.0:@@ -479,6 +533,13 @@ def main() -> None: "shrink_delta_p90": float(np.mean([s["delta_p90"] for s in shrink_diag])) if shrink_diag else 0.0, "shrink_var_ratio": float(np.mean([s["var_after"] / s["var_before"] for s in shrink_diag])) if shrink_diag else 1.0, "shrink": shrink_diag,+ "varrestore_beta": VARRESTORE_BETA,+ "varrestore_n_types": len(varrestore_diag),+ "varrestore_n_cells": int(sum(s["n_sel"] for s in varrestore_diag)),+ "varrestore_ratio_mean": float(np.mean([s["ratio"] for s in varrestore_diag])) if varrestore_diag else 1.0,+ "varrestore_f_mean": float(np.mean([s["f_c"] for s in varrestore_diag])) if varrestore_diag else 1.0,+ "varrestore_var_ratio": float(np.mean([s["var_after"] / s["var_before"] for s in varrestore_diag])) if varrestore_diag else 1.0,+ "varrestore": varrestore_diag, }, default=float), file=sys.stderr) write_t2(args.out, expr, coords.astype(np.float32), genes, seed=args.seed)
调研来源?调研员查到并用到的知识条目和文献检索结果(只列标题和编号)。
用到的知识库条目
| 编号 | 标题 | 出处 |
|---|---|---|
| k007 | Interval staging and held-out-window filtering of external data | notes/official/来件/virtualembryo.ai/rules.md |
| k024 | World-model evaluation dimensions for state-transition predictors | notes/competition/07_biomedical_world_models.md |
| k026 | Canonicalise predicted 3D coordinates before submission | notes/pitfalls/04_scorer_invariance.md |
分析结果?分析员写的 ANALYSIS.json:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。
| 改了什么 | 在b侧中间态选胞后新增型内方差恢复步骤(VARRESTORE_BETA,每型f_c=1+β(σ²_all/σ²_sel−1)径向膨胀);探索发现mmd_u改善但variogram等量恶化、cell_state微降,按停止条款提交β=0,榜上输出与父节点21逐位一致(md5相同),故全部分数为+0.00。 |
|---|---|
| 各组分数的变化 | cell_state:噪声内(+0.00;探索中β=0.25三seed一致微降−0.04/−0.08/−0.11,未提交) expression_change:噪声内(+0.00,提交态与父逐位一致) local_spatial:噪声内(+0.00,坐标未动) shape_scale:噪声内(+0.00,坐标未动) |
| family_id | T2EI-09 |
| 假设是否成立 | 否 |
| 经验 |
|
| mechanism_active | 否 |
| 下一步建议 |
|
对话摘要?每个角色和大模型对话的统计:轮数、工具调用、用时、token 数和最后的回答摘录;原始记录只给路径。
只给统计和最后回答的摘录;完整对话请到原始记录位置里列出的文件看。
分析员
| 角色?调研员写计划、工程师改代码、分析员解读分数、审查员检查作弊。 | 分析员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数?大模型一共回复了几轮(每轮可以调用多个工具)。 | 3 |
| 工具调用?大模型调用读文件、执行命令等工具的次数,按工具名统计。 | 共 2 次:bash 1、write 1 |
| 用时 | 不到 1 分 |
| token 数?输入 / 输出(含思考)的 token 数,来自接口返回的用量。 | 输入 11,594 · 输出 820 · 思考 1,343 |
| 任务(第一行) | 分析节点 n24 的打分结果,写 ANALYSIS.json |
| 最后的回答(摘录) | ANALYSIS.json written |
| 原始记录位置?完整对话记录在 Spark 上的文件路径;看板不复制原始内容。 | /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/analyst.jsonl 6 KB /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/analyst.stderr |
工程师
| 角色 | 工程师 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 25 |
| 工具调用 | 共 31 次:bash 21、edit 7、read 2、write 1 |
| 用时 | 9 分 |
| token 数 | 输入 60,237 · 输出 8,024 · 思考 10,270 |
| 任务(第一行) | 按计划修改程序:b侧选胞型内方差恢复(variance restoration after mid-state selection) |
| 最后的回答(摘录) | 完成。节点 24 总结: **做了什么**:按 PLAN T2EI-09 在父管线(κ=0.65, γ=1.15, b 侧中间态选胞)上实现型内方差恢复:每共有型 f_c=1+β(σ²_all/σ²_sel−1),被选 b 细胞绕选后型内均值在合并 z 空间径向膨胀(VARRESTORE_BETA 环境变量,坐标不动)。机制确实运行:选择把型内方差压缩到 ~1/2.8(ratio≈2.81),f_c、var_after 均符合理论值。 **查分结果**(9 次查分,A 半代理):mmd_u 三 seed 一致改善(如 s0: 0.01116→0.01049 @β=0.25),但 variogram 一致等量变差(0.01094→0.01163),目标组 cell_state 三 seed 一致微降(−0.04/−0.08/−0.11);β 响应曲线 0.25 见顶 +0.19,3-seed 均值仅 +0.09(噪声内)。de_score 台阶状且跨 seed 不稳定。按 PLAN 停止条款提交 β=0,输出与父节点逐位一致(md5 b86afc10…,确定性验证 + vec-check ok)。机制整体证伪。 **下一步最值得试**:(1) 表达空间的逐细胞各向同性方差操纵(收缩与膨胀)均被 mmd_u/variogram 对冲卡死(节点 8/12/17/21/24 五次证伪)——若再用方差缺口,必须做空间平滑恢复(同区域细胞同向偏移)或只在空间无关基因子集上恢复,避免 variogram 损失;(2) 转向 b 侧细胞身份来源改造(a-b 近邻差分生成新中间态)或 local_spatial/shape 的各向异性占据补偿(节点 13 方向)。 |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/engineer.jsonl 152 KB /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/engineer.stderr |
调研员
| 角色 | 调研员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 1 |
| 工具调用 | 共 0 次:— |
| 用时 | 2 分 |
| token 数 | 输入 13,008 · 输出 947 · 思考 4,295 |
| 任务(第一行) | 为节点 n24(改进,父节点 n21)写改进计划 PLAN.json |
| 最后的回答(摘录) | ```json
{
"name": "b侧选胞型内方差恢复(variance restoration after mid-state selection)",
"motivation": "父节点21提交态与节点11/19逐位一致(62.15),最弱组cell_state=54.35。四次证伪(节点8/12/17/21)表明表达向质心收缩系统性有害,但ANALYSIS指出未验证反方向:SEL_P=1.0的中间态选胞必然压缩型内方差(只选距blend质心最近的细胞),导致输出分布比参考窄。节点21诊断显示δ≈0.14仅~1%的收缩已使mmd_u恶化,说明scorer对型内方差极为敏感,方向可能是需要更多方差而非更少。",
"approach": "在b侧选胞之后、jitter之前新增方差恢复步骤:对每个共有型c,计算选前全体b细胞的型内方差σ²_all与选后子集方差σ²_sel(均在合并z-scored panel空间、按型内均值中心化后计算各基因方差之和)。膨胀因子f_c=1+β·(σ²_all/σ²_sel−1),β∈{0.25,0.5,0.75,1.0}。对每个被选b细胞:z'=μ_sel_c+f_c·(z−μ_sel_c),逆变换回表达空间并clip≥0。坐标不动。关键初值β=0.5(恢复一半方差缺口)。搜索范围β∈[0.25,1.0]步长0.25,共4配置。单输入退路:无括号→无b侧→跳过,与父一致。vec-score快速筛选:先跑β=0.5/seed0,若cell_state<54.35则立即停止提交β=0;若升则补测β=0.25和0.75确认单调性。型内被选<3个细胞跳过(与SHRINK_MIN一致)。",
"expected_groups": ["cell_state"],
"risks": "1)参考目标型内方差可能并不比全选b侧更宽(若目标更同质),则膨胀有害→首查β=0.5即可发现(cell_state降则停)。2)f_c过大可能将表达推出合理范围→clip≥0兜底,且β≤1限制最大膨胀为σ²_all/σ²_sel(通常<2)。3)expression_change可能受微小影响(方差变但均值不变,理论上影响极小)。Engineer应在首查后同时检查四组分,若expression_change降>0.5则停止。",
"family_id": "T2EI-09",
"mechanism": "中间态选胞(SEL_P=1.0)系统性压缩型内表达方差;本机制按型计算方差缺口并以因子f_c等比恢复选后子集的离散度,使输出分布宽度接近未选择时的自然水平。",
"vs_constant_shift": "不是每型加常数、也不是全局组成重加权:每型的膨胀因子f_c由该型选前/选后方差比决定(数据驱动、型间异质),位移方向是各细胞相对型内均值的径向(非统一方向),且仅作用于被选b侧细胞。",
"mechanism_evidence": "Engineer应输出诊断:每型的σ²_sel/σ²_all比值(预期<1,证明选择确实压缩了方差)、f_c值、膨胀后var_after/var_before(预期≈1+β·(1/σ²_sel/σ²_all−1))。若β=0.5时cell_state升且其余三组不变,机制生效。若四组分均无变化,说明f_c≈1(方差缺口不存在),机制未运行。",
"mechanism_off_control": "β=0(环境变量VARRESTORE_BETA=0)时f_c=1,z'=z,输出与父节点逐位一致(预期md5相同)。Engineer应验证md5一致并记录。预期差别:β=0时四组分与父完全相同;β>0时仅cell_state变化,其余三组在噪声内。",
"sources": []
}
``` |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/researcher.jsonl 4 KB /home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/24/researcher.stderr |