@curieai/curieai
v0.2.0
Published
The official JavaScript/TypeScript SDK for Curie — inference infrastructure for scientific AI
Maintainers
Readme
curieai
The official JavaScript/TypeScript SDK for Curie — inference infrastructure for scientific AI.
Run biology, chemistry, and physics AI models through one unified API.
Installation
npm install @curieai/curieai
# or
pnpm add @curieai/curieai
# or
yarn add @curieai/curieaiQuick start
import { Curie } from '@curieai/curieai';
const client = new Curie({ apiKey: 'sk-...' });
// Biology: Predict protein structure
const fold = await client.fold('MKTIIALSYIFCLVFA...');
console.log(`Confidence: ${fold.confidence}%`);
// Chemistry: Analyze molecular properties
const molecule = await client.analyzeMolecule('CCO');
console.log(`MW: ${molecule.properties.molecularWeight}`);
console.log(`Drug-like: ${molecule.isDrugLike}`);
// Physics: Predict atomic forces
const forces = await client.predictForces({
elements: ['H', 'H', 'O'],
positions: [[0, 0, 0], [0.96, 0, 0], [0.24, 0.93, 0]],
});
console.log(`Energy: ${forces.energy} eV`);Environment variable
export CURIE_API_KEY="sk-..."import { Curie } from '@curieai/curieai';
const client = new Curie(); // reads from CURIE_API_KEY automaticallyBiology
Fold proteins
const result = await client.fold('MKTIIALSYIFCLVFA...');
console.log(`Confidence: ${result.confidence}%`);
console.log(result.pdb); // Full PDB structureGenerate protein embeddings
const result = await client.embed('MKTIIALSYIFCLVFA...', {
returnPerResidue: true
});
console.log(`Embedding dim: ${result.dim}`);Design protein sequences
const result = await client.design(pdbString, {
numSequences: 5,
temperature: 0.1
});
console.log(result.best.sequence);Chemistry
Embed molecules
const result = await client.embedSmiles('CCO');
console.log(`Embedding dim: ${result.dim}`);Analyze molecular properties
const result = await client.analyzeMolecule('CCO');
console.log(`MW: ${result.properties.molecularWeight}`);
console.log(`LogP: ${result.properties.logP}`);
console.log(`Lipinski compliant: ${result.isDrugLike}`);Translate molecules
// Text to SMILES
const smiles = await client.translateMolecule('aspirin', 'text-to-smiles');
console.log(smiles.output);
// SMILES to text
const text = await client.translateMolecule('CCO', 'smiles-to-text');
console.log(text.output);Physics
Predict atomic forces
const result = await client.predictForces({
elements: ['H', 'H', 'O'],
positions: [[0, 0, 0], [0.96, 0, 0], [0.24, 0.93, 0]],
});
console.log(`Energy: ${result.energy} eV`);
console.log(`Forces: ${result.forces}`);Models
| Category | Model | Method | Slug |
|----------|-------|--------|------|
| Biology | ESMFold v1 | client.fold() | esm/esmfold-v1 |
| Biology | ESM-2 650M | client.embed() | meta/esm2-650m |
| Biology | ProteinMPNN | client.design() | bakerlab/proteinmpnn |
| Chemistry | ChemBERTa-2 | client.embedSmiles() | seyonec/chemberta-2 |
| Chemistry | RDKit | client.analyzeMolecule() | rdkit/cheminformatics |
| Chemistry | MolT5 | client.translateMolecule() | google/molt5-large |
| Physics | MACE-MP-0 | client.predictForces() | cambridge/mace-mp-0 |
| Physics | NequIP | client.predictForces() | mir-group/nequip |
| Physics | DeePMD | client.predictForces() | deepmodeling/deepmd |
Docs
Full API reference: curie.sh/dashboard/docs
