CellsWave · MolDyn

MolDyn Documentation

AI-accelerated virtual screening for protease and hydrolase targets. 2.6M ChEMBL compounds, ~17 ms core search time, ~103 ms end-to-end per HTTPS call.

Getting Started

  1. Register at cellswave.com → get your API key
  2. Make your first query:
curl -X POST https://api.cellswave.com/v1/screen \
  -H "X-API-Key: your-key" \
  -H "Content-Type: application/json" \
  -d '{"smiles": "CC(=O)Oc1ccccc1C(=O)O", "top_k": 10}'

Requirements: HTTPS client only. No GPU, no Docker needed.

Health check

No key required; confirms the service is reachable:

curl https://api.cellswave.com/v1/health

Expected response:

{
  "status": "ok",
  "library_size": 2609637,
  "encoder_version": "enc_v1",
  "api_version": "1.0.0"
}

Dock against a protein pocket

curl -X POST https://api.cellswave.com/v1/dock \
  -H "X-API-Key: your-key" \
  -H "Content-Type: application/json" \
  -d '{"pdb_id": "6LU7", "top_k": 100}'

Data Privacy

Data Architecture

API Reference

Base URL: https://api.cellswave.com. Auth: X-API-Key header on every request except /health and /proteins.

MethodPathAuthDescription
GET/v1/healthService, GPU, library readiness
GET/v1/proteinsList cached PDB IDs
POST/v1/screenyesRank library by SMILES similarity (~103 ms)
POST/v1/dockyesRank library against a binding pocket

POST /v1/screen

Client sends SMILES over HTTPS to api.cellswave.com. The query is processed in memory on CellsWave GPU infrastructure; only a SHA-256 hash is retained for abuse detection. End-to-end latency is ~103 ms per call.

FieldTypeRequiredNotes
smilesstringyesQuery ligand as SMILES
top_kintegerno (10)Number of hits. Capped by plan.
methodstringno ("gre")One of gre, boosted, hybrid, pharmacophore

POST /v1/dock

FieldTypeRequiredNotes
pdb_idstringyes4-character PDB code. Auto-downloaded if not cached.
top_kintegerno (100)Number of hits. Capped by plan.
methodstringno ("boosted")Same options as /screen

Plans

PlanRequests / monthtop_k max
Free10010
Starter1,00050
Pro10,000100
Enterpriseunlimited500

Exceeding the request cap returns HTTP 429. Exceeding the top_k cap returns HTTP 422.

Error Codes

Every error has the same shape: {"error": "<slug>", "message": "<human>"}.

HTTPSlugCondition
400invalid_smilesInput preprocessing failed
400invalid_inputMalformed / unresolvable PDB ID
401invalid_api_keyMissing or unknown X-API-Key
422invalid_inputtop_k out of range for plan
429rate_limitMonthly request limit reached
500server_errorUnhandled internal error
503service_unavailableLibrary cache / encoder version mismatch

Examples

Python

import os, requests

headers = {"X-API-Key": os.environ["MOLDYN_KEY"]}

r = requests.post(
    "https://api.cellswave.com/v1/screen",
    json={"smiles": "CC(=O)Oc1ccccc1C(=O)O", "top_k": 10},
    headers=headers,
)
for hit in r.json()["results"]:
    print(hit["rank"], hit["chembl_id"], hit["score"])

JavaScript

const r = await fetch("https://api.cellswave.com/v1/screen", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.MOLDYN_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ smiles: "CC(=O)Oc1ccccc1C(=O)O", top_k: 10 }),
});
const data = await r.json();
Coverage envelope. Validated on 10 DUD-E targets (2026-04-18). Screening-ready (EF@1% ≥ 4) on aspartic proteases (HIV-1 PR, renin, BACE1), classical serine proteases (thrombin, trypsin), and hydrolases (acetylcholinesterase, glucocerebrosidase). Outside the v1.0 envelope: coagulation-cascade serine proteases (factor Xa / VIIa / urokinase, EF@1% < 2); kinases, GPCRs, and nuclear receptors (not characterised). See benchmark report for the full per-target table.

Support

Email [email protected] for: