Ask a discovery team why its machine learning model underperformed and the answer usually sits upstream of the model. An IC50 measured at one ATP concentration was pooled with values measured at another. A compound registered as a free base in one study came back as a hydrochloride salt in the next, under a different ID. A plate with a weak signal window passed into the dataset because nobody had written the rule that should have stopped it. None of these are modeling errors, but each one teaches the model something false.
The first AI investment in early discovery should be a results layer that keeps every measurement attached to the conditions that produced it. Teams that build that layer get better models later, and they also get faster answers from their data today, because scientists stop spending afternoons reconciling spreadsheets before they can compare two series.
A number without its conditions is only half a result
Biochemical potency depends on how it was measured. For ATP-competitive kinase inhibitors, the Cheng-Prusoff relationship means a measured IC50 shifts with the ATP concentration in the well, so a value run at the enzyme's Km for ATP and one run at a physiological 1 mM are different quantities that happen to share a column name. Cell-based readouts carry their own context, since cell line, passage range, serum percentage, incubation time and readout chemistry all move the number.
When results travel as a summary table, those conditions usually stay behind in a protocol PDF or in the head of the scientist who ran the study. A model trained on the merged table cannot see them, and neither can a chemist who opens the file six months later. Public resources show the scale of the issue. ChEMBL, the open bioactivity database run by EMBL-EBI, curates millions of activity records from the literature and still records assay types, confidence scores and data validity comments, because so much of the context arrives incomplete.
Quality control belongs in the data, where a model can read it
Screening groups have long used the Z' factor, described by Zhang, Chung and Oldenburg in 1999, to judge whether a plate separates positive and negative controls well enough to trust. Curve fitting adds more signals, such as a Hill slope far from one, a missing top or bottom plateau, or a potency outside the tested concentration range. Baell and Holloway's 2010 work on pan-assay interference compounds added another layer, since some chemotypes show activity through aggregation, redox cycling or reactivity instead of real binding.
Most labs already know these checks. The gap is that results are rarely stored with them. A well-built results layer writes the plate Z', the fit diagnostics and any interference flags beside each value, so downstream users can filter on them instead of rediscovering them. A model can then be trained only on values that passed, or it can learn with the quality signal as an input, and the choice is visible and reviewable.
- 01IngestCollect results where they already live.
- Plate reader exports
- LIMS and ELN records
- CRO study reports
- 02ExtractPull assay conditions into a fixed schema.
- Document parser
- Language model extraction
- Scientist review queue
- 03NormalizeMake results comparable across labs and studies.
- Compound registry lookup
- Unit conversion
- BioAssay Ontology mapping
- 04QualifyAttach quality signals to each value.
- Plate Z prime rules
- Curve fit diagnostics
- Interference flags
- 05UseServe trusted data to people and models.
- Curated results store
- Model training sets
- Retrieval assistant
- Every extracted field links to its source page
- Training sets exclude values missing key conditions
- Audit log of QC rule changes
| Capability | Azure | AWS | Google Cloud |
|---|---|---|---|
| Document extraction | Azure AI Document Intelligence | Amazon Textract | Document AI |
| Results store | Azure Database for PostgreSQL | Amazon RDS for PostgreSQL | Cloud SQL for PostgreSQL |
| Raw file storage | Azure Blob Storage | Amazon S3 | Cloud Storage |
| Model training | Azure Machine Learning | Amazon SageMaker | Vertex AI |
What the pipeline looks like in practice
The first stage pulls raw and processed data from the places it already lives: plate reader exports, the LIMS, electronic lab notebook entries and the study reports a CRO sends back. Language models are useful here in a narrow way. They can read a protocol or a report and extract the conditions into a fixed schema, covering ATP concentration, substrate, enzyme lot, cell line and incubation time, with each field linked to the page it came from so a scientist can check it.
The second stage normalizes. Units are converted, compound identities are resolved to a parent structure with batch and salt recorded separately, and assay records are mapped to a controlled vocabulary such as the BioAssay Ontology so two labs' versions of the same assay are recognized as the same thing. The third stage applies the QC rules and stores the result with its lineage. Only after that does the data feed models or a retrieval assistant that can answer which compounds in a series lost potency in the cell assay relative to the enzyme assay.
The FAIR principles published by Wilkinson and colleagues in Scientific Data in 2016 describe the target well, asking for data that is findable, accessible, interoperable and reusable. The working version is easier to apply at the bench. Every value should carry enough context that a scientist who did not run the experiment can decide whether to trust it.
The limits are organizational as much as technical
Extraction from reports is good but imperfect, and a wrongly captured condition is worse than a missing one because it looks complete. The answer is review queues for low-confidence fields and a rule that nothing reaches the training set without its key conditions populated. Historical data is the hardest part, since older studies often lack the metadata entirely, and teams have to decide whether to quarantine those results or accept them at a lower trust level.
There is also a judgment problem that no pipeline settles. Which assay conditions count as comparable, how strict the Z' cutoff should be and how to treat a compound that is potent but flagged for interference are scientific decisions. The system should encode the decisions a team has made and show where they were applied, while the decisions themselves stay with the scientists.
Where to start
The most useful first project is usually one assay family with real volume, such as a biochemical kinase panel or a primary cell viability screen, taken from raw export to a clean, queryable results store with QC and lineage. It is small enough to finish and large enough to show whether models built on it improve. QueryNow builds this kind of pipeline for discovery teams and the contract research organizations that serve them, inside the client's own cloud environment. Tell us the workflow you want gone, we build it in your environment in two weeks, and you pay $10,000 only after it meets the acceptance criteria you signed off on. Start at /build or read how we approach pharma and life sciences AI.
Ready to ship AI in your organization?
We build one workflow into a working tool in two weeks. You pay $10,000 only after every acceptance criterion you signed off on is met.
One workflow · Two-week build · $10,000, paid on delivery
QueryNow
QueryNow deploys production AI for enterprises on Azure, AWS, or Google Cloud. Founded in 2014, we help pharma, healthcare, manufacturing, and financial services organizations deploy governed AI systems. We build it, you pay when it works.
Learn more about us →


