The context
A European contract research organisation produces very large volumes of experimental results for its clients, upstream of new drug discovery. The value of that work is not only in producing the data, but in how fast the delivery teams can analyse it and hand it back.
The bottleneck was not scientific, it was computational: processing launched by hand, files moving from one workstation to another, and analyses so slow that people hesitated to re-run them. That hesitation is the real cost, because it reduces the number of hypotheses a team allows itself to explore.
What we did
We industrialised the chain, from the arrival of the results to the way they are handed back.
- Processing industrialised into reproducible pipelines on AWS, triggered automatically when new data arrives rather than run on demand by someone who has to remember. A file landing on S3 is the event that starts everything else.
- A Snowflake warehouse so analyses run against a single queryable reference set, instead of scattered extracts whose freshness nobody can vouch for.
- Reporting for the delivery teams and, beyond them, for their clients: Power BI dashboards for recurring follow-up, and a client portal served through CloudFront behind WAF, with access rights and deliverable state held in DynamoDB. A portal that exposes the data of competing clients to one another is not allowed to be approximate about isolation.
- Similarity search across the compound library. Structures and results are turned into embeddings and indexed in OpenSearch alongside the keyword fields. One query then answers “close to this structure, and assayed after that date”, which no filter can express. That is the question a chemist actually asks, and until then it was answered from memory.
- A data model designed so that adding a new experiment type does not require rebuilding the processing chain.
The outcome
Analyses that took days take minutes. That is not only a time saving: it changes how people work, because re-running an analysis with different parameters becomes unremarkable instead of something you have to justify.
The delivery teams spend their time interpreting results rather than operating the machinery that produces them.