Lab operations

The lab side of the loop — records, robots and safety

Instrument parsing, ELN and LIMS records, inventory and GHS safety, self-driving campaigns and an offline bench logger — connected to the same projects and evidence ledger as the models.

8
instrument families parsed server-side
plus HPLC/LC report exports
90 s
heartbeat timeout before a node is offline
edge safety interlock
2
voter quorum in collaboration rooms
approvals must outnumber rejections
30 d
default expiry-alert window
expired stock never silently consumed
Instruments & parsers

Vendor files in, typed records out

Upload a vendor file and the orchestrator auto-detects the type from content, or you pass the type explicitly. The result is a typed envelope: parser, instrument type, evidence class, raw metadata, data series, peaks or features, derived properties and warnings.

XRD
Diffraction: peaks, phases, crystallite size

Bruker .raw, Rigaku .ras/.rasx, PANalytical, XRDML, UXD and ASCII XY/CSV inputs. Background subtraction and peak finding, FWHM, Bragg d-spacing, Scherrer crystallite size, and phase matching for common phases (TiO2, Pt, Pd, CeO2, ZnO). Undocumented binary bodies come back as metadata_only with the vendor export path stated, never a fabricated pattern.

GC/MS
Chromatograms and mass spectra

Agilent ChemStation/MassHunter, Shimadzu GCMSsolution and Thermo Trace files (.csv, .txt, .dat, .tic, .ms). Total-ion-chromatogram extraction, trapezoidal peak-area integration with area-percent quantification, and NIST-style library matching — with matchms cosine similarity when that package is installed.

UV-Vis & FTIR
Optical and vibrational spectra

UV-Vis inputs from Shimadzu UVProbe, PerkinElmer UV WinLab, Agilent Cary and Thermo Evolution: absorbance/%T interconversion, lambda-max, and direct or indirect Tauc bandgap fits. FTIR inputs from JCAMP-DX, JASCO, Thermo Nicolet OMNIC and PerkinElmer Spectrum: transmittance and absorbance handling, vibrational band detection, and functional-group annotations including O-H, C=O, C-H, N-H and Brønsted/Lewis acid sites.

NMR & Raman
Shifts, multiplets and Raman peaks

NMR from JCAMP-DX, Bruker TopSpin, Varian VnmrJ and JEOL Delta (.jdx, .dx, .pkn, .csv, .txt, .fid, .ser): chemical shifts in ppm, solvent-peak identification (CDCl3, DMSO, D2O), multiplet splitting and proton-integral normalisation; binary fid/ser files return metadata_only. Raman from Renishaw WiRE, Horiba LabSpec and ASCII: peak picking and S/N estimation, with RamanSPy preprocessing when installed.

Rheology
Flow curves and oscillatory moduli

Anton Paar RheoCompass, TA Instruments TRIOS and Malvern Kinexus exports (.csv, .txt, .rso, .tri, .rfd). Fits for Ostwald-de Waele power law and Herschel-Bulkley, a shear-thinning index, and oscillatory moduli (G′, G″, tan delta, |eta*|) with crossover gel-point detection.

Battery cyclers
Capacity, efficiency and dQ/dV

Bio-Logic EC-Lab, Arbin, Neware BTS and Landt files (.mpt, .csv, .txt, .nda, .ndax, .res, .bcy, .mps). Charge/discharge capacity, coulombic efficiency, capacity retention and differential-capacity redox peaks. Decodable Neware bodies are read in full; Arbin .res and Bio-Logic MPR binaries return an honest metadata_only envelope with export guidance.

HPLC/LC
Chromatography report exports

Waters Empower/Millennium, Shimadzu LabSolutions and Thermo Chromeleon peak-table reports are parsed as EXTRACTED rows, with the vendor RAW/UNI/LCD/CMBX binary listings returning metadata_only where they cannot be decoded. Unknown vendors are refused with a clean error — the parser never guesses.

Measured rows, computed features.Parsed measurement rows default to MEASURED (E0), and derived properties computed from that raw data are labelled COMPUTED. Extraction parsers — JCAMP-DX, Agilent CSV, Bio-Logic settings text and the HPLC vendor reports — tag their rows EXTRACTED (E1), so a vendor extraction is never confused with a live measurement.
Binary files are answered honestly.Listed RAW formats never fail with a generic rejection: they return a 200 metadata_only or partial envelope with binary/parseable flags, an export path (for example DIFFRAC.EVA to XY/CSV), stream listings where available, and empty peaks — never a fabricated waveform.
ELN & record integrity

A notebook you can verify, with claims kept precise

The ELN is the digital-thread layer. Records are versioned, instrument results attach to their source sample, and e-signatures form a tamper-evident chain that anyone can re-verify.

Tamper-evident, not certified.E-signatures are 21 CFR Part 11-lite: the compliance layer returns regulatory_claim: false and scope integrity-draft. Treat it as a tamper-evident ledger — it is not ISO 17025, GLP or 21 CFR Part 11 certification, and the validation pack is an executable checklist rather than a certificate.
LIMS & lineage

Every sample knows where it came from

Samples, aliquots, derivatives and plates are connected records: transfers carry volume and dilution, lineage is a directed graph, and conservation is checked rather than assumed.

Inventory & safety

Stock, hazards and the cabinet around the corner

Inventory pairs quantity tracking with the safety data that decides where a reagent may live. Hazard information comes from a CAS library; automated SDS text is a screening aid, not a substitute for the supplier sheet.

Barcodes & QR

Structured identifiers, scanned at the bench

Sample, plate, lot and experiment codes are checksummed, rendered as vector graphics, and resolvable from a camera scan or manual entry.

  • Structured IDs — Samples (MF-SMP-…), plates (MF-PLT96-…), lots (MF-LOT-…) and experiments (MF-EXP-…), each carrying a short checksum derived from SHA-256.
  • Renderers — Vector SVG Code-128 barcodes with the mandatory modulo-103 checksum, and QR matrices whose payload can be JSON.
  • Validation — validate_code() recomputes the checksum; a damaged label scans as invalid rather than resolving to the wrong record.
  • Scanning — The camera scanner captures via WebRTC and decodes with the BarcodeDetector API, with torch toggle and manual entry as the fallback when the browser cannot decode.
One identifier, every surface.The same structured code is used by inventory lots, ELN samples and plate records, so a scan resolves to the entity type and validity before any data is written — and a mismatched checksum stops the lookup.
Self-driving lab

A closed loop with a safety interlock on every action

The SDL layer reuses the platform’s active-learning, robotic-protocol and edge-safety services rather than duplicating them: candidates are proposed, protocols are generated and validated, results pass a physical-plausibility gate, and the loop advances on accepted measurements.

The loop
Plan, protocol, result, advance

plan_round proposes candidates (exploit via expected improvement or top predicted value, explore via maximum uncertainty, or cold-start space-filling). generate_protocol turns a candidate into an Opentrons OT-2/Flex script with safety bounds injected. ingest_result applies the quality gate, and should_advance moves to the next round once the accepted-result threshold (default four) is met.

Quality gate
Physically plausible or flagged for a human

Per-target bounds are enforced at ingest: conversions, selectivity and yield 0–100; temperature −50 to 2000 °C; pH 0–14; pressure 0–1000 bar; viscosity above zero; volume 0–1000 µL. In-range values are appended to the campaign dataset as MEASURED. Out-of-range or non-numeric values are recorded as flagged and require human approval — they never silently join the training set.

Edge safety
Heartbeats, envelopes and a platform E-stop

Registered edge nodes stream telemetry (temperature, chamber pressure, flow rate, shake RPM, door state) and are considered offline after 90 seconds without a heartbeat. Values are checked against per-node safety envelopes; critical breaches such as over-temperature or over-pressure auto-trip the software E-stop across the platform, and non-finite readings cannot bypass the check.

Human sign-off
Reset is a checklist, not a click

Lifting the E-stop requires an authenticated operator, an explicit confirmation of the physical safety checklist and a justification, recorded as an append-only hash-chained sign-off. Action gates classify operations LOW/MEDIUM/HIGH; MEDIUM and HIGH wait for human approval, and gates cannot be approved while the E-stop is active.

Dispatch requires validation.A generated protocol must pass AST syntax validation before the candidate is marked dispatched; candidates with no usable volume parameters receive a labelled surrogate protocol instead. Results may only be ingested for a dispatched candidate, and accepted results are guarded by idempotency keys so a replayed submission cannot double-count.
Schedule before you run.An offline scheduler preview compares FIFO, predicted-value priority and an EOS-style overhead model — paper planning with no hardware calls, so a campaign can be sequenced before anything moves.
Collaboration

Review rooms where decisions are signed, not implied

Live presence, candidate locking and quorum voting feed a hash-chained decision ledger — so the record shows who was there, what they saw and what they approved.

Bench & mobile

The bench logger works when the network does not

The bench logger records validation runs against generated recipes, and its mobile companion is an installable offline-first PWA: a lost connection delays the sync, not the experiment.

Start from a generated recipe, log conditions, measurements, temperature ramps and observations, and mark whether the prediction was validated. Logged results export to a dataset and flow back into modelling through the lab-measurements API.

  • Offline-first — Records are written to an IndexedDB store with a pending-sync status, so a log survives a lost connection; when connectivity returns the queue is pushed and marked synced.
  • Cached recipes — A recipe library is stored offline alongside the queue, so the bench does not depend on the network to know what to run.
  • Voice & barcode — Voice notes are transcribed into measurements, and the camera barcode scanner captures sample codes in the field.
  • Canonical route — The logger lives at /studio/bench; older /studio/mobile-logger links redirect there.
Nothing is lost between bench and model.Offline logs stay in IndexedDB until connectivity returns, and a partial sync reports per-record errors rather than failing silently. Measurement records carry their operator, instrument and notes so the model sees provenance, not just numbers.
FAQ

Straight answers about records, robots and safety

Do imported instrument results count as measurements?
Parsed measurement rows are MEASURED, and features computed from that raw data are labelled COMPUTED. Vendor-file extraction parsers (JCAMP-DX, Agilent CSV, Bio-Logic settings, HPLC reports) tag rows EXTRACTED, so you can always tell a live measurement from an extraction.
Can I open a Bruker .raw or Bio-Logic .mpr directly?
Listed binary formats return a 200 metadata_only or partial envelope with the header extraction, parseable flags, stream listings where available, and an export path — never a fabricated curve. ASCII exports from the vendor software always parse in full.
Are the e-signatures legally validated?
No — and the platform says so. E-signatures are hash-chained, immutable records (21 CFR Part 11-lite), and the compliance layer returns regulatory_claim: false with scope integrity-draft. Use them as a tamper-evident ledger, not as regulatory certification.
How does the self-driving lab stop a bad measurement entering the model?
Every ingested result is checked against per-target physical-plausibility bounds. In-range values are appended to the campaign dataset as MEASURED; out-of-range or non-numeric values are flagged for human approval and are never silently added to the training set.
What does the E-stop actually stop?
Telemetry is validated against per-node safety envelopes. Critical breaches auto-trip a software E-stop across the platform, and resetting it requires an explicit checklist confirmation plus a justification recorded in a hash-chained sign-off — a gate is never defaulted open.
What happens to a quorum vote with one approval?
Nothing auto-approves. The quorum requires at least two voters and strictly more approvals than rejections; sign-off additionally requires an approved or locked candidate, and demo placeholders cannot be signed off at all.
Does the mobile logger need a connection at the bench?
No. Records are cached in IndexedDB with a pending-sync status and sync when connectivity returns, with per-record errors on a partial sync. The canonical page is /studio/bench.

Close your bench-to-model loop

Record runs, parse the instrument output, keep the sample lineage intact, and feed the cleaned measurements straight back into prediction and optimization.