关于 jinko-protocol
用于通过 Jinkō SDK 创建、检查和编辑方案设计的技能。它指导用户为研究组设置模型输入,同时将给药逻辑保留在模型中。
主要功能
- 01从研究组或 CSV 创建方案设计
- 02设置各组的模型输入覆盖值
- 03将方案设计关联到模型快照
- 04使用 SDK 脚本检查和编辑研究组
适用场景
- 01根据电子表格构建研究组
- 02将治疗组与对照组进行比较
- 03为不同研究组设置模拟时长
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ novainsilico/ jinko-skills --skill jinko-protocol安装后在 Claude Code 中输入/jinko-protocol确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/protocol.jsontoy_protocol_arms.csvtoy_protocol_arms.jsonevals/evals.jsonreferences/protocol-design.md详细介绍
Jinkō Protocol SDK 工作流
使用此技能通过 SDK 进行协议设计。明确区分职责:模型定义治疗方案函数及其输入;协议针对每个组实例化这些输入。
前提条件: 此技能需要已初始化的
jinko-sdk连接,且 SDK 满足其metadata.requires_sdk范围。运行jinko-sdk-setup技能(../jinko-sdk-setup/SKILL.md),并且只有在检查通过后才继续。会话代码只能兑换一次,因此在此技能自身的 SDK 进程启动前,请再次调用get_session_code。如果找不到该技能,请从novainsilico/jinko-skills安装。
职责分离
- 协议设计只覆盖组件值,每个组可以使用不同的覆盖值。
- 给药功能在模型级别定义:给药计划参数化、剂量参数化、通过类别参数激活或停用治疗、通过类别参数指定给药途径或给药方式,以及解释这些输入的任何公式。
- 在模型中定义治疗方案函数及其输入组件。
- 在协议中为这些输入赋值,相当于为每个组实例化该函数。
- 如果所需的覆盖键不存在于模型输入中,请先切换到
jinko-model,在那里添加模型组件或给药逻辑。
核心规则
- 有可用模型时,优先使用
client.create_protocol_design(arms, model=model)。 - 如果组数据来自电子表格,请使用
client.create_protocol_design_from_csv(csv_file_path=...)。使用规范的元数据列arm、control、active和weight。平台会将所有其他列映射为覆盖值。此方式不接受model参数;如果需要关联模型,请改用client.create_protocol_design(...)。示例文件见assets/toy_protocol_arms.csv,SDK 调用见references/protocol-design.md。 - 尽可能将协议设计关联到模型,这样协议设计就会携带模型快照引用。
- 覆盖项
key必须指向可用于协议运行的模型输入,例如玩具模型中的Dose或route。 - 可通过
tMax和tStep键为每个组分别覆盖求解时间,示例见assets/protocol.json。当不同组需要不同的时间范围或输出分辨率时,请使用此方式;例如,一张报告图的时间范围为 7 天、分辨率为每小时一次,而另一张图的时间范围为 56 天、分辨率为每天一次。 - 将公式写作字符串,例如
"1.0"、"iv"或"PT24H",具体取决于目标组件。 - 比较各组时,请包含对照关系;使用
armControl指定比较组。 - 在现有设计上使用
protocol.arms(get、create、set_control、set_active、set_weight、set_override、delete、compare_overrides)编辑单个组,不要替换原始设计载荷。 - 创建或更新项目条目前,必须取得明确确认,或在脚本中使用
--apply。
项目文件夹管理
- 优先在专用的 Jinkō 文件夹中创建协议设计,而不是放在项目根目录。工作流开始时,请询问或建议文件夹名称,例如
YYYY-MM-DD-<experiment-name>。 - 尽可能复用名称完全匹配的现有文件夹:
client.get_folder_by_name(name, exact_match_only=True)。 - 如果文件夹不存在,只能在用户确认后,或脚本使用
--apply运行时创建。 - 确定一个文件夹对象或文件夹 ID,然后将
folder=folder传给支持此参数的 SDK 创建调用。
随附资源
assets/toy_protocol_arms.json:包含三个组、两种给药途径和三个剂量。其中iv给药途径在两个组中重复出现。assets/toy_protocol_arms.csv:同样的三个组,以 CSV 格式呈现,每个组占一行,可用于create_protocol_design_from_csv。assets/protocol.json:协议组结构的 OpenAPI 模式子集。
SDK 脚本
安装 SDK 后,这些脚本会作为控制台脚本出现在 PATH 中,也可以通过 python -m 按下文所示运行。
jinko.cli.create_protocol_design:创建包含三个组别的方案设计,可选择关联模型。jinko.cli.create_protocol_design_from_csv:根据包含各组别的 CSV 文件创建方案设计。jinko.cli.edit_protocol_design_arms:通过arms修改器服务,对现有方案设计中的组别和覆盖项执行插入或更新。输入中未提及的组别和覆盖项会保留;如需删除,请显式调用protocol.arms.delete(...)或arm.remove_override(...)。jinko.cli.inspect_protocol_design:输出方案内容或简明的组别摘要。
示例:
python -m jinko.cli.create_protocol_design --model-sid cm-...
python -m jinko.cli.create_protocol_design --model-sid cm-... --apply
python -m jinko.cli.create_protocol_design --model-sid cm-... --folder 2026-06-15-regimens --create-folder --apply
python -m jinko.cli.create_protocol_design_from_csv --csv skills/jinko-protocol/assets/toy_protocol_arms.csv --apply
python -m jinko.cli.edit_protocol_design_arms --protocol-design-sid pd-... --arms skills/jinko-protocol/assets/toy_protocol_arms.json --apply
python -m jinko.cli.inspect_protocol_design --protocol-design-sid pd-... --summary
组别结构
每个组别都应包含:
armName:稳定的组别标识符。armOverrides:{ "key": "<model-input-id>", "formula": "<arm-specific-value>" }条目的列表。armIsActive:活动组别通常设为true。armWeight:除非有意使用加权模拟(用于校准),否则通常设为1。armControl:对照组设为null;与某个对照组进行比较的其他组别则设为该对照组的名称。
默认示例组别:
iv_low_dose:Dose=1.0,route=iv,无对照组。po_mid_dose:Dose=2.0,route=po,以iv_low_dose为对照组。iv_high_dose:Dose=3.0,route=iv,以iv_low_dose为对照组。
参考资料路由
- 阅读
references/protocol-design.md,了解职责划分和 SDK 模式。 - 验证组别载荷结构时,阅读
assets/protocol.json。
评论
支持 Markdown