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

总览 · ← 返回运行 20261002-202908-search-t1-scr-D

节点 n23

按PLAN对局部扩张项做逐基因DE保护:a_g=1−ρ·clip(|δ_c[hvg_g]|/q_τ,0,1)(q_τ为该型|δ_c[hvg]|的τ分位),位移=η·s_c·(a⊙Vĝ_i);扫ρ×τ后按父节点教训联扫η补偿幅度,提交 ρ=0.5、τ=0.90、η=−14(3-seed配对:de_recovery +0.48/+0.46/0.00 一致≥0,总分均值−0.05 近中性)。--de-p

运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。20261002-202908-search-t1-scr-D
父节点n20
子节点—
操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。改进
状态已打分
分数搜索目标分 61.06(+0.0) · X3 61.06(+0.0) · 3 次复测均分 61.43
审查未审查
用时?从运行开始到结束(或到现在)的挂钟时间。18 分
程序版本8df7d4520d08c53e44ae89685601766fc38587b1 (programs.git)

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

来自 programs.git 8df7d4520d:solution/METHOD.md

按PLAN对局部扩张项做逐基因DE保护:a_g=1−ρ·clip(|δ_c[hvg_g]|/q_τ,0,1)(q_τ为该型|δ_c[hvg]|的τ分位),位移=η·s_c·(a⊙Vĝ_i);扫ρ×τ后按父节点教训联扫η补偿幅度,提交 ρ=0.5、τ=0.90、η=−14(3-seed配对:de_recovery +0.48/+0.46/0.00 一致≥0,总分均值−0.05 近中性)。--de-protect-rho 0 --local-eta -9 逐元素还原父节点20。

实际实现的方法族(family: other,PLAN 指定机制)

完整保留节点 20 管线:copy_last 抽样(rng 流不变)、per-type EB 位移 δ_c(含 SYNONYM_PARENTS 改名回退)、时间缩放 α·r(α=1.5,只用相对时间差)、top-8000 HVG / top-25 PC 基 V / β=1 低秩投影、typed 范数归一局部扩张(ĝ_i=g_i/‖g_i‖,s_c=clip(‖w_c‖/med_c,0.5,5))、只作用非零元、max(0,·)、--vel-lambda(默认 0,旁路)。单输入视图严格退化 copy_last(代码路径未动)。

新增(PLAN 机制,--de-protect-rho 默认 0.5,--de-protect-tau 默认 0.90):

  1. 每型 c 取投影后的型级位移 d[hvg](与 w_c=V^T·d[hvg] 同源),q_τ=quantile(|d[hvg]|, τ)。
  2. a_g = 1 − ρ·clip(|d[hvg_g]|/q_τ, 0, 1):|δ_c| 大的 DE 基因 a→1−ρ(扰动被抑制),|δ_c| 小的基因 a≈1(局部扩张基本不变)。
  3. 局部位移 = η·s_c·β·(a ⊙ (Ĝhat @ V^T)),在 HVG 空间逐元素乘 a,其余算术位置与父节点相同。
  4. 默认 --local-eta 从 −9 改为 −14:衰减使有效幅度 ≈ mean(a)≈0.82 倍,按父节点教训"改幅度标定必须联扫 η"补偿(扫描证实 η=−14 优于 −11/−12/−16)。

机制关闭对照(mechanism_off_control)

--de-protect-rho 0 --local-eta -9:与父节点 20 默认(本目录改动前代码)同视图同 seed 输出逐元素一致((A!=B).nnz==0,实测)。ρ=0 时 a≡1,代码跳过乘法,浮点算术与父节点相同。对照成立。

机制生效证据

  • 默认配置输出与父节点输出相差 1,183,183 个非零元——非微扰。
  • 衰减向量 a(X3, seed0):每型 n_atten=8000/8000(所有 HVG 的 |δ_c|>0,均被不同程度衰减);mean(a)≈0.805–0.827(型间);q_τ 型间差 8 倍(Unknown 0.127 → NCC-derived 1.073),衰减是逐型逐基因的,非全局常数。|δ_c|≥q_τ 的 top-10% DE 基因 a=0.5(最大抑制),中位以下基因 a>0.9。
  • 同幅度对照证明是 DE 特异效应而非单纯降 η:cell_state≈79–80 处,ρ=0.5τ=0.9(η=−9) de=52.47 vs 父曲线 η=−6 de=51.5(+1.0);η=−14 时 cs 84.59 处 de 50.96 vs 父 η=−8/−9 的 50.48–50.5。
  • 四组分变化(3-seed 配对,e-14 − 父):de_recovery +0.48/+0.46/0.00(一致≥0,父对节点13是一致−0.48,方向已修复);covariation −0.11/+0.02/+0.04(≈0);cell_state −0.72/−0.14/−0.28(小幅负);direction ≈0(−0.02/−0.08/−0.01)。

查分记录(X3 A 半,seed 0 除注明外;本节点用 16/20 次)

配置总分cscovdedir
父(typed η=−9,seed0/1/2,节点20记录)59.60/58.88/61.0285.31/83.19/86.8144.62/44.11/48.4150.48/49.07/50.0049.87/51.32/51.16
ρ0.3τ0.80 / ρ0.3τ0.90(η=−9)58.84/58.9581.8/82.345.2/45.150.9650.0
ρ0.5τ0.80 / ρ0.5τ0.90(η=−9)58.06/58.4778.0/79.145.6/45.551.96/52.4750.2/50.1
ρ0.7τ0.80 / ρ0.7τ0.9056.74/57.0773.6/75.446.0/45.851.46/50.9650.4/50.2
ρ1.0τ0.80 / ρ1.0τ0.9054.86/55.4266.7/69.346.7/46.451.46/50.9650.6/50.4
ρ0.5τ0.90 η=−11/−12/−1658.98/59.14/59.2582.0/83.1/85.045.1/44.9/44.251.46/50.96/50.0050.0
ρ0.5τ0.90 η=−14(提交,seed0/1/2)59.49/58.93/60.9484.59/83.05/86.5344.51/44.13/48.4550.96/49.53/50.0049.87/51.24/51.15
ρ0.3τ0.90 η=−10/−1159.30/59.4283.7/84.744.9/44.750.96/50.4850.0/49.9

结论与判断

  • 固定 η 时衰减整体降低局部项有效幅度,沿父节点已知的单调权衡曲线滑动(cs↓ cov↑ de↑),8 个 ρ×τ 配置 seed0 总分全部低于父——PLAN 风险 1 应验(强衰减退化为低幅度扩张)。
  • 但在匹配幅度下保护机制有 DE 特异增益:同 cs≈79 处 de +1.0(52.47 vs η=−6 的 51.5)。联扫 η 补偿后(η=−14),提交配置满足 PLAN 全部判据:3-seed 配对 de 一致≥0(不再负)、总分均值 −0.05(≥父−0.5)、cov/cs 各项损失均<1。
  • 如实记录:总分 3-seed 均值 59.79 vs 父 59.83,近中性(差 ≪ 噪声 2 分);本节点买到的是一致方向性的 de_recovery 修复(+0.3 均值)换 cs 小幅(−0.38 均值)损失,B 半不保证为正。
  • de 随幅度单调降是结构性的:η=−16 时 de 又掉回 50.0;保护只把权衡曲线在 de 维度平移约 +0.5,没有打破曲线。

验证过 / 没验证

  • 验证过:ρ=0+η=−9 与父输出逐元素一致;默认配置 seed0/1 输出确定(重跑逐元素一致,且与显式参数运行一致);seed0 通过 vec-check;耗时 ~4-5s、内存不变;单输入阶段代码路径未动(严格 copy_last)。
  • 没验证:final/proxy 视图实跑(同一代码路径,全部量由视图数据现场计算);B 半分数;τ>0.95 或逐型自适应 τ;ρ 与 α 的交互(PLAN 步骤 4 的 α 扫描因查分额度优先给 η 联扫而未做)。
  • 知识来源:SYNONYM_PARENTS 沿用节点 5/13/20(官方 T1 词汇改名/拆分,通用谱系知识);其余全部由视图数据现场计算(δ_c、q_τ、a、s_c、V 均从输入矩阵算出),无硬编码阶段统计量、无绝对时间分支(r 只用时间差)。

调研员的计划

名称DE-signal保护:按|δ_c|逐基因衰减局部扩张项,修复de_recovery一致损失
动机父节点20的typed η=-9在3-seed配对中de_recovery一致-0.48(51.38 vs 52.34),ANALYSIS确认来源是强扩张稀释了δ_c的DE信号(η=-6时de尚有51.46)。covariation 44.89是最弱组但ANALYSIS明确警告停止g_i标度调参(幅度权衡曲线是结构性的)。α=1.5从未系统扫描。本方案针对de_recovery的一致结构性损失做修复,同时可选扫α。
做法步骤:
1. 在父节点20代码基础上,计算逐基因衰减向量a∈R^{n_hvg}:a_g = 1 - ρ·clip(|δ_c[hvg_g]|/q_τ, 0, 1),其中q_τ是|δ_c[hvg]|的τ分位数(即只有|δ_c|超过τ分位的基因才被衰减,最大衰减到1-ρ)。δ_c[hvg]已在管线中计算(type-level HVG位移)。
2. 将局部位移从 η·s_c·(V·ĝ_i) 改为 η·s_c·(a ⊙ (V·ĝ_i)),即HVG空间逐元素乘衰减。非DE基因(|δ_c|小)a≈1,局部扩张不变;DE基因(|δ_c|大)a→1-ρ,扩张被抑制,保护δ_c的DE信号。
3. 参数扫描(先seed0快筛,优胜者3-seed配对):ρ∈{0.3,0.5,0.7,1.0}×τ∈{0.80,0.90},共8配置。预期ρ=0.5~0.7、τ=0.90附近最优。
4. 若时间允许(约5次查分),在最优ρ/τ上叠加α∈{1.0,1.25,2.0}一维扫描(当前α=1.5)。
5. 提交判据:3-seed配对中de_recovery一致≥0(不再负),且总分不低于父节点-0.5;若de恢复但cov/cs损失>1则回退。
单输入退路:代码路径不变,单阶段严格copy_last(与父节点相同)。
vec-score用法:每配置跑seed0查X3 A半,比较四组分;选前2配置跑3-seed配对。
风险1. 衰减过强(ρ→1)会退化为无局部扩张(节点5水平,cs~64),Engineer应在seed0看到cs骤降时立即停止该配置。2. τ分位数选择不当(太低如0.5)会衰减太多基因,伤cov;从0.90开始。3. de_recovery改善可能<2分噪声;用3-seed配对差确认方向一致性(父节点ANALYSIS已验证此方法能分辨0.4级信号)。4. 若α扫描与ρ/τ交互复杂,优先固定α=1.5只提交ρ/τ。

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

对比:父节点版本 21ca33e097。改动的文件:solution/METHOD.md +29 −27、solution/run.py +39 −10

diff --git a/solution/METHOD.md b/solution/METHOD.mdindex 6625fae..b61d150 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,46 +1,48 @@-按PLAN把节点13的逐细胞局部扩张 η·g_i 改为范数归一+按型增益:ĝ_i=g_i/‖g_i‖,s_c=clip(‖w_c‖/med_c(‖g‖),0.5,5),位移=η·s_c·V ĝ_i;扫 η/裁剪/spow 后提交 typed η=-9(3 seed 配对验证,均值 +0.27,cov 三个 seed 一致 +0.4~0.5)。--eta-norm global --local-eta -3 逐元素还原父节点。+按PLAN对局部扩张项做逐基因DE保护:a_g=1−ρ·clip(|δ_c[hvg_g]|/q_τ,0,1)(q_τ为该型|δ_c[hvg]|的τ分位),位移=η·s_c·(a⊙Vĝ_i);扫ρ×τ后按父节点教训联扫η补偿幅度,提交 ρ=0.5、τ=0.90、η=−14(3-seed配对:de_recovery +0.48/+0.46/0.00 一致≥0,总分均值−0.05 近中性)。--de-protect-rho 0 --local-eta -9 逐元素还原父节点20。  ## 实际实现的方法族(family: other,PLAN 指定机制) -完整保留节点 13/16 管线:copy_last 抽样(rng 流不变)、per-type EB 位移 δ_c(含 SYNONYM_PARENTS 改名回退)、时间缩放 α·r(α=1.5,只用相对时间差)、top-8000 HVG / top-25 PC 基 V / β=1 低秩投影、kNN(k=15) 局部项 g_i、只作用非零元、max(0,·)、--vel-lambda(默认 0,旁路)。单输入视图严格退化 copy_last(代码路径未动)。+完整保留节点 20 管线:copy_last 抽样(rng 流不变)、per-type EB 位移 δ_c(含 SYNONYM_PARENTS 改名回退)、时间缩放 α·r(α=1.5,只用相对时间差)、top-8000 HVG / top-25 PC 基 V / β=1 低秩投影、typed 范数归一局部扩张(ĝ_i=g_i/‖g_i‖,s_c=clip(‖w_c‖/med_c,0.5,5))、只作用非零元、max(0,·)、--vel-lambda(默认 0,旁路)。单输入视图严格退化 copy_last(代码路径未动)。 -新增(PLAN 机制,--eta-norm typed,默认):-1. 逐细胞归一:ĝ_i = g_i / max(‖g_i‖, 1e-6)(单位方向)。-2. 按型增益:med_c = median(‖g_j‖, j∈型c 的 stage2 全体细胞);s_c = clip(‖w_c‖ / max(med_c, 0.1), --eta-smin 0.5, --eta-smax 5.0) ** --eta-spow(默认 spow=1 即 PLAN 原式;spow 是探索时加的阻尼开关)。w_c = V^T·(scale·δ_c)[hvg]。-3. 局部位移 = η·s_c·β·(ĝ_i @ V^T),加在 δ_c 位移之上、只作用非零元(同父节点算术位置)。-4. 默认 --local-eta 从 -3 改为 **-9**(归一后幅度变小,需补偿;见扫描表)。+新增(PLAN 机制,--de-protect-rho 默认 0.5,--de-protect-tau 默认 0.90):+1. 每型 c 取投影后的型级位移 d[hvg](与 w_c=V^T·d[hvg] 同源),q_τ=quantile(|d[hvg]|, τ)。+2. a_g = 1 − ρ·clip(|d[hvg_g]|/q_τ, 0, 1):|δ_c| 大的 DE 基因 a→1−ρ(扰动被抑制),|δ_c| 小的基因 a≈1(局部扩张基本不变)。+3. 局部位移 = η·s_c·β·(a ⊙ (Ĝhat @ V^T)),在 HVG 空间逐元素乘 a,其余算术位置与父节点相同。+4. 默认 --local-eta 从 −9 改为 **−14**:衰减使有效幅度 ≈ mean(a)≈0.82 倍,按父节点教训"改幅度标定必须联扫 η"补偿(扫描证实 η=−14 优于 −11/−12/−16)。  ## 机制关闭对照(mechanism_off_control) -`--eta-norm global --local-eta -3`:与父节点(节点16 默认 = 节点13 逐元素)在同一视图同 seed 下预测逐元素一致((A!=B).nnz == 0,双向验证),X3 A 半 seed0 = 58.87(= 节点 13/16 记录值)。对照成立。+`--de-protect-rho 0 --local-eta -9`:与父节点 20 默认(本目录改动前代码)同视图同 seed 输出逐元素一致((A!=B).nnz==0,实测)。ρ=0 时 a≡1,代码跳过乘法,浮点算术与父节点相同。对照成立。  ## 机制生效证据 -- typed η=-3 seed0:输出与父节点相差 1,186,330 个非零元——非微扰。-- 每型 s_c(X3, seed0):Endocardium 1.28、Unknown 1.26、OFT/RV-CM 1.54、aSHF 1.85、IFT-CM 2.15、BEC 2.45、V-CM 4.02、SV-CM 4.22、AVC-CM 4.76、NCC-derived 4.85、ST 4.82、pSHF 5.00(触 clip)。spread 1.26→5.00,非平凡。-- 归一后每细胞 ‖ĝ‖=1(各型一致),归一前 mean‖g‖≈6.6~13.5 随型/密度变化——型内扩张幅度已均匀化、型间与 ‖w_c‖ 成比例。+- 默认配置输出与父节点输出相差 1,183,183 个非零元——非微扰。+- 衰减向量 a(X3, seed0):每型 n_atten=8000/8000(所有 HVG 的 |δ_c|>0,均被不同程度衰减);mean(a)≈0.805–0.827(型间);q_τ 型间差 8 倍(Unknown 0.127 → NCC-derived 1.073),衰减是逐型逐基因的,非全局常数。|δ_c|≥q_τ 的 top-10% DE 基因 a=0.5(最大抑制),中位以下基因 a>0.9。+- 同幅度对照证明是 DE 特异效应而非单纯降 η:cell_state≈79–80 处,ρ=0.5τ=0.9(η=−9) de=52.47 vs 父曲线 η=−6 de=51.5(+1.0);η=−14 时 cs 84.59 处 de 50.96 vs 父 η=−8/−9 的 50.48–50.5。+- 四组分变化(3-seed 配对,e-14 − 父):de_recovery **+0.48/+0.46/0.00(一致≥0,父对节点13是一致−0.48,方向已修复)**;covariation −0.11/+0.02/+0.04(≈0);cell_state −0.72/−0.14/−0.28(小幅负);direction ≈0(−0.02/−0.08/−0.01)。 -## 查分记录(X3 A 半,seed 0 除注明外;用 12/20 次)+## 查分记录(X3 A 半,seed 0 除注明外;本节点用 16/20 次) -| 配置 | 总分 | cell_state | covariation | de_recovery | direction |+| 配置 | 总分 | cs | cov | de | dir | |---|---|---|---|---|---|-| global η=-3(=父,seed0/1/2) | 58.87 / 58.74 / 61.06 | 82.85/82.65/87.09 | 44.16/43.76/47.89 | 50.96/49.53/50.48 | 49.78/51.25/50.94 |-| **typed η=-9(提交,seed0/1/2)** | **59.60 / 58.88 / 61.02** | 85.31/83.19/86.81 | 44.62/44.11/48.41 | 50.48/49.07/50.00 | 49.87/51.32/51.16 |-| typed η=-1/-2/-3 | 54.36/55.19/56.05 | 64.6/67.7/70.9 | 47.26/46.89/46.53 | 51.46 | ~50.5 |-| typed η=-6/-8/-10/-11 | 58.49/59.33/**59.66**/59.39 | 80.0/84.2/85.8/85.6 | 45.5/44.9/44.3/44.1 | 51.5/50.5/50.5/50.0 | ~49.8 |-| typed η=-9 smax=3 / smin=2 | 59.01/59.26 | 83.2/85.0 | 44.8/44.1 | 50.5/50.0 | ~49.9 |-| typed spow=0.5 η=-9/-14;spow=0 η=-21 | 58.21/59.10/58.87 | 78.7/84.2/82.8 | 45.4/44.4/44.2 | 51.96/50.0/50.96 | ~50 |--3-seed 配对差(typed η=-9 − global η=-3):总分 +0.73/+0.13/−0.04(均值 +0.27);cell_state +2.46/+0.54/−0.28;covariation **+0.46/+0.35/+0.52(三 seed 一致为正)**;de_recovery −0.48×3(一致为负);direction ≈0。+| 父(typed η=−9,seed0/1/2,节点20记录) | 59.60/58.88/61.02 | 85.31/83.19/86.81 | 44.62/44.11/48.41 | 50.48/49.07/50.00 | 49.87/51.32/51.16 |+| ρ0.3τ0.80 / ρ0.3τ0.90(η=−9) | 58.84/58.95 | 81.8/82.3 | 45.2/45.1 | 50.96 | 50.0 |+| ρ0.5τ0.80 / ρ0.5τ0.90(η=−9) | 58.06/58.47 | 78.0/79.1 | 45.6/45.5 | 51.96/**52.47** | 50.2/50.1 |+| ρ0.7τ0.80 / ρ0.7τ0.90 | 56.74/57.07 | 73.6/75.4 | 46.0/45.8 | 51.46/50.96 | 50.4/50.2 |+| ρ1.0τ0.80 / ρ1.0τ0.90 | 54.86/55.42 | 66.7/69.3 | 46.7/46.4 | 51.46/50.96 | 50.6/50.4 |+| ρ0.5τ0.90 η=−11/−12/−16 | 58.98/59.14/59.25 | 82.0/83.1/85.0 | 45.1/44.9/44.2 | 51.46/50.96/50.00 | 50.0 |+| **ρ0.5τ0.90 η=−14(提交,seed0/1/2)** | **59.49/58.93/60.94** | 84.59/83.05/86.53 | 44.51/44.13/48.45 | 50.96/49.53/50.00 | 49.87/51.24/51.15 |+| ρ0.3τ0.90 η=−10/−11 | 59.30/59.42 | 83.7/84.7 | 44.9/44.7 | 50.96/50.48 | 50.0/49.9 |  ## 结论与判断 -- PLAN 提交判据(cov≥46 且 cs≥85)在 η 维度上不可同时满足:|η| 增大单调 cs↑ cov↓ de↓,是幅度权衡曲线;cov≥46 的配置(|η|≤3)cs 只有 64~71。PLAN 风险 1 部分应验(cov 的大幅损失确是扩张幅度的结构代价),风险 2 未应验(cs 未跌破 85,反而升)。-- 选 η=-9(而非 seed0 最高的 η=-10,59.66):η=-9 有 3-seed 配对验证(从未比父差 >0.05,两次为正),cov 目标组一致改善,避免对 seed0 A 半过拟合。总增益 +0.27 均值 < 噪声 2 分,如实记录:这是"cov/cs 一致小幅改善、de 一致小幅损失"的近中性改动,正式分(B 半)不保证为正。-- de_recovery 的一致 −0.48 是主要残留损失,来源应是强扩张稀释了 δ_c 的 DE 信号(η=-6 时 de 尚有 51.46)。+- 固定 η 时衰减整体降低局部项有效幅度,沿父节点已知的单调权衡曲线滑动(cs↓ cov↑ de↑),8 个 ρ×τ 配置 seed0 总分全部低于父——PLAN 风险 1 应验(强衰减退化为低幅度扩张)。+- 但在**匹配幅度**下保护机制有 DE 特异增益:同 cs≈79 处 de +1.0(52.47 vs η=−6 的 51.5)。联扫 η 补偿后(η=−14),提交配置满足 PLAN 全部判据:3-seed 配对 de 一致≥0(不再负)、总分均值 −0.05(≥父−0.5)、cov/cs 各项损失均<1。+- 如实记录:总分 3-seed 均值 59.79 vs 父 59.83,**近中性**(差 ≪ 噪声 2 分);本节点买到的是一致方向性的 de_recovery 修复(+0.3 均值)换 cs 小幅(−0.38 均值)损失,B 半不保证为正。+- de 随幅度单调降是结构性的:η=−16 时 de 又掉回 50.0;保护只把权衡曲线在 de 维度平移约 +0.5,没有打破曲线。  ## 验证过 / 没验证 -- 验证过:global+η=-3 与父逐元素一致;默认(typed η=-9)seed 0/1/2 输出确定、通过 vec-check;默认输出与 --local-eta -9 显式运行逐元素一致;耗时 ~5-11s、内存不变;单输入阶段代码路径未动(严格 copy_last)。-- 没验证:final/proxy 视图实跑(同一代码路径,行为由数据现场计算决定;E8.5→E9.5→E10.5 间隔更大,r 与 s_c 数值会不同);B 半分数;de 损失的修复方案(如局部项对 top-|δ_c| 基因降权)未及尝试。-- 知识来源:SYNONYM_PARENTS 沿用节点 5/13(官方 T1 词汇改名/拆分,通用谱系知识);其余全部由视图数据现场计算,无硬编码阶段统计量、无绝对时间分支(r 只用时间差)。+- 验证过:ρ=0+η=−9 与父输出逐元素一致;默认配置 seed0/1 输出确定(重跑逐元素一致,且与显式参数运行一致);seed0 通过 vec-check;耗时 ~4-5s、内存不变;单输入阶段代码路径未动(严格 copy_last)。+- 没验证:final/proxy 视图实跑(同一代码路径,全部量由视图数据现场计算);B 半分数;τ>0.95 或逐型自适应 τ;ρ 与 α 的交互(PLAN 步骤 4 的 α 扫描因查分额度优先给 η 联扫而未做)。+- 知识来源:SYNONYM_PARENTS 沿用节点 5/13/20(官方 T1 词汇改名/拆分,通用谱系知识);其余全部由视图数据现场计算(δ_c、q_τ、a、s_c、V 均从输入矩阵算出),无硬编码阶段统计量、无绝对时间分支(r 只用时间差)。diff --git a/solution/run.py b/solution/run.pyindex f844124..1371da7 100644--- a/solution/run.py+++ b/solution/run.py@@ -11,14 +11,18 @@ per-cell local expansion term computed from g_i = mean_{j in kNN(i)} (z_j - z_i) the mean PC-space offset of the cell's k=15 nearest neighbours in the stage-2 pool (z = V^T x_hvg, centered). -This node (PLAN: per-type norm-normalized expansion): with --eta-norm typed-(default), g_i is replaced by s_c * ghat_i where ghat_i = g_i / ||g_i|| (unit-direction) and s_c = clip(||w_c|| / median_c(||g||), smin, smax) ** spow, with-w_c = V^T Delta_c[hvg] the type-level PC displacement. Default eta = -9,-spow = 1, clip [0.5, 5]. Mechanism-off control: `--eta-norm global---local-eta -3` reproduces node 13/16 element-wise (verified (A!=B).nnz == 0).-An extra exponent flag --eta-spow (0 = pure unit-norm, 0.5 = sqrt-damped-per-type gain) was explored; spow=1, eta=-9 was the best 3-seed paired config.+This node (PLAN: DE-signal protection): the local expansion is attenuated per+gene by the type-level displacement magnitude, a_g = 1 - rho *+clip(|d_c[hvg_g]| / q_tau, 0, 1) with q_tau the tau-quantile of |d_c[hvg]|+per type (defaults rho=0.5, tau=0.90); displacement = eta * s_c * (a . (V ghat_i)).+DE genes (large |d_c|) receive less local perturbation, protecting the per-type+DE signal. Default eta = -14 (amplitude compensation for mean(a)~0.82, jointly+swept per parent lesson). Mechanism-off control: `--de-protect-rho 0+--local-eta -9` reproduces node 20 element-wise (verified (A!=B).nnz == 0).+Node 20 mechanism (--eta-norm typed, kept): g_i is replaced by s_c * ghat_i+where ghat_i = g_i / ||g_i|| (unit direction) and+s_c = clip(||w_c|| / median_c(||g||), smin, smax) ** spow, with+w_c = V^T Delta_c[hvg] the type-level PC displacement.  View independence: V and all offsets come from the view's own input matrices; only relative time differences are used. Single input stage -> exact copy_last.@@ -119,7 +123,7 @@ def main() -> None:     parser.add_argument("--proj-norm", action="store_true",                         default=os.environ.get("VEC_PROJ_NORM", "") == "1")     parser.add_argument("--local-eta", type=float,-                        default=float(os.environ.get("VEC_LOCAL_ETA", "-9.0")))+                        default=float(os.environ.get("VEC_LOCAL_ETA", "-14.0")))     parser.add_argument("--local-k", type=int,                         default=int(os.environ.get("VEC_LOCAL_K", "15")))     parser.add_argument("--eta-norm", choices=["global", "typed"],@@ -136,6 +140,13 @@ def main() -> None:     parser.add_argument("--eta-spow", type=float,                         default=float(os.environ.get("VEC_ETA_SPOW", "1.0")),                         help="exponent on s_c (0 = pure unit-norm, 1 = PLAN)")+    parser.add_argument("--de-protect-rho", type=float,+                        default=float(os.environ.get("VEC_DE_PROTECT_RHO", "0.5")),+                        help="PLAN mechanism: attenuate the local expansion term "+                             "per gene by a_g = 1 - rho*clip(|d_c[hvg_g]|/q_tau,0,1)")+    parser.add_argument("--de-protect-tau", type=float,+                        default=float(os.environ.get("VEC_DE_PROTECT_TAU", "0.90")),+                        help="quantile tau of |d_c[hvg]| defining q_tau")     parser.add_argument("--vel-lambda", type=float,                         default=float(os.environ.get("VEC_VEL_LAMBDA", "0.0")))     parser.add_argument("--vel-k", type=int,@@ -310,7 +321,25 @@ def main() -> None:                     Gsub = G[rows[tmask]]                     nsub = np.linalg.norm(Gsub, axis=1, keepdims=True)                     Ghat = Gsub / np.maximum(nsub, 1e-6)-                    loc = (args.local_eta * s_c) * beta * (Ghat @ V.T)+                    locH = Ghat @ V.T+                    rho = float(args.de_protect_rho)+                    if rho != 0.0:+                        # PLAN mechanism: per-gene attenuation of the local+                        # expansion by the type-level displacement magnitude.+                        # a_g = 1 - rho * clip(|d[hvg_g]| / q_tau, 0, 1)+                        ad = np.abs(d[hvg].astype(np.float64))+                        q_tau = float(np.quantile(ad, args.de_protect_tau))+                        if q_tau > 0:+                            a = 1.0 - rho * np.clip(ad / q_tau, 0.0, 1.0)+                        else:+                            a = np.ones_like(ad)+                        locH = locH * a+                        print("deprot %-16s q_tau=%.4f n_atten=%d/%d "+                              "mean_a_atten=%.3f" % (+                                  str(t), q_tau, int((a < 1.0).sum()), a.size,+                                  float(a[a < 1.0].mean()) if (a < 1.0).any()+                                  else 1.0), file=sys.stderr)+                    loc = (args.local_eta * s_c) * beta * locH                     print("typed %-16s m=%4d ||w_c||=%.3f med_c=%.3f s_c=%.3f "                           "mean||g||=%.3f" % (str(t), len(tmask), swc, med_c,                                               s_c, float(nsub.mean())),

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

用到的知识库条目

编号标题出处
k041Within-stage pseudotime and graph toolkit offline: scanpy DPT/PAGA/Leiden, Palantir, CellRank 210.1186/s13059-019-1663-x (PAGA); 10.1038/s41587-019-0068-4 (Palantir); 10.1038/s41592-024-02303-9 (CellRank 2)
k031Offline OT toolkit in the sandbox: moscot TemporalProblem, wot OTModel, POT, geomloss10.1038/s41586-024-08453-2 (moscot); 10.1016/j.cell.2019.01.006 (Waddington-OT)
k007Interval staging and held-out-window filtering of external datanotes/official/来件/virtualembryo.ai/rules.md

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

改了什么在父节点20(typed 范数归一局部扩张 η=-9)之上加入 PLAN 的 DE 保护:逐基因衰减 a_g=1-rho*clip(|d_c[hvg_g]|/q_tau,0,1)(q_tau 为该型 |d_c[hvg]| 的 tau 分位),在 HVG 空间逐元素乘到局部项上,并把默认 --local-eta 从 -9 联扫补偿到 -14;提交 rho=0.5、tau=0.90、eta=-14(新增 --de-protect-rho/--de-protect-tau 两个开关,run.py 仅改 locH 计算与默认值,单输入 copy_last 路径未动)。
各组分数的变化cell_state:变坏(小幅,接近噪声):88.26 vs 88.84,-0.58
covariation:噪声内:44.80 vs 44.89,-0.09
de_recovery:变好:52.34 vs 51.38,+0.96(目标组,方向与 Engineer 的 3-seed 配对 +0.48/+0.46/0.00 一致;榜上幅度更大,以变化量表 +0.96 为准)
direction:噪声内:50.16 vs 50.15,+0.01
榜分:噪声内:61.06 vs 61.01,+0.05(T1 噪声约 2 分,不能称有效改善)
family_idother
假设是否成立是
经验
  1. 对局部项做逐基因衰减时,mean(a)≈0.82 会整体压低有效幅度,必须同时联扫 eta 补偿(此处 -9→-14),否则固定 eta 下 8 个 rho×tau 配置的 seed0 总分全部低于父节点——衰减与降 eta 在幅度维度上不可区分。
  2. 要分离机制的特异效应,必须在匹配幅度(同 cell_state 水平)下对比:cs≈79 处 rho=0.5/tau=0.9 的 de=52.47 对父曲线 eta=-6 的 de=51.5(+1.0),这才是 DE 保护的真实增益,直接比总分会被幅度权衡掩盖。
  3. de_recovery 随局部扩张幅度单调下降是结构性的(eta=-16 时 de 掉回 50.0);DE 保护只把权衡曲线在 de 维度平移约 +0.5,没有打破曲线,因此总分仍是近中性交换(de +0.96 换 cs -0.58)。
  4. 关闭对照必须落到浮点逐元素级别:--de-protect-rho 0 --local-eta -9 与父节点 20 输出 (A!=B).nnz==0,且 rho=0 时代码跳过乘法,这类"开关式"实现能干净地证明变化来自所声称机制。
  5. 以分位数定义的衰减阈值在真实数据上可能命中全部基因(此处每型 n_atten=8000/8000,因所有 HVG 的 |d_c|>0),tau 只决定饱和点位置而非被衰减基因数量;设计机制时应检查实际命中数,别假设 tau=0.9 只影响 10% 基因。
mechanism_active是
下一步建议
  1. 停止在局部项幅度/衰减维度(eta、rho、tau、spow、smin/smax)调参:de-cs-cov 权衡已确认为结构性;把查分额度转向从未扫描的 EB 时间缩放 alpha,扫 alpha∈{1.0,1.25,1.75,2.0}(当前 1.5),先看对 covariation(44.80,最弱组)与 direction 的影响。
  2. 针对 covariation(本节点 -0.09,仍是最低分组)试按型 EB 收缩强度差异化(如按型细胞数或型内方差做 shrinkage 权重),而不是再动 g_i 的标度;用 seed0 快筛 + 3-seed 配对确认方向一致性。
  3. 若仍想在 de_recovery 上榨取:在本节点基础上试 tau=0.95 或按型自适应 tau(如 q_tau=mean|d|+k*std),固定 rho=0.5 并联扫 eta∈{-13,-14,-15};预期增益 ≤0.5,seed0 无改善即停。

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

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

分析员

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

工程师

角色工程师 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数28
工具调用共 32 次:bash 24、edit 5、read 2、write 1
用时15 分
token 数输入 60,846 · 输出 9,039 · 思考 11,554
任务(第一行)按计划修改程序:DE-signal保护:按|δ_c|逐基因衰减局部扩张项,修复de_recovery一致损失
最后的回答(摘录)
完成。节点 23 提交内容:

**做了什么**:在父节点 20(typed η=−9 局部扩张)上按 PLAN 实现 DE 保护机制——逐基因衰减 a_g=1−ρ·clip(|δ_c[hvg_g]|/q_τ,0,1),作用于 HVG 空间的局部扩张项。扫描 8 个 ρ×τ 配置发现固定 η 时全部沿幅度权衡曲线降分(PLAN 风险 1 应验),但匹配幅度下 DE 特异增益真实存在(同 cs≈79 处 de +1.0),故按父节点教训联扫 η 补偿,提交 ρ=0.5、τ=0.90、η=−14。

**查分结果**(X3 A 半,用 16/20 次):提交配置 3-seed 配对差 de_recovery **+0.48/+0.46/0.00(一致≥0,修复父节点的一致 −0.48)**,cov ≈0,cs −0.72/−0.14/−0.28,总分均值 −0.05(近中性)——满足 PLAN 全部提交判据。对照 `--de-protect-rho 0 --local-eta -9` 与父输出逐元素一致;默认输出通过 vec-check、seed 确定。

**下一步最值得试**:de 随扩张幅度单调下降是结构性的(η=−16 时 de 掉回 50.0),保护只把权衡曲线在 de 维度平移 +0.5;建议停止在局部项幅度/衰减维度调参,转向 PLAN 未做的 α(EB 时间缩放)扫描或按型 EB 收缩强度等结构性手段(covariation 仍是最弱组)。
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261002-202908-search-t1-scr-D/nodes/23/engineer.jsonl 154 KB
/home/spark-longxinyang/vec/runs/formal/20261002-202908-search-t1-scr-D/nodes/23/engineer.stderr

调研员

角色调研员 alibaba-token-plan-cn/qwen3.8-max
调用次数1 次
轮数1
工具调用共 0 次:—
用时1 分
token 数输入 16,634 · 输出 1,033 · 思考 2,560
任务(第一行)为节点 n23(改进,父节点 n20)写改进计划 PLAN.json
最后的回答(摘录)
{"name":"DE-signal保护:按|δ_c|逐基因衰减局部扩张项,修复de_recovery一致损失","motivation":"父节点20的typed η=-9在3-seed配对中de_recovery一致-0.48(51.38 vs 52.34),ANALYSIS确认来源是强扩张稀释了δ_c的DE信号(η=-6时de尚有51.46)。covariation 44.89是最弱组但ANALYSIS明确警告停止g_i标度调参(幅度权衡曲线是结构性的)。α=1.5从未系统扫描。本方案针对de_recovery的一致结构性损失做修复,同时可选扫α。","approach":"步骤:\n1. 在父节点20代码基础上,计算逐基因衰减向量a∈R^{n_hvg}:a_g = 1 - ρ·clip(|δ_c[hvg_g]|/q_τ, 0, 1),其中q_τ是|δ_c[hvg]|的τ分位数(即只有|δ_c|超过τ分位的基因才被衰减,最大衰减到1-ρ)。δ_c[hvg]已在管线中计算(type-level HVG位移)。\n2. 将局部位移从 η·s_c·(V·ĝ_i) 改为 η·s_c·(a ⊙ (V·ĝ_i)),即HVG空间逐元素乘衰减。非DE基因(|δ_c|小)a≈1,局部扩张不变;DE基因(|δ_c|大)a→1-ρ,扩张被抑制,保护δ_c的DE信号。\n3. 参数扫描(先seed0快筛,优胜者3-seed配对):ρ∈{0.3,0.5,0.7,1.0}×τ∈{0.80,0.90},共8配置。预期ρ=0.5~0.7、τ=0.90附近最优。\n4. 若时间允许(约5次查分),在最优ρ/τ上叠加α∈{1.0,1.25,2.0}一维扫描(当前α=1.5)。\n5. 提交判据:3-seed配对中de_recovery一致≥0(不再负),且总分不低于父节点-0.5;若de恢复但cov/cs损失>1则回退。\n单输入退路:代码路径不变,单阶段严格copy_last(与父节点相同)。\nvec-score用法:每配置跑seed0查X3 A半,比较四组分;选前2配置跑3-seed配对。","expected_groups":["de_recovery"],"risks":"1. 衰减过强(ρ→1)会退化为无局部扩张(节点5水平,cs~64),Engineer应在seed0看到cs骤降时立即停止该配置。2. τ分位数选择不当(太低如0.5)会衰减太多基因,伤cov;从0.90开始。3. de_recovery改善可能<2分噪声;用3-seed配对差确认方向一致性(父节点ANALYSIS已验证此方法能分辨0.4级信号)。4. 若α扫描与ρ/τ交互复杂,优先固定α=1.5只提交ρ/τ。","family_id":"other","mechanism":"按|δ_c|大小对局部扩张项做逐基因衰减:DE基因(型间位移大的基因)受局部扰动更少,保护per-type位移携带的DE信号不被逐细胞扩张稀释。","vs_constant_shift":"常数位移对所有基因施加相同偏移;本机制是在已有逐细胞局部扩张之上,按每个基因的型间位移幅度差异化地抑制扰动幅度,是逐基因、逐细胞的空间异质操作,不是全局或每型的常数加减。","mechanism_evidence":"Engineer应报告:(1) 衰减向量a的非1元素数量及其在型间的分布;(2) 被衰减基因(|δ_c|>q_τ)与未被衰减基因上,局部项实际改变的表达量对比;(3) 四组分各自变化,尤其de_recovery是否一致回升而cov/cs不显著下降;(4) ρ=0时输出与父节点逐元素一致。","mechanism_off_control":"ρ=0(或命令行--de-protect-rho 0):a_g=1对所有基因,局部位移退化为η·s_c·(V·ĝ_i),与父节点20逐元素一致。Engineer应验证(A!=B).nnz==0。预期差别:ρ>0时de_recovery上升、cs/cov近似不变;ρ=0时完全还原父节点输出。"}
原始记录位置/home/spark-longxinyang/vec/runs/formal/20261002-202908-search-t1-scr-D/nodes/23/researcher.jsonl 4 KB
/home/spark-longxinyang/vec/runs/formal/20261002-202908-search-t1-scr-D/nodes/23/researcher.stderr