import pandas as pd
data = pd.read_sql("SELECT * FROM research.assay_measurements", connection)
coverage = data.groupby("run")["concentration_um"].nunique()
assert (coverage == 6).all(), coverage

More time fordiscovery., experiments., analysis., results., insights.
A collaborative agentic workbench for scientists.
Book a demoFrom the sample
to the analysis.
Bring Benchling records and instrument measurements into your warehouse. Work with agents and Python in the same workspace to explore the results.
Know where every result comes from.
Trace results back to samples, instruments, and processing code. When a lab’s Python job isn’t connected, the agent writes a plugin that adds it to lineage.
assay_measurements
parsedPrepared measurements keep sample, run, and batch identifiers for notebook analysis.
Snowflake / RESEARCHloaded 3m ago1 to 5 of 5
Impact
Choose a change to see its impact.
Knowledge items
0 to 0 of 0
Plate reader
parsedTags each plate reading with its run and joins it to the Benchling sample registry. The plugin records code provenance, schema, and quality checks.
Custom plugin / Pythonverified 3m ago1 to 5 of 5
Impact
Choose a change to see its impact.
Knowledge items
0 to 0 of 0
The plate-reader measurements are ingested by Python code. I can connect that reader to your workspace.
Plugin creation approved. Creating the plugin now.
The plugin was created successfully. Your instrument reader now appears in lineage, with its processing methods and quality checks attached.
Keep bad data out
of the next experiment.
Write SQL or Python checks, choose when they run and which records they inspect, and get alerts when one fails. Agents diagnose pipeline bugs, verify fixes in an isolated copy, and open a pull request for your review.