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

总览 · ← 返回运行 20261003-094241-search-t2-heart-interp-g24-D-s2

节点 n24

逐基因零阶矩符号校正(全细胞加同一常数 c_g=λ(tΔ_g−dp_g)):代理上 flip 集恒为空,full-ref/all 变体 de_score 均降且 variogram 超阈,按预注册规则提交 λ=0,输出与父 17/19 管线逐位相同。

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261003-094241-search-t2-heart-interp-g24-D-s2
父节点n22
子节点n27
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 66.58(+0.0) · proxy 66.58(+0.0) · 3 次复测均分 66.60
审查通过 1 越界读取:未发现问题。run.py 只通过 view_io.load_manifest/panel_genes/read_stage 读取视图数据(run.py:586-603),无绝对路径、'..'、/mnt、/home、data/raw、评分器路径,无网络下载;src.task2_spatial.* 为框架提供的视图 I/O 库而非评分器代码。; 2 硬编码目标统计量:未发现问题。程序无写死的细胞类型比例、细胞数、基因列表或表达均值;所有数量(配额、均值、协方差)均从 manifest 输入现场计算(composition/allocate_sides,run.py:501-580)…
用时?从运行开始到结束(或到现在)的挂钟时间。18 分
程序版本09d265baadb5c54fac0b11d5bb216afccebaa10a (programs.git)

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

来自 programs.git 09d265baad:solution/METHOD.md

逐基因零阶矩符号校正(全细胞加同一常数 c_g=λ(tΔ_g−dp_g)):代理上 flip 集恒为空,full-ref/all 变体 de_score 均降且 variogram 超阈,按预注册规则提交 λ=0,输出与父 17/19 管线逐位相同。

方法族与机制(PLAN T2HI-01,family T2HI-01)

在父 22(=父 19/17 管线:procrustes 对齐 → logit 配额混抽 → 同型 kNN 收缩 k=20 α=1.25 → β=1.3 逐轴方差恢复 → jitter + scale_to_rms)的配额混抽之后、坐标链之前插入表达侧步骤(只动表达,坐标链不受影响):

  1. Δ_g = mean_b,g − mean_a,g(括号时间信号;T2HI_SIGN_REF=drawn 用两侧全部抽取细胞均值,=full 用两侧完整阶段均值);
  2. dp_g = pb_pred,g − pb_ref,g(pb_ref 按 PLAN 用抽取的 side-a 均值近似;full 模式用完整 stage-a 均值);
  3. 校正集:T2HI_SIGN_MODE=flip(PLAN 原案)取 sign(dp)≠sign(Δ) 且 |Δ|>T2HI_SIGN_THRESH(0.25);=all 取所有 |Δ|>0.25;
  4. 对校正集基因,所有细胞加同一常数 c_g = λ·(t·Δ_g − dp_g),clip ≥ 0;T2HI_SIGN_PASSES 可多遍补偿 clip 偏差;
  5. 环境变量:T2HI_SIGN_LAM(默认 0.0 = 关闭,早退,逐位无操作)、T2HI_SIGN_THRESH(0.25)、T2HI_SIGN_MODE(flip)、T2HI_SIGN_REF(drawn)、T2HI_SIGN_PASSES(1)。

单输入/无括号走 copy_last 分支(本步不执行)。视图无关:只用时间差 t、表达矩阵、manifest 上下限;不读 board/路径/阶段名/绝对时间。生物学先验:未使用(PLAN sources 为空)。

机制生效证据(proxy E8.25+E9.5→E8.75,t=0.4,seed 0,λ=1.0)

  • flip 集在 drawn ref 下为空(结构性发现):混抽伪批量满足恒等式 dp = w_b·Δ_drawn(w_b=n_b/n>0),符号永远一致,|S|=0——PLAN 假设的"组成混抽使部分基因呈现错误符号"在该参考近似下不可能发生,λ=0.5/1.0 均为逐位无操作。
  • full ref(消掉抽取噪声后)|S|=20,mean|c_g|=0.294;mode=all:drawn 182 基因 mean|c|=0.066、full 192 基因 mean|c|=0.129——确为稀疏逐基因修正而非全局操作。
  • 修正确实只动基因均值:所有细胞同一基因加同一常数;但 clip ≥ 0 破坏均匀性——校正基因的平均 std 变化 drawn-all −0.023、full-flip −0.123、full-all −0.039,variogram 随之劣化(见下表),PLAN 的"variogram 精确不变"只在无 clip 时成立。
  • 坐标全程未动:d2_shape 0.03915、occupancy_dice 0.8246、scale_log_ratio 0.4669 在全部配置间逐位一致。

关闭机制对照与网格(全部 vec-score A 半,同会话,seed 0,共 5 次查分 / 额度 20)

对照 λ=0:与父 22(=父 19/17 管线)默认输出 .X 与 obsm 均 np.array_equal = True,A 半总分 66.53,八项 raw 与父会话逐位一致(de_score 0.5435、de_direction 0.6619、mmd_u 0.02386、variogram 0.022669、nbd 0.04145),基座复现确认。

配置总分de_scorede_directionmmd_uvariogramnbd
λ=0(提交默认)66.530.54350.66190.023860.0226690.04145
flip, drawn ref, λ=1(=对照,|S|=0 逐位相同)—————
flip, full ref, λ=165.870.50000.65090.025140.0228710.04278
all, drawn ref, λ=165.800.53260.65970.024340.0278190.04179
all, full ref, λ=162.760.46740.63540.026920.0490330.04600

PLAN 快筛标准(de_score raw 上升 ≥0.01 且 variogram ≤ 基线+5%)全部不满足:de_score 不升反降(−0.011 ~ −0.076),variogram +1% ~ +116%。按预注册放弃规则停止网格(未再扫 λ=0.3/0.7,因 λ=1 已是该方向上界且单调劣化模式与节点 15/22 一致),提交 λ=0。

结论与教训(本节点验证了什么、没验证什么)

  • 证伪(本节点核心负结果):零阶矩逐基因修正在本管线上信息论上无收益空间——混抽伪批量已满足 dp = w_b·Δ_drawn + 小噪声,而 de_score/de_direction 是秩基指标:对 dp 加任何 c_g = f(Δ_g),若 f 单调则秩不变、若非单调(或 clip 扭曲实现值)则偏离 Δ 的秩。dt 的秩信息除 Δ 之外无本地来源,故该机制族不可能提升 DE 组,只可能通过 clip 损伤 cell_state 组。三次实测全部符合此预测。
  • 未验证:λ∈{0.3,0.7}、passes=2、thresh=0(放弃规则触发后未扫);外推榜与胚榜(本节点只做 heart:val_interp)。
  • 已验证:λ=0 输出与父逐位相同(np.array_equal .X/obsm)、vec-check ok、单 seed(0)。

下一步建议

  • 表达侧"修正 dp"路线(节点 15 均值位移、22 配对插值、24 符号校正)已三次证伪,关闭该方向:任何仅由括号数据计算的逐基因/逐细胞表达修改都无法超越 Δ 的秩信息,且 clip/方差压缩必然损伤 cell_state 组。
  • de_score 若要提升,需要 Δ 之外的 dt 信息源:prior/(通路注释推断基因非线性轨迹)或 external/(MOSTA E9.5)——属于新机制族,需 draft 节点。
  • 坐标链已确认平台(节点 17/19/21 全网格 <1 分),不建议再动。

调研员的计划

名称逐基因符号校正:修正混抽伪批量中方向错误的基因均值
动机父节点 22(=17/19 管线)de_score raw 0.5213(skill 0.684)是 expression_change 组(71.71)中最低单项;de_direction 0.6625(skill 0.750)。两次表达侧混合实验(节点 15 均值位移、节点 22 配对插值)已证伪'移动单个细胞'路线(必然压缩型内方差,variogram +26%)。但 de_score 低说明混抽伪批量中部分基因的变化方向与时间方向不一致——这是组成混抽的结构性缺陷:型比例变化使某些基因在伪批量中呈现错误符号。逐基因均匀校正(所有细胞同一基因加同一常数)不改变任何细胞间差异,因此不伤 variogram/mmd_u/nbd,只修正伪批量方向。
做法步骤:(1) 在配额混抽后、输出前,对每个基因 g 计算括号时间信号 Δ_g = mean_b,g − mean_a,g(用两侧全部抽取细胞的均值);(2) 计算当前伪批量变化 dp_g = pb_pred,g − pb_ref,g(pb_ref 取 side-a 全部抽取细胞均值作为参考近似);(3) 识别符号不一致基因集 S = {g : sign(dp_g) ≠ sign(Δ_g) 且 |Δ_g| > 0.25};(4) 对 S 中每个基因,给所有细胞加统一常数 c_g = λ·(t·Δ_g − dp_g),使 dp_g 向正确方向翻转;λ 为校正强度;(5) clip 表达 ≥ 0。关键参数:λ 初值 0.5,网格 {0.3, 0.5, 0.7, 1.0};|Δ_g| 阈值 0.25(与 DE 显著性阈值对齐);仅校正符号不一致基因(稀疏)。预期 |S| 为几十到几百个基因(非全部 ~500 基因)。单输入阶段退路:无括号则跳过本步,走 copy_last。vec-score 快筛:先跑 λ=0.5 看 de_score raw 是否从 0.5213 上升 ≥ 0.01 且 variogram raw ≤ 0.0216(基线+5%);不满足则放弃。若 λ=0.5 通过,再跑 λ=0.3 和 λ=0.7 比较;最多 6 次查分(含对照)。
风险1) 括号线性假设对部分基因不成立(非单调轨迹),校正后 de_direction 可能微降——Engineer 应首先检查 de_direction raw 是否下降 > 0.005,若是则减小 λ 或放弃;2) 符号不一致基因集过小(< 20),收益在噪声内——检查 |S| 即可判断;3) clip ≥ 0 对低表达基因截断可能引入微小分布偏移——监控 mmd_u raw 变化 < 5%;4) 参考近似(用 side-a 均值代替评分器参考)可能有偏——但只影响方向判断的阈值,不影响机制逻辑。

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

对比:父节点版本 46467c9117。改动的文件:solution/METHOD.md +29 −44、solution/run.py +117 −1

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex da5ece5..62dfa2d 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,61 +1,46 @@-T2HI-01 跨侧kNN配对表达插值:共有类型在表达PCA空间贪心最近邻配对,按时间分数t做配对线性插值再以强度f混回原表达(坐标不动);代理上f=0.5/1.0均劣于对照且variogram超PLAN放弃阈,提交默认f=0(逐位等于父17/19管线)。+逐基因零阶矩符号校正(全细胞加同一常数 c_g=λ(tΔ_g−dp_g)):代理上 flip 集恒为空,full-ref/all 变体 de_score 均降且 variogram 超阈,按预注册规则提交 λ=0,输出与父 17/19 管线逐位相同。  ## 方法族与机制(PLAN T2HI-01,family T2HI-01) -在父 19(=父 17 管线:procrustes 对齐 → logit 配额混抽 → 同型 kNN 收缩 k=20 α=1.25 → β=1.3 逐轴方差恢复 → jitter + scale_to_rms)的**配额混抽之后、同型 kNN 收缩之前**插入表达侧步骤(表达与坐标解耦,插入顺序不影响坐标链):+在父 22(=父 19/17 管线:procrustes 对齐 → logit 配额混抽 → 同型 kNN 收缩 k=20 α=1.25 → β=1.3 逐轴方差恢复 → jitter + scale_to_rms)的**配额混抽之后、坐标链之前**插入表达侧步骤(只动表达,坐标链不受影响): -1. 每个共有类型(两侧抽取细胞均 ≥ T2HI_MATCH_MIN=5):该型全部抽取细胞表达做 SVD-PCA 取前 min(30, n−1) 维;-2. PCA 空间 side-a × side-b 距离矩阵,贪心最近邻匹配(全局最小对迭代、移除已配细胞),assert 匹配对数 = min(n_a, n_b);-3. 距离门控:匹配距离 > T2HI_MATCH_DMAX(2.0) × 该型中位匹配距离的对跳过,保留原表达;-4. 通过门控的对在全基因空间插值 x_interp = (1−t)·x_a + t·x_b,按强度混回 x_final = (1−f)·x_orig + f·x_interp,clip ≥ 0;即 side-a 细胞向匹配对移动 f·t,side-b 移动 f·(1−t);-5. 未匹配/门控拒绝的细胞表达不动;坐标全程不动;-6. 环境变量:`T2HI_MATCH_F`(默认 **0.0** = 关闭,匹配前早退)、`T2HI_MATCH_MIN`(5)、`T2HI_MATCH_DMAX`(2.0)。+1. Δ_g = mean_b,g − mean_a,g(括号时间信号;`T2HI_SIGN_REF=drawn` 用两侧全部抽取细胞均值,`=full` 用两侧完整阶段均值);+2. dp_g = pb_pred,g − pb_ref,g(pb_ref 按 PLAN 用抽取的 side-a 均值近似;full 模式用完整 stage-a 均值);+3. 校正集:`T2HI_SIGN_MODE=flip`(PLAN 原案)取 sign(dp)≠sign(Δ) 且 |Δ|>T2HI_SIGN_THRESH(0.25);`=all` 取所有 |Δ|>0.25;+4. 对校正集基因,**所有细胞加同一常数** c_g = λ·(t·Δ_g − dp_g),clip ≥ 0;`T2HI_SIGN_PASSES` 可多遍补偿 clip 偏差;+5. 环境变量:`T2HI_SIGN_LAM`(默认 **0.0** = 关闭,早退,逐位无操作)、`T2HI_SIGN_THRESH`(0.25)、`T2HI_SIGN_MODE`(flip)、`T2HI_SIGN_REF`(drawn)、`T2HI_SIGN_PASSES`(1)。 -单输入/无括号走 copy_last 分支(本步不执行)。视图无关:只用时间差 t、标签、表达矩阵、manifest 上下限;不读 board/路径/阶段名/绝对时间。+单输入/无括号走 copy_last 分支(本步不执行)。视图无关:只用时间差 t、表达矩阵、manifest 上下限;不读 board/路径/阶段名/绝对时间。生物学先验:未使用(PLAN sources 为空)。 -## 机制生效证据(proxy E8.25+E9.5→E8.75,t=0.4,seed 0,f=0.5)+## 机制生效证据(proxy E8.25+E9.5→E8.75,t=0.4,seed 0,λ=1.0) -- 匹配统计(日志 `[match_interp]` 逐型打印):5 个共有类型全部有操作对象——NCC a=1619 b=1079 pairs=1079、Peri 510/566→510、V-CM 1250/844→844、aPHM 817/544→544、pPHM 416/277→277;每型 pairs = min(n_a,n_b)(assert 通过),中位匹配距离 19.0–27.4,门控拒绝 0(dmax=2.0×中位数下全部通过),平均 |Δx|(全基因)33.9–39.4。-- 表达确实改变:f=0.5 与 f=0 的 `.X` np.array_equal = **False**;6508/17616 个细胞被改(= 2×3254 匹配对,逐对一致),逐细胞 L1 位移均值 77.2、最大 149.5,随 f 增大(f=1.0 位移加倍)——逐细胞方向大小由各自匹配对决定,不是常数位移。-- 坐标严格不变:f=0 与 f=0.5 的 obsm np.array_equal = True;四形状/邻域之外的坐标链指标(d2_shape 0.03915、occupancy_dice 0.8246、scale_log_ratio 0.4669)在全部 3 个 f 配置间逐位相同。-- 四组分变化模式符合预期方向判定:expression_change 与 cell_state 变动、shape_scale 完全不变(机制未触碰坐标,无 bug)。+- **flip 集在 drawn ref 下为空(结构性发现)**:混抽伪批量满足恒等式 dp = w_b·Δ_drawn(w_b=n_b/n>0),符号永远一致,|S|=0——PLAN 假设的"组成混抽使部分基因呈现错误符号"在该参考近似下**不可能发生**,λ=0.5/1.0 均为逐位无操作。+- full ref(消掉抽取噪声后)|S|=20,mean|c_g|=0.294;mode=all:drawn 182 基因 mean|c|=0.066、full 192 基因 mean|c|=0.129——确为稀疏逐基因修正而非全局操作。+- 修正确实只动基因均值:所有细胞同一基因加同一常数;但 **clip ≥ 0 破坏均匀性**——校正基因的平均 std 变化 drawn-all −0.023、full-flip −0.123、full-all −0.039,variogram 随之劣化(见下表),PLAN 的"variogram 精确不变"只在无 clip 时成立。+- 坐标全程未动:d2_shape 0.03915、occupancy_dice 0.8246、scale_log_ratio 0.4669 在全部配置间逐位一致。  ## 关闭机制对照与网格(全部 vec-score A 半,同会话,seed 0,共 5 次查分 / 额度 20) -对照 f=0:与父 19(=父 17)默认输出 `.X` 与 `obsm` 均 np.array_equal = **True**(逐位复现),A 半总分 **66.53**、八项 raw 与父 19 同会话对照逐位一致(de_score 0.5435、de_direction 0.6619、mmd_u 0.02386、variogram 0.022669、nbd 0.04145),确认基座复现。+对照 λ=0:与父 22(=父 19/17 管线)默认输出 `.X` 与 `obsm` 均 np.array_equal = **True**,A 半总分 **66.53**,八项 raw 与父会话逐位一致(de_score 0.5435、de_direction 0.6619、mmd_u 0.02386、variogram 0.022669、nbd 0.04145),基座复现确认。 -| f | 总分 | de_score | de_direction | mmd_u | variogram | nbd |-|---:|---:|---:|---:|---:|---:|---:|-| **0(提交默认)** | **66.53** | 0.5435 | 0.6619 | 0.02386 | 0.022669 | 0.04145 |-| 0.5 | 65.25 | 0.5435 | 0.6615 | 0.02723 | 0.028522 | 0.04382 |-| 1.0 | 64.44 | 0.5217 | 0.6584 | 0.02907 | 0.029674 | 0.04691 |+| 配置 | 总分 | de_score | de_direction | mmd_u | variogram | nbd |+|---|---:|---:|---:|---:|---:|---:|+| **λ=0(提交默认)** | **66.53** | 0.5435 | 0.6619 | 0.02386 | 0.022669 | 0.04145 |+| flip, drawn ref, λ=1 | (=对照,\|S\|=0 逐位相同) | — | — | — | — | — |+| flip, full ref, λ=1 | 65.87 | 0.5000 | 0.6509 | 0.02514 | 0.022871 | 0.04278 |+| all, drawn ref, λ=1 | 65.80 | 0.5326 | 0.6597 | 0.02434 | 0.027819 | 0.04179 |+| all, full ref, λ=1 | 62.76 | 0.4674 | 0.6354 | 0.02692 | 0.049033 | 0.04600 | -## 结论:机制假设不成立(如实报告,按 PLAN 决策规则放弃)+PLAN 快筛标准(de_score raw 上升 ≥0.01 且 variogram ≤ 基线+5%)**全部不满足**:de_score 不升反降(−0.011 ~ −0.076),variogram +1% ~ +116%。按预注册放弃规则停止网格(未再扫 λ=0.3/0.7,因 λ=1 已是该方向上界且单调劣化模式与节点 15/22 一致),提交 λ=0。 -PLAN 假设「配对插值保协方差,能抬 de_score/de_direction 而不伤 variogram」。实测:+## 结论与教训(本节点验证了什么、没验证什么) -1. **DE 组纹丝不动甚至变差**:对称配对移动在全基因伪批量上近乎抵消——每对的净贡献为 f·(2t−1)·(x_b−x_a),t=0.4 时系数仅 −0.2f,所以 de_score 在 f=0.5 与对照完全相同(0.5435),f=1.0 反而降到 0.5217(配对在 f=1 时收敛成相同点,制造重复细胞)。PLAN 的机制收益前提(de_score raw 上升 ≥0.01)被证伪。-2. **分布类指标随 f 单调劣化**:插值把共有类型的两侧子簇互相拉近、缩小整体方差,细胞落到真实数据流形之外——variogram +26%(f=0.5,0.022669→0.028522,远超 PLAN 放弃阈 0.022/基线+5%)、mmd_u +14%、nbd +5.7%(f=0.5)到 +13%(f=1.0)。与节点 15 均值位移同一失败模式(型内方差收缩),只是程度较轻。-3. 按 PLAN 第一轮决策规则(f=0.5 variogram raw > 0.022 → 立即放弃、提交 f=0)执行;未进第二轮。未试 f<0.5:DE 收益在 f=0.5 已确认为零(不是幅度问题而是方向性抵消),减小 f 只会让各项损失收敛到对照、总分从下方逼近 66.53,无正收益区间。--因此提交默认 f=0:机制代码保留、默认关闭,输出逐位等于父节点 17/19。本节点的价值是这个负结果加机理解释:**跨侧配对插值的对称位移在伪批量上抵消(DE 无收益),却必然压缩两侧子簇间方差(variogram/mmd_u/nbd 单调受损)——任何以"两侧真实细胞表达互相混合"为核心的表达侧机制(节点 15 均值位移、本节点配对插值)都已证伪**。--## 验证过的--- f=0 默认输出与父 19 管线逐位相同(np.array_equal,.X 与 obsm);同会话查分 66.53,raw 与父对照一致。-- f=0.5 机制生效证据完整(匹配对数、门控、逐细胞位移、坐标不变),见上。-- 默认配置 seed 0 重跑逐位相同;`vec-check` 通过;纯 CPU ~3 s、内存 <1 GB(EXECUTION.json gpu=false 沿用父节点)。-- 视图无关:机制只用时间差 t、celltype 标签、表达矩阵;单输入走 copy_last 分支;不读 board/mode/路径/阶段名/绝对时间。-- 查分共 5 次(额度 20)。--## 没验证的 / 风险--- 非对称变体(只动 side-a、或两侧不同权重)未测:伪批量不再抵消,但节点 15 已证型均值方向的位移伤 variogram,且真实 E8.75 的时间非线性未知,预期收益不明确(PLAN 决策规则已判放弃,未越界尝试)。-- dmax 门控在本数据上拒绝 0 对(两侧同型转录组距离分布紧凑),门控参数未起作用,无法评估其调节能力。-- B 半正式分预期与父相同(66.58):f=0 输出逐位等于父。+- **证伪(本节点核心负结果)**:零阶矩逐基因修正在本管线上**信息论上无收益空间**——混抽伪批量已满足 dp = w_b·Δ_drawn + 小噪声,而 de_score/de_direction 是秩基指标:对 dp 加任何 c_g = f(Δ_g),若 f 单调则秩不变、若非单调(或 clip 扭曲实现值)则偏离 Δ 的秩。dt 的秩信息除 Δ 之外无本地来源,故该机制族不可能提升 DE 组,只可能通过 clip 损伤 cell_state 组。三次实测全部符合此预测。+- 未验证:λ∈{0.3,0.7}、passes=2、thresh=0(放弃规则触发后未扫);外推榜与胚榜(本节点只做 heart:val_interp)。+- 已验证:λ=0 输出与父逐位相同(np.array_equal .X/obsm)、vec-check ok、单 seed(0)。  ## 下一步建议 -- 表达侧「混合两侧真实细胞」家族(均值位移、配对插值)已两次证伪,不要再试对称混合类机制。-- 表达侧若继续挖,需要**不缩小方差**的机制:例如只在 DE 头部基因上做保序秩修正(de_score 0.52/0.54 是表达组最低单项),且修正必须逐基因、零均值、不改变细胞间协方差;或改善组成配额以外的型内分布形状(mmd_u)。-- 坐标侧已确认平台(节点 17/19),不建议再动。+- 表达侧"修正 dp"路线(节点 15 均值位移、22 配对插值、24 符号校正)已三次证伪,**关闭该方向**:任何仅由括号数据计算的逐基因/逐细胞表达修改都无法超越 Δ 的秩信息,且 clip/方差压缩必然损伤 cell_state 组。+- de_score 若要提升,需要 Δ 之外的 dt 信息源:prior/(通路注释推断基因非线性轨迹)或 external/(MOSTA E9.5)——属于新机制族,需 draft 节点。+- 坐标链已确认平台(节点 17/19/21 全网格 <1 分),不建议再动。diff --git a/solution/run.py b/solution/run.pyindex d75b263..c18fa28 100644--- a/solution/run.py+++ b/solution/run.py@@ -10,7 +10,27 @@ T2HI_COMPOSITION=linear). Shared types split their quota between the sides as (1-t, t); single-side types draw from that side only, capped by availability with proportional redistribution. -Addition in this node (T2HI-01, cross-side kNN paired expression interpolation):+Addition in this node (T2HI-01, per-gene zeroth-moment sign correction):+- env T2HI_SIGN_LAM (default 0.0 = off, bit-for-bit no-op): after quota mixing,+  compute delta_g = mean_b,g - mean_a,g (drawn cells; or full stage means with+  T2HI_SIGN_REF=full), dp_g = pb_pred,g - pb_ref,g, and add the SAME constant+  c_g = lam*(t*delta_g - dp_g) to every cell of genes in the correction set+  (T2HI_SIGN_MODE=flip: sign(dp) != sign(delta) and |delta| > T2HI_SIGN_THRESH+  (0.25); mode=all: every gene with |delta| > thresh), then clip >= 0.+  MEASURED HARMFUL / VACUOUS on proxy (A-half, seed 0): flip set with the drawn+  reference is EMPTY by construction (dp = w_b * delta_drawn exactly, so signs+  always agree); flip set with full reference = 20 genes -> 65.87 (de_score+  0.5435 -> 0.50); mode=all drawn-ref (182 genes, mean|c|=0.066) -> 65.80 with+  variogram 0.02267 -> 0.02782 (+23%, clip damage); mode=all full-ref (192+  genes, mean|c|=0.129) -> 62.76 with variogram 0.04903 (+116%). de_score+  never rose: dp is already rank-equivalent to the bracket signal delta, and+  de_score/de_direction are rank-based, so any c_g = f(delta_g) that is+  monotone in delta cannot change ranks while non-monotone f (or clip+  distortion) only moves dp away from delta's ranking. Submitted default+  lam=0 reproduces the parent pipeline bit-for-bit (np.array_equal on .X and+  obsm verified). PLAN pre-registered abandon rule triggered.++Kept from parent (T2HI-01, cross-side kNN paired expression interpolation): - env T2HI_MATCH_F (default 0.0 = off, early return before any matching):   for every shared type with >= T2HI_MATCH_MIN (5) drawn cells per side, PCA   (economy SVD, min(30, n-1) dims) of the type's drawn cells, greedy global-min@@ -425,6 +445,59 @@ def match_interp(     return out, report  +def sign_correct(+    expr: np.ndarray,+    n_a: int,+    t: float,+    lam: float,+    delta_thresh: float,+    passes: int,+    mode: str,+    mean_a_full: np.ndarray | None = None,+    mean_b_full: np.ndarray | None = None,+):+    """Per-gene zeroth-moment sign correction of the mixed pseudobulk (T2HI-01).++    delta_g = mean_b,g - mean_a,g over drawn cells (bracket time signal);+    dp_g = pb_pred,g - pb_ref,g with pb_ref approximated by the drawn side-a+    mean. For genes whose dp sign disagrees with the delta sign (and+    |delta| > delta_thresh; mode="all" corrects every gene with+    |delta| > delta_thresh instead), every cell gets the SAME constant+    c_g = lam * (t * delta_g - dp_g), so dp moves toward t*delta. Cell-to-cell+    differences within a gene are unchanged (variogram / covariance preserved+    up to the final clip >= 0). `passes` re-applies the correction to undo+    clip bias. lam=0 is a bit-for-bit no-op. Returns (expr, report dict).+    """+    if lam == 0.0 or expr.shape[0] == 0 or n_a <= 0 or n_a >= expr.shape[0]:+        return expr, {"n_corrected": 0, "mean_abs_c": 0.0, "passes": 0}+    out = expr.copy()+    total_n = 0+    total_c = 0.0+    for p in range(max(1, int(passes))):+        if mean_a_full is not None:+            mean_a = np.asarray(mean_a_full, dtype=np.float64)+            mean_b = np.asarray(mean_b_full, dtype=np.float64)+        else:+            mean_a = out[:n_a].mean(axis=0).astype(np.float64)+            mean_b = out[n_a:].mean(axis=0).astype(np.float64)+        delta = mean_b - mean_a+        pb_pred = out.mean(axis=0).astype(np.float64)+        dp = pb_pred - mean_a+        big = np.abs(delta) > delta_thresh+        if mode == "all":+            mask = big+        else:+            mask = big & (np.sign(dp) != np.sign(delta))+        if not mask.any():+            break+        c = np.zeros(out.shape[1], dtype=np.float64)+        c[mask] = lam * (t * delta[mask] - dp[mask])+        out = np.clip(out + c.astype(np.float32), 0.0, None).astype(np.float32)+        total_n = int(mask.sum())+        total_c = float(np.abs(c[mask]).mean()) if mask.any() else 0.0+    return out, {"n_corrected": total_n, "mean_abs_c": total_c, "passes": int(passes)}++ def composition(labels_a, labels_b, t: float, mode: str, eps: float):     """Per-type target fractions at time t over the union of both sides' types."""     la = np.asarray(labels_a).astype(str)@@ -605,6 +678,49 @@ def run(view: str, out: str, seed: int) -> None:             f"med_dist={med:.3f} mean_abs_delta={dnorm:.3f}",             flush=True,         )+    sign_lam = float(os.environ.get("T2HI_SIGN_LAM", "0.0"))+    sign_thresh = float(os.environ.get("T2HI_SIGN_THRESH", "0.25"))+    sign_passes = int(os.environ.get("T2HI_SIGN_PASSES", "1"))+    sign_mode = os.environ.get("T2HI_SIGN_MODE", "flip").strip().lower()+    sign_ref = os.environ.get("T2HI_SIGN_REF", "drawn").strip().lower()+    expr_before = expr if sign_lam != 0.0 else None+    ma_full = mb_full = None+    if sign_ref == "full":+        ma_full = np.asarray(stage_a.X.mean(axis=0), dtype=np.float64).ravel()+        mb_full = np.asarray(stage_b.X.mean(axis=0), dtype=np.float64).ravel()+    expr, sc_rep = sign_correct(+        expr, int(ia.size), float(t), sign_lam, sign_thresh, sign_passes, sign_mode, ma_full, mb_full+    )+    print(+        f"[sign_correct] lam={sign_lam} thresh={sign_thresh} passes={sign_passes} mode={sign_mode} ref={sign_ref} "+        f"n_corrected={sc_rep['n_corrected']} mean_abs_c={sc_rep['mean_abs_c']:.4f}",+        flush=True,+    )+    if sign_lam != 0.0 and sc_rep["n_corrected"] > 0:+        if ma_full is not None:+            mean_a0 = ma_full+            mean_b0 = mb_full+        else:+            mean_a0 = expr_before[: int(ia.size)].mean(axis=0).astype(np.float64)+            mean_b0 = expr_before[int(ia.size) :].mean(axis=0).astype(np.float64)+        delta0 = mean_b0 - mean_a0+        dp0 = expr_before.mean(axis=0).astype(np.float64) - mean_a0+        if sign_mode == "all":+            mask0 = np.abs(delta0) > sign_thresh+        else:+            mask0 = (np.abs(delta0) > sign_thresh) & (np.sign(dp0) != np.sign(delta0))+        dp1 = expr.mean(axis=0).astype(np.float64) - (+            ma_full if ma_full is not None else expr[: int(ia.size)].mean(axis=0).astype(np.float64)+        )+        flips = int((np.sign(dp1[mask0]) == np.sign(delta0[mask0])).sum())+        std0 = expr_before.std(axis=0)[mask0]+        std1 = expr.std(axis=0)[mask0]+        print(+            f"  [sign_correct] |S|={int(mask0.sum())} sign_fixed={flips}/{int(mask0.sum())} "+            f"mean|dp0|={float(np.abs(dp0[mask0]).mean()):.4f} mean|t*delta|={float(np.abs(t * delta0[mask0]).mean()):.4f} "+            f"mean|dp1|={float(np.abs(dp1[mask0]).mean()):.4f} gene_std_change={float(np.mean(std1 - std0)):+.6f}",+            flush=True,+        )     cmode = os.environ.get("T2HI_CONTRACT", "type").strip().lower()     calpha = float(os.environ.get("T2HI_CONTRACT_A", "1.25"))     ck = int(os.environ.get("T2HI_CONTRACT_K", "20"))

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

用到的知识库条目

编号标题出处
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:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。

改了什么在父 22(=17/19 管线)混抽后插入逐基因零阶矩符号校正 sign_correct(T2HI_SIGN_LAM/THRESH/MODE/REF/PASSES),对校正集基因给所有细胞加同一常数 c_g=λ(tΔ_g−dp_g) 再 clip≥0;代理实测证伪后按预注册放弃规则提交 λ=0,最终输出与父管线逐位相同(np.array_equal .X/obsm 验证),榜分与八项 raw 全部 +0.00。
各组分数的变化cell_state:零变化:72.43(+0.00),mmd_u 0.02337、variogram 0.0206 与对照相同;λ>0 变体中 variogram 因 clip 破坏均匀性劣化 +1%~+116%(all-full 达 0.04903)
expression_change:零变化:71.71(+0.00),提交为 λ=0,de_score 0.5213、de_direction 0.6625 与对照逐位相同;λ>0 的代理变体 de_score 全部下降(0.5435→0.4674~0.5326)
local_spatial:零变化:70.32(+0.00),neighborhood_mmd 0.04153 与对照相同
shape_scale:零变化:51.86(+0.00),d2_shape 0.03989、occupancy_dice 0.8143、scale_log_ratio 0.4688 均与对照相同(机制不触碰坐标)
family_idT2HI-01
假设是否成立否
经验
  1. 混抽伪批量在 drawn 参考下满足恒等式 dp = w_b·Δ_drawn(w_b>0),符号永远一致,flip 校正集数学恒为空——PLAN 假设的'组成混抽使部分基因呈现错误符号'在该参考近似下不可能发生,λ=0.5/1.0 均为逐位无操作。
  2. de_score/de_direction 是秩基指标:混抽后 dp 已秩等价于括号信号 Δ,任何仅由 Δ 计算的 c_g=f(Δ_g) 单调则不改秩、非单调(或 clip 扭曲)只使 dp 偏离 Δ 的秩——'修正 dp'类机制族信息论上无收益空间,节点 15(均值位移)、22(配对插值)、24(符号校正)三次实测一致证伪。
  3. clip≥0 会破坏'全细胞加同一常数'的零阶矩性质:低表达基因截断压缩基因内 std(drawn-all −0.023、full-flip −0.123),variogram/mmd_u 随之受损——'逐基因均匀位移不伤分布指标'只在无 clip 时成立。
  4. 预注册放弃规则(de_score raw 上升 ≥0.01 且 variogram ≤基线+5%,否则提交 λ=0)有效:4 个变体全部不达标即止损,避免把 62.76~65.87 的劣化配置交上榜,且节省查分额度(6/20)。
  5. 用 λ=0 默认关闭 + np.array_equal 验证逐位复现父输出,可安全保留已证伪机制代码而不影响榜分,B 半正式分与父完全一致(66.58)。
mechanism_active否
下一步建议
  1. 关闭表达侧'修正 dp'方向(expression_change 组):不要再提任何仅由两侧括号数据计算的逐基因/逐细胞表达修改(均值位移、配对插值、符号校正均已证伪)。
  2. 若要提升 de_score(0.5213,expression_change 组最低单项),需引入 Δ 之外的 dt 信息源:用 prior/ 通路注释或 external/(MOSTA E9.5)推断基因的非线性轨迹,作为新机制族开 draft 节点,先在代理上做 λ 网格并沿用预注册放弃规则。
  3. shape_scale 组(51.86)是四组最低且三项 skill 均贴地板(0.507~0.537),坐标链全局缩放已平台化(节点 17/19/21),若再挖需非全局的形状机制(如 occupancy_dice 的各向异性/占据结构调整),注意结构门使 neighborhood_mmd(skill 0.703,高于地板)不能被牺牲。

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

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

分析员

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

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数25
工具调用共 26 次:bash 16、edit 8、read 1、write 1
用时14 分
token 数输入 64,900 · 输出 8,683 · 思考 11,372
任务(第一行)按计划修改程序:逐基因符号校正:修正混抽伪批量中方向错误的基因均值
最后的回答(摘录)
**做了什么**:实现 PLAN T2HI-01 逐基因零阶矩符号校正(`T2HI_SIGN_LAM/THRESH/MODE/REF/PASSES` 开关),发现 drawn-ref 下 flip 集数学恒为空(dp = w_b·Δ_drawn),补测 full-ref 与 mode=all 变体;按预注册放弃规则提交 λ=0(输出与父 17/19 管线逐位相同,np.array_equal 验证,vec-check ok,seed 0/1 均跑通)。

**查分**(A 半,6/20 次):对照 66.53;flip-full 65.87、all-drawn 65.80、all-full 62.76——de_score 全部下降(0.54→0.47–0.53),variogram 因 clip 损伤 +1%~+116%。核心负结果:de_score/de_direction 是秩基指标,混抽伪批量已秩等价于括号信号 Δ,任何 c_g=f(Δ_g) 单调不改秩、非单调只偏离,该机制族无收益空间。

**下一步**:表达侧"修正 dp"路线三次证伪(节点 15/22/24),建议关闭;de_score 提升需 Δ 之外的 dt 信息源(prior/ 通路注释或 external/ MOSTA E9.5 推断非线性轨迹),适合作为新 draft 节点;坐标链已平台化不要再动。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/engineer.jsonl 168 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时3 分
token 数输入 18,429 · 输出 1,211 · 思考 7,791
任务(第一行)为节点 n24(改进,父节点 n22)写改进计划 PLAN.json
最后的回答(摘录)
ore raw 0.5213(skill 0.684)是 expression_change 组(71.71)中最低单项;de_direction 0.6625(skill 0.750)。两次表达侧混合实验(节点 15 均值位移、节点 22 配对插值)已证伪'移动单个细胞'路线(必然压缩型内方差,variogram +26%)。但 de_score 低说明混抽伪批量中部分基因的变化方向与时间方向不一致——这是组成混抽的结构性缺陷:型比例变化使某些基因在伪批量中呈现错误符号。逐基因均匀校正(所有细胞同一基因加同一常数)不改变任何细胞间差异,因此不伤 variogram/mmd_u/nbd,只修正伪批量方向。",
  "approach": "步骤:(1) 在配额混抽后、输出前,对每个基因 g 计算括号时间信号 Δ_g = mean_b,g − mean_a,g(用两侧全部抽取细胞的均值);(2) 计算当前伪批量变化 dp_g = pb_pred,g − pb_ref,g(pb_ref 取 side-a 全部抽取细胞均值作为参考近似);(3) 识别符号不一致基因集 S = {g : sign(dp_g) ≠ sign(Δ_g) 且 |Δ_g| > 0.25};(4) 对 S 中每个基因,给所有细胞加统一常数 c_g = λ·(t·Δ_g − dp_g),使 dp_g 向正确方向翻转;λ 为校正强度;(5) clip 表达 ≥ 0。关键参数:λ 初值 0.5,网格 {0.3, 0.5, 0.7, 1.0};|Δ_g| 阈值 0.25(与 DE 显著性阈值对齐);仅校正符号不一致基因(稀疏)。预期 |S| 为几十到几百个基因(非全部 ~500 基因)。单输入阶段退路:无括号则跳过本步,走 copy_last。vec-score 快筛:先跑 λ=0.5 看 de_score raw 是否从 0.5213 上升 ≥ 0.01 且 variogram raw ≤ 0.0216(基线+5%);不满足则放弃。若 λ=0.5 通过,再跑 λ=0.3 和 λ=0.7 比较;最多 6 次查分(含对照)。",
  "expected_groups": ["expression_change"],
  "risks": "1) 括号线性假设对部分基因不成立(非单调轨迹),校正后 de_direction 可能微降——Engineer 应首先检查 de_direction raw 是否下降 > 0.005,若是则减小 λ 或放弃;2) 符号不一致基因集过小(< 20),收益在噪声内——检查 |S| 即可判断;3) clip ≥ 0 对低表达基因截断可能引入微小分布偏移——监控 mmd_u raw 变化 < 5%;4) 参考近似(用 side-a 均值代替评分器参考)可能有偏——但只影响方向判断的阈值,不影响机制逻辑。",
  "family_id": "T2HI-01",
  "mechanism": "对混抽后伪批量中变化方向与括号时间信号不一致的基因,给所有细胞加同一基因特异常数(零阶矩修正),将伪批量变化方向翻转回时间方向;不改变任何细胞间相对差异。",
  "vs_constant_shift": "旧实现(节点 4/15)是逐类型或逐细胞差异位移:不同细胞/类型获得不同位移量,改变细胞间距离和协方差,必然压缩型内方差(variogram +26%)。本方案是逐基因全局均匀位移:基因 g 的所有细胞获得完全相同的常数 c_g,任意两细胞在基因 g 上的差值不变,因此 variogram 精确不变、PCA 坐标精确不变(PCA 中心化消除均值)、邻域配对精确不变。这是零阶矩修正,不是细胞位移。",
  "mechanism_evidence": "Engineer 应验证:(1) 校正后 .X 与对照 .X 的差异仅存在于 S 中基因的均值(逐基因检查:std 不变、所有细胞差值相同);(2) variogram raw 与对照逐位相同或差异 < 0.1%(数学保证);(3) mmd_u raw 与对照逐位相同(PCA 中心化保证);(4) de_score raw 上升(预期 ≥ 0.01);(5) 打印 |S|(校正基因数)和平均 |c_g|,确认是稀疏修正而非全局操作。",
  "mechanism_off_control": "λ=0 时 c_g = 0 对所有基因,无任何修改,输出与父管线逐位相同(np.array_equal 验证 .X 和 obsm)。预期差别:λ=0 时总分 = 父 66.53(A 半);λ>0 时仅 de_score/de_direction 变化,其余六项 raw 逐位不变。",
  "sources": []
}
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/researcher.jsonl 5 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/researcher.stderr

审查员

角色审查员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数7
工具调用共 9 次:bash 7、read 1、write 1
用时1 分
token 数输入 29,983 · 输出 1,414 · 思考 2,030
任务(第一行)审查节点 n24 的程序是否越界读取、写死目标、钻评分器漏洞
最后的回答(摘录)
REVIEW.json written
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/reviewer.jsonl 129 KB
/home/spark-longxinyang/vec/runs/formal/20261003-094241-search-t2-heart-interp-g24-D-s2/nodes/24/reviewer.stderr