🛠️ Adaptyv
Adaptyv Bio FoundryのAPIとPython SDK
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.
🇯🇵 日本人クリエイター向け解説
Adaptyv Bio FoundryのAPIとPython SDK
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o adaptyv.zip https://jpskill.com/download/4126.zip && unzip -o adaptyv.zip && rm adaptyv.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4126.zip -OutFile "$d\adaptyv.zip"; Expand-Archive "$d\adaptyv.zip" -DestinationPath $d -Force; ri "$d\adaptyv.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
adaptyv.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
adaptyvフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-18
- 同梱ファイル
- 2
💬 こう話しかけるだけ — サンプルプロンプト
- › Adaptyv を使って、最小構成のサンプルコードを示して
- › Adaptyv の主な使い方と注意点を教えて
- › Adaptyv を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Adaptyv Bio Foundry API
Adaptyv Bio は、タンパク質配列を実験データに変換するクラウドラボです。ユーザーは API または UI を介してアミノ酸配列を送信し、Adaptyv の自動化されたラボがアッセイ(結合、熱安定性、発現、蛍光)を実行し、約 21 日で結果を提供します。
クイックスタート
ベース URL: https://foundry-api-public.adaptyvbio.com/api/v1
認証: Authorization ヘッダーに Bearer トークンを含めます。トークンは foundry.adaptyvbio.com のサイドバーから取得できます。
コードを書く際は、API キーを常に環境変数 ADAPTYV_API_KEY または .env ファイルから読み込むようにしてください。トークンをハードコードしてはいけません。まずプロジェクトのルートに .env ファイルがあるか確認し、存在する場合は python-dotenv のようなライブラリを使用して読み込んでください。
export FOUNDRY_API_TOKEN="abs0_..."
curl https://foundry-api-public.adaptyvbio.com/api/v1/targets?limit=3 \
-H "Authorization: Bearer $FOUNDRY_API_TOKEN"
GET /openapi.json を除くすべてのリクエストには認証が必要です。トークンは環境変数または .env ファイルに保存し、ソース管理にコミットしないでください。
Python SDK
インストール: uv add adaptyv-sdk (pyproject.toml が存在しない場合は uv pip install adaptyv-sdk にフォールバックします)
環境変数 (シェルまたは .env ファイルで設定):
ADAPTYV_API_KEY=your_api_key
ADAPTYV_API_URL=https://foundry-api-public.adaptyvbio.com/api/v1
デコレーターパターン
from adaptyv import lab
@lab.experiment(target="PD-L1", experiment_type="screening", method="bli")
def design_binders():
return {"design_a": "MVKVGVNG...", "design_b": "MKVLVAG..."}
result = design_binders()
print(f"Experiment: {result.experiment_url}")
クライアントパターン
from adaptyv import FoundryClient
client = FoundryClient(api_key="...", base_url="https://foundry-api-public.adaptyvbio.com/api/v1")
# ターゲットを閲覧
targets = client.targets.list(search="EGFR", selfservice_only=True)
# コストを見積もり
estimate = client.experiments.cost_estimate({
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": "target-uuid",
"sequences": {"seq1": "EVQLVESGGGLVQ..."},
"n_replicates": 3
}
})
# 作成と提出
exp = client.experiments.create({...})
client.experiments.submit(exp.experiment_id)
# 後で結果を取得
results = client.experiments.get_results(exp.experiment_id)
実験タイプ
| タイプ | メソッド | 測定項目 | ターゲットが必要か |
|---|---|---|---|
affinity |
bli または spr |
KD、kon、koff 動態 | はい |
screening |
bli または spr |
結合の有無 | はい |
thermostability |
— | 融解温度 (Tm) | いいえ |
expression |
— | 発現収量 | いいえ |
fluorescence |
— | 蛍光強度 | いいえ |
実験のライフサイクル
Draft → WaitingForConfirmation → QuoteSent → WaitingForMaterials → InQueue → InProduction → DataAnalysis → InReview → Done
| ステータス | 担当者 | 説明 |
|---|---|---|
Draft |
あなた | 編集可能、コストのコミットメントなし |
WaitingForConfirmation |
Adaptyv | レビュー中、見積もり作成中 |
QuoteSent |
あなた | 見積もりを確認し、承認する |
WaitingForMaterials |
Adaptyv | 遺伝子断片とターゲットを発注済み |
InQueue |
Adaptyv | 材料が到着し、ラボでキュー待ち |
InProduction |
Adaptyv | アッセイ実行中 |
DataAnalysis |
Adaptyv | 生データの処理と品質管理 |
InReview |
Adaptyv | 最終検証 |
Done |
あなた | 結果が利用可能 |
Canceled |
いずれか | 実験がキャンセルされました |
実験の results_status フィールドは、none、partial、または all を追跡します。
一般的なワークフロー
1. 結合スクリーニングの提出 (ステップバイステップ)
# 1. ターゲットを見つける
targets = client.targets.list(search="EGFR", selfservice_only=True)
target_id = targets.items[0].id
# 2. コストをプレビュー
estimate = client.experiments.cost_estimate({
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": target_id,
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
"n_replicates": 3
}
})
# 3. 実験を作成 (Draft として開始)
exp = client.experiments.create({
"name": "EGFR binder screen batch 1",
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": target_id,
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
"n_replicates": 3
}
})
# 4. レビューのために提出
client.experiments.submit(exp.experiment_id)
# 5. 完了するまでポーリングまたは Webhook を使用
# 6. 結果を取得
results = client.experiments.get_results(exp.experiment_id)
2. 自動化パイプライン (Draft をスキップ + 見積もりを自動承認)
exp = client.experiments.create({
"name": "Auto pipeline run",
"experiment_spec": {...},
"skip_draft": True,
"auto_accept_quote": True,
"webhook_url": "https://my-server.com/webhook"
})
# Webhook は各ステータス遷移で発火します。ポーリングするか、完了を待ちます。
3. Webhook の使用
実験作成時に webhook_url を渡します。Adaptyv は、各ステータス遷移時に実験 ID、以前のステータス、新しいステータスをその URL に POST します。
配列
- シンプルな形式:
{"seq1": "EVQLVESGGGLVQPGGSLRLSCAAS"} - リッチな形式:
{"seq1": {"aa_string": "EVQLVESGGGLVQ...", "control": false, "metadata": {"type": "scfv"}}} - マルチチェーン: コロン区切りを使用 —
"MVLS:EVQL" - 有効なアミノ酸: A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y (大文字小文字を区別せず、大文字で保存されます)
- 配列は
Draftステータスの実験にのみ追加できます
フィルタリング、ソート、ページネーション
すべてのリストエンドポイントは、ページネーション (limit 1-100、デフォルト 50; offset)、検索 (名前フィールドでのフリーテキスト)、およびソートをサポートしています。
フィルタリング は、filter クエリパラメータを介して s-expression 構文を使用します。
- 比較:
eq(field,value)、neq、gt、gte、lt、lte、contains(field,substring) - 範囲/セット:
between(field,lo,hi)、in(field,v1,v2,...) - 論理:
and(expr1,expr2,...)、or(.
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Adaptyv Bio Foundry API
Adaptyv Bio is a cloud lab that turns protein sequences into experimental data. Users submit amino acid sequences via API or UI; Adaptyv's automated lab runs assays (binding, thermostability, expression, fluorescence) and delivers results in ~21 days.
Quick Start
Base URL: https://foundry-api-public.adaptyvbio.com/api/v1
Authentication: Bearer token in the Authorization header. Tokens are obtained from foundry.adaptyvbio.com sidebar.
When writing code, always read the API key from the environment variable ADAPTYV_API_KEY or from a .env file — never hardcode tokens. Check for a .env file in the project root first; if one exists, use a library like python-dotenv to load it.
export FOUNDRY_API_TOKEN="abs0_..."
curl https://foundry-api-public.adaptyvbio.com/api/v1/targets?limit=3 \
-H "Authorization: Bearer $FOUNDRY_API_TOKEN"
Every request except GET /openapi.json requires authentication. Store tokens in environment variables or .env files — never commit them to source control.
Python SDK
Install: uv add adaptyv-sdk (falls back to uv pip install adaptyv-sdk if no pyproject.toml exists)
Environment variables (set in shell or .env file):
ADAPTYV_API_KEY=your_api_key
ADAPTYV_API_URL=https://foundry-api-public.adaptyvbio.com/api/v1
Decorator Pattern
from adaptyv import lab
@lab.experiment(target="PD-L1", experiment_type="screening", method="bli")
def design_binders():
return {"design_a": "MVKVGVNG...", "design_b": "MKVLVAG..."}
result = design_binders()
print(f"Experiment: {result.experiment_url}")
Client Pattern
from adaptyv import FoundryClient
client = FoundryClient(api_key="...", base_url="https://foundry-api-public.adaptyvbio.com/api/v1")
# Browse targets
targets = client.targets.list(search="EGFR", selfservice_only=True)
# Estimate cost
estimate = client.experiments.cost_estimate({
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": "target-uuid",
"sequences": {"seq1": "EVQLVESGGGLVQ..."},
"n_replicates": 3
}
})
# Create and submit
exp = client.experiments.create({...})
client.experiments.submit(exp.experiment_id)
# Later: retrieve results
results = client.experiments.get_results(exp.experiment_id)
Experiment Types
| Type | Method | Measures | Requires Target |
|---|---|---|---|
affinity |
bli or spr |
KD, kon, koff kinetics | Yes |
screening |
bli or spr |
Yes/no binding | Yes |
thermostability |
— | Melting temperature (Tm) | No |
expression |
— | Expression yield | No |
fluorescence |
— | Fluorescence intensity | No |
Experiment Lifecycle
Draft → WaitingForConfirmation → QuoteSent → WaitingForMaterials → InQueue → InProduction → DataAnalysis → InReview → Done
| Status | Who Acts | Description |
|---|---|---|
Draft |
You | Editable, no cost commitment |
WaitingForConfirmation |
Adaptyv | Under review, quote being prepared |
QuoteSent |
You | Review and confirm the quote |
WaitingForMaterials |
Adaptyv | Gene fragments and target ordered |
InQueue |
Adaptyv | Materials arrived, queued for lab |
InProduction |
Adaptyv | Assay running |
DataAnalysis |
Adaptyv | Raw data processing and QC |
InReview |
Adaptyv | Final validation |
Done |
You | Results available |
Canceled |
Either | Experiment canceled |
The results_status field on an experiment tracks: none, partial, or all.
Common Workflows
1. Submit a Binding Screen (Step by Step)
# 1. Find a target
targets = client.targets.list(search="EGFR", selfservice_only=True)
target_id = targets.items[0].id
# 2. Preview cost
estimate = client.experiments.cost_estimate({
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": target_id,
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
"n_replicates": 3
}
})
# 3. Create experiment (starts as Draft)
exp = client.experiments.create({
"name": "EGFR binder screen batch 1",
"experiment_spec": {
"experiment_type": "screening",
"method": "bli",
"target_id": target_id,
"sequences": {"seq1": "EVQLVESGGGLVQ...", "seq2": "MKVLVAG..."},
"n_replicates": 3
}
})
# 4. Submit for review
client.experiments.submit(exp.experiment_id)
# 5. Poll or use webhooks until Done
# 6. Retrieve results
results = client.experiments.get_results(exp.experiment_id)
2. Automated Pipeline (Skip Draft + Auto-Accept Quote)
exp = client.experiments.create({
"name": "Auto pipeline run",
"experiment_spec": {...},
"skip_draft": True,
"auto_accept_quote": True,
"webhook_url": "https://my-server.com/webhook"
})
# Webhook fires on each status transition; poll or wait for Done
3. Using Webhooks
Pass webhook_url when creating an experiment. Adaptyv POSTs to that URL on every status transition with the experiment ID, previous status, and new status.
Sequences
- Simple format:
{"seq1": "EVQLVESGGGLVQPGGSLRLSCAAS"} - Rich format:
{"seq1": {"aa_string": "EVQLVESGGGLVQ...", "control": false, "metadata": {"type": "scfv"}}} - Multi-chain: use colon separator —
"MVLS:EVQL" - Valid amino acids: A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y (case-insensitive, stored uppercase)
- Sequences can only be added to experiments in
Draftstatus
Filtering, Sorting, and Pagination
All list endpoints support pagination (limit 1-100, default 50; offset), search (free-text on name fields), and sorting.
Filtering uses s-expression syntax via the filter query parameter:
- Comparison:
eq(field,value),neq,gt,gte,lt,lte,contains(field,substring) - Range/set:
between(field,lo,hi),in(field,v1,v2,...) - Logic:
and(expr1,expr2,...),or(...),not(expr) - Null:
is_null(field),is_not_null(field) - JSONB:
at(field,key)— e.g.,eq(at(metadata,score),42) - Cast:
float(),int(),text(),timestamp(),date()
Sorting uses asc(field) or desc(field), comma-separated (max 8):
sort=desc(created_at),asc(name)
Example: filter=and(gte(created_at,2026-01-01),eq(status,done))
Error Handling
All errors return:
{
"error": "Human-readable description",
"request_id": "req_019462a4-b1c2-7def-8901-23456789abcd"
}
The request_id is also in the x-request-id response header — include it when contacting support.
Token Management
Tokens use Biscuit-based cryptographic attenuation. You can create restricted tokens scoped by organization, resource type, actions (read/create/update), and expiry via POST /tokens/attenuate. Revoking a token (POST /tokens/revoke) revokes it and all its descendants.
Detailed API Reference
For the full list of all 32 endpoints with request/response schemas, read references/api-endpoints.md.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (7,629 bytes)
- 📎 references/api-endpoints.md (20,101 bytes)