MCP HubMCP Hub
Volver a habilidades

adaptyv

K-Dense-AI
Actualizado Today
26,534
2,743
26,534
Ver en GitHub
Metaapidesign

Acerca de

Esta habilidad permite a los desarrolladores diseñar, enviar y recuperar resultados de experimentos proteicos (como ensayos de unión o termoestabilidad) de manera programática, utilizando la API de Adaptyv Bio Foundry y el SDK de Python. Úsala cuando el código involucre `adaptyv_sdk`, `FoundryClient` o tareas relacionadas con el cribado y caracterización automatizada de proteínas. Requiere una cuenta de Adaptyv, una clave de API y el paquete `adaptyv-sdk` instalado desde GitHub.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add K-Dense-AI/claude-scientific-skills -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/K-Dense-AI/claude-scientific-skills
Git CloneAlternativo
git clone https://github.com/K-Dense-AI/claude-scientific-skills.git ~/.claude/skills/adaptyv

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

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.

Official docs: docs.adaptyvbio.com/api-reference · llms.txt index · OpenAPI spec

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.

The official API docs use FOUNDRY_API_TOKEN in curl examples; that is the same bearer token — prefer ADAPTYV_API_KEY in Python and new shell scripts for consistency with the SDK.

export ADAPTYV_API_KEY="abs0_..."
curl https://foundry-api-public.adaptyvbio.com/api/v1/targets?limit=3 \
  -H "Authorization: Bearer $ADAPTYV_API_KEY"

Every request except GET /openapi.json requires authentication. Store tokens in environment variables or .env files — never commit them to source control.

Python SDK

Version note: adaptyv-sdk 0.1.0 (beta) is not yet on PyPI — install from GitHub:

uv pip install "git+https://github.com/adaptyvbio/adaptyv-sdk.git"

In a project with pyproject.toml:

uv add "adaptyv-sdk @ git+https://github.com/adaptyvbio/adaptyv-sdk.git"

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
ADAPTYV_ORGANIZATION_ID=your_org_id  # optional

The @lab.experiment decorator and FoundryClient both read ADAPTYV_API_KEY and ADAPTYV_API_URL from the environment when not passed explicitly.

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

import os
from adaptyv import FoundryClient

client = FoundryClient(
    api_key=os.environ["ADAPTYV_API_KEY"],
    base_url=os.environ.get(
        "ADAPTYV_API_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

TypeMethodMeasuresRequires Target
affinitybli or sprKD, kon, koff kineticsYes
screeningbli or sprYes/no bindingYes
thermostabilityMelting temperature (Tm)No
expressionExpression yieldNo
fluorescenceFluorescence intensityNo

Experiment Lifecycle

Draft → WaitingForConfirmation → QuoteSent → WaitingForMaterials → InQueue → InProduction → DataAnalysis → InReview → Done
StatusWho ActsDescription
DraftYouEditable, no cost commitment
WaitingForConfirmationAdaptyvUnder review, quote being prepared
QuoteSentYouReview and confirm the quote
WaitingForMaterialsAdaptyvGene fragments and target ordered
InQueueAdaptyvMaterials arrived, queued for lab
InProductionAdaptyvAssay running
DataAnalysisAdaptyvRaw data processing and QC
InReviewAdaptyvFinal validation
DoneYouResults available
CanceledEitherExperiment 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.

Repositorio GitHub

K-Dense-AI/claude-scientific-skills
Ruta: skills/adaptyv
0
agent-skillsai-scientistbioinformaticschemoinformaticsclaudeclaude-skills

Habilidades relacionadas

content-collections

Meta

Esta habilidad proporciona una configuración probada en producción para Content Collections, una herramienta centrada en TypeScript que transforma archivos Markdown/MDX en colecciones de datos con tipado seguro mediante validación Zod. Úsala al construir blogs, sitios de documentación o aplicaciones Vite + React con mucho contenido para garantizar seguridad de tipos y validación automática de contenido. Abarca todo, desde la configuración del plugin de Vite y compilación MDX hasta la optimización de despliegue y validación de esquemas.

Ver habilidad

polymarket

Meta

Esta habilidad permite a los desarrolladores crear aplicaciones con la plataforma de mercados de predicción Polymarket, incluyendo la integración de API para operaciones y datos de mercado. También proporciona transmisión de datos en tiempo real a través de WebSocket para monitorear operaciones en vivo y actividad del mercado. Úsela para implementar estrategias de trading o crear herramientas que procesen actualizaciones de mercado en tiempo real.

Ver habilidad

creating-opencode-plugins

Meta

Esta habilidad ayuda a los desarrolladores a crear complementos de OpenCode que se conectan a más de 25 tipos de eventos, como comandos, archivos y operaciones LSP. Proporciona la estructura del complemento, las especificaciones de la API de eventos y los patrones de implementación para módulos en JavaScript/TypeScript. Úsala cuando necesites interceptar, monitorear o extender el ciclo de vida del asistente de IA de OpenCode con lógica personalizada basada en eventos.

Ver habilidad

sglang

Meta

SGLang es un framework de alto rendimiento para el servicio de LLM que se especializa en generación rápida y estructurada para JSON, expresiones regulares y flujos de trabajo de agentes utilizando su caché de prefijos RadixAttention. Ofrece una inferencia significativamente más rápida, especialmente para tareas con prefijos repetidos, lo que lo hace ideal para salidas complejas y estructuradas, y conversaciones multiturno. Elige SGLang sobre alternativas como vLLM cuando necesites decodificación restringida o estés construyendo aplicaciones con uso extensivo de prefijos compartidos.

Ver habilidad