jinko-protocol について
Jinkō SDKでプロトコル設計を作成、確認、編集するためのスキルです。投与ロジックはモデルに置いたまま、試験群ごとにモデル入力値を割り当てる方法を案内します。
主な機能
- 01群データまたはCSVから設計を作成
- 02群ごとのモデル入力値を設定
- 03設計をモデルスナップショットに関連付け
- 04SDKスクリプトで群を確認・編集
活用シーン
- 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接続と、metadata.requires_sdkの範囲を満たす 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のような、プロトコルで実行可能なモデル入力を対象にする必要があります。 assets/protocol.jsonに示すように、アームごとにtMaxキーとtStepキーで求解時間をオーバーライドできます。アームごとに異なる時間範囲や出力解像度が必要な場合に使用してください。たとえば、ある図では時間単位の解像度で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 を1つ解決し、対応する SDK の作成呼び出しに
folder=folderを渡してください。
同梱アセット
assets/toy_protocol_arms.json:2つの投与経路と3つの投与量を含む3つのアームです。ivの投与経路は2つのアームで繰り返し使用されています。assets/toy_protocol_arms.csv:同じ3つのアームを CSV 形式で表したもので、create_protocol_design_from_csvで使用するために、1行につき1つのアームを記載しています。assets/protocol.json:プロトコルのアーム形状に関する OpenAPI スキーマのサブセットです。
SDK スクリプト
SDK をインストールすると、これらはコンソールスクリプトとして PATH から実行でき、以下のように python -m を使って実行することもできます。
jinko.cli.create_protocol_design:3 群のプロトコルデザインを作成します。モデルとの関連付けは任意です。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を対照群とします。
参照先の案内
- 関心の分離と SDK のパターンについては、
references/protocol-design.mdを参照してください。 - 群のペイロード形式を検証する際は、
assets/protocol.jsonを参照してください。
コメント
Markdown 対応