What they did
Tatsuya Koreeda loaded differential expression results from the public airway RNA-seq dataset (999 genes changed by dexamethasone) into Snowflake and wrote a stored procedure for Gene Ontology enrichment that matched clusterProfiler on all 4,540 terms. He then built an agent with Snowflake's Cortex Code Agent SDK, limited to two tools: SQL against Snowflake and EMBL-EBI's OLS4 MCP server, which serves GO definitions and hierarchies. The system prompt told it to take numbers only from the enrichment procedure and definitions only from OLS4, and to label anything else as outside knowledge. He asked it once, in plain language, to run the enrichment for up and down genes and explain what the treatment did.
How it went
The agent ran the enrichment through SQL, then called OLS4 to look up eight GO terms, and answered in four parts: statistics, ontology meaning, interpretation as hypotheses, and limitations. The statistics matched the stored procedure. Because it read the hierarchy, it noticed that one extracellular matrix term and two of its parents came from the same 28 genes and were one finding, not three. He gives no figures on time or cost.
Worth knowing
Snowflake's built-in Cortex Agent MCP connector needs OAuth and cannot reach OLS4, which has no authentication, so he used the Agent SDK instead; the other route is a stored procedure calling the OLS4 REST API through an external access integration. Searching OLS4 by keyword returns child terms first, so look terms up by GO ID. This was a demo on a public dataset.