Skip to content

feat(ProteinDesign): add FixedBackboneDesign task#83

Open
wrh-human wants to merge 5 commits into
EinsiaLab:mainfrom
wrh-human:feat/ProteinDesign/FixedBackboneDesign
Open

feat(ProteinDesign): add FixedBackboneDesign task#83
wrh-human wants to merge 5 commits into
EinsiaLab:mainfrom
wrh-human:feat/ProteinDesign/FixedBackboneDesign

Conversation

@wrh-human

Copy link
Copy Markdown
Collaborator

Background

Add FixedBackboneDesign task based on Agent Rosetta paper (arXiv:2603.15952, ICML 2026).

Files

  • benchmarks/ProteinDesign/ - New domain
  • benchmarks/ProteinDesign/FixedBackboneDesign/ - Task implementation
  • frontier_eval/conf/task/protein_design_fixed_backbone.yaml - Hydra config

c7w and others added 2 commits June 30, 2026 20:37
- Medal Score: peer-relative gold/silver/bronze podium (normalized to [0,1]),
  reported on v1 (47 tasks) and the v1-lite subset (10 tasks). READMEs now lead
  with Medal Score; average rank stays on the website leaderboard.
- leaderboard/: ship the frozen podium baselines (medal_podium.csv), published
  leaderboard (medal_leaderboard.csv), raw score table (exp1_models_raw.csv),
  a submission scorer (score_submission.py), and an example submission.
  Un-ignore leaderboard/*.csv.
- v1-lite: add frontier_eval/conf/batch/v1_lite.yaml (10-task subset across all
  five categories, distinct families, gradual-improvement tasks).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🤖 AI Code Review (gemini-3-flash-preview)

🇬🇧 English Analysis

1. Executive Summary

  • Core Purpose: This PR introduces a new benchmark task titled FixedBackboneDesign under the ProteinDesign category. It aims to evaluate an agent's ability to design optimal amino acid sequences for a fixed protein backbone using the Rosetta energy function (ref2015).
  • Modified File Structure & Modifications:
    • benchmarks/ProteinDesign/FixedBackboneDesign/README.md & README_zh-CN.md: Added bilingual documentation covering quick start, environment setup (Docker), and unified benchmark IDs.
    • benchmarks/ProteinDesign/FixedBackboneDesign/Task.md & Task_zh-CN.md: Defined the task overview, input/output specifications, scoring metrics (PyRosetta energy terms), and constraints for the agent.
    • benchmarks/ProteinDesign/FixedBackboneDesign/data/raw_task.json: Created a configuration file specifying the target PDB (1ubq), design positions, and native sequence.
    • benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/: Added 9 metadata files (e.g., agent_files.txt, eval_command.txt, constraints.txt) required for integration with the frontier_eval framework.
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/constants.json: Defined Rosetta energy function weights and descriptions.
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/1ubq.pdb: Included the standard PDB structure file for Ubiquitin.

2. AI Content Analysis

  • Estimated AI Component: 65%
  • Reasoning & Evidence:
    • Hallucinated Reference: The documentation cites "arXiv:2603.15952 (ICML 2026)". As of current real-world time, this date and ID are in the future, which is a classic sign of AI hallucination or the use of a synthetic placeholder.
    • Boilerplate Structure: The frontier_eval metadata files and the README structure follow a highly standardized, repetitive pattern typical of LLM-generated scaffolding.
    • Generic Descriptions: The energy term descriptions in constants.json are textbook definitions likely pulled from training data rather than specific project-specific documentation.

3. Engineering & Economic Assessment

  • Engineering Reality Check: The task addresses a legitimate bioinformatics problem (Fixed-Backbone Design). It uses industry-standard tools (PyRosetta, Docker). However, the "demo" nature (designing only 8 positions) makes it a "benchmark-grade" problem rather than a full production-grade design suite. It correctly identifies edge cases like maintaining backbone coordinates and restricting to 20 standard amino acids.
  • Economic Value: Medium. It provides a standardized way to evaluate AI agents in the "AI for Science" domain. By automating the evaluation of protein design, it reduces the manual overhead for researchers testing new optimization algorithms.

4. Quality Assurance

  • Verification & Testing:
    • frontier_eval Integration: Yes.
    • task_name: ProteinDesign/FixedBackboneDesign (Unified ID) / fixed_backbone_design_demo (Internal ID).
    • Execution & Dependencies: The README clearly documents the docker pull command for the Rosetta environment and provides a 3-step local execution guide.
  • Documentation Quality: High. The documentation is bilingual and well-organized. However, the redundant information between README.md and Task.md is slightly excessive, though helpful for agent-specific prompting.
  • Organizational Structure: Logical and modular. Separating references, data, and verification follows best practices for scientific software.

5. Security & Privacy Check

  • Sensitive Files: Clean. No .env, API keys, or IDE-specific files were detected.
  • Absolute Paths: None detected. All paths in raw_task.json and the READMEs are relative (e.g., references/petrobind/1ubq.pdb).

🇨🇳 中文分析

1. 摘要

  • 核心目的: 此 PR 在 ProteinDesign 类别下引入了一个名为 FixedBackboneDesign 的新基准测试任务。其目的是评估智能体在固定蛋白质骨架上,利用 Rosetta 能量函数(ref2015)设计最优氨基酸序列的能力。
  • 修改的文件结构与变更摘要:
    • benchmarks/ProteinDesign/FixedBackboneDesign/README.md & README_zh-CN.md: 添加了双语文档,涵盖快速入门、环境配置(Docker)和统一基准 ID。
    • benchmarks/ProteinDesign/FixedBackboneDesign/Task.md & Task_zh-CN.md: 定义了任务概述、输入/输出规范、评分指标(PyRosetta 能量项)以及智能体的约束条件。
    • benchmarks/ProteinDesign/FixedBackboneDesign/data/raw_task.json: 创建了配置文件,指定目标 PDB (1ubq)、设计位点和原生序列。
    • benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/: 添加了 9 个元数据文件(如 agent_files.txt, eval_command.txt, constraints.txt),用于集成到 frontier_eval 框架。
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/constants.json: 定义了 Rosetta 能量函数的权重和描述。
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/1ubq.pdb: 包含了泛素(Ubiquitin)的标准 PDB 结构文件。

2. AI 成分分析

  • 预估 AI 含量: 65%
  • 判断依据与证据:
    • 虚假引用: 文档引用了 "arXiv:2603.15952 (ICML 2026)"。在现实时间线中,这个日期和 ID 属于未来,是典型的 AI 幻觉或使用了合成占位符。
    • 模板化结构: frontier_eval 的元数据文件和 README 结构遵循高度标准化的重复模式,这是典型的 LLM 生成脚手架特征。
    • 通用描述: constants.json 中的能量项描述是教科书式的定义,更像是从训练数据中提取的,而非特定项目的定制文档。

3. 工程与经济评估

  • 工程现实检验: 该任务解决了合法的生物信息学问题(固定骨架设计)。它使用了行业标准工具(PyRosetta, Docker)。然而,其“演示”性质(仅设计 8 个位点)使其更偏向于“基准测试级”问题,而非完整的生产级设计套件。它正确识别了边缘情况,如保持骨架坐标不变和限制使用 20 种标准氨基酸。
  • 经济价值: 中等。它为“AI for Science”领域的智能体评估提供了标准化方法。通过自动化蛋白质设计评估,减少了研究人员测试新优化算法的人工开销。

4. 质量保证

  • 验证与测试:
    • frontier_eval 集成: 是。
    • task_name: ProteinDesign/FixedBackboneDesign (统一 ID) / fixed_backbone_design_demo (内部 ID)。
    • 运行与依赖: README 清晰记录了 Rosetta 环境的 docker pull 命令,并提供了本地运行的三步指南。
  • 文档质量: 高。文档采用双语编写,组织良好。尽管 README.mdTask.md 之间的信息存在冗余,但这对于智能体提示词(Prompting)是有帮助的。
  • 组织结构: 逻辑清晰且模块化。将 referencesdataverification 分开符合科学软件开发的最佳实践。

5. 安全与隐私检查

  • 敏感文件: 未发现异常。未检测到 .env、API 密钥或 IDE 配置文件。
  • 绝对路径: 未检测到。raw_task.json 和 README 中的所有路径均为相对路径(例如 references/petrobind/1ubq.pdb)。

jdp22
jdp22 previously requested changes Jul 13, 2026

@jdp22 jdp22 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review withdrawn.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ProteinDesign benchmark domain with a FixedBackboneDesign task (PyRosetta/Rosetta Docker-based evaluation), and introduces v1-lite plus a frozen Medal Score leaderboard artifact + local scoring script.

Changes:

  • Add ProteinDesign/FixedBackboneDesign benchmark (task docs, baseline candidate, evaluator, reference inputs, frontier_eval wiring) and a unified Hydra task config.
  • Introduce v1-lite 10-task batch matrix for faster runs.
  • Add Medal Score leaderboard artifacts (leaderboard/*.csv), documentation, and a submission scoring script; update root READMEs accordingly.

Reviewed changes

Copilot reviewed 33 out of 34 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
README.md Add News section, v1-lite quick subset docs, and Medal Score leaderboard presentation
README_zh-CN.md Chinese README updates mirroring News/Medal Score leaderboard updates
leaderboard/submission_example.csv Example submission CSV for Medal Score scoring
leaderboard/score_submission.py Script to score a submission CSV against frozen Medal podium
leaderboard/README.md Documentation for Medal Score artifacts and how to score your model
leaderboard/medal_podium.csv Frozen per-task gold/silver/bronze thresholds
leaderboard/medal_leaderboard.csv Frozen per-model Medal Score table (v1 and v1-lite)
leaderboard/exp1_models_raw.csv Released per-model raw best-feasible scores used to derive podium
frontier_eval/conf/task/protein_design_fixed_backbone.yaml Hydra config to run ProteinDesign/FixedBackboneDesign under unified task with Docker
frontier_eval/conf/batch/v1_lite.yaml New v1-lite batch matrix configuration
benchmarks/ProteinDesign/README.md New ProteinDesign domain overview + setup/run instructions
benchmarks/ProteinDesign/README_zh-CN.md Chinese version of ProteinDesign domain overview
benchmarks/ProteinDesign/FixedBackboneDesign/verification/requirements.txt PyRosetta dependency note and version constraint
benchmarks/ProteinDesign/FixedBackboneDesign/verification/evaluator.py PyRosetta evaluator implementing prepare/evaluate pipeline and metrics emission
benchmarks/ProteinDesign/FixedBackboneDesign/verification/docker/Dockerfile Dockerfile based on Rosetta image with PyRosetta import/init check
benchmarks/ProteinDesign/FixedBackboneDesign/Task.md Task spec (inputs/outputs/scoring/constraints)
benchmarks/ProteinDesign/FixedBackboneDesign/Task_zh-CN.md Chinese task spec
benchmarks/ProteinDesign/FixedBackboneDesign/scripts/init.py Baseline candidate (EVOLVE-BLOCK) for fixed-backbone sequence design
benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/2ci2.pdb Reference PDB input
benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/1ubq.pdb Reference PDB input (used by raw_task.json)
benchmarks/ProteinDesign/FixedBackboneDesign/references/constants.json Reference constants for ref2015 score terms
benchmarks/ProteinDesign/FixedBackboneDesign/README.md Quick-start instructions for task directory
benchmarks/ProteinDesign/FixedBackboneDesign/README_zh-CN.md Chinese quick-start + repository structure guide
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/readonly_files.txt Mark readonly directories for the task
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/initial_program.txt Initial editable program path
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/eval_cwd.txt Evaluation working directory
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/eval_command.txt Evaluation command template
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/copy_files.txt Files to copy into eval sandbox
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/constraints.txt Runtime/agent constraints (editable file + rules)
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/candidate_destination.txt Candidate destination path
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/artifact_files.txt Artifacts to collect from runs
benchmarks/ProteinDesign/FixedBackboneDesign/frontier_eval/agent_files.txt Files exposed to the agent
benchmarks/ProteinDesign/FixedBackboneDesign/data/raw_task.json Task input definition (PDB + design positions + metadata)
.gitignore Allow committing leaderboard CSV artifacts and v1_lite batch config

Comment on lines +105 to +109
# Run Packer
packer = PackRotamersMover()
packer.score_function(scorefxn)
packer.task_factory(tf)
packer.apply(pose)
Comment on lines +151 to +163
metrics: dict[str, Any] = {"valid": True}

# Total energies
metrics["native_energy"] = round(native_energy, 6)
metrics["total_energy"] = round(candidate_energy, 6)
metrics["improvement"] = round(native_energy - candidate_energy, 6)

# Combined score: normalized improvement
if abs(native_energy) > 1e-6:
metrics["combined_score"] = round((native_energy - candidate_energy) / abs(native_energy), 6)
else:
metrics["combined_score"] = 0.0

@@ -0,0 +1 @@
{python} {benchmark}/verification/evaluator.py {candidate}
Comment on lines +57 to +62
with open(path, encoding="utf-8-sig") as f:
reader = csv.reader(f)
first = next(reader)
if not (first[1].strip().lower() in ("score", "best", "value")):
f.seek(0) # no recognizable header -> treat all rows as data
reader = csv.reader(f)
Comment thread README.md
Comment on lines +17 to +20
## News

- **2026-06-30** — **New scoring metric: the Medal Score (gold/silver/bronze).** Alongside average rank, we now release a peer-relative *Medal Score* (normalized to `[0,1]`). On each task the top-3 best-feasible scores in the v1 snapshot are frozen as gold/silver/bronze baselines; a model earns 1.00 / 0.67 / 0.33 for reaching each, averaged over the task set, and is reported on both v1 (47 tasks) and v1-lite (10 tasks). It rewards only reaching each task's frontier and ignores negligible long-tail margins, making cross-task aggregation fairer. Per-task podium values and the leaderboard live in [`leaderboard/`](leaderboard/README.md).
- **2026-06-30** — **`v1-lite` released.** A 10-task representative subset of `v1` covering all five categories with distinct benchmark families, selected for tasks whose scores climb gradually under budget (not one-shot-saturated or all-or-nothing). Run it with `frontier_eval/conf/batch/v1_lite.yaml`.
@jdp22
jdp22 dismissed their stale review July 13, 2026 09:58

Review published without prior approval; withdrawn by reviewer.

@jdp22 jdp22 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢贡献 FixedBackboneDesign。这个任务方向很有价值,双语文档、unified task 元数据和 EVOLVE-BLOCK 的整体结构也比较完整。

在合并前,建议先修复以下三个与评测正确性直接相关的问题:

1. Verifier 需要检查任务约束

当前 evaluator 主要比较 native 和 candidate 的 Rosetta 能量,但没有验证 candidate 是否仍然是同一个固定骨架。

建议在评分前至少检查:

  • candidate 与 reference 的残基数量一致;
  • 只有 design_positions 的氨基酸类型允许变化;
  • 非设计位置的氨基酸类型保持不变;
  • N、CA、C、O 等骨架原子的坐标保持不变;
  • candidate 只包含允许的标准氨基酸。

检查失败时应返回 valid=false,避免其他 PDB 也能被当作有效结果评分。

2. Candidate 不应能够修改 reference

当前流程把 prepared.pdb 的路径传给 candidate,candidate 运行结束后 evaluator 又从同一路径读取 native。理论上 candidate 可以覆盖这个文件,从而影响基准能量。

建议在运行 candidate 后从只读原始数据重新构建 reference,或者校验 reference 在运行前后的 hash,确保它没有被修改。

3. Baseline 的 PackerTask 配置没有传给 mover

init.py 中修改了局部 task,对非设计位置调用了 prevent_repacking();但 PackRotamersMover 最终使用的是原始 TaskFactory,因此这些限制可能没有实际生效。

建议把配置后的 task 直接传给 mover,或者将对应的 TaskOperations 加入 TaskFactory,并确认输出只改变允许的设计位置。

建议补充的简单验证

修复后,希望提供以下结果:

python verification/evaluator.py scripts/init.py
python -m frontier_eval \
  task=unified \
  task.benchmark=ProteinDesign/FixedBackboneDesign \
  task.runtime.isolation_mode=docker \
  task.runtime.docker_image=rosettacommons/rosetta:serial \
  algorithm=openevolve \
  algorithm.iterations=0

另外建议增加两个轻量测试:

  • 修改一个非设计位置时,evaluator 应拒绝;
  • 修改一个 backbone 坐标时,evaluator 应拒绝。

非阻塞建议

以下内容不会阻止本次合并,但后续可以顺手完善:

  • 设置固定的 Rosetta 随机种子,提高评分稳定性;
  • 检查 constants.json 中的 ref2015 权重;
  • 如果 2ci2.pdb 暂时没有用途,可以删除或补充说明;
  • 文档可说明这是受 Agent Rosetta 启发的轻量化任务。

整体方向没有问题。核心是确保 evaluator 真正执行“固定骨架、仅修改指定位置”的任务约束;完成上述三项修复后即可继续审核。

…protection, fix PackerTask config, set random seed, fix constants weights
@github-actions

Copy link
Copy Markdown

🤖 AI Code Review (gemini-3-flash-preview)

🇬🇧 English Analysis

1. Executive Summary

  • Core Purpose: This PR introduces a new evaluation metric ("Medal Score"), a lightweight benchmark subset (v1-lite), and a new engineering task focused on bioinformatics (ProteinDesign/FixedBackboneDesign). It also updates the project leaderboard to reflect these changes.
  • Modified File Structure & Modifications:
    • .gitignore: Updated to allow tracking of leaderboard CSVs and the new v1_lite.yaml configuration.
    • README.md & README_zh-CN.md: Added "News" section, documented the "Medal Score" logic, introduced the v1-lite subset, and updated the leaderboard table with new rankings and medal counts.
    • benchmarks/ProteinDesign/FixedBackboneDesign/: [New Directory] Contains the complete implementation of a new task, including task descriptions (Task.md), configuration (data/raw_task.json), evaluation logic (verification/evaluator.py), and frontier_eval metadata.
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/1ubq.pdb: Added a standard protein structure file for the task.

2. AI Content Analysis

  • Estimated AI Component: 35%
  • Reasoning & Evidence:
    • The documentation files (Task.md, README.md within the benchmark folder) and the frontier_eval metadata files (e.g., constraints.txt, agent_files.txt) follow a highly structured, boilerplate pattern consistent with AI-assisted templating.
    • The "News" updates and the specific logic for the "Medal Score" appear to be human-authored or heavily edited to fit the project's specific context.
    • The raw_task.json and constants.json use standard JSON formatting that is typical of AI generation for configuration tasks.

3. Engineering & Economic Assessment

  • Engineering Reality Check: This PR addresses high-level engineering problems. The "Medal Score" is a sophisticated way to handle the "long-tail" problem in optimization benchmarks, where tiny, statistically insignificant improvements shouldn't drastically change rankings. The new FixedBackboneDesign task uses PyRosetta, a industry-standard tool for computational protein design, making it a realistic production-grade engineering challenge rather than a toy example.
  • Economic Value: High.
    • The v1-lite subset significantly reduces the computational cost and time required for model ablation studies.
    • The "Medal Score" improves the robustness of the benchmark, increasing its credibility and value to the research community.
    • Expanding into bioinformatics (ProteinDesign) increases the market relevance of the benchmark.

4. Quality Assurance

  • Verification & Testing:
    • frontier_eval Integration: Yes
    • task_name: ProteinDesign/FixedBackboneDesign
    • Execution & Dependencies: The README.md and README_zh-CN.md within the new benchmark directory clearly document the docker pull command for the Rosetta environment and provide step-by-step python commands for local verification.
  • Documentation Quality: Excellent. The PR provides bilingual documentation (English and Chinese) for both the general updates and the specific new task. The "Quick Start" guides are concise and actionable. No significant grammatical errors or redundant information were detected.
  • Organizational Structure: The project maintains a highly logical and modular structure. The separation of references, data, verification, and frontier_eval metadata within the benchmark folder ensures scalability.

5. Security & Privacy Check

  • Sensitive Files: Clean. No .env, API keys, or temporary files were detected.
  • Absolute Paths: None detected. The scripts and configurations use relative paths (e.g., data/raw_task.json, references/petrobind/1ubq.pdb).

🇨🇳 中文分析

1. 摘要

  • 核心目的: 此 PR 引入了全新的评测指标“勋章分”(Medal Score)、轻量化评测子集 v1-lite,以及一个专注于生物信息学的工程任务 ProteinDesign/FixedBackboneDesign。同时更新了项目主页的榜单以反映这些变更。
  • 修改的文件结构与变更摘要:
    • .gitignore: 更新以允许追踪排行榜 CSV 文件和新的 v1_lite.yaml 配置文件。
    • README.md & README_zh-CN.md: 新增“新闻”栏目,记录“勋章分”逻辑,介绍 v1-lite 子集,并更新了包含新排名和勋章计数的排行榜表格。
    • benchmarks/ProteinDesign/FixedBackboneDesign/: [新目录] 包含新任务的完整实现,包括任务描述 (Task.md)、配置 (data/raw_task.json)、评估逻辑 (verification/evaluator.py) 以及 frontier_eval 元数据。
    • benchmarks/ProteinDesign/FixedBackboneDesign/references/petrobind/1ubq.pdb: 为任务添加了标准的蛋白质结构文件。

2. AI 成分分析

  • 预估 AI 含量: 35%
  • 判断依据与证据:
    • Benchmark 文件夹内的文档文件(Task.mdREADME.md)和 frontier_eval 元数据文件(如 constraints.txtagent_files.txt)遵循高度结构化的模板模式,符合 AI 辅助生成的特征。
    • “新闻”更新和“勋章分”的具体逻辑似乎是人工编写或经过深度编辑的,以符合项目的特定语境。
    • raw_task.jsonconstants.json 使用了标准的 JSON 格式,这是 AI 生成配置任务时的典型表现。

3. 工程与经济评估

  • 工程现实检验: 该 PR 解决了高层级的工程问题。“勋章分”是一种处理优化 Benchmark 中“长尾”问题的成熟方法,避免了微小且无统计学意义的改进对排名产生剧烈影响。新的 FixedBackboneDesign 任务使用了 PyRosetta(计算蛋白质设计的行业标准工具),使其成为一个现实的生产级工程挑战,而非简单的玩具示例。
  • 经济价值:
    • v1-lite 子集显著降低了模型消融实验所需的计算成本和时间。
    • “勋章分”提高了 Benchmark 的稳健性,增强了其在研究社区中的公信力和价值。
    • 向生物信息学(蛋白质设计)领域的扩展增加了该 Benchmark 的市场相关性。

4. Quality Assurance

  • 验证与测试:
    • frontier_eval 集成: 是
    • task_name: ProteinDesign/FixedBackboneDesign
    • 运行与依赖: 新 Benchmark 目录下的 README.mdREADME_zh-CN.md 清晰地记录了 Rosetta 环境的 docker pull 命令,并提供了用于本地验证的分步 python 命令。
  • 文档质量: 优秀。PR 为通用更新和特定新任务提供了中英双语文档。“快速开始”指南简洁且具备可操作性。未检测到明显的语法错误或冗余信息。
  • 组织结构: 项目保持了高度逻辑化和模块化的结构。Benchmark 文件夹内 referencesdataverificationfrontier_eval 元数据的分离确保了系统的可扩展性。

5. 安全与隐私检查

  • 敏感文件: 未发现异常。未检测到 .env、API 密钥或临时文件。
  • 绝对路径: 未检测到。脚本和配置均使用相对路径(例如 data/raw_task.jsonreferences/petrobind/1ubq.pdb)。

@github-actions

Copy link
Copy Markdown

🤖 AI Code Review (gemini-3-flash-preview)

🇬🇧 English Analysis

1. Executive Summary

  • Core Purpose: This PR introduces a significant update to the evaluation framework by implementing a new "Medal Score" metric, a "v1-lite" task subset for faster iteration, and a new high-value benchmark task in the field of Bio-engineering (Protein Design).
  • Modified File Structure & Modifications:
    • .gitignore: Whitelisted leaderboard/*.csv and the new v1_lite.yaml configuration.
    • README.md & README_zh-CN.md: Updated with "News" (dated 2026-06-30), detailed explanation of the Medal Score metric, and an updated leaderboard table.
    • benchmarks/ProteinDesign/FixedBackboneDesign/: Created a new benchmark directory containing:
      • README.md / Task.md (and CN versions): Comprehensive documentation and task specifications.
      • data/raw_task.json: Configuration for the Ubiquitin (1UBQ) design task.
      • frontier_eval/: Metadata files (constraints, eval commands, file lists) required for framework integration.
      • references/: Scientific constants and the 1UBQ PDB structure file.
      • baseline/result_log.txt: Performance logs for the initial baseline implementation.

2. AI Content Analysis

  • Estimated AI Component: 35%
  • Reasoning & Evidence:
    • The documentation (READMEs and Task descriptions) follows a highly structured, "perfect" template often seen in AI-assisted technical writing.
    • The "News" section and the explanation of the Medal Score are written with high clarity and standard marketing-technical tone typical of LLM outputs.
    • The frontier_eval metadata files (e.g., agent_files.txt, constraints.txt) are boilerplate-heavy.
    • However, the scientific domain knowledge (Rosetta energy terms like fa_atr, p_aa_pp, and PDB structure handling) suggests significant human expert oversight or specific prompting.

3. Engineering & Economic Assessment

  • Engineering Reality Check: This is a production-grade update.
    • The "Medal Score" addresses a real-world evaluation problem: how to aggregate scores across diverse tasks where small numerical improvements in the "long tail" might be noise, but reaching a "podium" level is a significant engineering milestone.
    • The FixedBackboneDesign task includes rigorous constraints (verifying no backbone movement, standard amino acids only), moving beyond a "toy" script into a valid scientific simulation.
  • Economic Value: High.
    • Expanding into Protein Design (Bio-AI) significantly increases the benchmark's relevance to high-value industries (pharmaceuticals/biotech).
    • The v1-lite subset reduces the computational cost and time for developers to iterate, optimizing R&D efficiency.

4. Quality Assurance

  • Verification & Testing:
    • frontier_eval Integration: Yes.
    • task_name: ProteinDesign/FixedBackboneDesign (as defined in data/raw_task.json and the unified ID).
    • Execution & Dependencies: The README.md clearly documents the docker pull rosettacommons/rosetta:serial requirement and provides the exact Python commands for local verification and unified evaluation.
  • Documentation Quality: Excellent.
    • Provides dual-language support.
    • Includes a "Quick Start" and a "Background" section referencing actual academic papers (arXiv:2603.15952).
    • Minor Note: The dates are set in the future (June 2026), which is likely a project-specific versioning choice but may confuse external auditors.
  • Organizational Structure: Highly logical and modular. The new benchmark follows the established directory pattern, ensuring scalability.

5. Security & Privacy Check

  • Sensitive Files: Clean. No .env, API keys, or IDE-specific configs were detected.
  • Absolute Paths: None detected. All paths in raw_task.json and documentation use relative paths (e.g., references/petrobind/1ubq.pdb).

🇨🇳 中文分析

1. 摘要

  • 核心目的: 本 PR 对评测框架进行了重大更新,引入了全新的“勋章分”(Medal Score)指标、用于快速迭代的“v1-lite”任务子集,以及一个高价值的生物工程(蛋白质设计)新基准任务。
  • 修改的文件结构与变更摘要:
    • .gitignore: 将 leaderboard/*.csv 和新的 v1_lite.yaml 配置列入白名单。
    • README.md & README_zh-CN.md: 更新了“新闻”动态(日期为 2026-06-30),详细解释了勋章分指标,并更新了排行榜表格。
    • benchmarks/ProteinDesign/FixedBackboneDesign/: 创建了新的基准目录,包含:
      • README.md / Task.md(及中文版):完善的文档和任务规范。
      • data/raw_task.json: 泛素蛋白(1UBQ)设计任务的配置。
      • frontier_eval/: 框架集成所需的元数据文件(约束、评测命令、文件列表等)。
      • references/: 科学常数和 1UBQ PDB 结构文件。
      • baseline/result_log.txt: 初始基线实现的性能日志。

2. AI 成分分析

  • 预估 AI 含量: 35%
  • 判断依据与证据:
    • 文档(README 和任务描述)遵循高度结构化、且极其“完美”的模板,这是 AI 辅助技术写作的典型特征。
    • “新闻”部分和勋章分的解释逻辑清晰,采用了典型的 LLM 营销技术口吻。
    • frontier_eval 元数据文件(如 constraints.txt)具有较强的模板化风格。
    • 然而,涉及的科学领域知识(如 Rosetta 能量项 fa_atrp_aa_pp 和 PDB 结构处理)表明存在显著的人工专家指导或特定的提示词工程。

3. 工程与经济评估

  • 工程现实检验: 这是一个生产级的更新。
    • “勋章分”解决了实际评测中的难题:如何在不同任务间汇总分数,特别是当长尾部分的微小改进可能是噪声时,通过“领奖台”机制奖励重大工程突破。
    • FixedBackboneDesign 任务包含严格的约束检查(验证骨架无位移、仅限标准氨基酸),从简单的脚本进化为有效的科学模拟。
  • 经济价值:
    • 扩展到蛋白质设计(Bio-AI)领域显著提升了该基准对高价值行业(制药/生物技术)的相关性。
    • v1-lite 子集降低了开发者的计算成本和迭代时间,优化了研发效率。

4. 质量保证

  • 验证与测试:
    • frontier_eval 集成: 是
    • task_name: ProteinDesign/FixedBackboneDesign
    • 运行与依赖: README.md 清晰记录了 docker pull rosettacommons/rosetta:serial 的环境要求,并提供了本地验证和统一评测的确切 Python 命令。
  • 文档质量: 优秀
    • 提供双语支持。
    • 包含“快速开始”和引用实际学术论文(arXiv:2603.15952)的“背景”介绍。
    • 微小瑕疵: 日期设定在未来(2026年6月),这可能是项目特定的版本管理选择,但可能会让外部审计人员感到困惑。
  • 组织结构: 逻辑性强且模块化。新基准遵循既有的目录模式,保证了可扩展性。

5. 安全与隐私检查

  • 敏感文件: 未发现异常。未检测到 .env、API 密钥或 IDE 配置文件。
  • 绝对路径: 未检测到raw_task.json 和文档中的所有路径均使用相对路径(如 references/petrobind/1ubq.pdb)。

@jdp22
jdp22 requested a review from y-ji24 July 14, 2026 09:28

@y-ji24 y-ji24 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the update. This revision is much more complete. The constraint validation, reference file protection, and task metadata are now in place, and the three issues raised in the previous review have all been addressed.

There is one remaining suggestion that I recommend resolving before merging.

load_design_positions() should not silently fall back

Currently, load_design_positions() in scripts/init.py falls back to treating all residues as design positions when meta.json is missing. While this allows the workflow to continue, it can mask configuration errors and may cause the evaluator to score candidates under an incorrect task configuration.

In addition, the read-only portion of the benchmark should not be responsible for inferring design positions through PyRosetta. The set of design positions should always come directly from the task metadata.

I would recommend removing this fallback behavior and raising a FileNotFoundError (or a similar exception) when meta.json is missing. This allows configuration problems to be detected early instead of silently degrading to a different behavior.

import pyrosetta
pyrosetta.init(silent=True)
pose = pyrosetta.pose_from_file(str(prepared_pdb))
return list(range(1, pose.total_residue() + 1))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Silent fallback may mask configuration errors

The current load_design_positions() function falls back to designing all positions if the meta file is missing. While a warning is printed to stderr, this silent fallback could go unnoticed in automated runs where stderr isn't actively monitored—potentially causing incorrect results.

Since the evaluator always creates this meta file during prepare(), it should be considered mandatory. Suggest raising FileNotFoundError instead:

def load_design_positions(prepared_pdb: str | Path) -> list[int]:
    """
    Read design positions from the meta JSON accompanying the prepared PDB.
    The meta file is at the same path but with .meta.json extension.
    
    Raises:
        FileNotFoundError: If the meta file cannot be found at either expected location.
    """
    p = Path(prepared_pdb)
    meta_path = p.with_suffix(".pdb.meta.json")
    if not meta_path.exists():
        meta_path = p.with_suffix(".meta.json")
    
    if not meta_path.exists():
        raise FileNotFoundError(
            f"Meta file not found at {p.with_suffix('.pdb.meta.json')} or {p.with_suffix('.meta.json')}. "
            f"Ensure evaluator.prepare() was called first to generate the prepared PDB and metadata."
        )
    
    meta = load_json(meta_path)
    return list(meta.get("design_positions", []))

This makes configuration bugs explicit and easier to debug, especially in CI/automated pipelines.

@github-actions

Copy link
Copy Markdown

🤖 AI Code Review (gemini-3-flash-preview)

🇬🇧 English Analysis

1. Executive Summary

  • Core Purpose: This PR introduces a significant update to the evaluation framework, including a new scoring metric ("Medal Score"), a lightweight benchmark subset (v1-lite), and a new engineering task in the Protein Design domain.
  • Modified File Structure & Modifications:
    • .gitignore: Updated to allow tracking of leaderboard CSVs and the new v1_lite.yaml configuration.
    • README.md & README_zh-CN.md: Added a "News" section, documented the "Medal Score" logic, updated the leaderboard with new metrics, and introduced the v1-lite subset.
    • benchmarks/ProteinDesign/FixedBackboneDesign/: (New Directory) Implements a protein sequence design task based on the Rosetta energy function.
      • Task.md / Task_zh-CN.md: Detailed task descriptions and constraints.
      • data/raw_task.json: Configuration for the Ubiquitin (1UBQ) design task.
      • frontier_eval/: Contains metadata files (eval_command.txt, constraints.txt, etc.) required for integration with the evaluation runner.
      • verification/evaluator.py: Core logic for preparing data and scoring solutions using PyRosetta.
      • references/petrobind/1ubq.pdb: Native protein structure file used as the design template.

2. AI Content Analysis

  • Estimated AI Component: 45%
  • Reasoning & Evidence:
    • Boilerplate Metadata: The files under frontier_eval/ (e.g., agent_files.txt, copy_files.txt) follow a highly repetitive, template-driven structure typical of AI-assisted scaffolding.
    • Future-Dating: The README mentions dates in 2026 (e.g., 2026-06-30), which is a common hallucination pattern or a sign of synthetic data generation if the current date is earlier.
    • Standardized Documentation: The bilingual documentation is perfectly mirrored and uses highly standard technical phrasing, suggesting automated translation or generation.
    • Domain Nuance: However, the integration of specific PyRosetta energy terms (fa_atr, fa_sol, ref2015) and the reference to the "Agent Rosetta" paper (arXiv:2603.15952) suggest human oversight in defining the scientific parameters.

3. Engineering & Economic Assessment

  • Engineering Reality Check: Production-Grade. This is not a "toy example." It integrates a heavy-duty scientific tool (Rosetta) via Docker, handles specific PDB file constraints, and implements a sophisticated "Medal Score" to normalize performance across heterogeneous tasks. The use of isolation_mode=docker demonstrates a commitment to reproducible and secure execution environments.
  • Economic Value: High. Protein design is a high-value field in biotechnology. Providing a standardized benchmark for LLM-driven optimization in this space can significantly accelerate R&D for therapeutic proteins. The "Medal Score" reduces technical debt by providing a more robust aggregation method than simple averaging.

4. Quality Assurance

  • Verification & Testing:
    • frontier_eval Integration: Yes.
    • task_name: ProteinDesign/FixedBackboneDesign
    • Execution & Dependencies: The README.md within the benchmark folder clearly documents the docker pull rosettacommons/rosetta:serial command and the three-step manual verification process (prepare -> init -> evaluate).
  • Documentation Quality: Excellent. The PR provides comprehensive documentation in both English and Chinese. It includes a "Quick Start," background information, and clear scoring definitions. No significant grammatical errors were detected.
  • Organizational Structure: Logical and Scalable. The project follows a clear hierarchy where each benchmark is self-contained with its own data, scripts, and evaluation metadata, making it easy to add new tasks.

5. Security & Privacy Check

  • Sensitive Files: Clean. No .env, API keys, or IDE-specific configurations were found. The .gitignore was properly updated to exclude local logs and temporary artifacts.
  • Absolute Paths: None detected. All paths in raw_task.json and the evaluation scripts use relative paths (e.g., references/petrobind/1ubq.pdb).

🇨🇳 中文分析

1. 摘要

  • 核心目的: 此 PR 为评估框架引入了重大更新,包括新的评分指标(“勋章分” Medal Score)、轻量级基准子集(v1-lite)以及蛋白质设计领域的一个新工程任务。
  • 修改的文件结构与变更摘要:
    • .gitignore: 更新以允许追踪排行榜 CSV 文件和新的 v1_lite.yaml 配置。
    • README.md & README_zh-CN.md: 新增“新闻”栏目,记录了“勋章分”逻辑,更新了包含新指标的排行榜,并介绍了 v1-lite 子集。
    • benchmarks/ProteinDesign/FixedBackboneDesign/: (新目录) 实现了基于 Rosetta 能量函数的蛋白质序列设计任务。
      • Task.md / Task_zh-CN.md: 详细的任务描述和约束条件。
      • data/raw_task.json: 泛素蛋白 (1UBQ) 设计任务的配置。
      • frontier_eval/: 包含集成到评估运行器所需的元数据文件(eval_command.txtconstraints.txt 等)。
      • verification/evaluator.py: 使用 PyRosetta 准备数据和对解法进行评分的核心逻辑。
      • references/petrobind/1ubq.pdb: 用作设计模板的天然蛋白质结构文件。

2. AI 成分分析

  • 预估 AI 含量: 45%
  • 判断依据与证据:
    • 模板化元数据: frontier_eval/ 下的文件(如 agent_files.txtcopy_files.txt)遵循高度重复、模板驱动的结构,这是典型的 AI 辅助生成的脚手架。
    • 未来日期: README 中提到了 2026年 的日期(如 2026-06-30),如果当前日期早于此,这通常是幻觉模式或合成数据生成的迹象。
    • 标准化的文档: 双语文档完美镜像,并使用了高度标准的术语,表明采用了自动化翻译或生成。
    • 领域专业性: 然而,特定 PyRosetta 能量项(fa_atrfa_solref2015)的集成以及对 “Agent Rosetta” 论文(arXiv:2603.15952)的引用表明在定义科学参数时有人工监督。

3. 工程与经济评估

  • 工程现实检验: 生产级。 这不是一个“玩具示例”。它通过 Docker 集成了重型科学工具 (Rosetta),处理特定的 PDB 文件约束,并实现了复杂的“勋章分”来归一化不同任务的性能。使用 isolation_mode=docker 表明了对可复现和安全执行环境的重视。
  • 经济价值: 高。 蛋白质设计是生物技术中的高价值领域。为此领域的 LLM 驱动优化提供标准化基准可以显著加速治疗性蛋白质的研发。“勋章分”通过提供比简单平均更稳健的聚合方法,减少了技术债务。

4. 质量保证

  • 验证与测试:
    • frontier_eval 集成: 是
    • task_name: ProteinDesign/FixedBackboneDesign
    • 运行与依赖: benchmark 文件夹内的 README.md 清晰记录了 docker pull rosettacommons/rosetta:serial 命令以及三步手动验证流程(prepare -> init -> evaluate)。
  • 文档质量: 优秀。 该 PR 提供了详尽的中英文文档。包括“快速开始”、背景信息和清晰的评分定义。未检测到明显的语法错误。
  • 组织结构: 逻辑清晰且具备可扩展性。 项目遵循清晰的层级结构,每个基准任务都是自包含的,拥有自己的数据、脚本和评估元数据,便于添加新任务。

5. 安全与隐私检查

  • 敏感文件: 未发现异常。 未发现 .env、API 密钥或 IDE 特定配置。.gitignore 已妥善更新以排除本地日志和临时产物。
  • 绝对路径: 未检测到。 raw_task.json 和评估脚本中的所有路径均使用相对路径(例如 references/petrobind/1ubq.pdb)。

@y-ji24 y-ji24 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the update. This revision has addressed the issues raised in the previous review.

After another round of verification, the constraint validation, reference file protection, task metadata loading, and the implementation of load_design_positions() all look correct. The previous silent fallback behavior has also been removed. The implementation is now consistent with the task definition, and I did not find any new issues affecting evaluation correctness or benchmark integrity.

The benchmark is in good shape now, and I don't have any further blocking comments for this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants