Private beta · onboarding archives now

Deploy a scientific data bank
in minutes

Define the shape and semantics of your data. You get a database that validates every deposit, gives every record a permanent address, and answers queries from people and agents.

Tell us your field and we'll read it and reply by email. No spam.

antibodies.example.org
$ amacrin deploy --archive antibodies --domain antibodies.example.org→ validating data model antibody-discovery-v2 … ok→ building 3 hooks, 1 ingester … 4/4 succeeded→ publishing bld_8f3a91c2✓ archive live · 3 features per record https://antibodies.example.org
The problem

Every field wants a PDB.
Almost none get one.

The PDB works because deposition is structured, validation is mandatory, and every record is addressable. Building that takes a decade and a consortium.

  1. 01

    Nobody can find it

    A DOI on a ZIP is not a queryable dataset. Reuse depends on guessing what the columns mean.

  2. 02

    Quality is assumed, not checked

    Without validation at deposition, missing metadata and broken ontology terms surface years later, in someone else's analysis.

  3. 03

    Unfit for training

    Training on public data means months of scraping and normalising, with no record of what was processed by which version of which script.

  4. 04

    The infrastructure outlives the grant

    Someone has to keep the server up after the postdoc leaves. Most portals are gone within three years.

Open source

We built OSA. We host it too.

Open Science Archive is an open source scientific data platform: deposition, validation, records, search and export. Amacrin hosts OSA archives, so you can run a data bank for your field without operating one.

Nothing about your archive is proprietary. Export everything at any time, or take the node in-house and run it yourself.

The platform

One data model, the whole pipeline

You write the data model: record schemas, validation checks, and hooks that compute derived features. Amacrin runs everything downstream of it: deposition, builds, hosting, search and APIs.

  1. 01
    DepositA wizard generated from your schema. Depositors sign in with ORCID.
  2. 02
    ValidateYour checks run on every submission. Failures stay private to the depositor.
  3. 03
    Compute featuresHooks derive embeddings, QC metrics, predictions, versioned per build.
  4. 04
    Publish recordsA record page per SRN, plus semantic search across every schema.
  5. 05
    Serve and federateREST, bulk export, MCP. Other nodes can mirror or fork with provenance intact.

Structured Resource Names

Every record has a stable, versioned address that still resolves in ten years.

urn:osa:antibodies.example.org:ab:AB-04412@3

Your domain, your rules

Public reads by default; you decide who can deposit and who curates. ORCID all the way down, so no new accounts.

antibodies.example.org

Nothing to operate

Compute, database, registry and TLS are ours to keep up. Push a data model and export everything whenever you want.

tls · backups · upgrades
Agent-native

Readable by people and AI

Every archive publishes a skill file describing what it holds and an MCP server exposing search, tables and export. Both regenerate on every build, so an agent that queried you last week picks up today's schemas and records without a client update.

  • Semantic search, not keyword guessing
  • Structured filters over typed fields and features
  • Bulk exports pinned to a build digest
antibodies.example.org/SKILL.mdpublished
---
name: osa-data-antibodies-example-org
description: Antibody sequences with binding
  affinity, expression yield and target
  metadata. Use when answering questions
  like: Which antibodies against PD-1 have
  sub-nanomolar Kd? What VH gene families
  target HER2?
---

## Datasets
| Schema                    | Records |
|---------------------------|---------|
| antibody-sequence@2.1.0   |   7,204 |
| binding-assay@1.3.0       |   3,118 |
mcp.json6 tools live
{
  "mcpServers": {
    "antibodies": {
      "type": "http",
      "url": "https://antibodies.example.org/mcp"
    }
  }
}
Dataset cuts

Take the slice you need. Give it a permanent name.

Most work on an archive starts by narrowing it: the records that pass QC, the assays from one platform, everything since the last release. A cut is that subset, exported with its features computed and given a name that resolves to exactly these rows.

amacrin cut antibodies \  --schema antibody-sequence@2.1.0 \  --where 'target = "PD-1" and qc.status = "pass"' \  --features affinity_kd_nM, expression_yield, embedding \  --format parquet
idaffinity_kd_nMexpression_yieldembedding
AB-00417@20.42118float32[1280]
AB-01186@11.3796float32[1280]
AB-02940@30.09142float32[1280]
AB-04412@32.8571float32[1280]
AB-07356@10.61205float32[1280]
Rows
12,102
Format
parquet · 1.9 GB
Licence
CC-BY-4.0 · 41 labs
SRN
urn:osa:antibodies.example.org:cut:2f9a80@1
Meta-analysis

Filter on real fields

Query typed metadata instead of parsing filenames. If a field is in the schema you can filter on it, and everything that matched passed the same checks.

Training data

Features already computed

Embeddings, QC metrics and predictions come out as columns, versioned with the build that produced them. No preprocessing pipeline to rebuild.

Consortium release

A freeze everyone shares

Publish a cut as the official release and every member works from the same rows. Re-cut later and diff the two to see what changed.

Provenance

Track provenance on every row

Rows in a cut aren't anonymous. Open one and you get the record behind it: the specimen, the lab, the instrument, the licence, and what changed since.

cut 2f9a80urn:osa:antibodies.example.org:ab:AB-04412@3 opened
idaffinity_kd_nMexpression_yieldembedding
AB-01186@11.3796float32[1280]
AB-02940@30.09142float32[1280]
AB-04412@32.8571float32[1280]
SpecimenIgG1 Fab, human framework VH3-23isolated from phage panel P-118 · library size 5×10⁹
AssaySurface plasmon resonanceBiacore 8K · triplicate injections · batch B-07
Deposited byExample Antibody Foundry0000-0000-0000-0000 · 04 Nov 2025
LicenceCC-BY-4.0redistribution permitted, attribution required
Versions@3 current · @2, @1 superseded@3 corrected CDR-H3 sequence, 12 Feb 2026
affinity_kd_nMDerived, not depositedcompute-binding-features · bld_8f3a91c2
AB-07356@10.61205float32[1280]
AB-09103@11.02133float32[1280]
NOTEThe same lookup works from the API and from an agent, so a model can check what it's looking at.
  • Records are versioned, never replacedA correction publishes a new version and keeps the old one addressable. An analysis that used @1 still resolves to exactly what it saw.
  • Corrections find your cutsWhen a depositor revises a record, every cut that contained it is flagged. You find out which models were trained on the old value.
  • Licence terms stay attachedWhat you are allowed to do with a record travels with it through export, mirroring and forking.
Audiences

Who runs archives

Consortia

Collaborate with confidence

Your data model is the contract between member sites. Validation makes it concrete, and every site's contribution stays attributed.

FROs

A quality home for your public data

A hosted archive is the product you were going to build in-house anyway. Validation your funders can point to, and no infrastructure staff on headcount.

Biotech

Get the deliverable you paid for

Agree the data model before the work starts and every CRO batch arrives validated against it. The deliverable lands queryable instead of as spreadsheets you reconcile after the contract closes.

Academics

Publish the data your field never got

Write the data model once and every future deposit inherits validation, search and a permanent address.

Start with one dataset, or bring the whole field

We're onboarding archives one field at a time. Leave your email and what you'd deposit, and we'll get you a slot.

Tell us your field and we'll read it and reply by email. No spam.

Running a consortium or a large release? Talk to us directly.