Every experiment,
accounted for.

ChemCellar is an open-source platform for registering and managing compounds, analysing screening campaigns and deciding what to make next, self-hosted on infrastructure you control.

  • Registration
  • Search
  • Protocols
  • Screening
  • SAR workbench
  • Campaigns
  • Inventory
Open sourceAGPL-3.0 license, public repository.
PostgreSQL + RDKitChemistry lives in the database.
Docker ComposePublished images, for the release you choose.
FIG. 1Run R-0142 | EGFR kinase | 384-well | 10-point dose responseZ′ 0.81
CC-004217BATCH 02 | I13–J22 | n = 2
MW446.91
cLogP4.28
IC5033 nM
Hill slope1.05

One record, from registration to decision.

The structure you register is the same record your assay results, SAR tables and freezer locations point to. Nothing is copied between systems, so nothing drifts.

1CompoundCC-004217
(i)register
2BatchB02 | 12.4 mg | −20 °C
(ii)plate
3RunR-0142 | 384-well
(iii)fit
4ResultIC50 33 nM | Z′ 0.81
(iv)decide
5DecisionStage: Lead

Reagents and conditions: (i) standardize, strip salts, check for duplicates; (ii) weigh, barcode, dispense at ten concentrations; (iii) four-parameter fit, Z′ ≥ 0.5; (iv) stage criteria, reviewed by the team.

The same molecule is registered once.

Draw it, paste it or upload a file. ChemCellar standardizes the structure, records the salt, and, if the compound is already in the cellar, adds your material as a new batch of it.

Register compoundInput / Preview / Batch / Summary
Project: EGFR-2
As drawn
COc1cc2ncnc(Nc3ccc(F)c(Cl)c3)c2cc1OCCCN1CCOCC1.Cl
Registered parent
  • Salt stripped: HCl, recorded on the batch
  • Charges neutralized, parent extracted
  • InChIKey XGALLCVXEZPNRQ-UHFFFAOYSA-N
This structure is already registeredCC-004217 / registered 2 Mar 2026 / 1 batch
Add as batch 02
  • STANDARDIZEOne canonical parentSalts and charges handled by the ChEMBL structure pipeline.
  • DEDUPLICATEStereo-aware identityMatched on InChIKey: enantiomers stay distinct, common tautomers are treated as one.
  • BULKFrom one compound to a libraryImport SDF, CSV or Excel with a preview before anything is written.

An assay catalog that stays navigable.

Assay lists rot: near-identical protocols, run details baked into names, five spellings of one category. ChemCellar is designed so that does not happen, without telling anyone how to name things.

Protocols/ Library
Group by: Target ▾New protocol

Target

  • EGFR12
  • HER27
  • ABL19
  • BRAF5

Assay format

  • Biochemical11
  • Cell-based8

Detection

  • ADP-Glo7
  • HTRF6
  • CellTiter-Glo6

Status

  • Active16
  • Draft3
  • Retired4
EGFR12 protocols
EGFR kinase, ADP-GloBiochemical / ADP-Glo / IC50, % inhibition42 runsZ′ 0.79v3
EGFR L858R/T790M kinaseBiochemical / HTRF / IC5017 runsZ′ 0.74v2
A431 proliferationCell-based / CellTiter-Glo / GI5023 runsZ′ 0.68v4
HER27 protocols
HER2 kinase, ADP-GloBiochemical / ADP-Glo / IC5031 runsZ′ 0.77v2
BT-474 proliferationCell-based / CellTiter-Glo / GI5012 runsZ′ 0.66v1
This looks like a run of an existing method

“EGFR kinase ADPGlo 10pt” shares its readouts and its target with EGFR kinase, ADP-Glo (v3).

Log a run of thisDismiss
  • REUSESuggested, never blockedWhen a new protocol resembles an existing one, you are shown it and you decide.
  • NAVIGATEFacets with live countsSlice by target, format, detection, organism or status.
  • VERSIONMethods change, history staysReadouts and conditions are versioned with the protocol.

From plate reader to fitted curve.

Import a run, check the plate, fit the curves, lock the data. Every value keeps its link to the well, the batch and the compound.

  • IMPORTOne import, any layoutPlate files or summary tables. The original file is kept with the run.
  • QUALITYZ′ and controls on every plateSee a bad plate before it becomes a bad decision.
  • FITCurves you can inspect and correctExclude a point, refit, and keep the history of why.
  • LOCKHit criteria with an authorWho set the threshold, and when, is part of the record.
R-0142EGFR kinase, ADP-Glo / 384-well / 14 Aug 2026
Z′ 0.81Locked
CC-004217Wells I13–J22 / n = 2
IC5033 nM
Hill slope1.05
Top98.4
R²0.994

See which change mattered.

Map a whole library by chemical similarity, colour it by potency, and draw around the region that interests you. This map is live: drag across it to make your own selection.

Cluster mapEGFR-2 library | 1,920 compounds | Morgan fingerprints
Drag to draw your own lasso
pIC50 59
SCAFFOLD TREESeries, organised for youCompounds grouped by shared ring systems, at library scale.
R-GROUP TABLEEvery substituent against every assayPick a core, and the series lines up as a heatmap.
CLUSTER MAPDraw around what you wantLasso a region of chemical space and save it as a collection.

Every promotion has a reason.

A campaign pulls results from the protocols you choose and walks compounds through named stages. Criteria do the routine work. People make the calls, and the call is recorded.

EGFR-2 / Primary to lead5 channels / 3 libraries
OpenPreview as published
1,920
Screened
3 libraries
214
Primary hit
≥ 50 % at 10 µM
38
Confirmed
IC50 ≤ 1 µM
12
Selective
HER2 / EGFR ≥ 10×
6
Lead
Reviewed
IDEGFR IC50HER2 IC50SelectivityA431 GI50Stage
CC-0041882.0 nM> 10 µM> 5,000×110 nMLead
CC-00421733 nM3.7 µM112×80 nMLead
CC-0044156.0 nM46 nM7.7×35 nMConfirmed
CC-004530500 nM> 10 µM> 20×NDPrimary hit
OverrideCC-004217 promoted to Lead: “Potency confirmed in the orthogonal binding assay.”
  • STAGESA funnel you defineName the stages and set the criteria that move a compound forward.
  • JUDGEMENTPromote or demote, with a reasonOverrides are allowed, visible, and attributed.
  • OUT OF RANGE“> 10 µM” is not 10 µMA value that cannot prove a criterion does not pass it.

Know where every milligram is.

Batches, samples and plates are tracked from synthesis to the freezer box, and out again when they are loaned, requested or shipped.

  • LOCATEFreezer, rack, box, positionBrowse storage the way it is physically laid out.
  • MOVELoans, requests and shipmentsChain of custody from your bench to a partner lab.
  • MAKESynthesis requestsAsk for more, assign it, and follow it to a new batch.
  • SCANKiosk mode at the benchBarcode stations for check-in and check-out.
Inventory/ Storage / Box 14
58 of 81 positions filled
Location
Freezer 2 (−20 °C) / Rack B / Box 14 / C7
CC-004217-B02C7
Amount
12.4 mg of 20.0
Purity
99.1 % (LC-MS)
Salt
HCl, 1 eq
Source
Synthesis SR-0088
  • Loan2.0 mg to Assay Labdue 14 Oct
  • ShipmentSH-0031 to partner sitein transit
  • RequestSR-0102 resynthesis, 50 mgassigned

The details are the product.

Most of what makes discovery data trustworthy is small. These are decisions ChemCellar makes the way a careful scientist would.

A “>” stays a “>”

A result reported as “greater than” keeps its qualifier through every table, criterion and export.

Potency averages on the log scale

Geometric means and fold-range across runs, with a flag when runs disagree by more than tenfold.

Identity is stereo-aware

Duplicates are matched on InChIKey. Enantiomers are never merged into one compound.

The raw file stays with the run

Every import keeps the original file, so a curve can be defended months later.

Thresholds have an author

Hit criteria record who chose them and when, and freeze when the run is locked.

Nothing disappears quietly

Changes land in an audit trail that cannot be edited. Deletes show what they will affect first.

Your data never leaves the building.

Discovery data is the project. ChemCellar is built so the group doing the science is the group holding the keys.

OpenEvery line of code is public. Read it, audit it, fork it.
YoursRuns on your hardware, with sign-in through your own identity provider.
PortableExport everything, any time, in open formats.
How self-hosting works →
$ git clone https://github.com/sidxz/cellar
$ cd cellar && cp .env.example .env
  # point it at Duar and your identity provider
$ make prod-up

✔ postgres   RDKit cartridge      healthy
✔ migrate    schema at head       done
✔ backend    :8000                ready
✔ frontend   :3000                ready

Try it with real chemistry.