Virtual Embryo Challenge更新于 10-04 02:27(北京时间) / 每 5 分钟更新

总览 · ← 返回运行 20261003-172000-search-t2-heart-extrap-chain-12h

节点 n38

速度耦合的型内径向坐标微位移(σ阈0.55、δ=0.03×RMS、幅度∝s_t/s_max、位移后保锚RMS):过门细胞型按转录速度幅度做型内凝聚,锐化区室边界;表达侧逐位不动,形状/邻域组齐升。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-172000-search-t2-heart-extrap-chain-12h
父节点n36
子节点—
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 56.27(-0.6) · proxy_noscale 56.27(-0.6)
审查未审查
用时?从运行开始到结束(或到现在)的挂钟时间。35 分
程序版本278bc0030cae7e080b492d28019d5811f9ee5df4 (programs.git)

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

来自 programs.git 278bc0030c:solution/METHOD.md

速度耦合的型内径向坐标微位移(σ阈0.55、δ=0.03×RMS、幅度∝s_t/s_max、位移后保锚RMS):过门细胞型按转录速度幅度做型内凝聚,锐化区室边界;表达侧逐位不动,形状/邻域组齐升。

表达速度耦合的型内径向坐标微位移(节点 38)

承继父节点 36 全部表达侧代码(ε=0.4 扩散基座、rel 速度 v=(m_a−m_p)/(m_p+1)、硬门控、k=0.5 软阈值、 型内 lin50n + 基因级 xt50n 一致性加权、α=1.7 乘法解码、逐细胞 CP10k 精确回拉 γ=1.0、PBC=10、行序/组成/细胞数冻结), 只新增加坐标机制(PLAN family T2HX-02,机制名 mechanism)。

机制(PLAN 原样实现 + 两处实测改进)

对每个有过门速度表的细胞型 t:

  • s_t = mean(|v_{t,g}|)(该型过门基因);σ_t = −1/+1 当负/正速度基因占比 ≥ 0.55(PLAN 原值 0.6;实测 0.55 更优,见下),混合符号型不动;
  • 每细胞沿自身型质心的单位径向向量位移 Δx_i = δ·(s_t/s_max)·σ_t·R_rms,δ=0.03,R_rms = 输出点云 RMS 半径(尺度无关、帧无关,只用本阶段自身几何);
  • 位移后整朵云均匀缩放回锚 RMS(d2_shape / occupancy_dice 均按 RMS 归一,此步只把 scale_log_ratio 钉回锚值 −0.4375,不含任何由已发布/保留阶段尺寸算出的常数)。

本视图上所有过门型的负速度基因占比 ≥0.55(CP10k 竞争使末步伪批量速度以负为主),28/33 型激活、全部 σ=−1、 24514 细胞被移动(max|Δx| = 6.5,约为最近邻间距 12 的一半):机制实际是速度幅度加权的型内凝聚——转录快的大型 (Neural Tube、V-CM、NCC、d-CSE、IFT-CM…)压缩多,混合/无速度型(SOM、HEM-Endoth、pSE 等 5 型)不动,区室边界被锐化。 生物学依据:E8.75 之后的心脏发育是袢环心管向分区明确的器官推进,各心区/组织区室经历压实与边界锐化 (发育事件顺序知识,Srivastava 2006, Cell 126:1037, DOI 10.1016/j.cell.2006.08.036;未使用任何保留阶段的测量值, 所有数值——速度、门控、s_t、σ_t、R_rms、位移——全部由视图输入现场计算)。

查分记录(proxy_noscale A 半,15/20 次;锚 = 父提交态 56.613)

配置(δ, σ阈, 变体)榜分shapelocald2_shapeocc_dicenb_mmd
锚(父 36 提交态,δ=0)56.61350.0059.160.048910.81480.07908
δ=0.005, 0.656.62650.0259.190.048780.81480.07899
δ=0.02, 0.656.64350.1059.180.048380.81480.07901
δ=0.03, 0.656.78550.6259.230.048110.81560.07887
δ=0.05, 0.656.06947.7859.200.047550.80980.07895
δ=0.1, 0.655.45145.0859.430.046040.80080.07821
δ=−0.02, 0.655.87047.1259.070.049410.80900.07937
δ=−0.05, 0.656.72850.7058.920.050130.81630.07987
δ=0.035, 0.656.32448.7959.210.047970.81220.07891
δ=0.04, 0.655.89247.0959.190.047830.80820.07900
δ=0.03, 0.6, 均匀幅度56.16348.1159.250.047640.81060.07880
δ=0.03, 0.557.18252.2559.190.048020.81800.07899
δ=0.02, 0.5557.33752.8759.190.048330.81890.07900
δ=0.025, 0.5557.51153.5559.200.048180.81970.07895
δ=0.05, 0.5556.77250.6259.170.047440.81540.07904
δ=0.03, 0.55, xy-only55.97847.4259.200.047720.80900.07896
δ=0.03, 0.55, 保RMS(提交)57.66454.1859.180.048040.82040.07901

(δ=0.03/0.55/保RMS 与不保 RMS 的 56.785/57.664 各查一次,榜分与 d2/occ/nb 逐位相同,scale_log_ratio 由 −0.4508 回到 −0.4375: 证明 RMS 复原对本榜是零操作、对真实榜把尺寸项钉回地板值。)

PLAN 硬约束核对(提交配置)

  • neighborhood_mmd 0.07901 ≤ 锚 0.07908 ✓;local_spatial 59.18 ≥ 锚 59.16 ✓;
  • d2_shape + occupancy_dice 改善在所有过约束 δ 中最大(0.02/0.025/0.03/0.05 网格)✓;
  • 机制证据:实际移动 24514/24826 细胞、28 型激活(σ 全 −1)、位移幅度 ∝ s_t/s_max∈[0.39,1](速度耦合非零且在起作用: 同 δ 均匀幅度 56.163 < 速度加权 56.785,−0.62);位移前后 15-NN Jaccard = 0.899(邻域基本保持,nb_mmd 反而略降); 四组分:shape_scale +4.18(A半),local_spatial +0.02,expression_change / cell_state 逐位不变(X 未动)。

已证否 / 已排除的方向(本会话)

  • 膨胀方向(δ<0):d2_shape 与 nb_mmd 同步变差(−0.02: 55.87),收缩方向被数据确认;
  • δ≥0.035(σ阈 0.6)与 δ≥0.05(0.55):occupancy_dice 掉下地板(体素崖),d2/nb 的继续改善抵不过;
  • 均匀幅度(去掉 s_t/s_max 耦合):−0.62,PLAN 的速度幅度耦合是有效成分;
  • xy-only(冻结 z):−1.69,径向位移必须三维(z 位移与 xy 协同才保持各向异性);
  • σ阈 0.5(全过门型激活):57.182 < 0.55 的 57.664,混合符号型(SOM/HEM-Endoth/pSE)不应动。

验证过 / 未验证

验证过:提交态与 ablate 态、seed 0 重跑、seed 1 全部逐位确定;--ablate mechanism 输出逐位 = 父节点 36 提交态 (本地逐位核对);伪装视图(改路径、manifest 键序打乱、全部时间 +1)输出逐位相同;单输入阶段视图不崩 (α→0、无位移、回扩散基座,vec-check 过);提交态/ablate 态/单输入态均过 vec-score check;纯 CPU ~5 s / ~1 GB。 未验证:B 半与官网真值(A 半 +1.05 中约 +1.0 来自 occupancy_dice 0.8148→0.8204,该指标是 16³ 体素离散量、 对 δ 有跳变;但 (0.5–0.55, 0.02–0.03) 整个邻域都在地板之上,非单点尖峰);真实 final 视图(3 输入)的共有型 门控行为只经过单输入回退测试,未见过 final 数据;scale_log_ratio 在真实榜上的表现被本榜钉在地板值,无本地信号。

开关(复现网格用)

VEC_XDELTA(δ,默认 0.03)、VEC_XSIGTHR(σ阈,默认 0.55)、VEC_XRMS(1=保锚RMS,默认 1)、 VEC_XAMP(vel/uni,默认 vel)、VEC_XDIM(3d/xy,默认 3d);表达侧开关承自父节点(VEC_EPS/ALPHA/KSOFT/GAMMA/CONS/CONSG 等)。 --ablate <任意名>:仅 δ→0,其余保持提交态默认。

调研员的计划

名称表达速度耦合的型内径向坐标微扰(保邻域约束)
动机shape_scale 组在全树 38 节点中恒为 50.00(三项指标 skill 均 0.500=地板),是唯一未探明的 +25 分空间。ANALYSIS 明确建议'用与表达位移同源的型内速度场对 spatial_3D 坐标做小幅外推'。node 15 证明小幅坐标位移可改善 occupancy_dice(0.8066→0.8189 at γ=0.05),但该方案用全局 OT 场、未耦合表达速度、未在 neighborhood_mmd 约束下搜索。父节点 36 的 expression_change 58.46、local_spatial 59.82 已在平台期(30+ 配置压在 55.7–56.6),继续调表达侧期望收益趋零。
做法步骤:(1) 承继父节点 36 全部表达侧代码(lin50n+xt50n+α=1.7+γ=1.0+ε=0.4),坐标/组成/行序解冻仅限本机制;(2) 对每个过门控细胞型 t,计算型质心 c_t 和型内每细胞的单位方向向量 d_i=(x_i−c_t)/‖x_i−c_t‖;(3) 计算型级速度幅度 s_t=mean(|v_{t,g}| over gated genes of type t);(4) 每细胞坐标位移 Δx_i = δ·(s_t/s_max)·d_i·σ_t,其中 σ_t=+1 若型内正速度基因占比≥0.6、−1 若负占比≥0.6、否则该型 σ_t=0(不动);s_max 为所有激活型的最大幅度;δ 单位为点云 RMS 半径(消除坐标尺度依赖);(5) δ 网格 {0.005, 0.01, 0.02, 0.05, 0.1},从最小开始逐个查分;(6) 硬约束:每个 δ 查分后检验 neighborhood_mmd raw ≤ 0.07573 且 local_spatial ≥ 59.0,不满足则停止增大 δ;(7) 在通过约束的 δ 中选 (d2_shape 得分 + occupancy_dice 得分) 改善最大者提交。单输入阶段退路:无前阶段→无速度→所有 s_t=0→坐标不变→输出等于扩散基座(坐标逐位不变)。vec-score 快速筛选:δ 网格最多 5 次 + 机制关对照 1 次 + 最终确认 1 次 ≤ 7 次查分(上限 20 次内)。
风险1) 径向位移破坏表达-位置配对使 neighborhood_mmd 恶化、结构门 <1 反扣形状分——Engineer 在 δ=0.005 即查分确认邻域不降再继续;2) d2_shape 对小幅位移不敏感(20 万对点的距离分布变化太小)——若最大 δ=0.1 仍无变化则判定机制无效、以机制关提交;3) 型内速度方向不一致使 σ_t 不稳定——已设 0.6 占比阈值,不满足的型不动;4) 真值 E9.5 形状可能并不比 E8.5 有显著差异(心脏此阶段形态变化小),则任何坐标改变都是噪声——此时应如实报告机制无效并以机制关提交。

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

对比:父节点版本 9f2333113a。改动的文件:solution/METHOD.md +77 −110、solution/README.md +21 −17、solution/run.py +206 −86

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex f8c275c..a7d344f 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,110 +1,77 @@-基因级跨型符号一致性加权(xt50n):过门基因按跨细胞型符号一致比例 u_g 重分配位移幅度(配对比重归一、保总位移),叠加父底物 lin50n/α=1.7/精确守恒;PLAN 的几何再闭合经 12 配置网格证否,提交此备选机制。--- family_id: T2HX-01-- 父节点: 34(A 半锚 56.599,本会话实测复现)-- 提交态 A 半(proxy_noscale): **56.612**(expr 58.50 / cell 58.79 / local 59.16 / shape 50.00)-- ablate 态 = 父节点 34 提交态逐位(A 半 56.599)→ 机制隔离干净--## 1. 提交的方法--底物全部承自父节点 34(不变):rel 速度 v=(m_a−m_p)/(m_p+1)(型内 log1p 均值),硬门控-(每型每阶段 ≥30 细胞、两阶段 pb ≥0.05、|v|≤2),软阈值 k=0.5,ε=0.4 两步支撑掩码扩散基座-(逐基因列缩放精确复原伪批量),型内 lin50n 方向一致性加权,α=1.7 乘法解码,逐细胞线性总量-精确回拉 γ=1.0(CP10k 守恒),PBC=10 亮度钳制;坐标 / 组成 / 行序 / 细胞数冻结(shape 组-结构性地板)。--**新机制 xt50n(基因级跨型符号一致性加权)**:lin50n 之后、解码之前,对每个过门基因 g,-u_g = 该基因的过门细胞型中速度符号与跨型多数符号一致的比例;所有 (型,基因) 对乘-w_g = 0.5+0.5·u_g,再除以配对比重的均值(总位移幅度守恒的纯重分配)。生物学依据:真实发育-程序(信号通路驱动的 TF 级联、谱系推进)让同一基因在多个谱系同向移动,而单型特异的伪批量-速度差由两个均值的抽样噪声主导;跨型符号一致性是从视图输入现场计算的可靠性代理(与-lin50n 的型内跨基因一致性正交,二者复合)。来源:Davidson & Levin 2005, Gene regulatory-networks, PNAS 102(14):4935, DOI: 10.1073/pnas.0408031102(发育 GRN 协调驱动跨谱系的基因-电池;通用机制知识,不涉及任何保留阶段的测量值)。实测:178 个过门基因,u_mean=0.974,-w∈[0.765, 1.020]——重分配幅度小,A 半 +0.013(噪声内,如实声明)。--`--ablate mechanism`:cons_g=none 且回退 renorm=cell/γ=1.0(=父节点解码),输出逐位等于-父节点 34 提交态。--## 2. PLAN(几何再闭合)证否记录 — 全部 20 次查分--PLAN 机制:把逐细胞精确守恒换成 s_i=(r_med/r_i)^γ_geo(r_i=T1_i/T0_i,r_med=中位数)。-第一轮 γ_geo×ε 网格(α=1.7、k=0.5、lin50n 固定),A 半 avg4 与各分项 points:--| γ_geo | ε | avg4 | expr | cell | local | de_score raw/pts | de_dir raw/pts | mmd_u raw/pts | vario raw/pts | nbhd raw/pts |-|---|---|---:|---:|---:|---:|---|---|---|---|---|-| 锚(cell γ=1.0) | 0.4 | 56.599 | 58.48 | 58.82 | 59.10 | —* | —* | —* | —* | —* |-| 1.0 | 0.1 | 56.535 | 58.43 | 58.81 | 58.90 | 0.1806/6.91 | 0.3738/7.70 | 0.04767/6.89 | 0.03542/7.81 | 0.07994/14.73 |-| 1.0 | 0.2 | 56.610 | 58.48 | 58.83 | 59.13 | 0.1806/6.91 | 0.3767/7.71 | 0.04756/6.90 | 0.03542/7.81 | 0.07919/14.78 |-| 1.0 | 0.4 | 56.623 | 58.53 | 58.85 | 59.11 | 0.1806/6.91 | 0.3790/7.72 | 0.04734/6.91 | 0.03554/7.80 | 0.07925/14.78 |-| 1.2 | 0.1 | 56.485 | 58.40 | 58.86 | 58.68 | 0.1806/6.91 | 0.3720/7.69 | 0.04911/6.80 | 0.03419/7.92 | 0.08067/14.67 |-| 1.2 | 0.2 | 56.550 | 58.44 | 58.88 | 58.88 | 0.1806/6.91 | 0.3745/7.70 | 0.04907/6.80 | 0.03415/7.92 | 0.08001/14.72 |-| 1.2 | 0.4 | 56.612 | 58.71 | 58.91 | 58.83 | 0.1944/6.97 | 0.3768/7.71 | 0.04896/6.81 | 0.03415/7.92 | 0.08015/14.71 |-| 1.35 | 0.1 | 56.373 | 58.19 | 58.82 | 58.48 | 0.1667/6.86 | 0.3728/7.69 | 0.05017/6.73 | 0.03355/7.97 | 0.08134/14.62 |-| 1.35 | 0.2 | 56.375 | 58.00 | 58.84 | 58.66 | 0.1528/6.80 | 0.3747/7.70 | 0.05017/6.73 | 0.03348/7.98 | 0.08074/14.67 |-| 1.35 | 0.4 | 56.350 | 57.96 | 58.86 | 58.58 | 0.1528/6.80 | 0.3723/7.69 | 0.05014/6.73 | 0.03345/7.98 | 0.08099/14.65 |-| 1.5 | 0.1 | 56.145 | 57.59 | 58.73 | 58.26 | 0.1389/6.75 | 0.3643/7.65 | 0.05118/6.67 | 0.03308/8.01 | 0.08208/14.57 |-| 1.5 | 0.2 | 56.210 | 57.67 | 58.75 | 58.42 | 0.1389/6.75 | 0.3684/7.67 | 0.05124/6.67 | 0.03299/8.02 | 0.08154/14.61 |-| 1.5 | 0.4 | 56.188 | 57.68 | 58.76 | 58.31 | 0.1389/6.75 | 0.3692/7.67 | 0.05126/6.66 | 0.03295/8.03 | 0.08189/14.58 |--(网格与备选行均为本会话 vec-score 原始输出。* 锚行当次只记录了组分;其 B 半官方分项见父节点-变化量表:de_score 0.1944、de_dir 0.3744、mmd_u 0.04631、vario 0.03486、nbhd 0.07595。A/B 半-raw 不可直接互比,下文所有比较均只在 A 半内部进行。)--结论:**证否**。de_score raw 随 γ_geo 上升整体下降(1/72 命中量化:γ=1.0 全为 0.1806=13 命中,-γ=1.2 为 0.1806/0.1806/0.1944,γ=1.35 为 0.1667/0.1528/0.1528,γ=1.5 全为 0.1389=10 命中),-expr 组 58.48→57.68;仅 variogram 单调改善(pts 7.80→8.03)。PLAN 预期 γ_geo 上升带来-de_score 上升(node 33 的 0.1944→0.2639),本底物上方向相反。PLAN 的提交门(expr≥59.5 ∧-local≥59.0)无一配置满足;最优网格点 56.623 与锚 56.599 差 +0.02,远在 T2 噪声(~1 分)内。--诊断与不可迁移性:lin50n 加权使细胞总量比 r 出现极端尾巴(q90≈2.9 万;无加权时 q90≈508),-几何再闭合对尾部细胞的压碎强于精确守恒且随 γ_geo 加剧,同时全体细胞被均匀抬升 r_med^γ≈1.02^γ-(线性域),足以翻转 de_score 的边缘命中。node 33 分支(γ_geo=1.35 得 de_score 0.2639)的-底物无法复原:按其谱系参数重建(α=1.0、k=0.7、geom 1.35、ε=0.1、无加权)只得 **53.680**-(de_score 0.1667、variogram 0.0518、nbhd 0.0974),其 α=1.5 无加权变体 56.275——γ_geo=1.35-的最优性是那个特定底物的性质,不迁移到本分支。PLAN 第二轮(最优 γ_geo×ε 上重耦合 α)按其-自身边界规则不再执行(第一轮无一过门)。--## 3. 备选机制(针对同一弱项 expression_change / de_score)--| 配置 | avg4 | expr | cell | local | de_score raw | de_dir raw | 结论 |-|---|---:|---:|---:|---:|---:|---:|---|-| xt50n(基因级跨型一致性,保幅度归一) | **56.612** | 58.50 | 58.79 | 59.16 | 0.1806 | 0.3776 | **提交** |-| xt50n + geom γ=1.2 ε=0.4 | 56.515 | 58.15 | 58.95 | 58.96 | 0.1667 | 0.3707 | 劣于两部件 |-| xt50n + geom γ=1.5 ε=0.4 | 56.305 | 57.80 | 58.90 | 58.52 | 0.1528 | 0.3637 | 劣于两部件 |-| xtcovn(√n_types 覆盖度加权) | 56.347 | 58.32 | 58.53 | 58.54 | 0.1806 | 0.3679 | 证否 |-| log2 速度 α=1.0(k=0.5, lin50n) | 54.557 | 55.36 | 55.76 | 57.11 | 0.1528 | 0.2232 | 证否 |--xt50n 是本会话 20 配置中的最高分(+0.013 vs 锚,统计不可分),nbhd raw 0.07908 与 mmd_u-0.04661 为会话最佳(网格内最好分别为 0.07919 / 0.04734),de_direction 0.3776 仅次于网格的-0.3790;de_score 0.1806=13 命中(锚的 A 半分项未记录,父 B 半为 0.1944=14 命中,跨半仅参考)。-选择 xt50n 而非 geom γ=1.0/ε=0.4(56.623,差 +0.011)的理由:后者是已证否机制的边界点-(de_score 已丢 1 命中且随 γ 单调恶化),xt50n 是因果清晰、与 lin50n 正交的新机制,且-local_spatial 59.16 > 59.10(PLAN 门槛方向)。如实声明:+0.013 在噪声内,不能声称分数收益;-机制的价值在于给出了 de_direction / mmd_u / nbhd 同时微升、de_score 微降的可复现证据点。--## 4. 验证--- vec-check 通过(提交态与 ablate 态)。-- ablate 输出逐位 = 父节点提交态;提交态 ≠ 父节点(非 gen_empty)。-- 伪装视图(文件改名、manifest 键序打乱 + 重排版、全部时间 +1 天)输出与真实视图逐位相同。-- seed 0 重跑逐位相同;seed 3 可跑(本视图 n=max_cells 未截断,行选择与 seed 无关,输出相同)。-- 单输入视图:extrap_step 返回 None → α→0,输出 = 扩散基座(std_dp=0,DE 无变化保护区),不崩。-- 纯 CPU(EXECUTION.json gpu:false),全视图 ~4 s / ~1 GB,远低于 limits(30 min / 28 GB)。-- 无任何来自保留阶段/保留基因型的测量值;无硬编码阶段名、时间、细胞数;机制全部由视图输入-  现场计算;不使用 external/(本视图挂载的 Qiu E8.75 未被读取)。-- 未验证:B 半迁移(外推榜本地尺子历史高估,A 半 ±0.05 级差异不应期待兑现);真实括号-  (E8.5+E9.5→E10.5,步长比不同)上 xt50n 的行为。--## 5. 查分账目(20/20)--锚 1 + geom 网格 12 + n33 底物重建 2 + xt50n 1 + xtcovn 1 + log2 1 + xt50n×geom 组合 2 = 20。--## 6. 给后续节点--- 几何再闭合在本分支(lin50n/α=1.7/k=0.5)证否,勿再扫 γ_geo;node 33 的 57.04 无法通过-  参数移植复原(其代码不可得,重建底物 53.68),除非拿到其提交态代码,否则该分支的差异来源不明。-- de_score raw 以 1/72 命中量化,±1 命中 ≈ 榜分 ±0.03:该指标的"改善"必须 ≥3 命中才有意义。-- A 半已 30+ 配置压在 55.7–56.6:表达位移参数面全平台。剩余杠杆在结构上:坐标冻结使 shape-  恒 50(-25 分上限),任何能在保 nbhd 前提下动坐标的机制(如受约束的坐标外推)是唯一未探明-  的大分数带;父节点建议的邻域锐化未测(本会话额度耗尽)。+速度耦合的型内径向坐标微位移(σ阈0.55、δ=0.03×RMS、幅度∝s_t/s_max、位移后保锚RMS):过门细胞型按转录速度幅度做型内凝聚,锐化区室边界;表达侧逐位不动,形状/邻域组齐升。++# 表达速度耦合的型内径向坐标微位移(节点 38)++承继父节点 36 全部表达侧代码(ε=0.4 扩散基座、rel 速度 v=(m_a−m_p)/(m_p+1)、硬门控、k=0.5 软阈值、+型内 lin50n + 基因级 xt50n 一致性加权、α=1.7 乘法解码、逐细胞 CP10k 精确回拉 γ=1.0、PBC=10、行序/组成/细胞数冻结),+只新增加坐标机制(PLAN family T2HX-02,机制名 `mechanism`)。++## 机制(PLAN 原样实现 + 两处实测改进)++对每个有过门速度表的细胞型 t:+- s_t = mean(|v_{t,g}|)(该型过门基因);σ_t = −1/+1 当负/正速度基因占比 ≥ **0.55**(PLAN 原值 0.6;实测 0.55 更优,见下),混合符号型不动;+- 每细胞沿自身型质心的单位径向向量位移 Δx_i = δ·(s_t/s_max)·σ_t·R_rms,δ=**0.03**,R_rms = 输出点云 RMS 半径(尺度无关、帧无关,只用本阶段自身几何);+- 位移后整朵云均匀缩放回锚 RMS(d2_shape / occupancy_dice 均按 RMS 归一,此步只把 scale_log_ratio 钉回锚值 −0.4375,不含任何由已发布/保留阶段尺寸算出的常数)。++本视图上所有过门型的负速度基因占比 ≥0.55(CP10k 竞争使末步伪批量速度以负为主),28/33 型激活、全部 σ=−1、+24514 细胞被移动(max|Δx| = 6.5,约为最近邻间距 12 的一半):机制实际是**速度幅度加权的型内凝聚**——转录快的大型+(Neural Tube、V-CM、NCC、d-CSE、IFT-CM…)压缩多,混合/无速度型(SOM、HEM-Endoth、pSE 等 5 型)不动,区室边界被锐化。+生物学依据:E8.75 之后的心脏发育是袢环心管向分区明确的器官推进,各心区/组织区室经历压实与边界锐化+(发育事件顺序知识,Srivastava 2006, Cell 126:1037, DOI 10.1016/j.cell.2006.08.036;未使用任何保留阶段的测量值,+所有数值——速度、门控、s_t、σ_t、R_rms、位移——全部由视图输入现场计算)。++## 查分记录(proxy_noscale A 半,15/20 次;锚 = 父提交态 56.613)++| 配置(δ, σ阈, 变体) | 榜分 | shape | local | d2_shape | occ_dice | nb_mmd |+|---|---:|---:|---:|---:|---:|---:|+| 锚(父 36 提交态,δ=0) | 56.613 | 50.00 | 59.16 | 0.04891 | 0.8148 | 0.07908 |+| δ=0.005, 0.6 | 56.626 | 50.02 | 59.19 | 0.04878 | 0.8148 | 0.07899 |+| δ=0.02, 0.6 | 56.643 | 50.10 | 59.18 | 0.04838 | 0.8148 | 0.07901 |+| δ=0.03, 0.6 | 56.785 | 50.62 | 59.23 | 0.04811 | 0.8156 | 0.07887 |+| δ=0.05, 0.6 | 56.069 | 47.78 | 59.20 | 0.04755 | 0.8098 | 0.07895 |+| δ=0.1, 0.6 | 55.451 | 45.08 | 59.43 | 0.04604 | 0.8008 | 0.07821 |+| δ=−0.02, 0.6 | 55.870 | 47.12 | 59.07 | 0.04941 | 0.8090 | 0.07937 |+| δ=−0.05, 0.6 | 56.728 | 50.70 | 58.92 | 0.05013 | 0.8163 | 0.07987 |+| δ=0.035, 0.6 | 56.324 | 48.79 | 59.21 | 0.04797 | 0.8122 | 0.07891 |+| δ=0.04, 0.6 | 55.892 | 47.09 | 59.19 | 0.04783 | 0.8082 | 0.07900 |+| δ=0.03, 0.6, 均匀幅度 | 56.163 | 48.11 | 59.25 | 0.04764 | 0.8106 | 0.07880 |+| δ=0.03, 0.5 | 57.182 | 52.25 | 59.19 | 0.04802 | 0.8180 | 0.07899 |+| δ=0.02, 0.55 | 57.337 | 52.87 | 59.19 | 0.04833 | 0.8189 | 0.07900 |+| δ=0.025, 0.55 | 57.511 | 53.55 | 59.20 | 0.04818 | 0.8197 | 0.07895 |+| δ=0.05, 0.55 | 56.772 | 50.62 | 59.17 | 0.04744 | 0.8154 | 0.07904 |+| δ=0.03, 0.55, xy-only | 55.978 | 47.42 | 59.20 | 0.04772 | 0.8090 | 0.07896 |+| **δ=0.03, 0.55, 保RMS(提交)** | **57.664** | **54.18** | **59.18** | 0.04804 | 0.8204 | 0.07901 |++(δ=0.03/0.55/保RMS 与不保 RMS 的 56.785/57.664 各查一次,榜分与 d2/occ/nb 逐位相同,scale_log_ratio 由 −0.4508 回到 −0.4375:+证明 RMS 复原对本榜是零操作、对真实榜把尺寸项钉回地板值。)++## PLAN 硬约束核对(提交配置)++- neighborhood_mmd 0.07901 ≤ 锚 0.07908 ✓;local_spatial 59.18 ≥ 锚 59.16 ✓;+- d2_shape + occupancy_dice 改善在所有过约束 δ 中最大(0.02/0.025/0.03/0.05 网格)✓;+- 机制证据:实际移动 24514/24826 细胞、28 型激活(σ 全 −1)、位移幅度 ∝ s_t/s_max∈[0.39,1](速度耦合非零且在起作用:+  同 δ 均匀幅度 56.163 < 速度加权 56.785,−0.62);位移前后 15-NN Jaccard = 0.899(邻域基本保持,nb_mmd 反而略降);+  四组分:shape_scale +4.18(A半),local_spatial +0.02,expression_change / cell_state 逐位不变(X 未动)。++## 已证否 / 已排除的方向(本会话)++- 膨胀方向(δ<0):d2_shape 与 nb_mmd 同步变差(−0.02: 55.87),收缩方向被数据确认;+- δ≥0.035(σ阈 0.6)与 δ≥0.05(0.55):occupancy_dice 掉下地板(体素崖),d2/nb 的继续改善抵不过;+- 均匀幅度(去掉 s_t/s_max 耦合):−0.62,PLAN 的速度幅度耦合是有效成分;+- xy-only(冻结 z):−1.69,径向位移必须三维(z 位移与 xy 协同才保持各向异性);+- σ阈 0.5(全过门型激活):57.182 < 0.55 的 57.664,混合符号型(SOM/HEM-Endoth/pSE)不应动。++## 验证过 / 未验证++验证过:提交态与 ablate 态、seed 0 重跑、seed 1 全部逐位确定;`--ablate mechanism` 输出逐位 = 父节点 36 提交态+(本地逐位核对);伪装视图(改路径、manifest 键序打乱、全部时间 +1)输出逐位相同;单输入阶段视图不崩+(α→0、无位移、回扩散基座,vec-check 过);提交态/ablate 态/单输入态均过 vec-score check;纯 CPU ~5 s / ~1 GB。+未验证:B 半与官网真值(A 半 +1.05 中约 +1.0 来自 occupancy_dice 0.8148→0.8204,该指标是 16³ 体素离散量、+对 δ 有跳变;但 (0.5–0.55, 0.02–0.03) 整个邻域都在地板之上,非单点尖峰);真实 final 视图(3 输入)的共有型+门控行为只经过单输入回退测试,未见过 final 数据;scale_log_ratio 在真实榜上的表现被本榜钉在地板值,无本地信号。++## 开关(复现网格用)++`VEC_XDELTA`(δ,默认 0.03)、`VEC_XSIGTHR`(σ阈,默认 0.55)、`VEC_XRMS`(1=保锚RMS,默认 1)、+`VEC_XAMP`(vel/uni,默认 vel)、`VEC_XDIM`(3d/xy,默认 3d);表达侧开关承自父节点(VEC_EPS/ALPHA/KSOFT/GAMMA/CONS/CONSG 等)。+`--ablate <任意名>`:仅 δ→0,其余保持提交态默认。diff --git a/solution/README.md b/solution/README.mdindex 1c1c5ac..01a7ce0 100644--- a/solution/README.md+++ b/solution/README.md@@ -1,25 +1,29 @@-# 基因级跨型符号一致性加权 rel 速度外推(节点 36)+# 表达速度耦合的型内径向坐标微位移(节点 38) -父节点 34 底物(rel 速度 v=(m_a−m_p)/(m_p+1)、硬门控 + k=0.5 软阈值、ε=0.4 扩散基座、-型内 lin50n 一致性加权、α=1.7 乘法解码、逐细胞 CP10k 精确回拉 γ=1.0、PBC=10,坐标/组成/-行序冻结)之上叠加**基因级跨型符号一致性加权 xt50n**:每个过门基因按跨细胞型符号一致比例-u_g 得 w_g=0.5+0.5·u_g,配对比重归一(总位移守恒的纯重分配)。全部数值由视图输入现场计算。+父节点 36 提交态表达侧(rel 速度 v=(m_a−m_p)/(m_p+1)、硬门控 + k=0.5 软阈值、ε=0.4 扩散基座、+型内 lin50n + 基因级 xt50n 一致性加权、α=1.7 乘法解码、逐细胞 CP10k 精确回拉 γ=1.0、PBC=10,+组成/行序/细胞数冻结)之上叠加**坐标机制**:每个过门细胞型按型内速度幅度 s_t 与符号占比+(阈值 0.55)得 σ_t,细胞沿自身型质心径向位移 δ·(s_t/s_max)·σ_t·R_rms(δ=0.03),+随后整朵云均匀缩放回锚 RMS(scale_log_ratio 钉回锚值;d2/occ 按 RMS 归一不受影响)。+本视图 28 型全 σ=−1(型内凝聚)、24514/24826 细胞被移动、15-NN Jaccard 0.899。+全部数值由视图输入现场计算,无外部数据、无阶段尺寸常数。 -A 半(proxy_noscale):提交态 56.612;ablate 态(=父节点 34 提交态,逐位)56.599。-PLAN 的几何再闭合(γ_geo×ε 12 配置网格)证否:de_score 随 γ_geo 单调下降;备选机制-xtcovn(56.347)、log2 速度(54.557)、xt50n×geom 组合(56.515/56.305)均证否;-20 次查分明细见 METHOD.md。+A 半(proxy_noscale):提交态 **57.664**(锚 56.613,+1.05;shape_scale 50.00→54.18,+occupancy_dice 0.8148→0.8204,d2_shape 0.04891→0.04804,nb_mmd 0.07908→0.07901,+PLAN 硬约束 nb≤锚 / local≥锚 通过);ablate 态逐位 = 父节点 36 提交态。+15 次查分网格与证否方向(膨胀、均匀幅度、xy-only、σ阈 0.5/0.6、δ≥0.035)见 METHOD.md。  ## 开关 -- `--ablate mechanism`:cons_g=none + 回退 renorm=cell/γ=1.0(父解码),输出逐位 = 节点 34。-- env 探针(仅复现网格):`VEC_CONSG`(none/xt50n/xtcovn)、`VEC_CONS`(none/lin50/lin30/-  sqrt/hard,尾缀 n=归一化)、`VEC_RENORM`(cell/geom/none)、`VEC_GAMMA` `VEC_ALPHA`-  `VEC_KSOFT` `VEC_EPS` `VEC_PBC` `VEC_VEL`(rel/log2)`VEC_SMD` `VEC_SMTAU`-  `VEC_STRAT_M/BH/BL`(默认关)。+- `--ablate mechanism`(任意名同效):δ→0,其余保持提交态默认,输出逐位 = 节点 36。+- env 探针(仅复现网格):`VEC_XDELTA`(默认 0.03)、`VEC_XSIGTHR`(0.55)、+  `VEC_XRMS`(1=保锚RMS)、`VEC_XAMP`(vel/uni)、`VEC_XDIM`(3d/xy);+  表达侧承自父节点:`VEC_CONSG` `VEC_CONS` `VEC_RENORM` `VEC_GAMMA` `VEC_ALPHA`+  `VEC_KSOFT` `VEC_EPS` `VEC_PBC` `VEC_VEL` `VEC_SMD` `VEC_SMTAU` `VEC_STRAT_M/BH/BL`。  ## 稳健性(已实测) -- 纯 CPU ~4 s / ~1 GB;vec-check 通过(提交态与 ablate 态)。-- seed 0 重跑逐位相同;伪装视图(改名、键序打乱、时间 +1)逐位相同。-- 单输入视图 α→0 回扩散基座(DE 无变化保护区),不崩;机制无随机性。+- 纯 CPU ~5 s / ~1 GB;vec-score check 通过(提交态、ablate 态、单输入态)。+- seed 0 重跑与 seed 1 逐位相同(机制无随机性、抽样为全细胞);伪装视图+  (改路径、manifest 键序打乱、全部时间 +1)输出逐位相同。+- 单输入阶段视图:无速度表 → α=0 且零位移,回扩散基座,不崩。diff --git a/solution/run.py b/solution/run.pyindex 2de6694..9289812 100644--- a/solution/run.py+++ b/solution/run.py@@ -1,80 +1,62 @@ #!/usr/bin/env python3-"""T2 extrapolation: rel-velocity multiplicative extrapolation (node-34 state:-node-32 substrate + amplitude-normalized within-type direction-consistency-weighting lin50n, alpha=1.7) + NODE-36 mechanism:--GENE-LEVEL CROSS-TYPE SIGN-CONSISTENCY WEIGHTING (xt50n): for each gated-gene g, u_g = fraction of the gated cell types whose velocity sign matches-the gene's cross-type majority sign; every gated (type,gene) pair is scaled-by (0.5+0.5*u_g) / (pair-weighted mean), a pure re-allocation of amplitude-toward genes that move coordinately ACROSS lineages. Rationale: true-developmental programs (signal-driven TF cascades, lineage progression)-move the same gene in the same direction in several cell types, while-type-idiosyncratic velocity is dominated by the sampling noise of two-pseudobulk means; both reliability proxies are computed from the view's own-inputs only. Composes with the inherited within-type (across-gene) lin50n-weighting, which is orthogonal (per-type vs per-gene).--NODE-36 PLAN (geometric re-closure s_i=(r_med/r_i)^gamma_geo replacing the-exact per-cell CP10k pullback) was FALSIFIED on this substrate: the full-gamma_geo x eps grid {1.0,1.2,1.35,1.5} x {0.1,0.2,0.4} (12 scored configs)-degrades monotonically - de_score raw 0.1944 -> 0.1806 -> 0.1667 -> 0.1389-with rising gamma_geo, best grid point 56.623 vs parent anchor 56.599-(noise). The node-33 branch's win with gamma_geo=1.35 does NOT transfer to-the lin50n/alpha=1.7 substrate (its substrate reconstruction scored 53.68,-unrecoverable). Backup mechanisms also scored: xtcovn (sqrt(n_types)-coverage boost) 56.347, log2 velocity alpha=1.0 54.557 - both falsified.-Submitted backup: xt50n, A-half 56.612 (>= anchor 56.599), de_direction-0.3776 and neighborhood_mmd 0.07908 best of this session's 20 configs.--Inherited node-34 mechanism (kept): AMPLITUDE-NORMALIZED DIRECTION--CONSISTENCY WEIGHTING of the gated per-type velocity field at alpha=1.7:-for each gated (type,gene) pair, c = fraction of the OTHER gated genes of-the same type whose velocity sign matches; v_eff = v * w(c)/mean_t(w(c))-with w = 0.5+0.5c (mode lin50n).--Measured (A half, proxy_noscale, node-36 session, 20 scored configs, full-tables in METHOD.md):-  parent anchor (lin50n, alpha=1.7, cell-exact gamma=1.0, eps=0.4)  56.599-  + xt50n gene-level cross-type weighting  (SUBMITTED)              56.612-  geom re-closure grid gamma_geo x eps (PLAN, falsified):-    g=1.0: 56.535/56.610/56.623 (eps=0.1/0.2/0.4)-    g=1.2: 56.485/56.550/56.612   g=1.35: 56.373/56.375/56.350-    g=1.5: 56.145/56.210/56.188   de_score monotone down with gamma_geo-  xt50n + geom g=1.2/1.5 (eps=0.4):  56.515 / 56.305 (below both parts)-  xtcovn coverage boost:             56.347 (falsified)-  log2 velocity alpha=1.0:           54.557 (falsified)-  node-33 substrate reconstruction (alpha=1.0,k=0.7,geom1.35,eps=0.1,-    no weighting): 53.680 - node-33's exact code unrecoverable, its-    gamma_geo=1.35 optimum does not transfer to this substrate.--Substrate (node 32, A half 56.43 with stratification off):-  rel velocity v_{t,g} = (m_a - m_p)/(m_p + 1) (within-type log1p means),-  hard gates (>=30 cells/type/stage, m >= 0.05 both, |v| <= 2), soft-  threshold k=0.5, per-cell decode x' = Y0 * 2**(alpha*v_eff) with alpha=1.7,-  per-cell linear-total pullback to the cell's OWN base total with gamma=1.0-  (exact CP10k conservation), brightness clamp PBC=10, on the eps=0.4-  2-step support-masked diffusion base (node-23 operator) with exact-  per-gene pseudobulk restoration. Coordinates, composition, row order and-  cell count are frozen (shape group stays at floor by construction).--``--ablate mechanism``: turns OFF the node-36 gene-level weighting-(cons_g=none) and reverts the total re-closure to the parent decode-(exact per-cell conservation, renorm=cell gamma=1.0) -> output bitwise-the node-34 submitted state (A half 56.599; submitted state 56.612).-The contrast isolates exactly the node-36 mechanism.--Single-input fallback: no previous stage -> alpha=0 -> output bitwise the-diffusion base (DE no-change protection).--Biology: transcriptional velocity over the last observed interval-extrapolates regulatory programs acting over the next interval (validated in-nodes 21/24/27/29/32). No external data, no constants from published or-held-out stages; every number (velocities, gates, consistency fractions,-smoothing masks) is computed from the view's own inputs.--View-independent: no absolute stage names/times read; mechanism is-time-free. Deterministic given --seed (mechanism consumes no randomness).+"""T2 extrapolation: node-36 expression state (rel-velocity multiplicative+extrapolation, lin50n within-type + xt50n gene-level cross-type consistency+weighting, alpha=1.7, exact per-cell CP10k pullback, eps=0.4 diffusion base,+PBC=10) + NODE-38 mechanism (PLAN family T2HX-02):++EXPRESSION-VELOCITY-COUPLED RADIAL WITHIN-TYPE COORDINATE MICRO-+DISPLACEMENT. For every cell type with a gated velocity table: s_t = mean+|v_{t,g}| over gated genes; sigma_t = -1/+1 if the negative/positive velocity+share >= 0.55 (mixed types do not move). Each cell moves along the unit+vector from its own type centroid by delta * (s_t/s_max) * sigma_t * R_rms+(delta=0.03, R_rms = RMS radius of the output cloud), then the whole cloud is+uniformly rescaled to restore the anchor RMS radius exactly (d2_shape and+occupancy_dice are RMS-normalized, so the rescale only pins scale_log_ratio+to the anchor's own value - no size constant from any stage is used).+Frame-free (own-stage geometry only), scale-free, deterministic. On this+view every gated type has a negative-sign majority (CP10k competition makes+the last-step pseudobulk velocity predominantly negative), so the mechanism+is a velocity-magnitude-weighted within-type condensation: transcriptionally+fast types compact more, mixed/slow types stay - sharpening compartment+boundaries, which is what the E9.5 heart (chamber condensation, tighter+tissue compartments relative to the E8.75 spreading primordia) plausibly+looks like. Developmental-sequence knowledge only (lineage/compartment+sharpening after E8.75); no measurements from held-out stages.++Measured (A half, proxy_noscale, 15 scored configs this session; anchor =+node-36 submitted state 56.613):+  SUBMITTED thr=0.55 delta=0.03 rms-keep vel-amp:  57.664 (+1.05)+    shape_scale 54.18 (occupancy_dice 0.8148->0.8204, d2_shape+    0.04891->0.04804), local_spatial 59.18 (nb_mmd 0.07901 <= 0.07908+    anchor: PLAN hard constraint satisfied), scale_log_ratio exactly the+    anchor value, expression/cell_state bitwise unchanged.+  thr=0.55 delta=0.02: 57.337   thr=0.55 delta=0.025: 57.511+  thr=0.55 delta=0.05: 56.772   thr=0.6 delta=0.03: 56.785+  thr=0.5 delta=0.03:  57.182+  thr=0.6 grid (PLAN delta sweep): 0.005: 56.626, 0.01: -, 0.02: 56.643,+    0.03: 56.785, 0.05: 56.069, 0.1: 55.451 (d2_shape and nb_mmd improve+    monotonically with contraction; occupancy_dice falls off a voxel+    cliff beyond delta~0.03)+  expansion (delta<0): -0.02: 55.870 (d2+occ both worse), -0.05: 56.728+    (occ up, d2 down) - contraction direction confirmed.+  uniform amplitude (no s_t/s_max coupling) thr=0.6 delta=0.03: 56.163 vs+    vel-coupled 56.785 - the velocity-magnitude coupling carries signal.+  xy-only (z frozen) thr=0.55 delta=0.03: 55.978 - z must move with xy+    (radial 3D), falsified.++``--ablate mechanism``: delta -> 0 (rms-keep becomes identity) -> output+bitwise the node-36 submitted state (A half 56.613). Mechanism evidence+printed to stderr per run: n_active types, sigma split, moved cells,+max|dx|, 15-NN Jaccard between original and displaced clouds (0.899 at the+submitted config; neighborhoods preserved while nb_mmd still improves).++Single-input fallback: no previous stage -> no velocity tables -> zero+displacement AND alpha=0 -> output bitwise the diffusion base (coords+unchanged, DE no-change protection).++View-independent: no stage names/absolute times; delta is in units of the+cloud's own RMS radius, thresholds are fractions. Deterministic given+--seed (mechanism consumes no randomness). """  from __future__ import annotations@@ -138,6 +120,23 @@ CONS_W = os.environ.get("VEC_CONS", "lin50n") # preserving]. xtcov (sqrt(n_g) coverage boost) measured worse - falsified. CONS_G = os.environ.get("VEC_CONSG", "xt50n") +# --- node-38 mechanism (PLAN T2HX-02): expression-velocity-coupled radial+#     within-type coordinate micro-displacement. delta in units of the cloud+#     RMS radius; 0 = off (output bitwise the node-36 parent).+XDELTA = float(os.environ.get("VEC_XDELTA", "0.03"))+XSIG_THR = float(os.environ.get("VEC_XSIGTHR", "0.55"))+# restore the cloud RMS radius after displacement (uniform rescale; d2_shape+# and occupancy_dice are RMS-normalized so this only pins scale_log_ratio to+# the anchor's own value - no size constant from any stage).+XRMS_KEEP = os.environ.get("VEC_XRMS", "1") == "1"+# amplitude profile: "vel" = delta*(s_t/s_max) (PLAN), "uni" = delta for every+# active type (tests whether the velocity-magnitude coupling carries signal).+XAMP_MODE = os.environ.get("VEC_XAMP", "vel")+# "3d" = radial in full space; "xy" = in-plane only, z (discrete section+# index) untouched - moving cells between physical slices is not a real+# tissue rearrangement.+XDIM = os.environ.get("VEC_XDIM", "3d")+ # --- PLAN part 2 (FALSIFIED, off by default): neighborhood smoothing ----------- SMOOTH_D = float(os.environ.get("VEC_SMD", "0.0"))     # delta; 0 = off SMOOTH_TAU = float(os.environ.get("VEC_SMTAU", "0.3"))  # |alpha*v_eff| gate@@ -328,6 +327,100 @@ def soft_threshold(v: np.ndarray, k: float) -> np.ndarray:     return np.sign(v) * np.maximum(np.abs(v) - k, 0.0)  ++def radial_velocity_displacement(coords: np.ndarray, labels: np.ndarray,+                                 v_by_type: dict, delta: float,+                                 sig_thr: float,+                                 amp_mode: str = "vel",+                                 xdim: str = "3d") -> tuple[np.ndarray, dict]:+    """Per-cell radial displacement around own-type centroids (node-38 PLAN).++    For each gated type t: s_t = mean |v_{t,g}| over gated genes; sigma_t = +1+    if the positive-velocity share >= sig_thr, -1 if the negative share >=+    sig_thr, else 0 (type not moved). Per cell i of type t:+        dx_i = delta * (s_t / s_max) * sigma_t * u_i * R_rms,+    u_i = unit vector from the type centroid to x_i, R_rms = RMS radius of+    the centered cloud. Frame-free (no cross-stage registration), scale-free+    (units of R_rms), deterministic. Empty velocity table -> no displacement.+    """+    n = coords.shape[0]+    disp = np.zeros((n, 3), dtype=np.float64)+    utypes = np.unique(labels)+    C = coords - coords.mean(axis=0)+    R_rms = float(np.sqrt((C ** 2).sum(axis=1).mean()))+    s_tab: dict[str, float] = {}+    sig_tab: dict[str, int] = {}+    for t in utypes:+        v = v_by_type.get(str(t))+        if v is None:+            sig_tab[str(t)] = 0+            continue+        m = v != 0+        ng = int(m.sum())+        if ng == 0:+            sig_tab[str(t)] = 0+            continue+        s_t = float(np.abs(v[m]).mean())+        pos = float((v[m] > 0).sum()) / ng+        if pos >= sig_thr:+            sig = 1+        elif (1.0 - pos) >= sig_thr:+            sig = -1+        else:+            sig = 0+        s_tab[str(t)] = s_t+        sig_tab[str(t)] = sig+    active = {t: s for t, s in s_tab.items() if sig_tab.get(t, 0) != 0}+    if not active or delta == 0.0 or R_rms <= 0:+        return disp, {"R_rms": R_rms, "n_active": len(active),+                      "s_max": 0.0, "n_moved": 0, "max_disp": 0.0}+    s_max = max(active.values())+    n_moved = 0+    for t in utypes:+        sig = sig_tab.get(str(t), 0)+        if sig == 0:+            continue+        frac = 1.0 if amp_mode == "uni" else (s_tab[str(t)] / s_max)+        amp = delta * frac * sig * R_rms+        rows = np.flatnonzero(labels == t)+        P = coords[rows]+        c_t = P.mean(axis=0)+        D = P - c_t+        if xdim == "xy":+            D = D.copy()+            D[:, 2] = 0.0+        nrm = np.linalg.norm(D, axis=1)+        ok = nrm > 1e-9+        disp[rows[ok]] = (amp * D[ok] / nrm[ok, None])+        n_moved += int(ok.sum())+    diag = {"R_rms": R_rms, "n_active": len(active), "s_max": s_max,+            "n_moved": n_moved,+            "max_disp": float(np.abs(disp).max()),+            "amp_typ": float(delta * R_rms),+            "sig_pos": sum(1 for v in sig_tab.values() if v > 0),+            "sig_neg": sum(1 for v in sig_tab.values() if v < 0),+            "sig_zero": sum(1 for v in sig_tab.values() if v == 0)}+    return disp, diag+++def nn_jaccard(coords: np.ndarray, disp: np.ndarray, k: int = 15,+               n_sample: int = 4000, seed: int = 0) -> float:+    """Mean |NN_a & NN_b| / |NN_a u NN_b| between original and displaced+    clouds over a deterministic cell sample (mechanism evidence only)."""+    n = coords.shape[0]+    m = min(n_sample, n)+    idx = np.sort(np.random.default_rng(seed).choice(n, m, replace=False))+    t0 = cKDTree(coords)+    t1 = cKDTree(coords + disp)+    _, a = t0.query(coords[idx], k=k + 1)+    _, b = t1.query((coords + disp)[idx], k=k + 1)+    jac = []+    for ra, rb in zip(a, b):+        sa, sb = set(int(x) for x in ra[1:]), set(int(x) for x in rb[1:])+        jac.append(len(sa & sb) / max(len(sa | sb), 1))+    return float(np.mean(jac))++ def main() -> None:     parser = argparse.ArgumentParser()     parser.add_argument("--data", required=True)@@ -347,16 +440,12 @@ def main() -> None:     cons_w = CONS_W     cons_g = CONS_G     smooth_d = SMOOTH_D+    xdelta = XDELTA     if ablated:-        # PLAN mechanism_off_control: revert the decode to the parent (node-34)-        # state - exact per-cell CP10k conservation (renorm=cell, gamma=1.0)-        # and no smoothing/stratification; the lin50n weighting + alpha stay,-        # so the contrast isolates the geometric re-closure mechanism.-        renorm = "cell"-        gamma = 1.0-        cons_g = "none"-        smooth_d = 0.0-        strat_m, strat_bh, strat_bl = 0.0, 1.0, 1.0+        # PLAN mechanism_off_control (node-38): delta -> 0 (no coordinate+        # displacement); everything else stays at the node-36 submitted state+        # (defaults), so the ablated output is bitwise the parent submission.+        xdelta = 0.0      manifest = load_manifest(args.data)     genes = panel_genes(args.data, manifest)@@ -567,7 +656,38 @@ def main() -> None:           f"absmean_dcell={dcell.mean():.5f} max_dcell={dcell.max():.4f} "           f"Xmax={Xs.max():.3f}", file=sys.stderr) -    write_t2(args.out, Xs.astype(np.float32), coords[:, :3], genes,+    coords_out = coords[:, :3]+    if xdelta != 0.0 and v_by_type:+        disp, ddiag = radial_velocity_displacement(+            coords_out, out_labels, v_by_type, xdelta, XSIG_THR, XAMP_MODE,+            XDIM)+        if ddiag["n_moved"]:+            jac = nn_jaccard(coords_out, disp)+            print(f"[diag] xdisp delta={xdelta} R_rms={ddiag['R_rms']:.2f} "+                  f"amp={ddiag['amp_typ']:.3f} n_active={ddiag['n_active']} "+                  f"sig(+/-/0)={ddiag['sig_pos']}/{ddiag['sig_neg']}/"+                  f"{ddiag['sig_zero']} moved={ddiag['n_moved']} "+                  f"max|dx|={ddiag['max_disp']:.3f} nn_jaccard={jac:.4f}",+                  file=sys.stderr)+            C0 = coords_out - coords_out.mean(axis=0)+            r0 = float(np.sqrt((C0 ** 2).sum(axis=1).mean()))+            coords_out = coords_out + disp+            if XRMS_KEEP:+                mu = coords_out.mean(axis=0)+                C1 = coords_out - mu+                r1 = float(np.sqrt((C1 ** 2).sum(axis=1).mean()))+                if r1 > 1e-9:+                    coords_out = mu + C1 * (r0 / r1)+                    print(f"[diag] xdisp rms_keep factor={r0 / r1:.5f} "+                          f"r0={r0:.3f} r1={r1:.3f}", file=sys.stderr)+        else:+            print(f"[diag] xdisp delta={xdelta} no active type -> no move",+                  file=sys.stderr)+    elif xdelta != 0.0:+        print("[diag] xdisp requested but velocity table empty -> no move",+              file=sys.stderr)++    write_t2(args.out, Xs.astype(np.float32), coords_out, genes,              seed=args.seed)  

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

用到的知识库条目

编号标题出处
k007Interval staging and held-out-window filtering of external datanotes/official/来件/virtualembryo.ai/rules.md
k026Canonicalise predicted 3D coordinates before submissionnotes/pitfalls/04_scorer_invariance.md
k027Joint expression-geometry generation with relative geometrynotes/competition/03_solution_landscape.md

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

改了什么在父节点 36 提交态(表达侧逐位不变)上新增坐标机制:每个过门细胞型按型内转录速度幅度 s_t 与符号占比(阈值实测改为 0.55)得 σ_t,细胞沿自身型质心径向位移 δ·(s_t/s_max)·σ_t·R_rms(δ=0.03),位移后整朵云均匀缩放回锚 RMS。实测评测侧 28/33 型激活且全为 σ=−1(型内凝聚),约 99% 细胞被移动。
各组分数的变化cell_state:不变(+0.00,59.14):mmd_u 0.04541、variogram 0.0357 逐位相同
expression_change:不变(+0.00,58.46):de_score 0.1806、de_direction 0.3759 与父节点逐位相同,表达侧未动,符合预期
local_spatial:噪声内(+0.02,59.82→59.84):neighborhood_mmd raw 0.07573→0.07566,skill 0.598 不变
shape_scale:变坏(−2.37,50.00→47.63):occupancy_dice raw 0.8066→0.8000,skill 0.500→0.424(掉到地板以下),得分 −0.63;d2_shape raw 0.04911→0.04823,skill 0.500→0.505,得分 +0.04;scale_log_ratio 不变(保 RMS 复原生效)。邻域 skill 0.598>0.5,结构门=1,损失全部来自 occupancy_dice
family_idT2HX-02
假设是否成立否
经验
  1. 外推榜本地尺子高估再次兑现:Engineer 报告的 A 半本地收益 +1.05(56.613→57.664,其中 shape_scale +4.18)在评测侧变成榜分 −0.59、shape_scale −2.37,方向相反——外推榜上任何只在本地 A 半调出的收益都不能当作真实收益
  2. occupancy_dice 是 16³ 体素离散量:本地 A 半 0.8148→0.8204 的增益在评测侧表现为 0.8066→0.8000(skill 掉到 0.424),坐标位移把体素占据推过网格边界,本地峰值 δ=0.03/σ阈0.55 恰好落在评测侧的崖下——对该指标的参数必须在评测同侧网格上调,且选稳健中心而非峰值
  3. 速度幅度耦合本身有本地证据支持(均匀幅度对照 −0.62)、机制隔离干净(ablate 逐位=父提交态、d2_shape/occupancy_dice 确有方向性变化、15-NN Jaccard 0.899 保住邻域),失败点不在机制设计而在参数标定侧不对
  4. d2_shape 对小坐标位移极不敏感:raw 0.04911→0.04823 只换来 skill 0.500→0.505(+0.04 分),指望 d2_shape 拿形状分需要大幅度的形状改变,而大幅度又会触发 occupancy_dice 体素崖——两项的形状改进窗口可能互斥
mechanism_active是
下一步建议
  1. 若保留本机制,回退到父节点 36 提交态为底,在评测同侧(而非本地 A 半)重扫 δ∈{0.005,0.01,0.015,0.02}×σ阈∈{0.55,0.6},硬门槛改为 occupancy_dice skill≥0.500 且 neighborhood_mmd raw≤父值,选邻域内多点均过门的稳健中心(针对 shape_scale 组)
  2. 试 Engineer 建议的解耦方案:只对大型(s_t/s_max 高)做强凝聚、边界/低速度细胞保留不动,目标是继续吃 neighborhood_mmd 的单调收缩收益(δ=0.1 时本地 0.0782)而不触发 occupancy_dice 崖——但所有查分必须在评测侧确认(针对 shape_scale 与 local_spatial)
  3. shape_scale 三项在评测侧全部贴着地板(skill 0.500/0.424/0.500),坐标侧改动的风险收益比差;若两次评测侧验证仍无正收益,放弃坐标机制,回到表达侧或换 other 方向

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

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

分析员

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

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数44
工具调用共 48 次:bash 43、todowrite 2、write 2、read 1
用时28 分
token 数输入 115,156 · 输出 20,207 · 思考 28,333
任务(第一行)按计划修改程序:表达速度耦合的型内径向坐标微扰(保邻域约束)
最后的回答(摘录)
**做了什么**:实现 PLAN 的表达速度耦合型内径向坐标微位移(承父 36 表达侧逐位不变),并实测改进两处:σ 阈值 0.6→0.55(纳入 d-CSE 等大型,+0.88)、位移后均匀缩放保锚 RMS(本榜零操作、真实榜把 scale_log_ratio 钉回地板)。`--ablate mechanism` δ→0,逐位 = 父提交态(已核对)。

**查分**(19/20 次):提交态 A 半 **57.664**(锚 56.613,+1.05)——shape_scale 50.00→54.18(occ_dice 0.8148→0.8204、d2 0.04891→0.04804),nb_mmd 0.07908→0.07901,PLAN 硬约束全过;nn_jaccard 0.899。证否:膨胀方向、均匀幅度(−0.62,速度耦合有效)、xy-only(−1.69)、σ阈 0.5、δ≥0.035(occ 体素崖)。伪装视图/单输入/多种子/重跑全部逐位一致,vec-score check 通过,纯 CPU ~5 s。

**下一步最值得试**:(1) occupancy_dice 是 16³ 体素离散量,δ=0.03/σ0.55 附近的 +0.0056 增益在 B 半可能缩水——下一节点应验证 (0.5–0.55, 0.02–0.03) 邻域的稳健中心而非峰值;(2) nb_mmd 随收缩单调改善(δ=0.1 时 0.0782),可试"大型强收缩 + 边界细胞保留"解耦 occ 崖与 nb 增益;(3) 本机制与表达侧正交,可叠加到 node 35 分支(57.11)验证跨底物迁移。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/38/engineer.jsonl 269 KB
/home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/38/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时6 分
token 数输入 22,371 · 输出 8,525 · 思考 8,192
任务(第一行)为节点 n38(改进,父节点 n36)写改进计划 PLAN.json
最后的回答(摘录)
交态。预期差别:榜分差为 0。",
 "sources": []}
```

```json
{"name":"表达速度耦合的型内径向坐标微扰(保邻域约束)","motivation":"shape_scale 组在全树 38 节点中恒为 50.00(三项指标 skill 均 0.500=地板),是唯一未探明的 +25 分空间。ANALYSIS 明确建议'用与表达位移同源的型内速度场对 spatial_3D 坐标做小幅外推'。node 15 证明小幅坐标位移可改善 occupancy_dice(0.8066→0.8189 at γ=0.05),但该方案用全局 OT 场、未耦合表达速度、未在 neighborhood_mmd 约束下搜索。父节点 36 的 expression_change 58.46、local_spatial 59.82 已在平台期(30+ 配置压在 55.7–56.6),继续调表达侧期望收益趋零。","approach":"步骤:(1) 承继父节点 36 全部表达侧代码(lin50n+xt50n+α=1.7+γ=1.0+ε=0.4),坐标/组成/行序解冻仅限本机制;(2) 对每个过门控细胞型 t,计算型质心 c_t 和型内每细胞的单位方向向量 d_i=(x_i−c_t)/‖x_i−c_t‖;(3) 计算型级速度幅度 s_t=mean(|v_{t,g}| over gated genes of type t);(4) 每细胞坐标位移 Δx_i = δ·(s_t/s_max)·d_i·σ_t,其中 σ_t=+1 若型内正速度基因占比≥0.6、−1 若负占比≥0.6、否则该型 σ_t=0(不动);s_max 为所有激活型的最大幅度;δ 单位为点云 RMS 半径(消除坐标尺度依赖);(5) δ 网格 {0.005, 0.01, 0.02, 0.05, 0.1},从最小开始逐个查分;(6) 硬约束:每个 δ 查分后检验 neighborhood_mmd raw ≤ 0.07573 且 local_spatial ≥ 59.0,不满足则停止增大 δ;(7) 在通过约束的 δ 中选 (d2_shape 得分 + occupancy_dice 得分) 改善最大者提交。单输入阶段退路:无前阶段→无速度→所有 s_t=0→坐标不变→输出等于扩散基座(坐标逐位不变)。vec-score 快速筛选:δ 网格最多 5 次 + 机制关对照 1 次 + 最终确认 1 次 ≤ 7 次查分(上限 20 次内)。","expected_groups":["shape_scale","local_spatial"],"risks":"1) 径向位移破坏表达-位置配对使 neighborhood_mmd 恶化、结构门 <1 反扣形状分——Engineer 在 δ=0.005 即查分确认邻域不降再继续;2) d2_shape 对小幅位移不敏感(20 万对点的距离分布变化太小)——若最大 δ=0.1 仍无变化则判定机制无效、以机制关提交;3) 型内速度方向不一致使 σ_t 不稳定——已设 0.6 占比阈值,不满足的型不动;4) 真值 E9.5 形状可能并不比 E8.5 有显著差异(心脏此阶段形态变化小),则任何坐标改变都是噪声——此时应如实报告机制无效并以机制关提交。","family_id":"T2HX-02","mechanism":"用型内表达速度幅度驱动该型细胞沿质心径向的差异化坐标微位移:高速度型膨胀/收缩幅度大,低速度型几乎不动,将表达外推信号同源传递到几何形状。","vs_constant_shift":"常数位移对所有细胞施加相同平移或均匀缩放,不改变形状(d2_shape 对平移旋转不变、occupancy_dice 对均匀缩放不变);本机制按每个型的速度幅度差异化地改变径向距离(高速度型位移大、低速度型位移小、方向由表达速度符号决定),改变点云的相对几何(各向异性、占据形状),是真正的形状外推而非刚体/等比变换。","mechanism_evidence":"1) 报告每型的实际位移幅度分布(应与 |v_t| 正相关、非零);2) 对比 d2_shape 和 occupancy_dice 的 raw 值变化(应随 δ 有方向性变化而非逐位不变);3) 报告位移前后每细胞 15-NN 集合的 Jaccard 重叠(应 >0.9 证明邻域保持);4) 四组分各自变化:形状组应升、邻域组应持平、表达两组应逐位不变(表达未改)。","mechanism_off_control":"--ablate mechanism 时 δ=0(无坐标位移),输出逐位等于父节点 36 提交态。预期差别:榜分差为 0。","sources":[]}
```
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/38/researcher.jsonl 31 KB
/home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/38/researcher.stderr