jpskill.com
🛠️ 開発・MCP コミュニティ 🔴 エンジニア向け 👤 エンジニア・AI開発者

🛠️ Adaptyv

adaptyv

Adaptyv Bio FoundryのAPIとPython SDK

⏱ ライブラリ調査+組込 半日 → 1時間

📺 まず動画で見る(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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して adaptyv.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → adaptyv フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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 フィールドは、nonepartial、または 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)neqgtgteltltecontains(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 Draft status

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` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。