Virtual Embryo Challenge更新于 10-03 18:47(北京时间) / 每 5 分钟更新

总览 · ← 返回运行 20261003-043412-search-t2-embryo-interp-g24-D-s1

节点 n21

按 PLAN T2EI-09 实现 b 侧选入细胞的型内分级表达收缩(向混合质心 (1−t)μ_a+tμ_b 移动 δ=α·d/d_max,保坐标);代理上 cell_state 随 α 单调下降、机制证伪,提交态 SHRINK_ALPHA=0,输出与节点 11/19 逐位一致(md5 相同)。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-043412-search-t2-embryo-interp-g24-D-s1
父节点n19
子节点n24
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 62.15(+0.0) · proxy 62.15(+0.0)
审查未审查
用时?从运行开始到结束(或到现在)的挂钟时间。13 分
程序版本f24a81326d1875fb1a5d541b0373a071fe69e917 (programs.git)

方法说明?节点程序自带的 METHOD.md:这个程序做了什么、为什么。

来自 programs.git f24a81326d:solution/METHOD.md

按 PLAN T2EI-09 实现 b 侧选入细胞的型内分级表达收缩(向混合质心 (1−t)μ_a+tμ_b 移动 δ=α·d/d_max,保坐标);代理上 cell_state 随 α 单调下降、机制证伪,提交态 SHRINK_ALPHA=0,输出与节点 11/19 逐位一致(md5 相同)。

方法(family T2EI-09,improve over node 19)

底座不变: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 侧 → 收缩跳过,与父一致。

机制证据(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 持平。

机制对照(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:

配置榜分cell_stateexpr_changeshapelocal
α=0(父,提交)61.14*52.84*60.50*72.18*59.03*
α=0.05 分级61.0552.4960.5072.1859.03
α=0.15 分级60.9852.2460.5072.1859.02
α=0.15 均匀(GRADED=0)60.9852.2060.5072.1859.02
α=0.25 分级60.9452.0460.5172.1859.01

*父值取自节点 19 METHOD.md 的同半同 seed 实测(本节点未重复查父,md5 一致故分数相同)。

结论:机制证伪。按 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 投影)同族证伪:表达空间的型内线性收缩/插值在此代理上系统性有害。

验证过 / 没验证

  • 验证过:4 个 α 配置 + 均匀对照各 seed0(4 次查分,额度内);SHRINK_ALPHA=0 与父 md5 逐位一致; seed0/seed1 重跑确定性;vec-check(α=0 与 α=0.15 输出均 ok)。
  • 没验证:多 seed 的 α>0 配置(单调趋势已明确,浪费额度);负 α(远离质心膨胀表达)—— 方向上等价于放大型内方差,与节点 5/6 的占据结论无冲突,可作为后续探索。

下一步建议

  • cell_state 的余量不在「表达向质心收缩」维度(节点 8/12/17/21 四次证伪), 要么改变 b 侧细胞的身份来源(如用 a-b 近邻差分外推生成真正的新中间态,而非搬运/收缩真实细胞), 要么转向 local_spatial / shape_scale 的各向异性占据补偿(节点 13 建议)。
  • 可低成本试 SHRINK_ALPHA<0(沿远离质心方向移动 δ,放大型内方差)验证 cell_state 对型内方差的敏感性方向,作为下一个 improve 节点的一票筛选。

知识来源

无新增外部生物学知识;全部计算只来自视图内两个输入阶段(E6.75/E8.0)的表达、标签与坐标。

调研员的计划

名称b侧选入细胞型内分级表达收缩(保坐标)
动机cell_state 54.35 是四组最弱,且与 shape_scale 在 κ 维度零和拉锯(节点19证实)。ANALYSIS 建议:对选入的 b 侧细胞做型内向混合质心的分级表达收缩,打破拉锯。节点8的均匀收缩、节点12的坐标插值、节点17的OT均已证伪,但「仅表达、仅选入细胞、按距离分级、保坐标」这一组合未被试过。
做法在节点11/13提交态管线(κ=0.65, γ=1.15, SEL_SIDE=b, SEL_P=1.0)的 b 侧选胞之后、jitter 之前,新增一步:对每个共有型中被选入的 b 细胞,计算其表达向量到该型混合质心 μ_blend=(1−t)μ_a+tμ_b 的欧氏距离 d_i(在 z-scored panel 空间),收缩量 δ_i = SHRINK_ALPHA × (d_i / d_max_c)(d_max_c 为该型内被选细胞的最大距离),新表达 x'_i = x_i − δ_i·(x_i − μ_blend)/‖x_i − μ_blend‖(即沿指向质心方向移动 δ_i 个 z-score 单位)。坐标不动。关键参数:SHRINK_ALPHA 初值 0.15,搜索 {0.05, 0.10, 0.15, 0.25, 0.40};SHRINK_GRADED=1(分级)为默认,=0 时所有被选细胞统一收缩 SHRINK_ALPHA(对照分级是否必要)。若型内被选细胞 <3 则跳过该型。单输入退路:无括号→无 b 侧→收缩跳过,与父一致。vec-score 筛选:先跑 SHRINK_ALPHA=0 确认与父逐位一致(md5),再跑 0.15/0.05/0.25 三个点各 1 seed,选最优方向后补第 2 seed 确认;总查询 ≤10。
风险1) 收缩过强使 b 细胞表达趋同、expression_change 的 variance 指标下降——Engineer 看 expression_change 组分是否随 α 单调降;2) 分级收缩对已近质心的细胞几乎不动、对远端细胞拉动过大造成双峰——用 SHRINK_GRADED=0 对照排除;3) 效果 <1 分噪声——若两种子均值差 <0.5 即放弃切换,提交父配置。尽早发现:第 1 次查分(α=0.15)若 cell_state 无升反降,立即停止。

代码改动?这个节点的程序和父节点程序的逐行差别:绿色是新增,红色是删除。

对比:父节点版本 d8173fa2e6。改动的文件:solution/METHOD.md +41 −45、solution/run.py +71 −3

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex e37c03e..0815e9f 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,64 +1,60 @@-按 PLAN T2EI-05 网格搜索组成阻尼 κ 与膨胀上限 γ(κ 0.60–0.80 × cap 1.05–1.25):cell_state 随 κ 单调降、shape 随 κ 单调升,父配置 κ=0.65/γ=1.15 已是平衡点,机制证伪,提交态保持父配置(输出与节点 11 逐位一致)。+按 PLAN T2EI-09 实现 b 侧选入细胞的型内分级表达收缩(向混合质心 (1−t)μ_a+tμ_b 移动 δ=α·d/d_max,保坐标);代理上 cell_state 随 α 单调下降、机制证伪,提交态 SHRINK_ALPHA=0,输出与节点 11/19 逐位一致(md5 相同)。 -## 方法(family T2EI-05,improve over node 13)+## 方法(family T2EI-09,improve over node 19) -代码未改动:`run.py` 的 KAPPA / SPREAD_CAP 均为环境变量参数,默认即父配置-(interp_bracket → procrustes3d 对齐 → scale_damp=0.5 目标 RMS → κ=0.65 组成阻尼 →-b 侧型内中间态偏好选胞(blend 质心,SEL_P=1.0)→ b 侧全局 xy 径向膨胀 γ=1.15 →-jitter + 终缩放;单输入退路不变)。本节点只做参数网格实验。+底座不变: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 侧 → 收缩跳过,与父一致。  ## 机制证据(mechanism_evidence) -机制确实生效并改变了输出组成与几何:诊断输出显示 b 侧被选细胞数-κ=0.60→1200、0.65→1300(父)、0.70→1400、0.75→1500、0.80→1600;-膨胀因子 f 由 n_c/k_c 与 SPREAD_CAP 联合决定,随配置在 1.05–1.25 间改变-(α=0.3 时 n/k−1≈20–25 远超 cap,cap 恒绑定)。四组分各自的变化见下表。+机制确实运行:α=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 持平。  ## 机制对照(mechanism_off_control)与查分全表 -off 对照 = 父配置 KAPPA=0.65, SPREAD_CAP=1.15(代码默认),A 半 seed0 实测 61.14,-与父节点记录一致(cell_state 52.84 / expr 60.50 / shape 72.18 / local 59.03),-且提交态输出与父节点 11 逐位一致(md5 相同,重复运行确定性验证通过,vec-check ok)。+off 对照 = SHRINK_ALPHA=0(代码默认,提交态),输出与父节点 11/19 逐位一致+(md5 b86afc10…,重复运行确定性验证通过,vec-check ok)。A 半代理(E6.75+E8.0→E7.25,t=0.4)seed0: -| 配置 (κ / cap) | seed0 | seed1 | 均值 | cell_state (s0/s1) | expr (s0/s1) | shape (s0/s1) | local (s0/s1) |-|---|---:|---:|---:|---|---|---|---|-| 0.65 / 1.15(父,**提交**) | 61.14 | 61.62 | **61.38** | 52.84/53.27 | 60.50/60.93 | 72.18/72.28 | 59.03/60.00 |-| 0.75 / 1.10(PLAN 步骤1) | 60.95 | – | – | 49.94 | 60.62 | 72.93 | 60.32 |-| 0.70 / 1.15 | 61.65 | 61.40 | 61.52 | 52.21/52.41 | 61.40/60.04 | 73.23/72.99 | 59.75/60.15 |-| 0.60 / 1.15 | 61.43 | 60.99 | 61.21 | 54.21/53.47 | 59.97/60.00 | 71.74/71.28 | 59.80/59.21 |-| 0.60 / 1.25 | 61.29 | – | – | 54.21 | 59.97 | 71.21 | 59.76 |-| 0.65 / 1.25 | 60.99 | – | – | 52.84 | 60.50 | 71.60 | 59.02 |+| 配置 | 榜分 | 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 | -结论:**PLAN 的 κ 上调机制被证伪**。-1. cell_state 随 κ 单调下降(0.60:54.2 → 0.65:52.8 → 0.70:52.3 → 0.75:49.9),-   与 PLAN 预期(b 侧选胞收益随配额放大)相反:b 侧配额 26%→30% 时中间态选胞收益-   已饱和,多出的 b 细胞只是把组成推向晚端,mmd_u 变差(0.01116→0.01143)。-   与节点 13 教训同型(选胞收益随抽样率反向变化)。-2. shape_scale 随 κ 单调上升(71.3→73.2),但幅度小于 cell_state 的损失;-   γ cap 1.25 在两个 κ 下都变差(occupancy_dice 0.772→0.749),确认节点 13-   所述「各向同性 γ 已到平台(1.05–1.2)」。-3. κ=0.70 两种子均值 +0.14、κ=0.60 −0.17,均在噪声内(<2 分不算进步),-   且 B 半未必同向,不满足切换门槛。κ 与 γ 的净效果在 (0.65, 1.15) 处已是局部最优:-   cell_state 要低 κ、shape 要高 κ,两组在此拉锯,κ 移动只重新分配误差而不减少总误差。+*父值取自节点 19 METHOD.md 的同半同 seed 实测(本节点未重复查父,md5 一致故分数相同)。++结论:**机制证伪**。按 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 投影)同族证伪:**表达空间的型内线性收缩/插值在此代理上系统性有害**。  ## 验证过 / 没验证 -- 验证过:A 半代理(E6.75+E8.0→E7.25,t=0.4)上 6 个配置 × seed0、3 个配置 × seed1,-  共 9 次查分;提交态确定性与 vec-check;对照与父节点输出逐位一致。-- 没验证:κ 精细网格(0.62–0.68)——两端趋势已定,中间值只会在 ±0.2 噪声内;-  γ 的各向异性/非全局 MU 变体(节点 13 建议方向,超出本 PLAN 范围);真实榜-  (E7.25+E8.0→? 括号不同,κ·t 组成阻尼的行为需在真实输入上另行确认,-  但代码视图无关,无阶段名/细胞数硬编码)。+- 验证过:4 个 α 配置 + 均匀对照各 seed0(4 次查分,额度内);SHRINK_ALPHA=0 与父 md5 逐位一致;+  seed0/seed1 重跑确定性;vec-check(α=0 与 α=0.15 输出均 ok)。+- 没验证:多 seed 的 α>0 配置(单调趋势已明确,浪费额度);负 α(远离质心膨胀表达)——+  方向上等价于放大型内方差,与节点 5/6 的占据结论无冲突,可作为后续探索。  ## 下一步建议 -- cell_state 与 shape_scale 在 κ 维度上是零和拉锯,单靠 κ-γ 再平衡无法同时提升;-  要破局需改变「b 侧细胞以完整晚端身份进入输出」这一前提——例如对选入的 b 细胞-  做型内向混合质心的表达收缩(不是全体细胞的常位移,而是随 d 距离分级),-  同时保坐标,避免节点 12/13 的 local_spatial 损失。-- 或按节点 13 建议做各向异性占据补偿(按体素缺失方向而非全局 γ)。+- cell_state 的余量不在「表达向质心收缩」维度(节点 8/12/17/21 四次证伪),+  要么改变 b 侧细胞的身份来源(如用 a-b 近邻差分外推生成真正的新中间态,而非搬运/收缩真实细胞),+  要么转向 local_spatial / shape_scale 的各向异性占据补偿(节点 13 建议)。+- 可低成本试 SHRINK_ALPHA<0(沿远离质心方向移动 δ,放大型内方差)验证 cell_state+  对型内方差的敏感性方向,作为下一个 improve 节点的一票筛选。  ## 知识来源 -无新增外部生物学知识;全部改动为已有管线参数(组成阻尼系数 κ、膨胀上限 γ)的网格搜索,-数据只来自视图内两个输入阶段。+无新增外部生物学知识;全部计算只来自视图内两个输入阶段(E6.75/E8.0)的表达、标签与坐标。diff --git a/solution/run.py b/solution/run.pyindex 896635c..c52a56b 100644--- a/solution/run.py+++ b/solution/run.py@@ -52,6 +52,19 @@ the unbiased one. FALSIFIED on the proxy (2 seeds, A half): cell_state 52% sampled, so selection swaps cell identities at fixed positions and breaks the identity/location coupling the reference has; net -0.28. Submitted default is therefore SEL_SIDE=b, bit-identical to node 11.++Change (PLAN T2EI-09, node 21): graded expression shrink of the selected+b cells. For every shared type, each selected b cell moves delta_i z-units+toward the type's blend centroid mu = (1-t)*mu_a + t*mu_b in pooled z-scored+panel space, delta_i = SHRINK_ALPHA * d_i / d_max(type) (or constant with+SHRINK_GRADED=0); coordinates untouched. FALSIFIED on the proxy (A half,+seed 0): cell_state declines monotonically with alpha (52.84 @0 -> 52.49+@0.05 -> 52.24 @0.15 -> 52.04 @0.25), uniform == graded, expression_change+flat, mmd_u worsens (0.01116 -> 0.01120) even though the displacement is+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). """  from __future__ import annotations@@ -87,6 +100,9 @@ SPREAD_WHEN = os.environ.get("SPREAD_WHEN", "pre").strip().lower() SPREAD_SCOPE = os.environ.get("SPREAD_SCOPE", "shared").strip().lower() SPREAD_AXES = os.environ.get("SPREAD_AXES", "xy").strip().lower() SPREAD_MU = os.environ.get("SPREAD_MU", "global").strip().lower()  # type|global|bcloud+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"))   def _spread_apply(X: np.ndarray, rows: np.ndarray, mu: np.ndarray, f: float) -> None:@@ -152,7 +168,7 @@ def _zscore_pair(Xa: np.ndarray, Xb: np.ndarray):     both = np.vstack([Xa, Xb]).astype(np.float64)     mu = both.mean(axis=0)     sd = both.std(axis=0) + 1e-8-    return (Xa.astype(np.float64) - mu) / sd, (Xb.astype(np.float64) - mu) / sd+    return (Xa.astype(np.float64) - mu) / sd, (Xb.astype(np.float64) - mu) / sd, mu, sd   def _type_dists(Z: np.ndarray, labels: np.ndarray, Z_other: np.ndarray, labels_other: np.ndarray,@@ -327,11 +343,13 @@ def main() -> None:     Xa = as_dense(stage_a.X)     Xb = as_dense(stage_b.X)     da = db = None+    Za = Zb = zmu = zsd = 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:+        Za, Zb, zmu, zsd = _zscore_pair(Xa, Xb)     if SELECTION == "midstate":-        Za, Zb = _zscore_pair(Xa, Xb)         if SEL_SIDE in ("both", "a"):             da = _type_dists(Za, la, Zb, lb, shared, 1.0 - t, SEL_TARGET)         if SEL_SIDE in ("both", "b"):@@ -356,6 +374,49 @@ def main() -> None:             ia = ia_sel     ib = _select_side(stage_b.labels, n_b, rng, db) +    # PLAN T2EI-09 (node 21): graded expression shrink of selected b cells toward+    # the within-type blend centroid mu = (1-t)*mu_a + t*mu_b in pooled z-scored+    # panel space. delta_i = SHRINK_ALPHA * d_i / d_max_type (graded) or constant+    # SHRINK_ALPHA (uniform); x' = x - delta * unit(x - mu). Coordinates untouched.+    shrink_diag = []+    Xb_use = Xb+    if SHRINK_ALPHA > 0.0 and ib.size and Zb is not None:+        Zb2 = Zb.copy()+        lab_sel = lb[ib]+        for tname in sorted(shared):+            rows_a = np.flatnonzero(la == tname)+            rows_b = np.flatnonzero(lb == tname)+            sel = np.flatnonzero(lab_sel == tname)+            if rows_a.size == 0 or rows_b.size == 0 or sel.size < SHRINK_MIN:+                continue+            rows = ib[sel]+            mu_blend = (1.0 - t) * Za[rows_a].mean(axis=0) + t * Zb[rows_b].mean(axis=0)+            diff = Zb[rows] - mu_blend+            d = np.sqrt(np.einsum("ij,ij->i", diff, diff))+            dmax = float(d.max())+            if dmax <= 1e-9:+                continue+            if SHRINK_GRADED:+                delta = SHRINK_ALPHA * (d / dmax)+            else:+                delta = np.full(d.shape, SHRINK_ALPHA)+            step = np.where(d > 1e-9, delta / np.maximum(d, 1e-9), 0.0)+            Zb2[rows] = Zb[rows] - step[:, None] * diff+            shrink_diag.append({+                "type": tname, "n": int(rows.size),+                "delta_mean": float(delta.mean()), "delta_p90": float(np.quantile(delta, 0.9)),+                "d_mean": float(d.mean()),+                "var_before": float(Zb[rows].var(axis=0).sum()),+                "var_after": float(Zb2[rows].var(axis=0).sum()),+            })+        if shrink_diag:+            Xb_use = Xb.copy()+            all_rows = np.concatenate([+                ib[lab_sel == s["type"]] for s in shrink_diag]) if shrink_diag else np.array([], int)+            if all_rows.size:+                Xb_use[all_rows] = np.clip(+                    Zb2[all_rows] * zsd + zmu, 0.0, None).astype(np.float32)+     spread_plan = []     spread_diag = []     if ib.size and SPREAD_ALPHA > 0.0:@@ -380,7 +441,7 @@ def main() -> None:         parts.append(np.clip(Xa[ia], 0.0, None).astype(np.float32))         coord_parts.append(ca[ia])     if ib.size:-        parts.append(np.clip(Xb[ib], 0.0, None).astype(np.float32))+        parts.append(np.clip(Xb_use[ib], 0.0, None).astype(np.float32))         coord_parts.append(cb[ib])     expr = np.vstack(parts) if len(parts) > 1 else parts[0]     coords = _jitter(np.vstack(coord_parts), rng)@@ -411,6 +472,13 @@ def main() -> None:         "spread_when": SPREAD_WHEN if SPREAD_ALPHA > 0 else "off",         "spread_scope": SPREAD_SCOPE, "n_spread_types": len(spread_diag),         "spread": spread_diag, "sel_side": SEL_SIDE, **a_diag,+        "shrink_alpha": SHRINK_ALPHA, "shrink_graded": SHRINK_GRADED,+        "shrink_n_types": len(shrink_diag),+        "shrink_n_cells": int(sum(s["n"] for s in shrink_diag)),+        "shrink_delta_mean": float(np.mean([s["delta_mean"] for s in shrink_diag])) if shrink_diag else 0.0,+        "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,     }, default=float), file=sys.stderr)     write_t2(args.out, expr, coords.astype(np.float32), genes, seed=args.seed) 

调研来源?调研员查到并用到的知识条目和文献检索结果(只列标题和编号)。

用到的知识库条目

编号标题出处
k007Interval staging and held-out-window filtering of external datanotes/official/来件/virtualembryo.ai/rules.md
k024World-model evaluation dimensions for state-transition predictorsnotes/competition/07_biomedical_world_models.md
k026Canonicalise predicted 3D coordinates before submissionnotes/pitfalls/04_scorer_invariance.md

分析结果?分析员写的 ANALYSIS.json:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。

改了什么在父管线(κ=0.65, γ=1.15, b侧中间态选胞)的 b 侧选胞后新增型内分级表达收缩:被选 b 细胞沿 z-scored 空间向混合质心 μ_blend=(1−t)μ_a+tμ_b 移动 δ=α·d/d_max(SHRINK_ALPHA/GRADED/MIN 环境变量参数,保坐标)。代理上证伪后提交态 SHRINK_ALPHA=0,输出与父节点逐位一致(md5 相同),故榜分完全不变。
各组分数的变化cell_state:噪声内(+0.00,54.35→54.35;提交态与父逐位一致)。代理上机制开启时 cell_state 随 α 单调下降:52.84→52.49→52.24→52.04 @α=0/0.05/0.15/0.25
expression_change:噪声内(+0.00,61.08→61.08;提交态与父逐位一致)
local_spatial:噪声内(+0.00,60.69→60.69,坐标未动,符合预期)
shape_scale:噪声内(+0.00,72.48→72.48,坐标未动,符合预期)
family_idT2EI-09
假设是否成立否
经验
  1. 对 b 侧选入细胞做型内向混合质心的表达收缩(保坐标)在代理上被证伪:即使 δ≈0.14 z 单位仅为 d≈14 的 ~1%,mmd_u 也从 0.01116 恶化到 0.01120、cell_state 单调下降,说明中间态偏好已在选胞(选哪些细胞)阶段榨干,进一步收缩只侵蚀型内方差。
  2. 分级与均匀收缩无差别(cell_state 52.24 vs 52.20 @α=0.15),问题在收缩方向本身而非分级方式,做 GRADED 对照可一次排除分级维度。
  3. 至此表达空间的型内线性收缩/插值已四次证伪(节点8 向 a 型均值收缩、节点12 配对插值、节点17 OT 投影、节点21 向 blend 质心分级收缩):在此代理上该方向系统性有害,后续不应再试「把真实细胞表达拉向型质心」类机制。
  4. 机制开启时 local_spatial/shape_scale 如预期不变(坐标未动),验证了「仅改表达不动坐标」可隔离变量、避免节点12/13 的空间损失。
mechanism_active是
下一步建议
  1. 低成本试 SHRINK_ALPHA<0(沿远离质心方向移动 δ、放大型内方差),单 seed 一票筛选 cell_state 对型内方差的敏感方向(针对 cell_state)。
  2. 改变 b 侧细胞身份来源:用 a-b 近邻差分外推生成真正的新中间态表达,而非搬运/收缩真实细胞(针对 cell_state,跳出四次证伪的线性收缩族)。
  3. 转向各向异性占据补偿:按体素缺失方向而非全局 γ 做膨胀,针对 local_spatial/shape_scale 维度(节点13 建议方向)。

对话摘要?每个角色和大模型对话的统计:轮数、工具调用、用时、token 数和最后的回答摘录;原始记录只给路径。

只给统计和最后回答的摘录;完整对话请到原始记录位置里列出的文件看。

分析员

角色?调研员写计划、工程师改代码、分析员解读分数、审查员检查作弊。分析员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数?大模型一共回复了几轮(每轮可以调用多个工具)。3
工具调用?大模型调用读文件、执行命令等工具的次数,按工具名统计。共 2 次:bash 1、write 1
用时不到 1 分
token 数?输入 / 输出(含思考)的 token 数,来自接口返回的用量。输入 12,533 · 输出 964 · 思考 559
任务(第一行)分析节点 n21 的打分结果,写 ANALYSIS.json
最后的回答(摘录)
ANALYSIS.json written
原始记录位置?完整对话记录在 Spark 上的文件路径;看板不复制原始内容。/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/analyst.jsonl 8 KB
/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/analyst.stderr

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数25
工具调用共 27 次:bash 14、edit 9、read 3、write 1
用时6 分
token 数输入 55,199 · 输出 7,450 · 思考 7,123
任务(第一行)按计划修改程序:b侧选入细胞型内分级表达收缩(保坐标)
最后的回答(摘录)
完成。

**做了什么**:按 PLAN T2EI-09 在父管线(κ=0.65, γ=1.15, b 侧中间态选胞)的 b 侧选胞后新增型内分级表达收缩(向 μ_blend=(1−t)μ_a+tμ_b 移动 δ=α·d/d_max,保坐标,含 GRADED=0 均匀对照与单输入退路)。

**查分结果**(A 半 seed0,4 次查分):cell_state 随 α 单调下降(52.84→52.49→52.24→52.04 @α=0/0.05/0.15/0.25),均匀≈分级(52.20 vs 52.24),expression_change 持平,local/shape 如预期不变——机制证伪。按 PLAN 风险条款放弃切换,提交态 SHRINK_ALPHA=0,输出与父节点逐位一致(md5 相同),vec-check ok、确定性验证通过。

**下一步最值得试**:cell_state 在「表达向质心收缩」维度已四次证伪(节点 8/12/17/21);建议试 SHRINK_ALPHA<0(远离质心、放大型内方差)做一票方向筛选,或转向各向异性占据补偿(local_spatial/shape 维度)。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/engineer.jsonl 150 KB
/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时6 分
token 数输入 816 · 输出 999 · 思考 1,087
任务(第一行)为节点 n21(改进,父节点 n19)写改进计划 PLAN.json
最后的回答(摘录)
{
  "name": "b侧选入细胞型内分级表达收缩(保坐标)",
  "motivation": "cell_state 54.35 是四组最弱,且与 shape_scale 在 κ 维度零和拉锯(节点19证实)。ANALYSIS 建议:对选入的 b 侧细胞做型内向混合质心的分级表达收缩,打破拉锯。节点8的均匀收缩、节点12的坐标插值、节点17的OT均已证伪,但「仅表达、仅选入细胞、按距离分级、保坐标」这一组合未被试过。",
  "approach": "在节点11/13提交态管线(κ=0.65, γ=1.15, SEL_SIDE=b, SEL_P=1.0)的 b 侧选胞之后、jitter 之前,新增一步:对每个共有型中被选入的 b 细胞,计算其表达向量到该型混合质心 μ_blend=(1−t)μ_a+tμ_b 的欧氏距离 d_i(在 z-scored panel 空间),收缩量 δ_i = SHRINK_ALPHA × (d_i / d_max_c)(d_max_c 为该型内被选细胞的最大距离),新表达 x'_i = x_i − δ_i·(x_i − μ_blend)/‖x_i − μ_blend‖(即沿指向质心方向移动 δ_i 个 z-score 单位)。坐标不动。关键参数:SHRINK_ALPHA 初值 0.15,搜索 {0.05, 0.10, 0.15, 0.25, 0.40};SHRINK_GRADED=1(分级)为默认,=0 时所有被选细胞统一收缩 SHRINK_ALPHA(对照分级是否必要)。若型内被选细胞 <3 则跳过该型。单输入退路:无括号→无 b 侧→收缩跳过,与父一致。vec-score 筛选:先跑 SHRINK_ALPHA=0 确认与父逐位一致(md5),再跑 0.15/0.05/0.25 三个点各 1 seed,选最优方向后补第 2 seed 确认;总查询 ≤10。",
  "expected_groups": ["cell_state", "expression_change"],
  "risks": "1) 收缩过强使 b 细胞表达趋同、expression_change 的 variance 指标下降——Engineer 看 expression_change 组分是否随 α 单调降;2) 分级收缩对已近质心的细胞几乎不动、对远端细胞拉动过大造成双峰——用 SHRINK_GRADED=0 对照排除;3) 效果 <1 分噪声——若两种子均值差 <0.5 即放弃切换,提交父配置。尽早发现:第 1 次查分(α=0.15)若 cell_state 无升反降,立即停止。",
  "family_id": "T2EI-09",
  "mechanism": "对被选入的 b 侧细胞,按其在型内到混合质心的距离分级地将表达向量向中间态质心收缩一小步,坐标不变,使晚端细胞以真正的中间表达身份进入输出。",
  "vs_constant_shift": "常数位移对所有细胞施加同一向量;本机制仅作用于被选入的 b 侧细胞,收缩方向和大小逐细胞不同(指向型内混合质心、幅度∝到质心距离),且 a 侧细胞完全不受影响。关掉后(SHRINK_ALPHA=0)输出与父逐位一致。",
  "mechanism_evidence": "Engineer 应输出:(1) 每型被收缩细胞数与 δ 分布(均值、P90);(2) 收缩前后型内表达方差变化;(3) cell_state 与 expression_change 组分各自随 α 的变化曲线;(4) local_spatial 与 shape_scale 应不变(坐标未动)。若 δ 全为 0 或四组分无变化,说明机制未运行。",
  "mechanism_off_control": "设 SHRINK_ALPHA=0(或 env SHRINK=off),跳过收缩步骤,输出应与父节点逐位一致(md5 相同)。预期差别:开启后 cell_state 提升 0.5–2 分、expression_change 持平或微升、local_spatial 与 shape_scale 不变;关闭后与父完全一致。"
}
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/researcher.jsonl 4 KB
/home/spark-longxinyang/vec/runs/formal/20261003-043412-search-t2-embryo-interp-g24-D-s1/nodes/21/researcher.stderr