总览 · ← 返回运行 20261003-172000-search-t2-heart-extrap-chain-12h
节点 n43 在终选来历上
节点40×41机制组合:型内中位再闭合(型因子±3×封顶)+逐基因Newton伪批量精确复原(dp逐位=同速度的全局再闭合路径),外部复制b以w=0.3混入速度,γ在新再闭合下重扫至1.5。
| 运行?一次完整的自动搜索或 Agent 会话,有自己的锁定配置和证据包。 | 20261003-172000-search-t2-heart-extrap-chain-12h |
|---|---|
| 父节点 | n41 |
| 子节点 | n44 |
| 操作?种子:人写的起点;改进:在父节点上改;草稿:从头写;修复:修父节点的报错。 | 改进 |
| 状态 | 已打分 |
| 分数 | 搜索目标分 58.49(+0.9) · proxy_noscale 58.49(+0.9) · 3 次复测均分 58.52 |
| 审查 | 通过 检查项1(越界读取):未发现问题。数据只经 src.task2_spatial.view_io 从 --data 视图读取(run.py:1053-1055、1071),外部样本路径由 manifest['external'] 拼接视图根目录(run.py:746),导入仅 argparse/os/numpy/anndata/scipy 与该库(run.py:469-477、743-744);无绝对路径、..、/mnt、/home、data/raw、downloads、打分器或 src/common/evaluation 引用,无联网/下载代码,未读取目标阶段文件(只用了 manifest[… |
| 用时?从运行开始到结束(或到现在)的挂钟时间。 | 38 分 |
| 程序版本 | 25abc7038435b2d4166a1b1e33bcfb6394cd9c3b (programs.git) |
方法说明?节点程序自带的 METHOD.md:这个程序做了什么、为什么。
来自 programs.git 25abc70384:solution/METHOD.md
节点40×41机制组合:型内中位再闭合(型因子±3×封顶)+逐基因Newton伪批量精确复原(dp逐位=同速度的全局再闭合路径),外部复制b以w=0.3混入速度,γ在新再闭合下重扫至1.5。
方法(family T2HX-01,improve,父=节点41)
基座逐位承父节点41:锚阶段坐标15-NN支撑掩码扩散平滑(ε=0.1,逐基因列缩放复原pb)→ 按共有型相对差速度 v_t=(m_a−m_p)/(m_p+1)(MIXEPS=1)→ 外部Qiu心脏样本(视图external/挂载,与锚同时刻的跨数据集独立复制: panel-CP10k重归一、运行时伪批量Pearson型匹配corr≥0.30、mult电平匹配)的按型相对差 b_t 在软阈值前混入 v←(1−w)v+w·b → MAD软阈值 k=0.5 → 乘法位移 x·2^(α v̂)(α=1)→ DE双门控 → 几何再闭合 → PBC=10。 坐标、行序、细胞数、组成全程冻结。
本节点新增(=节点40机制在节点41基座上的重实现,二者作用位置正交:41在速度估计前,40在解码后):
- 型内中位再闭合(
VEC_TYPE_REC=1):几何再闭合的参考电平从全局中位换成各细胞型自身的中位—— s_i = (r_med,type(i)/r̃_i)^γ·(电平中性matched因子),r̃为β_rec=0.15坐标15-NN低通后的每细胞膨胀比。 型因子 f_t = r_med_t/r_med_global 封顶到 [1/3, 3](VEC_TYPEREC_CAP=3,mode=f)。按型位移造成的 型间总量结构(速度强的型更亮)由此保留,而不是被压平到一个全局电平。 - 逐基因Newton伪批量精确复原(
VEC_NEWTON_RESTORE=1):并行算出全局再闭合路径(=同速度下的父管线) 经PBC后的每基因伪批量作为目标;型内路径经PBC后,对每个基因列在线性域解 c_g 使 mean_i log1p(lin_ig·c_g) = 目标_g(Newton迭代 u=log c,g对u光滑单调凹,5次迭代收敛到 f_max=3.6e-15)。 dp(从而de_score/de_direction、门控判定)与全局路径逐位一致(L2差8.4e-15);机制只能在细胞间再分配 表达,不能改变平均表达——正是节点40验证过的收益来源(mmd_u/nb_mmd/variogram轴)。 复原目标用的是ext混合后的同一速度,所以组合输出的dp=节点41的dp,两个机制不互相破坏。 - γ重扫(ANALYSIS建议):再闭合输入分布已变(型内中位、r_med 1.46),γ在新机制下重扫,1.35→1.5;
--ablate时γ退回继承基座值1.35(VEC_GAMMA_ABLATE)。
提交配置:w=0.3、γ=1.5、cap=3(f)、β_rec=0.15、k=0.5、α=1、PBC=10、ε=0.1,其余=父。
机制生效证据(DEBUG实测,提交配置)
- ext匹配:10个官方型匹配到3个外部型(Endocardial/First/Second heart field,corr 0.32–0.57),运行时算,无硬编码标签映射;未测基因b=0回退。
- 型内再闭合:33型中9型触封顶(未封顶f_t最大3.8e47——封顶是承重件);f_cell^γ q05/q50/q95 = 0.155/1.115/11.845,细胞间表达被大幅再分配。
- Newton复原:5次迭代,dp_L2 pre 1.118 → post 8.4e-15(dp逐位=全局路径);零模式保留(线性列缩放)。
- 四组分变化(A半 raw,vs 父41 / 节点35):expression_change de_score 0.3056 / de_direction 0.4189(=父41水平,复原构造保证);cell_state mmd_u 0.0440(父41 0.04759、节点35 0.04853)、variogram 0.034427;local_spatial nb_mmd 0.07258(父41 0.07647、节点35 0.08093);shape_scale 三项raw全同(坐标冻结,50.0地板)。
查分记录(19/20次,全部 A半 proxy_noscale;父41 A半=57.249,节点40≈57.3–57.6)
| # | 配置 | 榜分 | de_score | de_dir | mmd_u | vario | nb_mmd |
|---|---|---|---|---|---|---|---|
| 1 | 型内再闭合+复原,ext关(γ1.35,w=0,cap3)=节点40复现 | 57.331 | 0.2778 | 0.3839 | 0.04632 | 0.03596 | 0.07621 |
| 2 | 组合 γ1.35 w0.25 cap3 | 57.993 | 0.2917 | 0.4181 | 0.04436 | 0.03527 | 0.07323 |
| 3 | 同上,capmode=fg(封顶f^γ) | 57.971 | 0.2917 | 0.4181 | 0.04460 | 0.03514 | 0.07343 |
| 4 | γ1.35 w0.35 | 57.914 | 0.2639 | 0.4002 | 0.04319 | 0.03578 | 0.07204 |
| 5 | γ1.35 w0.25 cap关 | 57.909 | 0.2917 | 0.4181 | 0.04410 | 0.03633 | 0.07340 |
| 6 | γ1.35 w0.25 cap2 | 57.954 | 0.2917 | 0.4181 | 0.04469 | 0.03508 | 0.07363 |
| 7 | γ1.35 w0.25 cap5 | 58.012 | 0.2917 | 0.4181 | 0.04404 | 0.03552 | 0.07301 |
| 8 | γ1.1 w0.25 | 57.440 | 0.2500 | 0.3883 | 0.04447 | 0.03733 | 0.07372 |
| 9 | γ1.2 w0.25 | 57.752 | 0.2778 | 0.4027 | 0.04415 | 0.03652 | 0.07336 |
| 10 | γ1.5 w0.25 | 58.115 | 0.3056 | 0.4201 | 0.04483 | 0.03420 | 0.07338 |
| 11 | γ1.5 w0.25 β_rec0.08 | 57.960 | 0.2917 | 0.4165 | 0.04459 | 0.03518 | 0.07344 |
| 12 | γ1.5 w0.25 β_rec0.3 | 57.993 | 0.2917 | 0.4176 | 0.04465 | 0.03519 | 0.07303 |
| 13 | γ1.65 w0.25 | 58.127 | 0.3056 | 0.4183 | 0.04532 | 0.03332 | 0.07365 |
| 14 | γ1.8 w0.25 | 58.049 | 0.2917 | 0.4163 | 0.04588 | 0.03260 | 0.07402 |
| 15 | γ1.5 w0.2 | 57.925 | 0.2917 | 0.4186 | 0.04563 | 0.03411 | 0.07426 |
| 16 | γ1.5 w0.15 | 57.828 | 0.2917 | 0.4167 | 0.04605 | 0.03419 | 0.07491 |
| 17 | γ1.5 w0.35 | 58.165 | 0.2917 | 0.4122 | 0.04358 | 0.03469 | 0.07203 |
| 18 | γ1.5 w0.3 cap3(提交) | 58.212 | 0.3056 | 0.4189 | 0.04400 | 0.03443 | 0.07258 |
| 19 | γ1.5 w0.25 cap5 | 58.146 | 0.3056 | 0.4201 | 0.04440 | 0.03446 | 0.07308 |
判读:#1复现节点40(de raw=节点35逐位✓,nb_mmd 0.0809→0.0762);#2组合立即+0.66(两机制叠加无冲突, PLAN守卫mmd_u≤0.0455✓、de_dir≥0.40✓);γ在型内再闭合下重新呈内点最优(#8-10,13,14:1.5–1.65平台); w=0.3与γ=1.5联扫为网格峰值(#18,内点);cap在2–5为平台、关闭略降(#5-7),封顶f模式保留。 提交较父41 A半+0.96、较节点40复现+0.88,均超噪声。剩余1次查分额度未用(提交文件与#18逐位一致, 离线array_equal验证,无需重查)。
关闭机制对照(mechanism_off_control)
--ablate <任意名>:EXT_W→0、TYPE_REC→off(回全局中位再闭合)、FRONT_BETA→0、γ→1.35(继承基座值)。
实测输出与节点35/37/39基线逐位一致(array_equal=True,即A半56.869)。分步对照(离线/查分):
仅关ext(w=0,型内再闭合开)=#1≈节点40(57.33 A半);仅关型内再闭合(VEC_TYPE_REC=0,γ1.35,w0.25)
=逐位父节点41(离线验证于开发过程)。mechanism_active预期=yes。
验证过的
vec-check通过;CPU 2.4s、峰值内存<2GB(EXECUTION.json gpu:false)。- 确定性:seed 0/1输出逐位一致(锚24826≤max_cells 25179,take()全取无抽样)。
- 视图无关:伪装视图(换路径、manifest键序打乱+重排版、全部时间含external窗口+1天)输出逐位一致;代码只读manifest数据字段与时间差,无绝对时间、无视图/数据集名、无写死细胞数或阶段尺寸常数。
- 退路:单输入视图→锚原样输出(逐位=copy_last,实测);external/为空→w强制0,输出逐位=ext关路径(实测);型无prev→v=0承父;Newton对全零列(pb_target=0)保持c=1。
- dp复原精度:L2 8.4e-15(float64内部),de两项raw与父41逐位相同(0.3056/0.4189 vs 父0.3056/0.4226——de_direction差0.0037在float32量化与w=0.3 vs 0.25内)。
没验证的
- B半与真实final视图(E10.5方向):本地尺子历史高估外推收益(54.2→49.6先例,但节点35/41两代A半→B半均+0.24~0.32方向一致);型间总量结构保留是否在真实目标上同样有利无法本地检验。
- 提交配置只有seed 0/1(逐位一致,seed无关路径);rank3复跑预期同值。
- w×γ仅粗联扫(w∈{0.15,0.2,0.25,0.3,0.35}×γ∈{1.5},γ∈{1.35,1.5,1.65}×w=0.25),更细交互未扫。
知识来源
无外部生物学知识条目:外部Qiu样本为视图external/挂载的合规数据(manifest允许),型匹配、电平匹配、b_t、
型中位、封顶生效集、复原目标全部运行时从视图输入计算;γ/w/cap为本地网格超参,不由任何已发布阶段测量值导出。
调研员的计划
| 名称 | 型内中位再闭合+伪批量精确复原叠加外部复制方向修正(节点40×41机制组合) |
|---|---|
| 动机 | 父41的b修正改善de_direction(0.3874→0.4226)与nb_mmd(0.07784→0.07647),但mmd_u持平(0.04759);节点40用型内中位再闭合+逐基因伪批量精确复原把mmd_u降到0.04529、nb_mmd降到0.07304(组+1.54,超噪声),同时dp逐位保持父值。两个机制作用位置不同(40在解码后重分配表达,41在速度估计前修正方向),且40的dp复原保证DE不丢。父41的ANALYSIS也建议重扫γ/β_rec,但节点40的再闭合改进是已验证的更优路径,且与41的b修正正交。 |
| 做法 | 以节点40代码为基座(型内中位再闭合±3×封顶+逐基因Newton列缩放复原,dp逐位=父35),把节点41的外部复制修正(panel-CP10k重归一、运行时Pearson型匹配corr≥0.30、b_t以w=0.25混入速度)移植到速度估计阶段(软阈值前)。步骤:1) 复现节点40管线(含ext钩子关闭)确认榜分≈57.59(1次查分);2) 打开EXT_W=0.25(其余参数同节点41),查分1次看mmd_u是否≤0.0455且de_direction≥0.40;3) 若mmd_u回升>0.047,说明b改变了再闭合输入分布,试w=0.15/0.35各1次;4) 若de_direction<0.3839(守卫),降w或关ext(回退节点40)。全程坐标/行序/细胞数/组成冻结。单输入阶段退路:若视图无prev阶段(速度无定义),全部速度=0、ext不可用→输出=锚原样(地板)。vec-score筛选:先跑离线de_direction与mmd_u两个raw,再查全分。 |
| 风险 | 1) b修正改变速度分布后,型内再闭合的参考中位与复原目标都变,可能破坏节点40的单调收益——第2步查分即可发现(mmd_u若>0.0475则机制冲突);2) 两个机制叠加后总分可能仍在噪声内(各+0.4),需rank3确认;3) 外部样本匹配在伪装视图下可能改变(路径打乱但数据同),需验证输出一致。 |
代码改动?这个节点的程序和父节点程序的逐行差别:绿色是新增,红色是删除。
对比:父节点版本 98c0bf509a。改动的文件:solution/METHOD.md +83 −89、solution/README.md +19 −14、solution/run.py +184 −6
diff --git a/solution/METHOD.md b/solution/METHOD.mdindex e6811c7..8a4a916 100644--- a/solution/METHOD.md+++ b/solution/METHOD.md@@ -1,95 +1,89 @@-外部Qiu心脏样本(锚同时刻独立复制)经数据驱动型匹配后,其按型逐基因相对差 b_t 以 w=0.25 混入按型外推速度(软阈值前),修正位移方向;其余管线逐位承父节点35。--## 方法(PLAN 适配说明)--PLAN(三点速度方向修正,family T2HX-01)假设 external/ 的 Qiu 心脏样本"介于 anchor 与 target 之间",-可算晚段速度 v_late=(pb_ext−pb_anchor)/Δt2。**该前提在本榜被数据证否**:外推榜的 external/ 按窗口规则-只保留 ≤ 末输入的阶段,视图挂载的 `qiu2024_heart_early_v1` 的 e_lo=e_hi 恰等于锚时间(Δt2=0,v_late 无-定义),且其标签词汇(First/Second heart field、Endocardial cells)与官方锚类型名零交集。因此按 improve-规则把机制适配为**同一发育时刻的跨数据集独立复制修正**(仍属 PLAN 的"上游速度方向估计改进",目标弱项-cell_state/质心位置不变):--1. 从 manifest["external"] 现场发现样本(只用时间差判断:e_lo ≤ target 且 e_hi ≥ anchor−0.25d;不写死- 日期/路径/数据集名;external 为空或无可用样本 → w 强制 0,输出逐位=父)。-2. 外部细胞按 panel 重归一:线性域每细胞缩放到 panel-CP10k=10^4 后 log1p(外部 assay 在其全转录组上归- 一,500 个 panel 基因只占其总量 ~8.7%;这是 CP10k 定义层面的技术归一化,非生物学测量)。497/500 基因- 覆盖;**未覆盖基因 b=0、保留 v_early(PLAN 步骤 5 回退)**——否则 fill-zero 的 m_ext 会注入纯测量伪影- (如 Cemip2:m_a=5.19 → 伪 b=−0.84)。-3. 型匹配纯数据驱动:对每个官方锚类型(n≥10),取覆盖基因上伪批量 Pearson 相关最高的 ext 类型(ext- 类型 n≥20,corr≥0.30 才接受;平局按名字排序破,确定性)。本视图匹配到 10 型:Endo←Endocardial(0.494)、- V-CM←FHF(0.544)、IFT-CM←FHF(0.568)、Unknown←SHF(0.482)、Intra-Endoth-2←Endocardial(0.435)、- ExEM-2(0.349)/Intra-Endoth-1(0.357)/HEM-Endoth(0.328)/JCF(0.322)/aPHM(0.312);未匹配型(Neural- Tube、NCC、PAM-* 等)速度不变。-4. ext 型均值按 mult 电平匹配官方锚型均值后,算相对差 b_t=(m_ext−m_a)/(m_a+1)(与父速度估计同形),- 在软阈值**前**混入:v_t ← (1−w)·v_t + w·b_t,**w=0.25**(提交值)。-5. 之后管线逐位承父 35:ε=0.1 两步坐标 15-NN 支撑掩码平滑底物、rel 速度估计、α=1 乘法位移、k=0.5 MAD- 软阈值、γ=1.35 几何再闭合、β_rec=0.15 低通+电平 matched、PBC=10、DE 双门控、坐标/行序/细胞数/组成冻结。--关键参数(env 可调,默认=提交值):`VEC_EXT_W=0.25`、`VEC_EXT_MODE=mix`、`VEC_EXT_MINCORR=0.30`、-`VEC_EXT_LEVEL=mult`、`VEC_EXT_MINCELLS=20`、`VEC_EXT_TOL=0.25`。`--ablate <任意名>` → EXT_W=0、-FRONT_BETA=0 → 输出逐位=父节点(已验证),其余机制钩子(node 37/39)本就默认关。--## 查分记录(A 半 proxy_noscale,父=56.869;共 18 次,余 2 次未用)--| 配置 | 榜分 | de_score | de_dir | mmd_u | variogram | nb_mmd |-|---|---:|---:|---:|---:|---:|---:|-| 父基线复现(=node 35/37/39) | 56.869 | ~0.278 | 0.3839 | 0.04850 | 0.03540 | 0.08093 |-| **mix w=0.25 + 覆盖回退(提交)** | **57.249** | 0.2917 | 0.4181 | 0.04866 | 0.03468 | 0.07970 |-| mix w=0.25(未加覆盖回退,含 3 基因伪影) | 57.331 | 0.3056 | 0.4184 | 0.04858 | 0.03462 | 0.07963 |-| mix w=0.15 / 0.20 / 0.35 | 57.115 / 57.250 / 57.188 | 0.2917/0.3056/0.2639 | 0.4110/0.4171/0.4001 | 0.04919/0.04911/0.04747 | 0.0346/0.0346/0.0350 | 0.0806/0.0802/0.0783 |-| mix w=0.50(PLAN 首筛,守卫破) | 56.613 | 0.2083 | 0.3544 | 0.04981 | 0.03574 | 0.07709 |-| mix w=0.25, mincorr=0.25 / 0.45 | 57.217 / 56.943 | 0.2778/0.3056 | 0.4156/0.4053 | 0.04905/0.05001 | 0.0342/0.0347 | 0.0793/0.0826 |-| mix w=0.25, level=add | 57.198 | 0.2639 | 0.4154 | 0.04804 | 0.03478 | 0.07894 |-| mixc(b 去中位,纯结构)w=0.25 | 57.275 | 0.2917 | 0.4189 | 0.04851 | 0.03465 | 0.07957 |-| mixconst(b=常数中位,对照)w=0.25 | 57.035 | 0.2778 | 0.4091 | 0.04876 | 0.03508 | 0.08055 |-| shrink w=1(可靠性阻尼解码) | 57.250 | 0.3056 | 0.4152 | 0.04882 | 0.03509 | 0.07976 |-| mixshrink w=0.25 s=1(组合) | 57.267 | 0.3056 | 0.4204 | 0.04898 | 0.03498 | 0.07986 |-| sign(PLAN 保守变体)w=1 | 56.742 | 0.2222 | 0.3828 | 0.04835 | 0.03522 | 0.07968 |-| sub w=0.5(v−w·b) | 55.679 | 0.1806 | 0.2562 | 0.04575 | 0.03947 | 0.08169 |-| α=0.75(纯幅度对照,无 ext) | 56.112 | 0.2361 | 0.3575 | 0.04669 | 0.04247 | 0.08112 |-| mix w=0.25 + α=1.15 | 57.075 | 0.3194 | 0.4166 | 0.05243 | 0.03200 | 0.08375 |--注:w/mincorr/level/mode 网格在未加覆盖回退的代码上扫(两版仅在 3 个未测基因上不同,pb L2 差 0.104,-榜分差 −0.08,噪声内);提交版为加了 PLAN 步骤 5 回退的原则版本,伪影版分数不作提交依据。--解读:(a) w 网格单峰、0.15–0.35 全平台高于父,mincorr 0.30 是内点最优(0.25/0.45 都更低),level=mult/add-都超父 → 不是刀尖配置。(b) 纯幅度对照 α=0.75 掉到 56.11、常数-b 对照 57.04 < 含结构 57.33/57.27 → 收益-主体来自 b 的**逐基因结构**,不是均匀幅度/电平效应。(c) PLAN 守卫在 w=0.25 通过(de_dir 0.4181≥0.3839、-variogram 0.03468≤0.0355);w=0.5 首筛即破守卫(0.3544),按 PLAN 转保守 sign 变体(56.74,也低于父)。-(d) PLAN 机制生效判据"∃w: mmd_u↓ 且 de_dir≥0.3839"在 w=0.35 满足(mmd_u 0.04747<0.0485、de_dir 0.4001);-榜分最优 w=0.25 处 mmd_u 持平,净收益落在 DE 两项+variogram+nb_mmd。**与 PLAN 预期不同:提交配置下-mmd_u 本身没降**——b 修正的是跨数据集可复现的方向成分,改善体现在 de_direction(0.384→0.418)而非分布-距离;cell_state 组 +0.07(58.85→58.92 量级),expression_change 组约 +1.1。--机制证据(PLAN mechanism_evidence,提交配置):(1) 10 个匹配型 spearman(v_pre,v_post)=0.61–0.83、符号翻转-比例 15–26%(DEBUG ext_corr 行逐型列出);(2) 预测质心位移 ‖pb_submit−pb_parent‖₂=0.520(max|Δ|=0.151),-100% 细胞表达改变(匹配型速度修正 + 再闭合电平 r_med 1.80→1.45 的全局效应),中位线性总量 18246→14387;-(3) 四指标随 w 变化见上表;(4) 分型 MMD 贡献分解未做(需真值,离线不可得)。+节点40×41机制组合:型内中位再闭合(型因子±3×封顶)+逐基因Newton伪批量精确复原(dp逐位=同速度的全局再闭合路径),外部复制b以w=0.3混入速度,γ在新再闭合下重扫至1.5。++## 方法(family T2HX-01,improve,父=节点41)++基座逐位承父节点41:锚阶段坐标15-NN支撑掩码扩散平滑(ε=0.1,逐基因列缩放复原pb)→ 按共有型相对差速度+v_t=(m_a−m_p)/(m_p+1)(MIXEPS=1)→ 外部Qiu心脏样本(视图external/挂载,与锚同时刻的跨数据集独立复制:+panel-CP10k重归一、运行时伪批量Pearson型匹配corr≥0.30、mult电平匹配)的按型相对差 b_t 在软阈值前混入+v←(1−w)v+w·b → MAD软阈值 k=0.5 → 乘法位移 x·2^(α v̂)(α=1)→ DE双门控 → 几何再闭合 → PBC=10。+坐标、行序、细胞数、组成全程冻结。++本节点新增(=节点40机制在节点41基座上的重实现,二者作用位置正交:41在速度估计前,40在解码后):++1. **型内中位再闭合**(`VEC_TYPE_REC=1`):几何再闭合的参考电平从全局中位换成各细胞型自身的中位——+ s_i = (r_med,type(i)/r̃_i)^γ·(电平中性matched因子),r̃为β_rec=0.15坐标15-NN低通后的每细胞膨胀比。+ 型因子 f_t = r_med_t/r_med_global 封顶到 [1/3, 3](`VEC_TYPEREC_CAP=3`,mode=f)。按型位移造成的+ 型间总量结构(速度强的型更亮)由此保留,而不是被压平到一个全局电平。+2. **逐基因Newton伪批量精确复原**(`VEC_NEWTON_RESTORE=1`):并行算出全局再闭合路径(=同速度下的父管线)+ 经PBC后的每基因伪批量作为目标;型内路径经PBC后,对每个基因列在线性域解 c_g 使+ mean_i log1p(lin_ig·c_g) = 目标_g(Newton迭代 u=log c,g对u光滑单调凹,5次迭代收敛到 f_max=3.6e-15)。+ dp(从而de_score/de_direction、门控判定)与全局路径逐位一致(L2差8.4e-15);机制只能在细胞间**再分配**+ 表达,不能改变平均表达——正是节点40验证过的收益来源(mmd_u/nb_mmd/variogram轴)。+ 复原目标用的是ext混合后的同一速度,所以组合输出的dp=节点41的dp,两个机制不互相破坏。+3. **γ重扫**(ANALYSIS建议):再闭合输入分布已变(型内中位、r_med 1.46),γ在新机制下重扫,1.35→1.5;+ `--ablate`时γ退回继承基座值1.35(`VEC_GAMMA_ABLATE`)。++提交配置:w=0.3、γ=1.5、cap=3(f)、β_rec=0.15、k=0.5、α=1、PBC=10、ε=0.1,其余=父。++## 机制生效证据(DEBUG实测,提交配置)++- ext匹配:10个官方型匹配到3个外部型(Endocardial/First/Second heart field,corr 0.32–0.57),运行时算,无硬编码标签映射;未测基因b=0回退。+- 型内再闭合:33型中9型触封顶(未封顶f_t最大3.8e47——封顶是承重件);f_cell^γ q05/q50/q95 = 0.155/1.115/11.845,细胞间表达被大幅再分配。+- Newton复原:5次迭代,dp_L2 pre 1.118 → post 8.4e-15(dp逐位=全局路径);零模式保留(线性列缩放)。+- 四组分变化(A半 raw,vs 父41 / 节点35):expression_change de_score 0.3056 / de_direction 0.4189(=父41水平,复原构造保证);cell_state mmd_u 0.0440(父41 0.04759、节点35 0.04853)、variogram 0.034427;local_spatial nb_mmd 0.07258(父41 0.07647、节点35 0.08093);shape_scale 三项raw全同(坐标冻结,50.0地板)。++## 查分记录(19/20次,全部 A半 proxy_noscale;父41 A半=57.249,节点40≈57.3–57.6)++| # | 配置 | 榜分 | de_score | de_dir | mmd_u | vario | nb_mmd |+|---|---|---:|---:|---:|---:|---:|---:|+| 1 | 型内再闭合+复原,ext关(γ1.35,w=0,cap3)=节点40复现 | 57.331 | 0.2778 | 0.3839 | 0.04632 | 0.03596 | 0.07621 |+| 2 | 组合 γ1.35 w0.25 cap3 | 57.993 | 0.2917 | 0.4181 | 0.04436 | 0.03527 | 0.07323 |+| 3 | 同上,capmode=fg(封顶f^γ) | 57.971 | 0.2917 | 0.4181 | 0.04460 | 0.03514 | 0.07343 |+| 4 | γ1.35 w0.35 | 57.914 | 0.2639 | 0.4002 | 0.04319 | 0.03578 | 0.07204 |+| 5 | γ1.35 w0.25 cap关 | 57.909 | 0.2917 | 0.4181 | 0.04410 | 0.03633 | 0.07340 |+| 6 | γ1.35 w0.25 cap2 | 57.954 | 0.2917 | 0.4181 | 0.04469 | 0.03508 | 0.07363 |+| 7 | γ1.35 w0.25 cap5 | 58.012 | 0.2917 | 0.4181 | 0.04404 | 0.03552 | 0.07301 |+| 8 | γ1.1 w0.25 | 57.440 | 0.2500 | 0.3883 | 0.04447 | 0.03733 | 0.07372 |+| 9 | γ1.2 w0.25 | 57.752 | 0.2778 | 0.4027 | 0.04415 | 0.03652 | 0.07336 |+| 10 | γ1.5 w0.25 | 58.115 | 0.3056 | 0.4201 | 0.04483 | 0.03420 | 0.07338 |+| 11 | γ1.5 w0.25 β_rec0.08 | 57.960 | 0.2917 | 0.4165 | 0.04459 | 0.03518 | 0.07344 |+| 12 | γ1.5 w0.25 β_rec0.3 | 57.993 | 0.2917 | 0.4176 | 0.04465 | 0.03519 | 0.07303 |+| 13 | γ1.65 w0.25 | 58.127 | 0.3056 | 0.4183 | 0.04532 | 0.03332 | 0.07365 |+| 14 | γ1.8 w0.25 | 58.049 | 0.2917 | 0.4163 | 0.04588 | 0.03260 | 0.07402 |+| 15 | γ1.5 w0.2 | 57.925 | 0.2917 | 0.4186 | 0.04563 | 0.03411 | 0.07426 |+| 16 | γ1.5 w0.15 | 57.828 | 0.2917 | 0.4167 | 0.04605 | 0.03419 | 0.07491 |+| 17 | γ1.5 w0.35 | 58.165 | 0.2917 | 0.4122 | 0.04358 | 0.03469 | 0.07203 |+| 18 | **γ1.5 w0.3 cap3(提交)** | **58.212** | 0.3056 | 0.4189 | 0.04400 | 0.03443 | 0.07258 |+| 19 | γ1.5 w0.25 cap5 | 58.146 | 0.3056 | 0.4201 | 0.04440 | 0.03446 | 0.07308 |++判读:#1复现节点40(de raw=节点35逐位✓,nb_mmd 0.0809→0.0762);#2组合立即+0.66(两机制叠加无冲突,+PLAN守卫mmd_u≤0.0455✓、de_dir≥0.40✓);γ在型内再闭合下重新呈内点最优(#8-10,13,14:1.5–1.65平台);+w=0.3与γ=1.5联扫为网格峰值(#18,内点);cap在2–5为平台、关闭略降(#5-7),封顶f模式保留。+提交较父41 A半+0.96、较节点40复现+0.88,均超噪声。剩余1次查分额度未用(提交文件与#18逐位一致,+离线array_equal验证,无需重查)。++## 关闭机制对照(mechanism_off_control)++`--ablate <任意名>`:EXT_W→0、TYPE_REC→off(回全局中位再闭合)、FRONT_BETA→0、γ→1.35(继承基座值)。+实测输出与节点35/37/39基线**逐位一致**(array_equal=True,即A半56.869)。分步对照(离线/查分):+仅关ext(w=0,型内再闭合开)=#1≈节点40(57.33 A半);仅关型内再闭合(VEC_TYPE_REC=0,γ1.35,w0.25)+=逐位父节点41(离线验证于开发过程)。mechanism_active预期=yes。 ## 验证过的 -- 默认输出 = 已查分的提交预测(57.249 那次),逐位一致;`vec-check --task T2:heart:val_extrap/proxy_noscale` ok。-- `--ablate w` 输出逐位 = 父节点基线(X 与坐标 array_equal)→ mechanism_active 预期 yes。-- seed 0 / 1 输出逐位相同(锚 24826 ≤ max_cells 25179,take 全取,无抽样随机性)。-- 伪装视图(换路径、manifest 键序打乱、全部阶段时间含 external 窗口 +1 天)输出逐位相同 → 视图无关。-- external 置空的伪装视图 → 输出逐位=父(PLAN 步骤 7 退路)。单输入阶段退路承父(在 ext 代码之前分支)。-- CPU ~3.5 s、峰值内存 < 2 GB(EXECUTION.json gpu:false 承父);无 NaN/Inf;坐标/行序/细胞数冻结。--## 未验证 / 风险--- B 半与官网:A 半 +0.38(提交版)在 T2 噪声(~1 分)量级内,但 de_dir raw +0.034 是结构性的(方向信息,- 非抽样涨落),且 6+ 配置组成的平台整体高于父,预期部分迁移;外推榜本地尺子历史高估,不作真实分估计。-- 再闭合电平 r_med 1.80→1.45(输出比父暗 21%):node 39 曾示亮度是信号,本配置 de_score 反升(0.278→- 0.292),说明方向收益压过电平损失,但该权衡在 B 半未验证。-- 匹配阈值 0.30 放进了 5 个低相关(0.31–0.44)的非心肌型(ExEM-2、HEM-Endoth、Intra-Endoth-1/2、JCF、- aPHM),mincorr=0.45 实验说明它们净贡献为正(去掉反而低 0.31–0.39),但这些匹配生物学上存疑(ext 是- 纯心脏样本,相关可能只反映泛表达谱形);换一份 external 数据时匹配集自适应,效果不保证。-- VEC_FRONT_BETA(型内前沿逐细胞解码)已实现、默认 0、**未查分**(离线门控 spearman 0.61→0.60 略降,- 不值配额),留给后续节点。-- 真实 final 视图与 proxy 同括号同 external 挂载规则,预期行为相同;未在 final 上实跑。+- `vec-check`通过;CPU 2.4s、峰值内存<2GB(`EXECUTION.json gpu:false`)。+- 确定性:seed 0/1输出逐位一致(锚24826≤max_cells 25179,take()全取无抽样)。+- 视图无关:伪装视图(换路径、manifest键序打乱+重排版、全部时间含external窗口+1天)输出逐位一致;代码只读manifest数据字段与时间差,无绝对时间、无视图/数据集名、无写死细胞数或阶段尺寸常数。+- 退路:单输入视图→锚原样输出(逐位=copy_last,实测);external/为空→w强制0,输出逐位=ext关路径(实测);型无prev→v=0承父;Newton对全零列(pb_target=0)保持c=1。+- dp复原精度:L2 8.4e-15(float64内部),de两项raw与父41逐位相同(0.3056/0.4189 vs 父0.3056/0.4226——de_direction差0.0037在float32量化与w=0.3 vs 0.25内)。++## 没验证的++- B半与真实final视图(E10.5方向):本地尺子历史高估外推收益(54.2→49.6先例,但节点35/41两代A半→B半均+0.24~0.32方向一致);型间总量结构保留是否在真实目标上同样有利无法本地检验。+- 提交配置只有seed 0/1(逐位一致,seed无关路径);rank3复跑预期同值。+- w×γ仅粗联扫(w∈{0.15,0.2,0.25,0.3,0.35}×γ∈{1.5},γ∈{1.35,1.5,1.65}×w=0.25),更细交互未扫。 ## 知识来源 -未使用任何已发布/保留阶段的测量值(比例、表达、尺寸、类型清单均未写死);未使用文献生物学断言。型匹配、-电平匹配、b_t、覆盖回退全部由视图输入现场计算;panel 重归一化是 CP10k 定义层面的技术步骤,非生物学知识。-PLAN sources 为空,本节点无新增。+无外部生物学知识条目:外部Qiu样本为视图`external/`挂载的合规数据(manifest允许),型匹配、电平匹配、b_t、+型中位、封顶生效集、复原目标全部运行时从视图输入计算;γ/w/cap为本地网格超参,不由任何已发布阶段测量值导出。diff --git a/solution/README.md b/solution/README.mdindex 6c0d6a0..2ed1aab 100644--- a/solution/README.md+++ b/solution/README.md@@ -1,20 +1,25 @@-# 提交态 = 节点 35 基座 + 外部复制速度修正(node 41,T2HX-01,T2:heart:val_extrap)+# 提交态 = 节点41基座 + 节点40解码机制组合(node 43,T2HX-01,T2:heart:val_extrap) -copy_last 基座(坐标/行序/细胞数/组成冻结)承自节点 33/35:锚阶段表达先在坐标 15-NN 图上做两步支撑+copy_last 基座(坐标/行序/细胞数/组成冻结)承自节点 33/35/41:锚阶段表达先在坐标 15-NN 图上做两步支撑 掩码扩散平滑(ε=0.1,零模式逐位保留,逐基因列缩放复原伪批量),再按共有细胞型的相对差速度 v_t=(m_a−m_p)/(m_p+1) 做乘法位移 x′=x_smoothed·2^(α·v̂_t)(α=1,k=0.5 MAD 软阈值),门控-(std 比 ≥0.01、spearman ≥0.3)通过后做几何再闭合 s_i=(r_med/r̃_i)^γ(γ=1.35,r̃=β_rec=0.15-坐标 15-NN 低通 + 电平中性 matched)与 PBC=10 钳亮尾。+(std 比 ≥0.01、spearman ≥0.3)通过后做几何再闭合与 PBC=10 钳亮尾。 -**节点 41 机制(默认开,`VEC_EXT_W=0.25`)**:视图 external/ 挂载的 Qiu 心脏样本与锚同时刻-(外推榜窗口规则决定,PLAN 的晚段速度 Δt2=0 不可算),改作锚阶段的跨数据集独立复制:panel-CP10k-重归一 + 相关匹配细胞型(运行时数据驱动,corr≥0.30,本视图 10 型)+ mult 电平匹配后,按型相对差-b_t=(m_ext−m_a)/(m_a+1) 在软阈值前混入速度 v←(1−w)v+w·b(w=0.25;ext 未测基因 b=0 回退)。-A 半 57.249(父 56.869),de_direction 0.3839→0.4181、nb_mmd 0.0809→0.0797;w 0.15–0.35 平台-均高于父;纯幅度对照(α=0.75→56.11)与常数-b 对照(57.04)证明收益来自 b 的逐基因结构。明细与-18 次查分表见 METHOD.md。+**机制一(承节点41,速度侧,`VEC_EXT_W=0.3`)**:视图 external/ 挂载的 Qiu 心脏样本与锚同时刻+(外推榜窗口规则决定),作锚阶段的跨数据集独立复制:panel-CP10k 重归一 + 相关匹配细胞型(运行时数据驱动,+corr≥0.30,本视图 10 型)+ mult 电平匹配后,按型相对差 b_t=(m_ext−m_a)/(m_a+1) 在软阈值前混入速度+v←(1−w)v+w·b(ext 未测基因 b=0 回退)。 -- 运行:`python run.py --data <view> --out <pred.h5ad> --seed <int>`;CPU ~3.5s、<2GB(`EXECUTION.json gpu:false`)。-- 关闭对照:`--ablate <任意名>` → EXT_W=0、FRONT_BETA=0 → 输出逐位=父节点 35(已验证)。+**机制二(承节点40,解码侧,本节点在41基座上重实现,`VEC_TYPE_REC=1`+`VEC_NEWTON_RESTORE=1`)**:+几何再闭合的参考电平从全局中位换成各细胞型自身中位(型因子 f_t=r_med,t/r_med 封顶 [1/3,3],γ=1.5 重扫),+保留按型位移造成的型间总量结构;随后逐基因 Newton 列缩放(线性域,5 次迭代收敛到 1e-15)把每基因伪批量+精确复原到同速度的全局再闭合路径——dp/de 两项由构造逐位保持,机制只能在细胞间再分配表达+(mmd_u/variogram/nb_mmd 轴)。两机制作用位置正交(速度估计前 / 解码后),实测叠加无冲突。++A 半 proxy_noscale:提交 58.21(父41 57.25、节点40复现 57.33、节点35 56.87);mmd_u 0.0440、+nb_mmd 0.07258、de_score 0.3056、de_direction 0.4189。19 次查分网格(γ×w×cap×β_rec)见 METHOD.md。++- 运行:`python run.py --data <view> --out <pred.h5ad> --seed <int>`;CPU ~2.5s、<2GB(`EXECUTION.json gpu:false`)。+- 关闭对照:`--ablate <任意名>` → EXT_W=0、TYPE_REC off(回全局中位)、γ→1.35 → 输出逐位=节点35(已验证)。 - 确定性:seed 0/1 逐位一致(锚全取无抽样);伪装视图(路径/键序/时间平移+1 天含 external 窗口)逐位一致;- external 置空 → 逐位=父;单输入阶段退路承父;无绝对时间、无视图标识、无写死常数。+ external 置空 → w=0 路径逐位;单输入阶段 → 锚原样;无绝对时间、无视图标识、无写死常数。diff --git a/solution/run.py b/solution/run.pyindex 8ffbefc..292566e 100644--- a/solution/run.py+++ b/solution/run.py@@ -24,9 +24,43 @@ Mechanism (on by default, alpha = 1.0): Coordinates, row order and cell count are never modified. ---ablate <name> (any name) turns THIS node's mechanisms off (node 41:-VEC_EXT_W -> 0, VEC_FRONT_BETA -> 0) and keeps the rest of the pipeline-unchanged, so the ablated run is bit-for-bit parent node 35/37/39 (verified).+--ablate <name> (any name) turns THIS node's mechanisms off (node 43:+VEC_EXT_W -> 0, VEC_FRONT_BETA -> 0, VEC_TYPE_REC -> off, gamma -> the+inherited node-35 base 1.35) and keeps the rest of the pipeline unchanged, so+the ablated run is bit-for-bit node 35/37/39 (verified, A-half 56.869).++Node 43 (PLAN: node40 x node41 mechanism combination, SUBMITTED w=0.3,+gamma=1.5, cap=3): node 40's decode-side mechanism re-implemented on the+node-41 base and re-tuned jointly with the external-replicate velocity mix.+(a) WITHIN-TYPE median re-closure (VEC_TYPE_REC=1): the geometric re-closure+scale pulls each cell toward its OWN TYPE's median inflation ratio,+s_i = (r_med,type(i)/r~_i)**gamma, instead of the global median; the type+factor f_t = r_med_t/r_med_global is capped to [1/3, 3] (9 of 33 types bite,+f_t up to 3.8e47 uncapped -- the cap is load-bearing). Cross-type total+structure created by the per-type displacement survives (f_cell**gamma+q05/q50/q95 = 0.155/1.115/11.845). (b) PER-GENE NEWTON restoration+(VEC_NEWTON_RESTORE=1): after re-closure+PBC, per-gene linear column scales+c_g are solved by Newton on log c (5 iterations, f_max 3.6e-15) so the final+per-gene pseudobulk equals the global-re-closure path EXACTLY (dp L2+8.4e-15): dp, de_score/de_direction and the gates' verdict are preserved by+construction; the mechanism can only redistribute expression between cells.+The restoration target is computed on the SAME velocity (ext-mixed), so the+combined output's dp = node 41's dp. gamma re-scanned under the new+re-closure (ANALYSIS suggestion): 1.1/1.2/1.35/1.5/1.65/1.8 -> 57.44/57.75/+57.99/58.11/58.13/58.05; w re-scanned at gamma=1.5: 0.15/0.2/0.25/0.3/0.35+-> 57.83/57.92/58.11/58.21/58.17. SUBMITTED gamma=1.5, w=0.3, cap=3 (f+mode): A-half 58.212 vs parent-41 57.249 and node-40-repro (ext off) 57.331+-- both mechanisms contribute and stack (+0.88/+0.96, above the ~0.5 grid+noise; individual A/B steps: cap variants 57.91-58.01, capfg 57.97, beta_rec+0.08/0.3 flat 57.96/57.99). Metric evidence (A-half raws): de_score 0.3056 /+de_direction 0.4189 (ext structure, = node 41 level), mmd_u 0.044 (vs 0.0476+node 41 / 0.0485 node 35), variogram 0.034427, neighborhood_mmd 0.07258 (vs+0.0765 node 41 / 0.0809 node 35). PLAN guards met: mmd_u <= 0.0455 and+de_direction >= 0.40. Single-input view: fallback anchor verbatim (verified);+empty external/: w forced to 0, output = ext-off path bit-for-bit (verified);+disguised view (path, manifest key order/format, all times +1 day incl.+external windows): prediction bit-identical; seed 0/1 bit-identical.+19 vec-score queries; full grid in METHOD.md. Node 41 (T2HX-01, three-point velocity correction, SUBMITTED, w = 0.25): the PLAN's late-segment velocity cannot be formed on this board: on@@ -406,7 +440,8 @@ Experiment knobs (defaults = submitted configuration): VEC_VEL_REGRESS (0), VEC_REGRESS_MODE (type), VEC_REGRESS_W (1.0), VEC_REGRESS_MINGENES (50), VEC_SMOOTH_STEPS (2), VEC_SMOOTH_EPS (0.1), VEC_SMOOTH_K (15), VEC_ALPHA (1.0),-VEC_C (0.0 = pure multiplicative), VEC_K (0.5), VEC_GAMMA (1.35),+VEC_C (0.0 = pure multiplicative), VEC_K (0.5), VEC_GAMMA (1.5; node 43+re-scan, --ablate reverts to VEC_GAMMA_ABLATE=1.35), VEC_RECLOSE_GEO (1), VEC_BETA_REC (0.15; negative values sharpen the re-closure field, node 37 falsified), VEC_REC_STEPS (1), VEC_REC_K (15),@@ -451,7 +486,8 @@ from src.task2_spatial.view_io import ( ALPHA = float(os.environ.get("VEC_ALPHA", "1.0")) PSEUDOCOUNT = float(os.environ.get("VEC_C", "0.0")) SOFT_K = float(os.environ.get("VEC_K", "0.5"))-GAMMA = float(os.environ.get("VEC_GAMMA", "1.35"))+GAMMA = float(os.environ.get("VEC_GAMMA", "1.5")) # node 43: re-scanned under within-type re-closure + Newton restoration (1.1/1.2/1.35/1.5/1.65/1.8 -> 57.44/57.75/57.99/58.11/58.13/58.05 A-half; 1.5 submitted, interior plateau with 1.65)+GAMMA_ABLATE = float(os.environ.get("VEC_GAMMA_ABLATE", "1.35")) # inherited node-35 base value, restored under --ablate (PLAN off-control: ablated output bit-for-bit node 35) DOMAIN = os.environ.get("VEC_DOMAIN", "log") # "log" (node 24) or "lin" (node 25) CAPD = float(os.environ.get("VEC_CAPD", "0.0")) # hard log-domain displacement cap (0 = off) SOFTD = float(os.environ.get("VEC_SOFTD", "0.0")) # soft (tanh) displacement knee, log1p units (0 = off)@@ -513,7 +549,7 @@ SMOOTH_K = int(os.environ.get("VEC_SMOOTH_K", "15")) # sign (PLAN conservative variant): v <- |v|*sign(b) where signs disagree # shrink (replicate-reliability weighting): v <- v / (1 + w*|b|/median|b|) # w = 0 (default) -> bit-for-bit parent node 35/37.-EXT_W = float(os.environ.get("VEC_EXT_W", "0.25")) # node 41 submitted: w = 0.25 (A-half grid peak; plateau 0.15-0.35 all > parent; --ablate forces 0 = bit-for-bit parent)+EXT_W = float(os.environ.get("VEC_EXT_W", "0.3")) # node 43: w re-scanned jointly with gamma=1.5 under the within-type re-closure (w 0.15/0.2/0.25/0.3/0.35 -> 57.83/57.92/58.11/58.21/58.17 A-half; 0.3 submitted, interior optimum; --ablate forces 0 = bit-for-bit node 35) EXT_S = float(os.environ.get("VEC_EXT_S", "1.0")) # shrink weight inside mode=mixshrink EXT_MODE = os.environ.get("VEC_EXT_MODE", "mix") EXT_LEVEL = os.environ.get("VEC_EXT_LEVEL", "mult") # level matching of ext type means: mult | add | none@@ -530,6 +566,32 @@ EXT_TOL = float(os.environ.get("VEC_EXT_TOL", "0.25")) # days: an ext dataset c # falsified) or post-hoc amplitude axes (Pareto front, nodes 33-39). FRONT_BETA = float(os.environ.get("VEC_FRONT_BETA", "0.0")) # 0 = off FRONT_CLIP = float(os.environ.get("VEC_FRONT_CLIP", "3.0")) # z clip in std units+# Node 43 (PLAN: node40 x node41 mechanism combination). Node 40's decode-side+# mechanism, re-implemented on the node-41 base:+# (a) WITHIN-TYPE median re-closure (VEC_TYPE_REC=1): the geometric re-closure+# scale becomes s_i = (r_med,type(i) / r~_i)**gamma -- each cell is pulled+# toward its OWN TYPE's median inflation ratio instead of the global one,+# so the cross-type total-structure created by the per-type displacement+# (types with strong positive velocity stay brighter) is preserved instead+# of being flattened to one global level. The type factor+# f_t = r_med_t / r_med_global is capped to [1/CAP, CAP] (VEC_TYPEREC_CAP,+# "±3x封顶"); VEC_TYPEREC_CAPMODE selects whether the cap bites on f_t+# ("f") or on f_t**gamma ("fg").+# (b) PER-GENE NEWTON pseudobulk restoration (VEC_NEWTON_RESTORE=1): after the+# type re-closure (+PBC), each gene column is scaled in the LINEAR domain+# by c_g solved with Newton iterations on u=log c so that+# mean_i log1p(lin_ig * c_g) equals the parent-path (global re-closure)+# pseudobulk exactly. dp (hence de_score/de_direction) is preserved by+# construction; the mechanism can only REDISTRIBUTE expression between+# cells (mmd_u / neighborhood_mmd / variogram axes).+# Both off (--ablate, or VEC_TYPE_REC=0) -> bit-for-bit node 41. With ext also+# off -> bit-for-bit node 35.+TYPE_REC = os.environ.get("VEC_TYPE_REC", "1") not in ("0", "", "false", "False")+TYPEREC_CAP = float(os.environ.get("VEC_TYPEREC_CAP", "3.0")) # ±cap of the type factor (0 = off)+TYPEREC_CAPMODE = os.environ.get("VEC_TYPEREC_CAPMODE", "f") # "f": cap f_t; "fg": cap f_t**gamma+NEWTON_RESTORE = os.environ.get("VEC_NEWTON_RESTORE", "1") not in ("0", "", "false", "False")+NEWTON_TOL = float(os.environ.get("VEC_NEWTON_TOL", "1e-13"))+NEWTON_ITERS = int(os.environ.get("VEC_NEWTON_ITERS", "200")) DEBUG = bool(os.environ.get("VEC_DEBUG")) @@ -612,6 +674,40 @@ def spatial_smooth(Xa: np.ndarray, coords: np.ndarray, steps: int, eps: float, return Xs, info +def pb_restore_columns(Xp: np.ndarray, pb_target: np.ndarray,+ tol: float = 1e-13, iters: int = 200) -> tuple[np.ndarray, dict]:+ """Per-gene linear column scaling solved by Newton so log1p pb matches exactly.++ For each gene g find u_g with mean_i log1p(lin_ig * exp(u_g)) = pb_target_g.+ The map is smooth, strictly increasing and concave in u, so plain Newton+ converges globally (it undershoots once, then rises monotonically).+ Zeros stay exactly zero (linear scaling), sparsity pattern untouched.+ Columns that are all-zero keep u=0 (their target is 0 by construction:+ both paths share the substrate support).+ """+ lin = np.expm1(Xp)+ u = np.zeros(Xp.shape[1], dtype=np.float64)+ alive = pb_target > 0+ n_it = 0+ f_max = float("nan")+ for n_it in range(1, int(iters) + 1):+ M = lin * np.exp(u)+ f = np.log1p(M).mean(axis=0) - pb_target+ f = np.where(alive, f, 0.0)+ f_max = float(np.max(np.abs(f))) if f.size else 0.0+ if f_max < tol:+ break+ d = np.where(alive, (M / (1.0 + M)).mean(axis=0), 1.0)+ d = np.maximum(d, 1e-12)+ step = np.clip(f / d, -5.0, 5.0) # damped Newton, guards the first overshoot+ u = u - step+ Xr = np.log1p(lin * np.exp(u))+ info = {"iters": n_it, "f_max": f_max,+ "u_med": float(np.median(u)), "u_absmax": float(np.max(np.abs(u))),+ "n_scaled": int((np.abs(u) > 1e-9).sum())}+ return Xr, info++ def _ols_residual(v: np.ndarray, x: np.ndarray, coef: np.ndarray | None) -> tuple[np.ndarray, np.ndarray, float]: """OLS of v on [1, x]; returns (residual, coef, r2). coef=None -> fit.""" A = np.vstack([np.ones_like(x), x]).T@@ -912,6 +1008,11 @@ def main() -> None: alpha = ALPHA pseudocount = PSEUDOCOUNT gamma = GAMMA+ # PLAN off-control: --ablate must be bit-for-bit the node 35/37/39 baseline+ # (56.869 A-half). gamma=1.5 is part of THIS node's submission (re-scanned+ # under the new re-closure), so ablation reverts it to the inherited base.+ if args.ablate is not None:+ gamma = GAMMA_ABLATE # Node 37 off-control: --ablate <any> turns OFF THIS node's mechanism # (the spatial mixing of the log2 displacement field, VDIFF_W) and # NOTHING else. The node-35 base (beta_rec=0.15 + level-neutral@@ -927,6 +1028,12 @@ def main() -> None: # parent node 35/37. ext_w = EXT_W if args.ablate is None else 0.0 front_beta = FRONT_BETA if args.ablate is None else 0.0+ # Node 43 off-control: --ablate <any> turns off BOTH of this node's+ # mechanisms (external-replicate velocity correction AND within-type+ # median re-closure + Newton restoration), so the ablated run is+ # bit-for-bit node 35 (verified).+ type_rec = TYPE_REC and args.ablate is None+ newton_on = NEWTON_RESTORE reclose_geo = RECLOSE_GEO # If the submitted mechanism is the SHARPENED re-closure field # (BETA_REC < 0), --ablate reverts it to the raw per-cell field@@ -1170,6 +1277,7 @@ def main() -> None: if DEBUG: print("direction gate: spearman < threshold, fallback to copy_last", flush=True) else:+ pb_restore_target = None if gamma > 0: # Compositional re-closure: measured stages are per-cell # library-normalised (linear totals constant, e.g. CP10k);@@ -1236,6 +1344,59 @@ def main() -> None: sg = sg * (m_raw / max(m_sm, 1e-12)) if REC_BRIGHT != 1.0: sg = sg * REC_BRIGHT+ if type_rec:+ # Node 40 mechanism (a): within-type median re-closure.+ # Each cell is pulled toward its OWN TYPE's median of+ # the (smoothed, level-matched) inflation field r~+ # instead of the global median: s_i = sg_i * f_t**gamma+ # with f_t = r_med_t / r_med_global capped to+ # [1/CAP, CAP]. Cross-type total structure created by+ # the per-type displacement survives; the parent-path+ # (global re-closure) output is kept as the per-gene+ # pseudobulk restoration target for mechanism (b).+ lab_r = np.asarray(stage.labels[rows]).astype(str)+ r_flat = np.maximum(r_use.ravel(), 1e-12)+ r_med_g = float(np.median(r_use))+ f_cell = np.ones(r_flat.shape[0], dtype=np.float64)+ f_raw_list = []+ for t in sorted(set(lab_r.tolist())):+ m_t = lab_r == t+ f_t = float(np.median(r_flat[m_t])) / max(r_med_g, 1e-12)+ f_raw_list.append((t, f_t, int(m_t.sum())))+ if TYPEREC_CAPMODE == "fg":+ ft = f_t ** gamma+ if TYPEREC_CAP > 0:+ ft = float(np.clip(ft, 1.0 / TYPEREC_CAP, TYPEREC_CAP))+ else:+ if TYPEREC_CAP > 0:+ f_t = float(np.clip(f_t, 1.0 / TYPEREC_CAP, TYPEREC_CAP))+ ft = f_t ** gamma+ f_cell[m_t] = ft+ Xp_par = np.log1p(lin * sg)+ if PBC > 0:+ lin_p = np.expm1(Xp_par)+ tot_p = lin_p.sum(axis=1, keepdims=True)+ base_p = float(np.median(np.expm1(Xa).sum(axis=1)))+ sc_p = np.minimum(1.0, (PBC * base_p) / np.maximum(tot_p, 1e-12))+ Xp_par = np.log1p(lin_p * sc_p)+ pb_restore_target = Xp_par.mean(axis=0)+ sg = sg * f_cell[:, None]+ if DEBUG:+ n_cap = sum(1 for _, f_t, _ in f_raw_list+ if TYPEREC_CAP > 0 and+ (f_t > TYPEREC_CAP or f_t < 1.0 / TYPEREC_CAP+ if TYPEREC_CAPMODE != "fg" else+ (f_t ** gamma > TYPEREC_CAP or+ f_t ** gamma < 1.0 / TYPEREC_CAP)))+ fr = np.asarray([f for _, f, _ in f_raw_list])+ print(f"type_rec: cap={TYPEREC_CAP} mode={TYPEREC_CAPMODE} "+ f"n_types={len(f_raw_list)} n_capped={n_cap} "+ f"f_t min/med/max={fr.min():.3f}/{np.median(fr):.3f}/{fr.max():.3f} "+ f"f_cell^g q05/q50/q95={np.quantile(f_cell, 0.05) ** gamma:.3f}/"+ f"{np.quantile(f_cell, 0.5) ** gamma:.3f}/"+ f"{np.quantile(f_cell, 0.95) ** gamma:.3f}", flush=True)+ for t, f_t, n_t in f_raw_list:+ print(f" f_type {t}: n={n_t} f_t={f_t:.4f}", flush=True) Xp = np.log1p(lin * sg) if DEBUG: lraw = np.log(np.maximum(r, 1e-12)).ravel()@@ -1293,6 +1454,23 @@ def main() -> None: print(f"pbc: cap={PBC} clamped_frac={float((sc < 1).mean()):.4f} " f"post_tot med={float(np.median(np.expm1(Xp).sum(axis=1)) / base):.3f}", flush=True)+ if pb_restore_target is not None and newton_on:+ # Node 40 mechanism (b): per-gene Newton column scaling.+ # Restore the parent-path (global re-closure) per-gene+ # pseudobulk EXACTLY: dp, hence de_score/de_direction and+ # the DE gates' verdict, are preserved by construction;+ # the within-type re-closure can only redistribute+ # expression between cells (mmd_u / variogram / nb_mmd).+ dp_pre = Xp.mean(axis=0)+ Xp, ninfo = pb_restore_columns(Xp, pb_restore_target,+ NEWTON_TOL, NEWTON_ITERS)+ if DEBUG:+ dp_post = Xp.mean(axis=0)+ d_l2 = float(np.linalg.norm(dp_post - pb_restore_target))+ print(f"newton_restore: iters={ninfo['iters']} f_max={ninfo['f_max']:.2e} "+ f"dp_L2_post={d_l2:.3e} dp_L2_pre={float(np.linalg.norm(dp_pre - pb_restore_target)):.3e} "+ f"u_med={ninfo['u_med']:+.4f} u_absmax={ninfo['u_absmax']:.4f} "+ f"n_genes_scaled={ninfo['n_scaled']}", flush=True) if POST_EPS > 0.0 and POST_STEPS > 0 and post_on: # Node 35 submitted mechanism (PLAN alternative after the # re-closure-field smoothing was falsified): a post-hoc
调研来源?调研员查到并用到的知识条目和文献检索结果(只列标题和编号)。
用到的知识库条目
| 编号 | 标题 | 出处 |
|---|---|---|
| k007 | Interval staging and held-out-window filtering of external data | notes/official/来件/virtualembryo.ai/rules.md |
| k024 | World-model evaluation dimensions for state-transition predictors | notes/competition/07_biomedical_world_models.md |
| k008 | Navigo: iterative rectified flow matching on snapshot time series | 10.64898/2026.06.18.733286 |
分析结果?分析员写的 ANALYSIS.json:改了什么、各组分数怎么变、假设是否成立、经验和下一步建议。
| 改了什么 | 在节点41基座(外部Qiu复制b_t混入速度,w 0.25→0.3)上重实现节点40的解码机制:几何再闭合参考电平改为型内中位(型因子±3×封顶)+ 逐基因Newton线性列缩放把伪批量精确复原到全局再闭合路径(dp逐位保持);γ在新再闭合下重扫1.35→1.5。坐标/行序/细胞数/组成冻结。 |
|---|---|
| 各组分数的变化 | cell_state:变好:59.15→60.46(+1.31);proxy分解为mmd_u 0.04759→0.04302(skill 0.551→0.575,得分+0.31)、variogram 0.034→0.03379(+0.02) expression_change:噪声内:61.56→61.58(+0.02);proxy上de_score 0.3056不变、de_direction 0.4226→0.4236(得分+0.01),符合Newton复原保dp的构造预期 local_spatial:变好:59.58→61.93(+2.35);proxy分解为neighborhood_mmd 0.07647→0.06931(skill 0.596→0.619,得分+0.59) shape_scale:不变:50.00→50.00,三项raw逐位相同(坐标冻结,均在地板) |
| family_id | T2HX-01 |
| 假设是否成立 | 是 |
| 经验 |
|
| mechanism_active | 是 |
| 下一步建议 |
|
对话摘要?每个角色和大模型对话的统计:轮数、工具调用、用时、token 数和最后的回答摘录;原始记录只给路径。
只给统计和最后回答的摘录;完整对话请到原始记录位置里列出的文件看。
分析员
| 角色?调研员写计划、工程师改代码、分析员解读分数、审查员检查作弊。 | 分析员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数?大模型一共回复了几轮(每轮可以调用多个工具)。 | 3 |
| 工具调用?大模型调用读文件、执行命令等工具的次数,按工具名统计。 | 共 2 次:bash 1、write 1 |
| 用时 | 不到 1 分 |
| token 数?输入 / 输出(含思考)的 token 数,来自接口返回的用量。 | 输入 22,205 · 输出 1,181 · 思考 521 |
| 任务(第一行) | 分析节点 n43 的打分结果,写 ANALYSIS.json |
| 最后的回答(摘录) | ANALYSIS.json written |
| 原始记录位置?完整对话记录在 Spark 上的文件路径;看板不复制原始内容。 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/analyst.jsonl 7 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/analyst.stderr |
工程师
| 角色 | 工程师 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 59 |
| 工具调用 | 共 64 次:bash 47、edit 13、read 2、write 2 |
| 用时 | 33 分 |
| token 数 | 输入 143,902 · 输出 22,528 · 思考 24,541 |
| 任务(第一行) | 按计划修改程序:型内中位再闭合+伪批量精确复原叠加外部复制方向修正(节点40×41机制组合) |
| 最后的回答(摘录) | 完成。节点 43 提交就绪。 **做了什么**:按 PLAN 把节点 40 的解码机制(型内中位再闭合,型因子 ±3× 封顶 + 逐基因 Newton 列缩放把伪批量精确复原到全局再闭合路径,dp L2 差 8.4e-15)在父节点 41 基座上重实现,与 41 的外部复制速度修正(b_t 混入)组合;γ 在新再闭合下重扫 1.35→1.5,w 联扫 0.25→0.3。坐标/行序/细胞数/组成冻结。 **查分结果**(19/20 次,A 半 proxy_noscale):提交配置 **58.21**(父 41 = 57.25,节点 40 复现 = 57.33,节点 35 = 56.87);mmd_u 0.0440、nb_mmd 0.07258、de_score 0.3056、de_direction 0.4189——PLAN 守卫(mmd_u≤0.0455、de_dir≥0.40)均满足,两机制叠加无冲突。`--ablate` 逐位回退节点 35;伪装视图/seed 0-1/单输入/空 external 退路全部逐位验证通过;vec-check OK,CPU 2.4s。 **下一步最值得试**:γ1.5–1.65 平台上 nb_mmd 仍有单调响应(w=0.35 时 0.07203),可试 VEC_FRONT_BETA 小幅(0.1–0.2)型内前沿解码针对 local_spatial;或把型内再闭合的中位换成型内分位数(q40/q60)扫形状-状态前沿。 |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/engineer.jsonl 485 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/engineer.stderr |
调研员
| 角色 | 调研员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 1 |
| 工具调用 | 共 0 次:— |
| 用时 | 3 分 |
| token 数 | 输入 23,088 · 输出 1,077 · 思考 8,192 |
| 任务(第一行) | 为节点 n43(改进,父节点 n41)写改进计划 PLAN.json |
| 最后的回答(摘录) | ```json
{"name": "型内中位再闭合+伪批量精确复原叠加外部复制方向修正(节点40×41机制组合)",
"motivation": "父41的b修正改善de_direction(0.3874→0.4226)与nb_mmd(0.07784→0.07647),但mmd_u持平(0.04759);节点40用型内中位再闭合+逐基因伪批量精确复原把mmd_u降到0.04529、nb_mmd降到0.07304(组+1.54,超噪声),同时dp逐位保持父值。两个机制作用位置不同(40在解码后重分配表达,41在速度估计前修正方向),且40的dp复原保证DE不丢。父41的ANALYSIS也建议重扫γ/β_rec,但节点40的再闭合改进是已验证的更优路径,且与41的b修正正交。",
"approach": "以节点40代码为基座(型内中位再闭合±3×封顶+逐基因Newton列缩放复原,dp逐位=父35),把节点41的外部复制修正(panel-CP10k重归一、运行时Pearson型匹配corr≥0.30、b_t以w=0.25混入速度)移植到速度估计阶段(软阈值前)。步骤:1) 复现节点40管线(含ext钩子关闭)确认榜分≈57.59(1次查分);2) 打开EXT_W=0.25(其余参数同节点41),查分1次看mmd_u是否≤0.0455且de_direction≥0.40;3) 若mmd_u回升>0.047,说明b改变了再闭合输入分布,试w=0.15/0.35各1次;4) 若de_direction<0.3839(守卫),降w或关ext(回退节点40)。全程坐标/行序/细胞数/组成冻结。单输入阶段退路:若视图无prev阶段(速度无定义),全部速度=0、ext不可用→输出=锚原样(地板)。vec-score筛选:先跑离线de_direction与mmd_u两个raw,再查全分。",
"expected_groups": ["cell_state", "local_spatial", "expression_change"],
"risks": "1) b修正改变速度分布后,型内再闭合的参考中位与复原目标都变,可能破坏节点40的单调收益——第2步查分即可发现(mmd_u若>0.0475则机制冲突);2) 两个机制叠加后总分可能仍在噪声内(各+0.4),需rank3确认;3) 外部样本匹配在伪装视图下可能改变(路径打乱但数据同),需验证输出一致。",
"family_id": "T2HX-01",
"mechanism": "外部同时刻复制的按型相对差b修正速度方向(节点41),叠加型内中位再闭合与逐基因伪批量精确复原(节点40),两者分别在速度估计与解码后作用。",
"vs_constant_shift": "b_t是逐基因、按型的结构向量(外部独立复制与官方锚的相对差),不是每型一个常数标量;节点41已用常数-b对照(mixconst 57.04 < mix 57.25-57.33)证明收益来自逐基因结构。型内中位再闭合按各型自身中位而非全局常数闭合,保留型间总量结构。",
"mechanism_evidence": "1) mmd_u raw应≤0.0455(节点40水平)且de_direction≥0.40(节点41水平)——若两者同时达到说明两机制都生效;2) 型内再闭合前后每细胞表达总量分布应显示型间差异保留;3) dp与父35逐位一致(复原步骤的构造保证),可用L2差验证;4) ext关闭(w=0)时输出应逐位回退节点40。",
"mechanism_off_control": "--ablate设EXT_W=0(关闭外部修正)且型内再闭合退回全局中位(或λ=0),输出应逐位=节点35/37/39基线(56.869)。分步对照:仅关ext→应≈节点40(57.59);仅关型内再闭合(回全局γ=1.35)→应≈节点41(57.57)。",
"sources": []}
``` |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/researcher.jsonl 4 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/researcher.stderr |
审查员
| 角色 | 审查员 alibaba-token-plan-cn/qwen3.8-max |
|---|---|
| 调用次数 | 1 次 |
| 轮数 | 27 |
| 工具调用 | 共 37 次:bash 31、read 4、grep 1、write 1 |
| 用时 | 6 分 |
| token 数 | 输入 74,544 · 输出 3,617 · 思考 4,491 |
| 任务(第一行) | 审查节点 n43 的程序是否越界读取、写死目标、钻评分器漏洞 |
| 最后的回答(摘录) | REVIEW.json written |
| 原始记录位置 | /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/reviewer.jsonl 370 KB /home/spark-longxinyang/vec/runs/formal/20261003-172000-search-t2-heart-extrap-chain-12h/nodes/43/reviewer.stderr |