{
 "task_slug": "msa-2piece-affine-gap",
 "question": "在 progressive 多序列比对中,2-piece affine gap cost 相对 1-piece affine 的精度增益,如何随序列演化中长 indel 的占比变化?增益能否穿过 progressive 贪心传播存活下来,代价是多少?",
 "falsifiable_prediction": "预测增益强依赖长 indel 占比 pi_long:pi_long=0 时 2-piece 的 SP 增益 <= 0.5 个百分点且 3 个种子不同号;pi_long=0.20 时 SP 增益 >= 2 个百分点且 3 个种子全部同号。推翻条件:(1) pi_long=0.20 时增益 < 1 个百分点或 3 个种子符号不一致;(2) pi_long=0 时 2-piece 显著更好(>1 个百分点),说明增益来自额外调参自由度而非 gap 模型。",
 "dataset": "程序生成(自带 C++ 模拟器 simulate.cpp,无外部依赖):沿随机二叉树演化 8 条核酸序列,根序列长 800 bp,分支上施加替换(K2P,transition/transversion=2)与 indel 事件;indel 长度为混合分布——以概率 (1-pi_long) 取几何分布(均值 2),以概率 pi_long 取几何分布(均值 30)。输出两份 FASTA:未比对序列(输入)+ 真实比对(ground truth)。dev 集用种子 100/101/102,test 集用种子 0/1/2,每种子 10 个家族。",
 "arms": [
  {
   "name": "baseline-affine-1p",
   "is_baseline": true,
   "what": "同一份 C++ progressive MSA 程序:k-mer 距离 + UPGMA guide tree,profile-profile Gotoh 仿射 DP(3 层 M/I/D),gap 代价 g(l)=O+l*E。在 dev 集上做 20 次网格搜索(O in {4,6,8,10,12} x E in {0.5,1,2,3})选最优 (O,E),固定后在 test 集评测。"
  },
  {
   "name": "proposed-affine-2p",
   "is_baseline": false,
   "what": "同一程序、同一 guide tree、同一 profile 打分函数,仅把 gap 代价换成 g(l)=min{O1+l*E1, O2+l*E2},DP 扩到 5 层(M/I1/D1/I2/D2,Gotoh 1990 的 L=2 情形)。(O1,E1) 固定为 baseline 在 dev 集选出的最优值,在 dev 集上对 (O2,E2) 做 20 次网格搜索(O2 in {12,16,20,24,28} x E2 in {0.05,0.1,0.2,0.4}),两臂调参评估次数严格相同。注意 O2=O1,E2=E1 时退化为 baseline,即 baseline 是本臂的特例。"
  }
 ],
 "metrics": [
  {
   "name": "sp_score",
   "higher_is_better": true,
   "what": "与模拟真实比对相比,正确配对的残基对数 / 真实比对中的残基对总数"
  },
  {
   "name": "tc_score",
   "higher_is_better": true,
   "what": "与真实比对完全一致的列数 / 真实比对的列数"
  },
  {
   "name": "sp_near_long_indel",
   "higher_is_better": true,
   "what": "机制指标:仅统计真实比对中长度 >= 10 的 gap 段边界前后各 5 列范围内的 SP 分数"
  },
  {
   "name": "runtime_ms",
   "higher_is_better": false,
   "what": "单个家族完整 MSA 的墙钟毫秒数,不含文件 IO"
  },
  {
   "name": "peak_dp_bytes",
   "higher_is_better": false,
   "what": "DP 矩阵峰值分配字节数(程序内部计数,非 RSS)"
  }
 ],
 "sweep": {
  "pi_long": [
   "0.00",
   "0.05",
   "0.20"
  ]
 },
 "seeds": [
  0,
  1,
  2
 ],
 "budget_minutes": 45,
 "cpu_feasible": true,
 "out_of_scope": [
  "不下载/评测真实 benchmark(BAliBASE / OXBench / PREFAB4 / SABRE)——官方分发走老 FTP,可用性不稳定,不进本轮时间预算",
  "不与 MAFFT / MUSCLE / ClustalW / FAMSA2 等外部工具横向比较(本轮只做同代码受控对照)",
  "不做蛋白序列与 BLOSUM62 / profile PSSM 打分,只做核酸 match/mismatch",
  "不做 iterative refinement,只做纯 progressive(否则无法区分增益来源)",
  "不做 SIMD / 多线程优化,不测超过 50 条序列或超过 5 kb 的规模",
  "不做 gap 参数的自动估计或学习(缺口 C)",
  "不做 profile 大小自适应的 gap 参数(缺口 B)"
 ]
}