<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Turbine AI]]></title><description><![CDATA[turbine.ai]]></description><link>https://blog.turbine.ai</link><image><url>https://substackcdn.com/image/fetch/$s_!b15y!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1452ecd3-7635-4c10-8d6f-0b0aeda38363_200x200.png</url><title>Turbine AI</title><link>https://blog.turbine.ai</link></image><generator>Substack</generator><lastBuildDate>Mon, 18 May 2026 04:36:47 GMT</lastBuildDate><atom:link href="https://blog.turbine.ai/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Turbine AI]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[turbineai@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[turbineai@substack.com]]></itunes:email><itunes:name><![CDATA[Turbine AI]]></itunes:name></itunes:owner><itunes:author><![CDATA[Turbine AI]]></itunes:author><googleplay:owner><![CDATA[turbineai@substack.com]]></googleplay:owner><googleplay:email><![CDATA[turbineai@substack.com]]></googleplay:email><googleplay:author><![CDATA[Turbine AI]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A cautionary tale on biological truths]]></title><description><![CDATA[or how your textbook lies]]></description><link>https://blog.turbine.ai/p/a-cautionary-tale-on-biological-truths</link><guid isPermaLink="false">https://blog.turbine.ai/p/a-cautionary-tale-on-biological-truths</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Fri, 13 Mar 2026 14:21:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!piaj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p>Your biology textbook lies. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!piaj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!piaj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!piaj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!piaj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!piaj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!piaj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg" width="403" height="302.25" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:1280,&quot;resizeWidth&quot;:403,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;The cake is a lie. Lie, High resolution wallpaper, Xiaomi wallpaper&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="The cake is a lie. Lie, High resolution wallpaper, Xiaomi wallpaper" title="The cake is a lie. Lie, High resolution wallpaper, Xiaomi wallpaper" srcset="https://substackcdn.com/image/fetch/$s_!piaj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!piaj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!piaj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!piaj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21ea804c-a1e4-4909-8092-56e1bb1b4799_1280x960.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Image from: https://wallpapercave.com/w/wp11528256</figcaption></figure></div><p>By implication. <br>The cell you learned so much about in college and grad school <em>doesn&#8217;t exist</em>.</p><p>Let me tell you a story and we&#8217;ll get back to this.</p><h3>Biological Truth Benchmarking</h3><p>In the early days of Turbine, our model was a hand-wired signaling graph, painstakingly tuned to reproduce textbook behavior. It was fragile and<em> </em>at best passable in terms of predictive performance<em>, </em>but people using the simulations knew exactly what was going on inside.</p><p>Then we started using AI to do the wiring. </p><p>We shattered previous performance ceilings, but also mechanistic expectations along with them. When biologists looked into the pathway activation patterns, they were alarmed. The virtual cell was clearly doing the wrong thing in response to drugs.</p><p>It was not a surprising outcome - from the AI&#8217;s perspective the whole protein graph was merely a bunch of tunable parameters to fit a million data points with. And there are a <em>lot</em> of ways to fit with a million data points with tens of thousands of parameters.</p><p>OK, so we need a way to guide the AI. But how?</p><p>We started writing a set of <em>textbook</em> rules.</p><p>Suppose protein A and protein B are both required to activate protein C, and C has no other inputs. Any wiring where C activates when only A or only B is present must be prohibited.</p><p>We crafted more than a thousand such rules and called them <strong>Biological Truth Benchmarks, or BTBs for short</strong>. Here are a few examples.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OXUk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OXUk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 424w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 848w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 1272w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OXUk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png" width="586" height="304" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:304,&quot;width&quot;:586,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952133?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OXUk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 424w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 848w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 1272w, https://substackcdn.com/image/fetch/$s_!OXUk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcf5bab1a-11e8-4229-9026-e46e6c921c96_586x304.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A few of the G1 cell cycle entry BTBs from the past.</figcaption></figure></div><p>As you see, we quickly had to realize that real protein interactions are much messier. Pathways have interactions, so many <em>if</em>s and <em>yes-but</em>s that rules like these cannot fully capture (the &#8220;<a href="https://blog.turbine.ai/p/ic50-is-a-deep-rabbit-hole">biological context</a>&#8221;).</p><p>Still, it&#8217;s better than nothing, right?<br>So we started building these rules into the <a href="https://en.wikipedia.org/wiki/Loss_function">loss function</a>.</p><p>But given the lot of <em>if</em>s, how strongly should the model obey them? We didn&#8217;t know the exact cell lines in which these rules were originally established. Even if we did, they were measured in only a handful of cellular contexts, making them a drop in the ocean compared to other training data. </p><p>So we decided that each rule should hold in the <em>majority</em> of cells. </p><p>For an ML engineer, this is a horrifying criterion. Optimization can no longer happen independently per sample. The order of samples starts to matter. Sweat and tears were had. But eventually a working setup emerged.</p><p>And the results were underwhelming.</p><p>Training was much harder, performance didn&#8217;t improve, and many horrible mechanistic quirks remained.</p><h3>There is no general cell</h3><p>Investigation revealed that in clear contrast to what we wanted, performance and BTB scores were <em>disconnected</em>. You can have excellent predictive performance with terrible BTB scores (which is where we started) but also excellent BTB scores with terrible predictive performance.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AXAR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AXAR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 424w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 848w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 1272w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AXAR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png" width="1042" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1042,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:500314,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952133?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86d6a2a0-799f-479c-b469-c2b2d5e5b1d2_1770x933.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AXAR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 424w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 848w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 1272w, https://substackcdn.com/image/fetch/$s_!AXAR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83c75bc2-cd4e-49d8-bc90-27664dfc0a9b_1042x813.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Good textbook biology does not make for better generalization performance (and <em>vice versa</em>). The image shows two example sentences illustrating that the success of BTBs has no bearing on phenotypic outcome - both wrong and good predictions have very close BTB success rates.</figcaption></figure></div><p><br>Which defeats the whole purpose.<br>Worse, there was a <em>trade-off</em> in trainings between BTB and viability performance. </p><p>Some argued that performance didn&#8217;t matter if the mechanism is more correct. But if the performance degrades<em>, </em>the model generalizes <em>less. </em>And if it generalizes less, it is<em> &#8212;</em> by definition &#8212; capturing <em>less</em> of cells&#8217; internal workings<em>.<br><br></em>This is deeply counterintuitive &#8212; if the model obeys more of the <em>scientifically established </em>rules, how can it generalize worse?</p><p>Because<em> </em><strong>scientific truths are themselves </strong><em><strong>overgeneralizations </strong></em><strong>of the underlying data</strong><em><strong>.</strong></em></p><p>Science is built by humans, for humans. It&#8217;s an explicit job of science to compress the messy, complicated reality into understandable decision rules. Each rule, individually, would be a sound decision in the context it was derived.</p><p>It blows up when you start combining these rules.</p><p>Our mistake was saying that each rule should work in the majority of the cells without precisely defining said majority.</p><p>Because if you just optimize <em>any</em> majority (and the rule indeed applies to roughly a majority), you&#8217;ll get, on average, <strong>half the cell lines wrong </strong><em><strong>with each rule</strong></em>.</p><p>With 1000 rules the chance of getting any appreciable amount cell lines right for most rules is, for most intents and purposes, <strong>zero</strong>.</p><p>So by training to BTBs, we were <strong>explicitly <a href="https://blog.turbine.ai/p/ic50-is-a-deep-rabbit-hole">teaching the wrong idea</a></strong> to the machine. The idea of<strong> the general cell described in the textbooks</strong> to which all rules apply equally.</p><p>But that general cell doesn&#8217;t exist. <strong>There is no single cell in which all these rules are simultaneously true.</strong> Some rules will be observable in a certain type of cell, but not others &#8212; there will always be some cell-specific activity that interferes with some rules. </p><p>The <em>pattern of which rules apply where</em> is precisely what distinguishes cell types. It is the keystone of predictive performance.</p><h3>Now what?</h3><p>If you want mechanistic correctness, you need <em>mechanistic ground truth.</em> <br>Post-treatment RNASeq, protein phosphorylation assays &#8212; something that gives you an additional trace inside the cell besides your endpoint.</p><p>The implication is unsettling, but also fascinating: real biology is much more complex than what can be contained by textbooks &#8212; most of that world is still waiting to be discovered.</p><p>Does this mean we should fire the experts and just collect more data? </p><p>Of course not.</p><p>First, <strong>you need the experts to match the right ML metric to the downstream application</strong> &#8212; Does a better score on your chosen metric give results they&#8217;re happier using? If not, you are optimizing the wrong objective.</p><p>Second, humans are horrible detecting if a fact is true &#8212; that&#8217;s what rigorous metrics are for. But <strong>we&#8217;re remarkable in detecting when something feels off, </strong>much better than any predefined ML metric. </p><p>So that&#8217;s the workflow I&#8217;m trying to drive in-house: <br>When experts detect a smell, capture it in data. <br>Make sure the metric is sensitive to those new examples. <br>Optimize against that expanded ground truth and iterate if needed. </p><p>And assume as little as possible. </p><p>As we got closer to correctly simulating biology, one textbook assumption after another fell apart. First the fixed-form equations, then the fixed activity patterns, and finally even the graph abstraction itself. </p><p>But that&#8217;s a story for another time.</p><p>Thanks for all that work 3 years ago, <strong>Laszlo Mero</strong>, <strong>Csilla Hegedus</strong>, <strong>Dora Kallai</strong> and <strong>Robert Sipos</strong> (and the reviews for <strong>Imre Gaspar</strong> and <strong>Balint Paholcsek)!</strong></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Make multimodality work for you, not against]]></title><description><![CDATA[What are we assuming in a multi-modal training? What can you measure?]]></description><link>https://blog.turbine.ai/p/make-multimodality-work-for-you-not</link><guid isPermaLink="false">https://blog.turbine.ai/p/make-multimodality-work-for-you-not</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Wed, 25 Feb 2026 15:02:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tXrl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p>Large-scale RNA data generation is starting to show diminishing returns. So, naturally, <em>multimodality</em> is starting to look very attractive.</p><p>After all, RNA is just one slice of reality. If we want to be able to build a <a href="https://blog.turbine.ai/p/what-can-virtual-cells-do-for-you">general virtual cell</a>, RNA alone may not be enough. So it makes sense to collect and add other types of data out there. More data could only improve our results, right?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tXrl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tXrl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tXrl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg" width="575" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:575,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tXrl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tXrl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4158d4d6-cc53-4faf-832f-8f74d3dbf461_575x450.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Illustration gracefully lifted from <a href="http://blogs.ugidotnet.org/luKa/archive/2009/11/23/the-six-blind-men-and-the-elephant-again.aspx">here</a></figcaption></figure></div><p>Well, not necessarily<em>.</em> If you just mindlessly add multiple types of data to a training, it can just blow up, drastically decreasing performance. </p><h3>A case in point</h3><p>One of our teams was recently training a new model to power virtual assays for drug target discovery.</p><p>We didn&#8217;t just want to predict the overall effect of knocking out a gene, DepMap already measured that. We wanted something that can predict what happens inside the cell when that gene is knocked out.<br>A DepMap-wide <a href="https://en.wikipedia.org/wiki/Perturb-seq">Perturb-seq</a>, if you will.</p><p>The obvious starting point for the training was to add DepMap and Perturb-Seq data together, and see what happens.</p><p>This.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UR0L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UR0L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 424w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 848w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 1272w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UR0L!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png" width="1200" height="416.2087912087912" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b09cfa72-c656-440b-a599-ee31095935a5_1691x587.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:505,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:240757,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UR0L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 424w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 848w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 1272w, https://substackcdn.com/image/fetch/$s_!UR0L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb09cfa72-c656-440b-a599-ee31095935a5_1691x587.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">First training performance on RNA only vs combined data. We only calculate correlation between the true and predicted RNA gene levels for samples where the RNA patterns are relatively stable to make sure we&#8217;re not trying to fit noise.</figcaption></figure></div><p>That is, instead of improving (or, in the worst case, doing nothing), the performance <em>dropped</em> significantly when the model tried to combine the two data types.</p><p>After spending some time chasing the culprit (as the two datasets are hard to compare due to being different readouts), the team came up with the following plot:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kx4W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kx4W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 424w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 848w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 1272w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kx4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png" width="460" height="366.19335347432025" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:527,&quot;width&quot;:662,&quot;resizeWidth&quot;:460,&quot;bytes&quot;:58409,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kx4W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 424w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 848w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 1272w, https://substackcdn.com/image/fetch/$s_!kx4W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb89ca398-79f6-4542-bac4-7c6fbb17b324_662x527.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This heatmap shows the effect of knocking out a single gene (y-axis, lower is &#8220;more dead&#8221;) versus how much the molecular state of the cell changed in the RNA readout (L1 norm of the differential expression, x-axis). A correlation this small is counter-intuitive - why do changes that lead to cell death rarely induce large RNA swings?</figcaption></figure></div><p>revealing that, even <em>in the ground truth data</em>, how much the RNA levels change and how the cells fare seem quite unrelated.<br>This doesn&#8217;t make too much sense. Surely knocking out a gene that eventually kills the cell should start a cascade of repair processes which should be visible in RNA.<br>Either our metric (using L1 norm) is wrong, or the data doesn&#8217;t line up - that is, the biology is very different.</p><p>Different biology was a plausible explanation as the gene effects are measured in a 21-day assay, while the Perturb-seq experiments were generated in different labs, different setup, 7 days after transduction.</p><p>But if there&#8217;s no shared biology at all, there&#8217;s no way to connect these modalities together.</p><p>We got lucky. In the end, what was missing is a simple correction on cell counts:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!eATY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!eATY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 424w, https://substackcdn.com/image/fetch/$s_!eATY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 848w, https://substackcdn.com/image/fetch/$s_!eATY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 1272w, https://substackcdn.com/image/fetch/$s_!eATY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!eATY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png" width="462" height="371.97280966767374" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:533,&quot;width&quot;:662,&quot;resizeWidth&quot;:462,&quot;bytes&quot;:56154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!eATY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 424w, https://substackcdn.com/image/fetch/$s_!eATY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 848w, https://substackcdn.com/image/fetch/$s_!eATY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 1272w, https://substackcdn.com/image/fetch/$s_!eATY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1342b11f-00c3-48d1-8a72-9aebda74c3f2_662x533.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The effect of knocking out a single gene (y-axis, lower is &#8220;more dead&#8221;) and how much the molecular state of the cell changed in the RNA readout (L1 norm of the differential expression, x-axis) are much better correlated after cell count correction. It&#8217;s not perfect, but I&#8217;m more willing to chalk up this level of mismatch to the L1 norm being an imprecise metric.</figcaption></figure></div><p>and after training on the corrected data, we got all the missing performance back, maybe<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> even some more:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wfe2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wfe2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 424w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 848w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 1272w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wfe2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png" width="626" height="366.70601092896175" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:536,&quot;width&quot;:915,&quot;resizeWidth&quot;:626,&quot;bytes&quot;:114976,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wfe2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 424w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 848w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 1272w, https://substackcdn.com/image/fetch/$s_!wfe2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8667762-890d-4a34-817f-a889ae4ca4bf_915x536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">First training on combined data after cell count correction. Looks much better.</figcaption></figure></div><p>So there <em>was </em>a way to make the modalities work together despite the obvious differences in protocol.</p><p>That&#8217;s what seems to be the core question at play when building something multimodal: <strong>am I measuring the same biology when putting two datasets together?</strong></p><h3>The elephant in the room</h3><p>Which got me thinking. Is there a way to generally quantify how good your assumption of shared biology is?</p><p>Imagine biology as cells moving on some kind of latent manifold describing the internal cell state. Then every modality is a projection, a lower dimensional representation of that mathematical surface.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IpnW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IpnW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 424w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 848w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 1272w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IpnW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png" width="1404" height="1049" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1049,&quot;width&quot;:1404,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:801172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/186952198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IpnW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 424w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 848w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 1272w, https://substackcdn.com/image/fetch/$s_!IpnW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8402250-a49e-43b8-89ca-a7eca150f060_1404x1049.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can collect as many projections as your budget allows, but you never get to see the surface itself. Hence the elephant and the blind men.</p><p>In theory, if your surface is smooth, and your sampling is dense enough, you <em>could</em> reconstruct the blue surface close enough to recover the true &#8220;working manifold&#8221; of biology.</p><p>You know you&#8217;re close when you can reliably predict across all modalities from just a few of them - RNA to phenotype, proteome to epigenome, etc.</p><p>But to do that, you need to learn which regions of the green space are close to which regions of the red space in the original blue space. <br>Which means points that are somehow <strong>externally paired </strong>in the training data.</p><p>That&#8217;s why <a href="https://www.linkedin.com/posts/ron-alfa_generating-multimodal-human-data-noetik-activity-7424164868423081985-IvcC?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAUTrygBp5fDHh2HP62vMCzGbtIpIH_Brag">Ron</a> argued so passionately about paired data. </p><p>Truly, in an ideal world, every sample would come with every modality.<br>But most molecular measurements are destructive. So every pairing decision is fundamentally an assumption of shared biology &#8212; an assumption that the two measurements originate from the same spot in the blue surface. <br>It&#8217;s a stronger assumption if the data comes from the same patient, lab and protocol, but an assumption nonetheless.</p><p>On the other hand, <strong>sometimes data that look wildly unpaired can still work</strong>, as the example above shows.</p><p>So what actually makes multi-modal data work? I think it&#8217;s the following assumptions.</p><p>If the data doesn&#8217;t exist, following these could be a structured way to build it, testing each assumption as you iterate on your protocols.</p><p>If the data already exist, maybe it&#8217;s worth trying the opposite: train first. If it fails, start tracing back the chain of assumptions and see whether there&#8217;s something you can fix.</p><h3>The pairing assumption</h3><p>The deepest assumption is that each multi-modal pair truly describes the same biological state. The test is this: <strong>can you produce matching pairs with a single readout?</strong></p><p>You are pairing samples based on them being in the same experimental condition? Or you are matching individual cells in heterogeneous assays based on microscopic features?</p><p>Both could be valid pairing algorithms. But in your setup, do they really produce consistent RNA-Seq vectors, before considering any other modality?</p><p>If they are consistent to your liking, it&#8217;s now safer to assume the <strong>other readouts from the same batch will be consistent as well</strong> (come from the same distribution).</p><p>If not, your pairing is off. Maybe you are missing experimental variables to control (synchronizing the cells, for example). Maybe you need better markers to match cells in imaging.</p><h3>The smoothness assumption</h3><p>Next up the ladder is checking if you have enough data to approximate the biological surface. The test: <strong>Can you reliably predict one modality from the others? </strong>Under which conditions? </p><p>Suppose you have some RNA-Seq data points and immunhistochemistry (IHC) images. Let&#8217;s say they come from different patients, but some are matched by indication, so <em>maybe</em> they are close enough.</p><p>If you can reliably predict one modality from another, it means your <em>sampling density is sufficient relative to the smoothness of the surface</em> between those points.</p><p>Just don&#8217;t forget to test how far that generalizes - Crossing tissue types is the barrier where it usually breaks.</p><p>If the prediction doesn&#8217;t work at all, or the training blows up, then the data points are too few and far apart (or, if you&#8217;re coming from the opposite direction, they may not represent the same biology).</p><h3>Extrapolating</h3><p>If all you wanted was something that translates from modality A to modality B, you&#8217;re done once the above prediction works. Usually we are asked to predict responses for new drugs or cell lines. Those responses <strong>won&#8217;t have any of the modalities measured.</strong></p><p>In the end, the arbiter is whether your model improved by being multi-modal. Did you gain the ability to <em>extrapolate</em> to new interventions?</p><p>Because that&#8217;s why we ultimately generate all this data - to learn enough about the hidden blue surface to trace the missing parts.</p><p>Because that&#8217;s where the cures for disease lie.</p><p>Thanks to <strong>Laszlo Mero, Milan Sztilkovics </strong>and<strong> Zsolt Gyure</strong> for the case study data, and <strong>Daniel Veres</strong> for the review and comments!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>There is a clear improvement, but ablation studies show that most of it is driven by the correction, not the integration.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Assessing a Virtual Cell’s utility]]></title><description><![CDATA[Hitting 2026 running, I can tell you that the team was asked a lot internally to evaluate and share their opinion on many published approaches on creating virtual cells.]]></description><link>https://blog.turbine.ai/p/assessing-a-virtual-cells-utility</link><guid isPermaLink="false">https://blog.turbine.ai/p/assessing-a-virtual-cells-utility</guid><dc:creator><![CDATA[Gerold Csendes]]></dc:creator><pubDate>Wed, 07 Jan 2026 14:02:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!gvuH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p><em>Hitting 2026 running, I can tell you that the team was asked a lot internally to evaluate and share their opinion on many published approaches on creating virtual cells.<br><span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Gerold Csendes&quot;,&quot;id&quot;:28687379,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd328323d-83b5-4591-b96d-23f175ca0e3e_144x144.png&quot;,&quot;uuid&quot;:&quot;77f1c8d3-8644-4b85-8ae0-c7fd86f2e93a&quot;}" data-component-name="MentionToDOM"></span> was inspired to write down the process he developed for those evaluations. <br>I converted it into Substack&#8217;s format, but had to cut the last chapter due to length limitations. You can get the full PDF <strong><a href="https://documents.turbine.ai/view/8c907ef3ab89425e8f16c0705de5d3596ca2ccc5bf3b4449ad3aaec8d656d3fe/Assessing+a+Virtual+Cell%E2%80%99s+utility">here</a></strong>. Gerold, the floor is yours:<br><br></em>We assume the reader has some familiarity with Virtual Cells. For readers new to the field, we advise starting with our <a href="https://blog.turbine.ai/p/what-can-virtual-cells-do-for-you">blogpost</a>.</p><ul><li><p><a href="https://blog.turbine.ai/i/183544937/intro">Intro</a></p></li><li><p><a href="https://blog.turbine.ai/i/183544937/step-specify-the-claim">Step 1. Specify the claim</a></p><ul><li><p><a href="https://blog.turbine.ai/i/183544937/the-claim-is-defined-by-the-test-data">The claim is defined by the test data</a></p><ul><li><p>Genetic perturbations</p></li><li><p>Chemical perturbations</p></li></ul></li></ul></li><li><p><a href="https://blog.turbine.ai/i/183544937/step-validate-the-evidence">Step 2. Validate the evidence</a></p><ul><li><p><a href="https://blog.turbine.ai/i/183544937/check-for-data-leakage">Check for data leakage</a></p></li><li><p><a href="https://blog.turbine.ai/i/183544937/are-the-baselines-strong-and-domain-informed">Are the baselines strong and domain-informed?</a></p></li><li><p><a href="https://blog.turbine.ai/i/183544937/can-the-score-measure-the-claim">Can the score measure the claim?</a></p><ul><li><p>Example 1: Evaluating differential effects in raw expression space</p></li><li><p>Example 2: Correlation (alone) in wide screens</p></li></ul></li><li><p><a href="https://blog.turbine.ai/i/183544937/is-it-learning-actual-biology">Is it learning actual biology?</a></p></li></ul></li><li><p><em>Summary: Where is the field right now? (only in the PDF)</em> </p></li></ul><h3>Intro</h3><p>Virtual Cells are one of the hottest topics in computational biology right now. The field is chasing an &#8220;AlphaFold moment&#8221;: a model that turns messy biology into reliable perturbation predictions, at scale. That ambition is worth pursuing, but a sober reality check arrived in early 2025. Multiple groups&#8212;including <a href="https://www.nature.com/articles/s41592-025-02772-6">Ahlmann-Eltze et al.</a> and <a href="https://link.springer.com/article/10.1186/s12864-025-11600-2">us</a>&#8212;showed that several &#8220;foundation model&#8221; claims on drug discovery benchmarks could be matched or beaten by simple, classical baselines. Since then, new methods have continued to appear, and headline performance on popular benchmarks has often improved.</p><p><strong>This note is a practical, drug discovery-facing guide to interpreting such Virtual Cell results.</strong> Concretely, we offer a lightweight review checklist that helps you (1) <strong>scope what a benchmark result can legitimately claim</strong>, and (2) <strong>validate whether the evidence is trustworthy</strong>.</p><p>In this note, <strong>we use a narrower definition of </strong><em><strong>Virtual Cells</strong></em><strong>: models that predict perturbation outcomes</strong>&#8212;e.g., the effect of CRISPRi or a drug on a cellular phenotype (most commonly post-perturbation gene expression). Most widely used Virtual Cell benchmarks follow this framing.</p><p>From the outside, it&#8217;s tempting to accept a straightforward narrative: Virtual Cells could approach experimental performance, the gap is &#8220;just&#8221; scaling data, model size, and compute until we get the equivalent of AlphaFold for perturbations. We (Turbine) are building Virtual Cells because we believe this will indeed eventually happen. Still, we think important context is often left out when people assess &#8220;utility&#8221; from benchmark tables alone. Drug discovery is expensive and failure-prone, and most proof points don&#8217;t survive the next step after a leaderboard read.</p><p>Our day-to-day work forces that disciplined downstream focus. We constantly benchmark state-of-the-art models, try to separate real progress from evaluation artifacts, and make the case to partners that our model is worth using instead of an open-source alternative. In practice, we found ourselves repeatedly applying a two-stage process: <strong>(1) specifying the claim</strong> and <strong>(2) validating the evidence</strong>.</p><p>What we generally find is that we are still far from the ambitious definition of Virtual Cells: models that generalize across cell types, perturbation modalities, and datasets. We also find that &#8220;validating the evidence&#8221; is not straightforward&#8212;one needs to read result tables through a critical lens.</p><p>The goal of this note is to provide a practical reading guide for benchmark-based claims: first, define what a reported score legitimately implies; second, identify failure modes&#8212;such as leakage, weak baselines, or misaligned metrics&#8212;that can overstate progress.</p><h3>Step 1. Specify the claim</h3><p>It is not always easy to parse what a method is claiming to do &#8211; that is, in what kind of downstream applications would the presented results be applicable. This is often fine in research; authors don&#8217;t always need to precisely describe in which context method X can be used. However, if we are talking about Virtual Cell utility, we need to translate that into a claim about usability. Terms like context generalization, out-of-distribution, or capturing cellular behavior frequently appear, but they are hard to validate unless they are grounded in a specific benchmark and split strategy.</p><h4>The claim is defined by the test data</h4><p>The most important factor for specifying the claim of a Virtual Cell is the benchmark(s) it is evaluated on. Another central axis is the dataset split strategy, which has a large impact on what conclusions are justified. Today, two benchmark families are especially common in the Virtual Cell space: Perturb-seq CRISPRi genetic benchmarks and the <a href="https://www.biorxiv.org/content/10.1101/2025.02.20.639398v1">Tahoe-100M</a> drug perturbation benchmark.</p><h5><em>Genetic perturbations</em></h5><p>Accurate modeling of genetic perturbations is a core challenge for drug discovery. If successful, it could support target identification by narrowing the hypothesis space and generating testable, context-specific predictions (e.g., expected pathway shifts or compensatory programs after target knockdown). Today&#8217;s most widely used datasets are Perturb-seq CRISPRi screens measured by post-perturbation transcriptomics, typically spanning only a handful of cell contexts and a perturbation set of essential genes. <a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></p><p>Because the data are limited, benchmarks often use a <strong>gene-exclusive split </strong>(<strong>GEX</strong>, Fig. 1. right)<strong> </strong>&#8212;holding out genes at test time while evaluating in the same cell contexts. This setup has two practical limitations. First, for Target ID, we usually care about predictions <strong>in the disease-relevant cellular context</strong> (and about selectivity across contexts), whereas GEX evaluates generalization across genes within a small, fixed set of cell types. Second, restricting perturbations largely to essential genes can make the task systematically easier: essential-gene knockdowns often induce stronger and more stereotyped transcriptional programs, which can inflate aggregate metrics without guaranteeing robustness to more diverse, weaker, or more selective perturbations (e.g., non-essential targets, selectivity).</p><p>Zooming out, GEX is an artificial holdout from an application standpoint&#8212;targets are not &#8220;unseen genes&#8221; in deployment as much as they are <strong>new contexts</strong> (new disease state, new genetic background, new cell type). For that reason, strong GEX performance is best interpreted as a <strong>diagnostic</strong> (does the model properly represent genetic perturbations) rather than as sufficient evidence for Target ID utility.</p><p>A more practically useful evaluation is <strong>cell-exclusive generalization </strong>(<strong>CEX</strong>, Fig. 1. mid.)&#8212;holding out cellular contexts and asking whether a model can predict how the <em>same</em> perturbation behaves across cell types, including selectivity patterns. Unfortunately, CEX is underrepresented in current Perturb-seq benchmarks, making it difficult to test stronger claims about real-world Target ID workflows.</p><p>Ultimately, causal understanding of drug and biomarker interactions would necessitate being able to generalize to <em><strong>combinatorial </strong></em><strong>perturbations, with at least one of the perturbations being unseen</strong>. This is the setup we most frequently encounter in pharmaceutical applications. The scarcity of public dual-perturbation data means that open-source, large-scale benchmarking of this capability is still unsolved.</p><p>Currently the most practical proxy for combinatorial benchmarking would be larger perturbational transcriptomics resources&#8212;datasets closer to &#8220;<strong>DepMap-scale</strong>&#8221; breadth in cell contexts, <strong>but with post-perturbation readouts</strong>.</p><p>In the near term, the community could adapt more realistic benchmarks by leaning on already available genome-wide Perturb-seq datasets (<a href="https://www.biorxiv.org/content/10.1101/2025.06.11.659105v1">X-Atlas/Orion</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>, Replogle et al. K562<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>) and adopting split protocols that explicitly measure cross-context generalization.</p><h5><em>Chemical perturbations</em></h5><p>Tahoe-100M is a popular drug perturbation benchmark containing ~50 cell lines and ~1100 compounds. Compared to <a href="https://www.cancerrxgene.org/">GDSC</a>, Tahoe-100M is more extensive on the compound axis (1100 vs ~300) but more limited in cellular context (50 vs ~1000 cell lines). It is commonly evaluated with a <strong>&#8220;context generalization&#8221;</strong> <strong>split</strong>, often corresponding to few-shot generalization along an axis (Fig. 1. left). How relevant is this setup for drug discovery decisions? We argue that few-shot generalization can mimic some workflows, but in many settings a fully exclusive setup is more broadly applicable: either drug-exclusive (DEX; Fig. 1. right) or cell-exclusive (CEX; Fig. 1. mid). Data is often scarce, and assuming that the compound in question has little-to-no assay data is a robust default that covers a broader range of applications. For this reason, we propose more challenging and clearly defined Tahoe-100M split protocols (CEX/DEX)</p><p>Under current splits, strong results support <em>split-limited</em> claims. Currently, high Perturb-seq performance is a diagnostic tool that clears the model for more specific downstream tests. High Tahoe-100M performance (in the usual <strong>context generalization</strong> setup, see below) mainly justifies <strong>few-shot screening</strong> claims. Strong performance on stricter <strong>CEX/DEX</strong> splits would support <strong>broader, more ambitious</strong> claims.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!16Ut!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!16Ut!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 424w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 848w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 1272w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!16Ut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png" width="936" height="298" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de00978f-4ead-4c94-9706-55150f99a414_936x298.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:298,&quot;width&quot;:936,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!16Ut!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 424w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 848w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 1272w, https://substackcdn.com/image/fetch/$s_!16Ut!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde00978f-4ead-4c94-9706-55150f99a414_936x298.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Figure 1.</strong> Schematic representation of dataset splits. Perturbation Exclusive is an umbrella term for any kind of perturbation exclusivity while DEX (drug exclusive) and GEX (gene / genetic exclusive) refer to the specific perturbation modality.</figcaption></figure></div><h3>Step 2. Validate the evidence</h3><p>Up until now we have discussed how we can specify a Virtual Cell&#8217;s claim given the benchmark it uses. <strong>But knowing what a result could claim is only half the story: we also need to decide whether the reported gains are trustworthy and would survive outside the benchmark setting. </strong>Reading the results table alone is rarely enough. Below are three questions we find imperative to ask when validating the evidence.</p><h4>Check for data leakage</h4><p>Before interpreting any results table, the first question is <strong>whether the reported score reflects generalization or memorization</strong>. Leakage&#8212;when evaluation information sneaks into training&#8212;directly undermines trust in benchmark performance.</p><p>Leakage is especially easy to introduce when models and data pipelines become complex, and it is a well-known concern in LLM evaluation: models can look strong on public benchmarks yet fail on genuinely new test sets when the data is truly unseen (see <a href="https://arxiv.org/abs/2503.21934">Math Olympiad</a>). Similar dynamics appear in <a href="https://www.cell.com/patterns/fulltext/S2666-3899(23)00159-9">biology</a>: when benchmarks contain near-duplicates (e.g., high sequence similarity across train/test) or share structure with training corpora, sophisticated models can appear to win by learning shortcuts rather than transferable biology.</p><p>There is a cautionary tale for leakage and benchmarks in the binding affinity benchmarking community. There, the commonly used PDBBind 2020 dataset contained very large, sometimes even 100%, sequence similarity to evaluation sequences (Fig. 4, <a href="https://pubs.rsc.org/en/content/articlelanding/2024/sc/d3sc04185a">paper).</a></p><p>Virtual Cells are particularly vulnerable to this risk because many are foundation models pretrained on vast, heterogeneous datasets. If downstream benchmarks (or close variants of them) make their way into pretraining, it becomes difficult to disentangle genuine generalization from memorization. This risk will likely grow as pretraining corpora expand and becomes harder to audit.</p><p>Leakage can also be subtle and &#8220;context-dependent.&#8221; Examples include:</p><ul><li><p>Using proprietary data from the same perturbation domain as model features while reporting performance on an open benchmark.</p></li></ul><ul><li><p>Constructing perturbation graphs or neighborhood features using information that is only available because the benchmark perturbations are known in advance.</p></li></ul><ul><li><p>Number of cells per perturbation in single-cell datasets which usually correlates with the strength of the perturbation (VCC was affected, see Fig. 1 <a href="https://documents.turbine.ai/view/dda3184b9da045bb976b50c7c885f3aea0dbfc72f0e44c4687de5776b58e0bcc/vcc-writeup-MP">here</a>)</p></li></ul><p>These are not necessarily data leaks if the benchmark setup is careful enough&#8212;but in most evaluation settings they effectively are, and they should be disclosed and justified.</p><p>One practical way to mitigate leakage is evaluation on held-out, non-public test sets, where the training data and benchmark are separated by design. This is why community competitions (e.g., CASP/DREAM-style) are so valuable for measuring &#8220;in-the-wild&#8221; performance. The <a href="https://virtualcellchallenge.org/">Virtual Cell Challenge</a> (VCC) was an important step in that direction for the new era of Virtual Cells, even if the first iteration was largely about <a href="https://blog.turbine.ai/p/how-did-we-get-a-regression-model?_gl=1*c6qiuv*_gcl_au*MjAwODgyNDQyMy4xNzYxNTQ2NzQ0*_ga*NDY3NDgzNzc4LjE3MzI4Nzc5MDM.*_ga_TR69TGXXMH*czE3NjUzNzk2NzckbzEkZzEkdDE3NjUzNzk3MzckajYwJGwwJGgw*_ga_VBDQ3GFEY9*czE3NjUzNzk2NzckbzEkZzEkdDE3NjUzNzk3MzckajYwJGwwJGgw">learning how to benchmark these new models</a>.</p><h4>Are the baselines strong and domain-informed?</h4><p>Benchmarking complex models only against other complex models&#8212;especially if the benchmark itself is new&#8212;is risky. It can ignore substantial prior work in the domain and makes it hard to contextualize task difficulty. In much of modern AI, the &#8220;moment&#8221; progress happens is clear: a new architecture must beat strong incumbents (e.g., ViTs on ImageNet). Virtual Cells are not in that regime yet. We do not have a single, widely accepted &#8220;ImageNet for perturbations&#8221; and neither have we reached a point where a single model family cleanly dominates across settings.</p><p>What we <em>do</em> have are decades of biological and experimental insights about how cells, perturbations, and readouts should be represented. These insights already lead to surprisingly strong baselines, and they remain relevant even as model scale increases.</p><p>For that reason, we believe a Virtual Cell should be evaluated not only against &#8220;mean&#8221; and simple linear additive models, but also against a class of stronger, domain-informed methods&#8212;what we call <strong>computational biologist baselines</strong> (what an experienced computational biologist does on first approach trying to predict from the same data - see our <a href="https://link.springer.com/article/10.1186/s12864-025-11600-2">random forest</a> or <a href="https://blog.turbine.ai/p/how-did-we-get-a-regression-model?_gl=1*c6qiuv*_gcl_au*MjAwODgyNDQyMy4xNzYxNTQ2NzQ0*_ga*NDY3NDgzNzc4LjE3MzI4Nzc5MDM.*_ga_TR69TGXXMH*czE3NjUzNzk2NzckbzEkZzEkdDE3NjUzNzk3MzckajYwJGwwJGgw*_ga_VBDQ3GFEY9*czE3NjUzNzk2NzckbzEkZzEkdDE3NjUzNzk3MzckajYwJGwwJGgw">ridge</a> as an example). Concretely, these are models that deliberately encode biological structure (e.g., sensible covariates, perturbation graph structure, batching and control modeling, and cell-context conditioning) without requiring foundation-model scale.</p><p>It is encouraging that reporting simple baselines on perturbation benchmarks is becoming standard practice. Still, we often find that baselining is not yet rigorous enough: <strong>there is a large space between trivial baselines and the most complex Virtual Cells</strong>, and that middle ground is frequently underexplored. In our own evaluations, investing effort into this &#8220;computational biologist baseline&#8221; space often closes much of the apparent gap to SOTA&#8212;and not so rarely matches or outperforms it&#8212;changing the conclusion about whether a complex Virtual Cell is worth deploying.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gvuH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gvuH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 424w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 848w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 1272w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gvuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png" width="604" height="309.7435897435897" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:480,&quot;width&quot;:936,&quot;resizeWidth&quot;:604,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gvuH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 424w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 848w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 1272w, https://substackcdn.com/image/fetch/$s_!gvuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ddfddce-cc7f-44db-96ec-ab2b4be366fc_936x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Figure 2.</strong> Schematic representation of baselines and Virtual Cell (VC) results</figcaption></figure></div><h4>Can the score measure the claim?</h4><p>A strong benchmark score does not automatically mean a Virtual Cell is making useful predictions. In post-perturbation transcriptomics it is possible to achieve impressive-looking metrics while missing what matters in practice&#8212;e.g., capturing differential response, pathway-level shifts, or clinically meaningful rankings (which compound/target moves the biology in the desired direction). Several recent efforts argue for improved evaluation e.g. <a href="https://www.nature.com/articles/s41587-025-02777-8">Systema</a>, <a href="https://arxiv.org/abs/2408.10609">PerturBench</a>, <a href="https://arxiv.org/abs/2506.22641">Diversity by Design,</a> <a href="https://www.biorxiv.org/content/10.1101/2025.06.26.661135v1">STATE</a> but the field is still far from consensus, and community efforts like the Virtual Cell Challenge have highlighted how difficult it is to select a robust metric suite.</p><p>Why is this problem so hard? One key difference from protein structure prediction is that structure has a relatively intuitive geometry: predictions can be compared to ground truth in 3D, and &#8220;closeness&#8221; has a fairly direct interpretation. Post-perturbation transcriptomics, by contrast, is a ~20k-dimensional vector whose biological meaning is largely read out <strong>indirectly </strong>(e.g., through differential expression, pathway activity, and phenotype proxies). As a result, many &#8220;reasonable&#8221; metrics end up rewarding the wrong behavior.</p><p>This is not to say current metrics are useless, some are informative. But there are common choices that systematically overstate progress. Below are two failure modes we see often.</p><h5><em>Example 1: Evaluating differential effects in raw expression space</em></h5><p>In perturbation studies, what we care about is the <strong>differential effect</strong>: the change relative to an unperturbed (or matched control) state. Raw expressions mostly reflect cell identity, and in many settings the perturbation effect is comparatively small (Fig. 3). If a metric evaluates predictions in raw expression space, it can reward models for predicting baseline identity rather than perturbation response&#8212;artificially inflating scores and encouraging &#8220;do nothing&#8221; behavior. A simple no-change baseline (predict the control) is a useful sanity check here: if it scores surprisingly well, the metric is likely not measuring the perturbation biology you care about.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cVLk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cVLk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 424w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 848w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 1272w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cVLk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png" width="465" height="443.8967136150235" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:610,&quot;width&quot;:639,&quot;resizeWidth&quot;:465,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cVLk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 424w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 848w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 1272w, https://substackcdn.com/image/fetch/$s_!cVLk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bb43856-5116-4ce0-b544-4a9c9bc230ff_639x610.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>Figure 3.</strong> Schematic representation of raw and differential expressions. A no-change predictor would correlate well with the perturbed.</figcaption></figure></div><h5><em>Example 2: Correlation (alone) in wide screens</em></h5><p>Correlation in differential expression space can be useful&#8212;but only when the perturbation induces a <strong>reproducible, sufficiently strong signature</strong>. If the true effect is near zero, the measured differential expression is dominated by noise and won&#8217;t reliably reproduce in the lab (Fig. 4). It is unrealistic (and undesirable) to expect a model to match such examples. This is not a corner case: many genetic perturbations have weak transcriptomic effects, and many drug&#8211;cell&#8211;dose combinations produce negligible response. In these regimes, correlation becomes unstable and can penalize sensible behavior while rewarding overfitting or noise chasing.</p><p>A practical implication: metrics should be <strong>effect-size aware</strong> (e.g., stratify or weight by signature strength / experimental reproducibility), and evaluation should explicitly distinguish &#8220;predicting a real signal&#8221; from &#8220;predicting noise.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lgln!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lgln!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 424w, https://substackcdn.com/image/fetch/$s_!lgln!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 848w, https://substackcdn.com/image/fetch/$s_!lgln!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 1272w, https://substackcdn.com/image/fetch/$s_!lgln!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lgln!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png" width="481" height="390.7700987306065" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:576,&quot;width&quot;:709,&quot;resizeWidth&quot;:481,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lgln!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 424w, https://substackcdn.com/image/fetch/$s_!lgln!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 848w, https://substackcdn.com/image/fetch/$s_!lgln!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 1272w, https://substackcdn.com/image/fetch/$s_!lgln!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84d83f28-75cb-4d47-a32a-93fb3ad69ad8_709x576.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Figure 4. Schematic relationship between signature strength (#DEGs) and replicate reproducibility of the perturbation; weak signatures tend to show low reproducibility in typical experimental settings.</figcaption></figure></div><h4>Is it learning actual biology?</h4><p>In drug discovery, we don&#8217;t just care about a good average prediction&#8212;we care about whether a model captures, in a way we can measure and quantify, the causal functional impact of a perturbation on a cell. In practice, this means asking whether the model&#8217;s internal representation supports the manipulations we routinely reason with: dose changes, target engagement, pathway relationships, and cross-modality links (genetic vs. chemical perturbations). We treat these as diagnostic checks: passing them does not prove the model is &#8220;right,&#8221; but failing them is often a warning sign that the model is exploiting shortcuts or missing structure that will matter in real deployments.</p><p>We&#8217;re cautious with &#8220;priors&#8221;: scientific history is full of surprises, and some intuitions will be wrong. Still, when a Virtual Cell both performs well and exhibits coherent, controllable behavior under these diagnostics, it is a strong reason to investigate deeper. Conversely, incoherence often points directly to where evaluation, data assumptions, or modeling choices are failing. The <a href="https://www.nature.com/articles/s43588-025-00870-1">Large Perturbation Model</a> is an example of exhibiting patterns of coherent representations.</p><p>Without loss of generality, we look for:</p><ul><li><p><strong>Dose response and directionality:</strong> does increasing dose move the predicted state consistently (and saturate plausibly), rather than producing erratic jumps?</p></li></ul><ul><li><p><strong>MoA sensitivity vs chemistry sensitivity: </strong>Do drugs with shared mechanism of action cluster more strongly than drugs with superficial chemical similarity? Can the model separate on-target effects from confounders such as general toxicity or stress responses?</p></li></ul><ul><li><p><strong>Target &#8596; pathway consistency:</strong> if a pathway is genetically perturbed in training, does the model generalize to drugs acting on that pathway in a predictable way?</p></li></ul><ul><li><p><strong>Cross-modality alignment:</strong> are a single-target inhibitor and its KO/CRISPRi analogue represented as &#8220;nearby&#8221; <em>in the right contexts</em>? More importantly, does genetic evidence improve out-of-distribution drug predictions in a measurable way?</p></li></ul><ul><li><p><strong>Attribution sanity:</strong> when the model predicts a response, can we attribute it to plausible genes/pathways rather than dataset artifacts (batch, cell line identity proxies, etc.)?</p></li></ul><p>Thanks to <strong>Bence Szalai</strong> and <strong>Krishna Bulusu</strong> for<strong> </strong>reviewing and improving this note.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>These are datasets from <a href="https://www.sciencedirect.com/science/article/pii/S0092867422005979">Replogle el. al</a> and <a href="https://www.nature.com/articles/s41588-025-02169-3">Nadine et. al</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Spanning 2 cells: HCT116 and HEK293T</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>The &#8220;pan-expression&#8221; wide version</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[How did we get a regression model to the top of the Virtual Cell Challenge]]></title><description><![CDATA[and what this tells us about the state of computational biology]]></description><link>https://blog.turbine.ai/p/how-did-we-get-a-regression-model</link><guid isPermaLink="false">https://blog.turbine.ai/p/how-did-we-get-a-regression-model</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Tue, 09 Dec 2025 15:00:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6OME!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>This post is a high-level summary of our key learnings. You can find a more detailed and technical write-up on our Challenge experience here: <a href="https://documents.turbine.ai/view/dda3184b9da045bb976b50c7c885f3aea0dbfc72f0e44c4687de5776b58e0bcc/vcc-writeup-MP">Mean Predictors write-up</a></strong></em></p><p>It&#8217;s been a while since <a href="https://dreamchallenges.org/anti-pd1-response-prediction-dream-challenge/">the last DREAM challenge</a> tested our ability to predict cellular responses. ARC took up the mantle with their <a href="https://virtualcellchallenge.org">Virtual Cell Challenge</a>.</p><p>Naturally, we joined. We are the <em><strong>mean</strong></em>est <em><strong>predictors</strong></em>, after all.</p><p>In the end, a <strong>simple model first described in 1970</strong> climbed to the top of the leaderboard for a while and ultimately landed 15th overall, and <a href="https://virtualcellchallenge.org/leaderboard">became one of the best &#8220;generalist&#8221; models</a> under ARC&#8217;s newly announced criteria.</p><p>The placement itself is not what matters. What&#8217;s interesting is why this model was the right choice.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bpop!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bpop!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 424w, https://substackcdn.com/image/fetch/$s_!bpop!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 848w, https://substackcdn.com/image/fetch/$s_!bpop!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 1272w, https://substackcdn.com/image/fetch/$s_!bpop!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bpop!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184" width="658" height="184" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:184,&quot;width&quot;:658,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;A screenshot of a graph\n\nAI-generated content may be incorrect.&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A screenshot of a graph

AI-generated content may be incorrect." title="A screenshot of a graph

AI-generated content may be incorrect." srcset="https://substackcdn.com/image/fetch/$s_!bpop!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 424w, https://substackcdn.com/image/fetch/$s_!bpop!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 848w, https://substackcdn.com/image/fetch/$s_!bpop!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 1272w, https://substackcdn.com/image/fetch/$s_!bpop!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5726f49b-378e-4f38-ab0e-01e7b8a079f8_658x184 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a><figcaption class="image-caption">State of the VCC leaderboard at the 14th of October</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ZSrm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZSrm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 424w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 848w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 1272w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZSrm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png" width="1274" height="351" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/be2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:351,&quot;width&quot;:1274,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:39627,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/176633893?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZSrm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 424w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 848w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 1272w, https://substackcdn.com/image/fetch/$s_!ZSrm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbe2ae4ba-1b66-4b64-a665-8f4ecdae93f3_1274x351.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The newly announced Generalist Leaderboard</figcaption></figure></div><h3>Single cells are only useful if they are different</h3><p>There&#8217;s a strong temptation to treat single-cell measurements as &#8220;big data.&#8221; After all, Perturb-Seq gives you reads from hundreds of thousands of cells. But what you get from each cell is just a somewhat redundant fragment of the biological reality.</p><p>In practice, we&#8217;ve always found that the information content comes from how many distinct pseudobulks (clusters) you can form. In heterogeneous <em>ex vivo</em> material, you can get 20&#8211;50 clusters per condition.</p><p>However, in <strong>Perturb-Seq</strong>, colonies are are relatively homogeneous. The true value of the technology lies in making it possible to do many conditions together in one flask, not in it being single-cell. So the number of effective data points you have is <strong>1 RNASeq data point </strong><em><strong>per condition</strong>.</em></p><pre><code>So, as an exercise, how many effective RNASeq data points does <a href="https://huggingface.co/datasets/tahoebio/Tahoe-100M">Tahoe-100M</a> have?

Based on the description, they multiplex 50 cells with 1100 perturbations - giving an effective data size 55,000 data points.</code></pre><p>Which means that in practice, for all the cells sequenced in VCC, the <em>effective</em> dataset looked roughly like this:</p><ul><li><p>150 training points</p></li><li><p>50 for the leaderboard</p></li><li><p>100 for the final evaluation</p></li></ul><p>which means <strong>300 </strong><em><strong>effective</strong></em><strong> data points.</strong></p><p>This is why many <strong>teams like us chose to ignore the individual cells entirely</strong> and went to only predict the clusters&#8217; behavior, still finishing in the top spots. <strong>I think this is pretty strong evidence that using all the single cells adds little to no additional information</strong> despite using magnitudes more compute.</p><h3>The bottleneck today is data, not AI</h3><p>If you add up the useful RNASeq-like data available to the field - Perturb-Seq, Tahoe (Drug-Seq), regular RNASeq, even LINCS (Broad&#8217;s public microarray-like dataset) - you will get to something like half a million effective datapoints. Compare this to the number of possible configurations of a 20,000-gene system and it becomes clear we still only see the tip of the iceberg. <strong>So regularization and inductive bias is still paramount.</strong></p><p>Therefore, an AI architecture is only as good as (1) its ability to ingest the limited data we have, and (2) the inductive biases that allow it to exploit symmetry and structure.</p><p><strong>So don&#8217;t dismiss simple models like regression or Random Forest</strong>. <em>Given the same data</em>, they can perform on par with far more complex architectures, and <strong>often generalize better to other tasks</strong>.</p><p>The person I probably learned the most from about machine learning is <a href="https://www.work.caltech.edu/telecourse.html">Prof. Abu-Mostafa</a>. He said that <strong>your model should match the </strong><em><strong>complexity of your data</strong></em><strong>, not the complexity of your problem.</strong></p><p>In 2025, we can formulate this as a philosophical razor:<br><strong>The simplest model that covers your data and inductive bias will generalize best.</strong></p><h3>Relevant data beats more data. Put the work in.</h3><p>We did not use any pretraining to get this high on the leaderboard. This reinforced our view that, today, <a href="https://blog.turbine.ai/p/pretraining-virtual-cells-is-useless">foundation models offer little to no added value</a> predicting perturbation effect.</p><p>What did matter were the handful of <strong>other Perturb-Seq datasets we found</strong> (<a href="https://www.cell.com/fulltext/S0092-8674(22)00597-9">Replogle et al.</a>, <a href="https://www.nature.com/articles/s41588-025-02169-3">Nadig et al.</a>) which contributed most of our predictive power<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. These represent a tiny amount of data both compared to pre-training datasets (Geneformer) and to large-scale perturbation screens (LINCS or DepMap), but <strong>are much closer to the physical assay we aimed to predict.</strong></p><p>However, incorporating these datasets required weeks of cleaning, alignment, and integration. Smaller teams recoiled from this work. We had the experience and tooling to do it, and it made a substantial difference. <strong>What matters is putting the work in.</strong></p><p><strong>Even a small set of 50&#8211;100 data points can materially improve prediction accuracy</strong> when those points are <strong>closer to the real scenario you aim to model</strong> than anything else available.</p><h3>Metrics are hard, but especially in 20,000 dimensions</h3><p>Measuring prediction performance in a way that reflects real-world use is<a href="https://blog.turbine.ai/p/so-how-do-you-benchmark-biology"> notoriously difficult</a>. Models hammer any scoring function thousands of times per GPU-second. If your metric has loopholes, the models will find and exploit them.</p><p>We always generate scatterplots, as strange patterns often reveal metric artifacts. For example, this is how we just discovered that ARC&#8217;s AUPRC method was unexpectedly generous to pseudo-bulk predictions<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>Now all of this becomes exponentially harder if you are trying to score predictions in a 20,000 dimensional space.</p><p>Trying to do all this in 20,000 dimensions amplify these issues. The core VCC metric PDS (Perturbation Discrimination Score) ranks which <em>true</em> perturbation vector your prediction is closest to. But what does &#8220;closest&#8221; really mean?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6OME!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6OME!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 424w, https://substackcdn.com/image/fetch/$s_!6OME!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 848w, https://substackcdn.com/image/fetch/$s_!6OME!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 1272w, https://substackcdn.com/image/fetch/$s_!6OME!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6OME!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png" width="496" height="385.2266666666667" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b844dcea-592d-4422-bf7e-f98b9305565a_600x466.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:600,&quot;resizeWidth&quot;:496,&quot;bytes&quot;:30923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/176633893?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6OME!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 424w, https://substackcdn.com/image/fetch/$s_!6OME!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 848w, https://substackcdn.com/image/fetch/$s_!6OME!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 1272w, https://substackcdn.com/image/fetch/$s_!6OME!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb844dcea-592d-4422-bf7e-f98b9305565a_600x466.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Teams quickly learned that the magnitude of the predictions matters more than the direction of the RNA vector, leading to teams scaling transformations to get better (but biologically not necessarily more correct) PDS scores.</figcaption></figure></div><p>Are you more interested in <em>which</em> genes change, or <em>how much</em> they change? And is a model that gets a subset of genes <strong>quantitatively</strong> right better than one that gets most genes only <strong>qualitatively</strong> right?</p><p><strong>I don&#8217;t think it&#8217;s possible to have a single answer</strong> to this unless we completely understand how RNA levels map to the internal cell state. Which we don&#8217;t.</p><p>I don&#8217;t think we can clearly resolve this without fully understanding how RNA levels map onto the cell&#8217;s internal state - and that&#8217;s still ahead of us. Until then, the &#8220;right&#8221; metric is fundamentally tied to the downstream application you care about.</p><p>ARC&#8217;s metrics received plenty of criticism, but as general-purpose measures, <strong>they are not nearly as flawed as portrayed</strong>. They capture different facets of the prediction vector. They can (and should) be hardened, but given the lack of a universal downstream task, <strong>VCC&#8217;s choices were a reasonable first attempt</strong>.</p><p>For our applications, <strong>we prefer </strong><em><strong>Pearson delta</strong></em>, which tests whether the pattern across the top differentially expressed genes is preserved<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>.</p><p>But don&#8217;t forget that <strong>RNA-seq prediction itself is not the end goal.</strong></p><h3>It&#8217;s best to evaluate virtual cells at the application</h3><p>In applied settings, you want to know whether your predictions hold in real life: cell viability, cytokine levels, metabolism, motility - anything tied directly to phenotype. RNA-seq is only a fingerprint of the cell&#8217;s internal, unobservable state. And a fingerprint of a proxy will never fully answer the question you care about.</p><p><strong>If you want to evaluate virtual cells, measure them at the application layer. </strong>That removes the guesswork about whether the model captured the part of the cell state from RNA that matters for your task.</p><p>This is not to diminish the value of RNA-seq itself. <strong>Post-treatment transcriptomics remains the closest thing we have to a generic, reusable data type</strong> - a kind of connective tissue that can link many downstream assays together.</p><h3>So, do we have Virtual Cells or not?</h3><p>To some degree. The VCC results show that with <strong>relevant data you can approach wet-lab reproducibility</strong> for certain perturbation effects.</p><p>But the challenge was not difficult enough to demonstrate robust cross-assay generalization, which is a key requirement for truly general virtual cells. Our <a href="https://blog.turbine.ai/p/what-can-virtual-cells-do-for-you">internal experiments</a> confirm this remains unsolved.</p><p>A huge thank you to the <em>meanest</em> predictors: <strong>Bence Szalai, Gerold Csendes, Bence Czako</strong> and <strong>Gema Sanz</strong> who did lion&#8217;s share of the work.</p><p>And of course, thanks to the ARC team for all the work they put in to make this challenge happen! We really enjoyed it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>We added the external Perturb-Seq datasets as input features, not as additional training data. That is mostly an implementation detail, but worth noting.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>How do you draw an AU-PRC curve when you only have a single point? Under the standard trapezoidal rule, you would project that point onto the Y-axis. ARC&#8217;s more generous interpretation is that if you push the threshold all the way to zero, you trivially achieve infinite precision.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6tRF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6tRF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6tRF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png" width="452" height="343.77464788732397" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:568,&quot;resizeWidth&quot;:452,&quot;bytes&quot;:24984,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/176633893?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6tRF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!6tRF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe3f3f4f-c68d-499e-a7dd-28c3a8852826_568x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Pearson delta only works when the perturbation produces a sufficiently large effect. Otherwise, you are simply correlating your predictions with experimental noise. You must first filter for responders. The number of data points that survive that filter will probably make you sad.</p></div></div>]]></content:encoded></item><item><title><![CDATA[What can Virtual Cells do for you today?]]></title><description><![CDATA[and what they can't - because the bottleneck is not computing power]]></description><link>https://blog.turbine.ai/p/what-can-virtual-cells-do-for-you</link><guid isPermaLink="false">https://blog.turbine.ai/p/what-can-virtual-cells-do-for-you</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Tue, 11 Nov 2025 15:02:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!16Dm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The term <em>Virtual Cell</em> has taken off over the past year. On one hand, it&#8217;s great to see so much attention on computational biology. On the other, it has created confusion about what current and emerging technologies can actually do.</p><p>Let me try to clear that up.</p><h4>What is a virtual cell?</h4><p>The current trend around <em>virtual cells</em> traces back to <a href="https://www.cell.com/cell/fulltext/S0092-8674(24)01332-1">this article</a> by Bunne et al., where they introduced the term AIVC, or <strong>AI Virtual Cell</strong>. According to their definition:</p><blockquote><p>In particular, an AIVC needs to have capabilities that allows researchers to (1) create a universal representation (UR) of biological states across species, modalities, datasets, and contexts, including cell types, developmental stages, and external conditions; (2) predict cellular function, behavior, and dynamics, as well as uncover the underlying mechanisms; and (3) perform <em>in silico</em> experiments to generate and test new scientific hypotheses and guide data collection to efficiently expand the virtual cell&#8217;s abilities.</p></blockquote><p>In other words, a virtual cell would be a complete, general <strong>simulation</strong> - one that can accurately predict biology in new <em>contexts</em> without retraining.</p><p>That&#8217;s the dream.</p><pre><code><em>Explainer box on biological context</em>

<strong>Biological context</strong> is an umbrella term for all of the known or unknown variables and interactions that influence an experiment's outcome but are not explicitly measured.

The same cell can respond differently depending on:
- neighboring cells
- extracellular environment
- experimental protocol
- the natural evolution of the cell line over time
- or anything like the current moon phase (<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC9445029/">I kid you not</a>)

which then become implicit conditions on any biological measurement. (Drug A is effective in X cells, but only <em>if</em>... (after X days, without support cells close enough, etc.)</code></pre><p>The Bunne et al. paper states that the main bottleneck to achieving this general virtual cell is <strong>integration of diverse data types and scales</strong>. Some readers interpreted this as suggesting that, with the right (foundation) modeling approach, we could build a general virtual cell <strong>from the data we already have,</strong></p><p><em>which is where my opinion differs.</em></p><pre><code><em>Explainer box on foundation models vs virtual cells</em>

It&#8217;s easy to confuse these terms because they&#8217;re often mentioned together, but they are different concepts. 

<strong>Foundation modeling</strong> is a <em>method</em>. AI models trained first on a massive, messy, unlabeled (in our case: has no specific treatment or outcome target, they are just there) dataset to understand the general problem space. Then, with a smaller set of task-specific data, they can be fine-tuned to perform specific tasks. This is how today's (Transformer-based) large language models work.

A <strong>virtual cell</strong> is an <em>application</em>. Virtual cells are models that predict how a biological system will respond to novel inputs. Virtual cells can use any type of model internally from a simple linear regression to a deep neural network like a Transformer.

So you can have virtual cells that aren't foundation models and foundation models that aren't virtual cells.
But foundation models are probably our current best bet for moving toward that elusive general virtual cell.</code></pre><h4>Understanding context will enable general virtual cells</h4><p>If we want models that generalize to new biological contexts, we first need to understand what <em>context</em> actually means. You can&#8217;t predict outcomes in a new situation without knowing whether your training data can tell you that the situation is different.</p><p>We don&#8217;t need to list every single variable that influences an experiment - there are too many - but we do need cell &#8220;snapshots&#8221; rich enough to capture the fingerprints of all meaningful influences.</p><p>Put simply: if the same input can lead to multiple outcomes (beyond random noise), then the input is incomplete.</p><p><strong>In theory</strong>, a perfect RNA-seq dataset <em>might</em> capture all this information, since most biological processes leave some trace in RNA levels. In practice, though, today&#8217;s signal-to-noise ratio likely <a href="https://blog.turbine.ai/p/pretraining-virtual-cells-is-useless">erases many of those traces</a>. </p><p>This probably isn&#8217;t a fundamental limit of biology, but of our experimental tools and how we use the data. Because </p><div class="pullquote"><p>biology itself is remarkably reproducible; monozygotic twins (and clones) prove that you can replay embryonic development with great fidelity.</p></div><p>Yet, we struggle even trying to <a href="https://openproblems.bio/benchmarks/batch_integration">combine data from different labs or protocols</a>.</p><p>So to build a general virtual cell, the first thing - I think - we&#8217;d need is a <strong>numeric description of cells detailed enough that no additional biological context</strong> needs to be specified. <strong>A digital cell</strong>, if you&#8217;d like.</p><p>This isn&#8217;t entirely out of reach, but <strong>I don&#8217;t think any data we currently have</strong> (in the forms we usually process them) carries that level of context.</p><p>So for <strong>general</strong> virtual cells, rather than throwing more compute at existing datasets, the better path forward is to determine <strong>which kinds of data</strong> actually enable predictions across new biological contexts, and start generating that.</p><h4>The virtual cells we already have</h4><p>Today&#8217;s data and methods give us is <strong>narrow virtual cells</strong>. <strong>Having calibration data for a well-defined assay</strong>, we can already virtualize many laboratory experiments with impressive accuracy. We call these <strong>virtual assays</strong><em>.</em></p><p>When we looked at which experiments could be simulated most reliably, one pattern stood out: success didn&#8217;t depend on the type of perturbation (drug, CRISPR, RNAi) or on the specific endpoint (viability, transcriptomics, phenotype). It depended almost entirely on the <strong>nature of </strong><em><strong>existing data</strong></em> from that assay. Like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!16Dm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!16Dm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 424w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 848w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 1272w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!16Dm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png" width="1275" height="389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:389,&quot;width&quot;:1275,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/168953456?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!16Dm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 424w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 848w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 1272w, https://substackcdn.com/image/fetch/$s_!16Dm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd56df617-08ab-4b09-9b3b-787113066a0c_1275x389.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><strong>How well can virtual experiments replace wet-lab ones?</strong> Prediction performance is measured on a scale where 0 means no better than random (baseline/bias) and 1 equals the reproducibility achieved between independent wet labs running the same assay using one of our <a href="https://blog.turbine.ai/p/so-how-do-you-benchmark-biology">robust metrics</a>. We consider a problem <strong>solved</strong> when performance &#8805; 0.8, <strong>okay</strong> above 0.6, and <strong>marginal</strong> above 0.25. Each row shows how much task-specific training data was available. The more overlap between the training data and the target experiment (same cell type, same perturbation), the closer virtual results come to real lab reproducibility.</figcaption></figure></div><p>A few interesting observations from this.</p><ol><li><p><strong>Virtual cells can already help scale your experiments</strong>. You can run hundreds of millions of simulated experiments, choose the best ones, and the majority of them will work as expected<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> (if you have previous training data for your drug in which case you are in one of the bottom rows).</p></li><li><p><strong>Adding new perturbations without training data makes the problem much harder.</strong> There <em>is</em> real signal in the simulations, but <strong>you need specific expertise to untangle it from the noise. </strong><em><strong>This is the region where a good model and clean data can make the biggest difference.</strong></em> </p></li><li><p>Y<strong>ou can only be as good as the underlying assay is</strong>. Some wet-lab assays are bad at reproducing their own results. I&#8217;m looking at you, Bliss synergy<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. I imagine as we grow in our understanding of what are the constituents of biological context, we can design experiments that replicate better. </p></li><li><p><strong>Most foundation model tests target the easy problems.</strong> The currently running <a href="https://virtualcellchallenge.org/">Virtual Cell Challenge</a> provides training data that already includes the exact cell line and perturbations being tested. <strong>There is not much benefit to be gained here by heavy-duty foundation models</strong> compared to simple ML models. </p></li></ol><h4>The &#8220;AGI tests&#8221; of biology</h4><p>So, we are, for the time being, in the narrow era. Every new advance is appreciated, but be careful - it&#8217;s easy to claim far too wide and general usability for the next narrow win. </p><p>I think there are some biological problems which can&#8217;t be solved without genuine context transfer. <strong><a href="https://blog.turbine.ai/p/so-how-do-you-benchmark-biology">Mastering</a></strong> those would mean our models have begun to understand biology itself.</p><p>If you wanted to define an &#8220;AGI<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> test&#8221; for biology, the ladder of progress could look like this:</p><ol><li><p><strong>Take a new drug with known structure and binding data and predict how cells will respond using only their CRISPR response.</strong></p></li><li><p><strong>Predict drug synergy between two compounds that have only been tested in monotherapy before.</strong></p></li><li><p><strong>Predict how two cell types, previously tested alone, respond when co-cultured.</strong></p></li><li><p><strong>Predict how a drug tested only in vitro will behave in </strong><em><strong>ex vivo</strong></em><strong> or </strong><em><strong>in vivo</strong></em><strong> models.</strong></p></li></ol><p>These sound simple, but none - according to my knowledge - have been solved to experimental reproducibility<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a>, not even close. Some models and approaches are <em>useful</em>, but far from reproducibility.</p><p>Still, step by step, as we expand the context distance and the time horizon of what our models can predict, we&#8217;ll eventually get to the ultimate test of biological understanding:</p><div class="pullquote"><p>Given only the a DNA of a zygote, replay embryonic development until the baby is born.</p></div><p></p><p>The work of <strong>Laszlo Mero, Gerold Csendes, Murat Cem Kose, Dana Zemel</strong> and <strong>Robert Sipos</strong> were instrumental to get the data package together for the article. Also thanks for the reviews, <strong>Louisa Roberts</strong>, <strong>Krishna Bulusu</strong>, <strong>Daniel Veres</strong>, <strong>Imre Gaspar</strong> and <strong>Valer Kaszas</strong>! </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>I mean half of the signal will still be there. <a href="https://blog.turbine.ai/p/so-how-do-you-benchmark-biology">Interesting signals are rare</a>. If you have 50% (coin-flip) accuracy, and 5% interesting signal, most likely <em>all</em> of your top 10 experiments will fail. You need more than<strong> 90% accuracy on the average data point to keep half your signal</strong> in the wet-lab. Here&#8217;s an illustrative example below (with 6% signal to keep numbers nice).</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gbZO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gbZO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 424w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 848w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 1272w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gbZO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png" width="1147" height="202" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aed46b9a-180d-4359-ae55-51030d466db6_1147x202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:202,&quot;width&quot;:1147,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23802,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/168953456?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gbZO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 424w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 848w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 1272w, https://substackcdn.com/image/fetch/$s_!gbZO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faed46b9a-180d-4359-ae55-51030d466db6_1147x202.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Combination synergy metrics, like Bliss, are famous for being noisy. It is because they are fundamentally difference metrics of the effectiveness of the drugs administered individually vs in combinations. A difference - especially if the two arguments are close - amplifies noise, sometimes extremely so. The figure below should give an intuition why that happens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6dd6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6dd6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 424w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 848w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 1272w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6dd6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png" width="240" height="291.42857142857144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:476,&quot;width&quot;:392,&quot;resizeWidth&quot;:240,&quot;bytes&quot;:11353,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/168953456?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6dd6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 424w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 848w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 1272w, https://substackcdn.com/image/fetch/$s_!6dd6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa71d80ce-a691-4f5b-86c8-795129652aeb_392x476.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Artificial General Intelligence - simply put, the quest in general AI to get to a model which is <em>really</em> intelligent, not just <em>sounds</em> intelligent. I think it&#8217;s a good analogue, but otherwise it&#8217;s a huge can of worms I really don&#8217;t want to open here.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>With a robust metric - I know I&#8217;m belaboring this point, but <a href="https://blog.turbine.ai/p/the-patient-puzzle">none of these are apparent</a> if you&#8217;re using a simple metric. It will just give you a nice 70-90% accuracy, and you&#8217;ll be happy until the wet-lab experiments start failing. Since the outliers will be selected for lab validation, your model needs to work <em>there</em>, not just on the average data point.</p></div></div>]]></content:encoded></item><item><title><![CDATA[The Patient Prediction Puzzle]]></title><description><![CDATA[on why solving patients need more than patients]]></description><link>https://blog.turbine.ai/p/the-patient-puzzle</link><guid isPermaLink="false">https://blog.turbine.ai/p/the-patient-puzzle</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Thu, 16 Oct 2025 15:02:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DN1N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>OK, we need to talk about patient response predictions.</p><h4>The baseline is surprisingly high</h4><p>There&#8217;s a striking disconnect between how pharma insiders view AI&#8217;s relevance in clinical trials (close to zero) and how it&#8217;s often marketed (AI is already here! 70% accuracy!).</p><p>If someone tells you they can predict how patients will respond to a drug with 70% accuracy, how surprised should you be? Given that most phase 2 trials - where efficacy is first measured in humans - fail, that sounds like a big leap forward, right?</p><p>Let&#8217;s test that.</p><p>The gold standard for fully mapped patient data is the Cancer Genome Atlas (TCGA). The team found around 800 data points where we know all three of: </p><ul><li><p>the patient&#8217;s molecular profile before the treatment</p></li><li><p>the treatment itself</p></li><li><p>the outcome</p></li></ul><p>On first approach, how does a simple linear regression do?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DN1N!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DN1N!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 424w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 848w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 1272w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DN1N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png" width="557" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:557,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20820,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161016910?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DN1N!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 424w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 848w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 1272w, https://substackcdn.com/image/fetch/$s_!DN1N!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffb65c0c0-114c-4dcf-9d66-98bf686e87c7_557x470.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Simple predictive models&#8217; AUROC scores on the TCGA data. Train-test was split over the patient dimension. Different bars show the inclusion of different data points. The &#8220;clinical&#8221; bar is the one referred to in the text, including only three pieces of information: the stage and indication of the cancer and the drug identifier.</figcaption></figure></div><p>Wait, 75% already?</p><h4>What&#8217;s the real question?</h4><p>By predicting <em>clinical patient response data</em>, the question you&#8217;re really asking is:</p><blockquote><p>Can you predict how an <em>approved</em> drug will work on a patient treated <em>according to protocol?</em></p></blockquote><p>But this data contains very little molecular information. The best-performing indications and biomarkers are already built into the treatment protocol, and doctors rarely go off-script.</p><p>No wonder the only meaningful variables that show up are the cancer&#8217;s indication, its stage, and the drug used - essentially, the survival statistics of the state-of-the-art.</p><p>That&#8217;s not the question we actually want to answer.</p><p>The real question for getting a new drug into the clinic is:</p><blockquote><p>Can you predict how well a <em>new, never-before-tested</em> drug will work in different indications and where could it beat today&#8217;s standard of care<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>? </p></blockquote><p>That question, almost by definition, can&#8217;t be answered from existing patient data. You only get 2-3 data points per patient, and from a very limited set of drugs. There&#8217;s simply no way to infer what <em>would have</em> worked.</p><h4>More data?</h4><p>Maybe the problem is just scale. Let&#8217;s add more data. Why just 800 data points, anyway? There are <em>hundreds of thousands</em> of patient data points out there.</p><p>On one hand, good data is surprisingly scarce.<br>We started with 12,000 samples from TCGA and 200,000 from GENIE, but it quickly started eroding.</p><ul><li><p>Most samples had no response data at all.</p></li><li><p>Many represented early-stage cancers removed surgically - no way to tell whether the drug was even necessary.</p></li><li><p>Others were sequenced <em>after</em> treatment, so the tumor&#8217;s molecular profile represents the <em>recurrent </em>tumor, not the one you treated.</p></li></ul><p>After cleaning, we were left with about 800 usable data points from TCGA and 3,000 from GENIE.</p><p>In theory, <strong>with unlimited data, the problem becomes solvable</strong>: for every patient who doesn&#8217;t respond to a given drug, there would eventually be others similar enough who responded to a different drug. At that point, an AI model could start connecting the genetic dots.</p><p>That&#8217;s exactly the hypothesis we&#8217;re testing now in <strong>collaboration with</strong> <strong>Memorial Sloan Kettering&#8217;s Cancer Center</strong> in this year&#8217;s iHub Challenge program - how much additional signal would emerge if we had an <strong>order of magnitude more data</strong>?</p><p>Huge thanks to <strong><a href="https://www.linkedin.com/in/rick-peng-ziyou/">Rick Peng</a></strong>, <strong><a href="https://www.linkedin.com/in/jae-zhong/">Jae Zhong</a></strong> and the <strong>MSK team</strong> for making this possible.</p><h4>Building bridges</h4><p>Still, my intuition is that patient data will remain just one piece of the puzzle. To reach the right level of molecular understanding, we&#8217;ll likely need to mix in data with much higher information density - where we can actually generate true counterfactuals (what-ifs).</p><p>That means simpler, but repeatable models like in vitro, organoid or PDX (patient-derived xenograft) models.</p><pre><code>Explainer box: The acronym PDX stands for Patient-Derived Xenograft. By implanting human tumor cells into mice, we can test drugs not yet approved for clinical trials on fresh human cells, in a tumor-like living environment without compromising patient safety (unfortunately, the same can't be said for the mice)</code></pre><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lTSx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lTSx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 424w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 848w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 1272w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lTSx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png" width="562" height="179.66751918158567" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:250,&quot;width&quot;:782,&quot;resizeWidth&quot;:562,&quot;bytes&quot;:62287,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161016910?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lTSx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 424w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 848w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 1272w, https://substackcdn.com/image/fetch/$s_!lTSx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c0926c4-7896-4fad-b855-c9dfe0dbd027_782x250.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Image from <a href="https://app.biorender.com/speedbump?redirect=https://doi.org/10.3390/cells10030712&amp;ref=template-details">https://doi.org/10.3390/cells10030712</a></figcaption></figure></div><p>But how do we bridge these worlds?</p><p>An <em>in vitro</em> cell line doesn&#8217;t map directly to a patient. If you change both the treatment and the input system simultaneously, you can&#8217;t tell whether the outcome came from the drug or the model.</p><p>Turns out there might be a bridge. It&#8217;s faint and thin for now, but it could just become strong enough if we put the work in. See the following plot:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cnwV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cnwV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 424w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 848w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 1272w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cnwV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png" width="567" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:567,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26794,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161016910?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cnwV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 424w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 848w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 1272w, https://substackcdn.com/image/fetch/$s_!cnwV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86ea320-f24c-4ae4-ba1d-6e099d141d39_567x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Predictive performance of the in vivo PDX outcomes on the corresponding patients (red line), and when shuffled within an indication (black line). The cyan line is the baseline from clinical data. n=23</figcaption></figure></div><p><strong>PDX models show a predictive signal above that of the clinical baseline - but only when matched to their original patient.</strong> Just the same indication isn&#8217;t enough. </p><p>Now all our studies are very preliminary, hundreds of patients at best. The image above is made from just 23 patients. </p><p>That&#8217;s because there isn&#8217;t much data that meets these strict criteria, especially publicly. That&#8217;s why I&#8217;m glad to have our collaboration with <strong>Champions Oncology</strong> (shout-out to <strong><a href="https://www.linkedin.com/in/matt-newman-9a980a2/">Matt Newman</a> </strong>for helping us make this happen!). Together, we&#8217;re <strong>expanding that bridge to thousands</strong> of data points. </p><p>If it holds, this connection could let us integrate all the &#8220;unmatched&#8221; PDX datasets as well into one coherent predictive system.</p><p>I&#8217;ll be back with details when we get there.</p><p>Kudos to the many people on the Turbine team who made the studies and these collaborations possible: <strong>Richard Izrael</strong> for leading the Champions partnership, <strong>Emese Sallai-Simon</strong> for supporting us during the MSK process, <strong>Gema Sanz, Bence Czako</strong>, <strong>Richard Izrael</strong> and <strong>Bence Szalai</strong> for the PDX/patient studies!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>while not being unreasonably toxic, of course</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[This is All an Experiment]]></title><description><![CDATA[doing our part for stronger science]]></description><link>https://blog.turbine.ai/p/this-is-all-an-experiment</link><guid isPermaLink="false">https://blog.turbine.ai/p/this-is-all-an-experiment</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Mon, 14 Jul 2025 14:02:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b15y!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1452ecd3-7635-4c10-8d6f-0b0aeda38363_200x200.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have to come clean: this isn&#8217;t just a company blog. It&#8217;s also an attempt to test a new way of publishing - one that tries to fix some of the gaps in the scientific system.</p><h3>You can&#8217;t force science to work</h3><p>Academia is built on a business model of publishing papers. I still feel uneasy about some of the papers I published during my PhD. By my current standards, most would never have seen the light of day, like <a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0078059">this first paper mentioning Turbine</a>. But I try to empathize with other young researchers. Why do we expect every PhD student to make a significant, standalone discovery, in isolation?</p><p>That&#8217;s probably why I&#8217;ve wanted to help fix how science operates ever since I learned the ropes outside academia. I got burned so many times when a nicely<em> tuned </em>model fell apart on new data. </p><p>For a while, I chased the idea of a magical metric that could extract the truth from a pile of publications no matter how biased they individually were. <a href="https://pages.ucsd.edu/~cmckenzie/Simonsohnetal2014JEPGeneral.pdf">Some</a> <a href="https://en.wikipedia.org/wiki/Funnel_plot">tech</a>niques help. But I have never found any way to fully escape <a href="https://en.wikipedia.org/wiki/Goodhart%27s_law">Goodhart&#8217;s law</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> or the <a href="https://sites.stat.columbia.edu/gelman/research/unpublished/p_hacking.pdf">garden of forking paths</a><a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>. </p><p>So what&#8217;s the next best thing? </p><p><strong>Playing our own hand well.</strong></p><h3>How our research can be different</h3><h4>Getting the incentives right</h4><p>Being a startup gives us the freedom to do research differently. </p><p>We are incentivized to deliver real value - value customers are willing to pay for. That means our models have to actually <em>work</em>. They must be predictive on new data, in the environments that matter. </p><p>That&#8217;s harder than it sounds. In statistics - and by extension, machine learning - it&#8217;s shockingly easy to fool yourself, especially <a href="https://blog.turbine.ai/p/ic50-is-a-deep-rabbit-hole">with messy data</a>. And under pressure, even easier to fool others.</p><p>That&#8217;s why this is the first rule in my research teams: </p><p><strong>No one is incentivized to produce a specific outcome in any given experiment</strong>. </p><p>Their job is to give their best estimate of what the truth might be. (We only need to ensure that the <strong>whole set</strong> of experiments is designed so they lead us - eventually but inevitably -  toward <em>some</em> solution.)</p><h4>Staying focused</h4><p>We aim to solve specific problems in biology. For example: building models that can accurately predict how cancer patients will respond to new drugs. </p><p>We&#8217;re not bound by the usual academic constraints: no need for everyone to make a separate, novel discovery to earn a PhD, and no need to follow grant requirements written five years ago. Entire teams can focus on the one big question, pivot quickly from dead ends and iterate faster. This lets us make much more rapid progress.</p><h4>Doing replications</h4><p>This focus gives us the bandwidth to not just learn from others, but to integrate their work by replicating key studies on our own datasets, using our internal benchmarks.</p><p>That often takes weeks - adapting the code, reshaping the data and running it through our evaluation pipelines. But it&#8217;s worth it. Replications help us pick better paths forward. </p><div class="pullquote"><p>And this different process give us something valuable to contribute back: <br><strong>publishing replications and the dead ends we&#8217;ve ruled out</strong>.</p></div><p>The current scientific publication system isn&#8217;t designed for that. But no matter. The Web is large.</p><h3>A different way of publishing</h3><p>So <strong>I&#8217;m experimenting with a new way to publish</strong>. </p><p>When I come across something useful, I&#8217;ll first publish it here. Before posting, I run it by people I trust - people willing to add their name below. It&#8217;s a kind of open review.  If someone from the team is willing to expand it into a full article, they&#8217;re welcome to. <br>Personally, I think reviewed preprints are perfectly valid scientific outputs. But if they want to take it through the full journal process, I won&#8217;t stand in the way. </p><h4>A springboard to write papers</h4><p>So these posts are breadcrumbs. Useful on their own, but also possible seeds of future papers. That comes with a few advantages.</p><h5>No need to retrofit a story</h5><p>Many papers cram disconnected results into a single &#8220;story&#8221; just to meet the bar of publication in journals. That creates brittle arguments and logic that&#8217;s hard to follow. Here, each post tells one story. It&#8217;s easier to write and easier to read.</p><h5>Easier to read</h5><p>Scientific writing doesn&#8217;t <em>have </em>to be dry, it just often ends up that way. Partly due to authorship-by-committee and partly because most of us aren&#8217;t native English speakers. </p><p>But mainly because that&#8217;s the convention. I remember my PhD supervisor redlining my writing back into passive voice and past tense. <em>&#8220;This is how you write scientific text&#8221;</em>, he said. <em>&#8220;It needs to sound serious&#8221;</em>. </p><p>That&#8217;s just the norm. Journals themselves are trying to push for plainer language, but it hasn&#8217;t caught on.</p><p>Well, it can here.</p><h5>Trade secrets</h5><p>Some of what makes Turbine work has to stay confidential. That&#8217;s what funds the science we want to do tomorrow.</p><p>But there&#8217;s a lot I <em>can</em> share. Even just knowing what <em>didn&#8217;t work</em> can be valuable, even without full access to our code or data. </p><p>Since we can&#8217;t open-source everything, many of these insights would otherwise go unpublished.</p><h5>Less friction for publishing</h5><p>In the hectic startup life, putting the full timeline of getting something published on a roadmap is daunting. So publishing usually ends up staying in the backlog. Starting with a blog post, then evolving it into a preprint, and finally submitting for peer-review may help break it up into manageable chunks.</p><h5>Strengthen existing science</h5><p>Since <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC1182327/">most published research findings are false</a>, publishing negative results and replications is essential. But they don&#8217;t fit into the current system.</p><p>This format lets me contribute in a way that helps strengthen the science we all build on - and maybe show that failures often teach more than success stories. They should be celebrated, not hidden in the drawer.</p><p>So we can all keep pushing biology forward. Together. </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>&#8220;When a measure becomes a target, it stops being a good measure&#8221;.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Unintentionally increasing the degrees of freedom of a statistical test when preparing the data for analysis, thereby inflating the significance of findings, producing false positives. I have never found a method which can reliably correct for <em>unobserved</em> multiple comparisons.</p></div></div>]]></content:encoded></item><item><title><![CDATA[IC50 is a deep rabbit hole]]></title><description><![CDATA[On harmonizing data, because ground truth in biology is unlike text]]></description><link>https://blog.turbine.ai/p/ic50-is-a-deep-rabbit-hole</link><guid isPermaLink="false">https://blog.turbine.ai/p/ic50-is-a-deep-rabbit-hole</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Mon, 30 Jun 2025 14:00:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!a4Uk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Data harmonization is often an afterthought </strong>in the brave new world of large ML models. Just feed the AI everything, and let the model figure it out. Right?</p><h3>Real ground truth doesn&#8217;t exist in biology</h3><p>This approach worked beautifully for language, but there&#8217;s a reason why biology is an entirely different beast.</p><p>In language, text is its own ground truth. Every sentence is a sequence of characters. All meaning there is emerges entirely from that sequence. An A is an A no matter the font. All letters of the same kind are <strong>completely interchangeable</strong>, so the alphabet is a complete catalog, and the text is a complete description.</p><p>But a cell is not just a cell.</p><p>Every cell has <em>state</em>. In theory, every single living cell traces its lineage back to LUCA - the last universal common ancestor - but each one has a slightly different history. Therefore no two cells are really identical. Some of those differences in the cell state probably don&#8217;t matter for predicting response, but others certainly do. The problem is we don&#8217;t yet know which is which. If we could measure everything that matters, we can have a complete description similar to text. That&#8217;s not the case for the time being.<br><br><strong>We don&#8217;t yet have any way to </strong><em><strong>completely</strong></em><strong> describe a cell with numbers.</strong></p><p>So any experimental readout - whether it&#8217;s viability, protein assays, sequencing, or omics data - is just a snapshot of a yet invisible generating process. That&#8217;s ultimately what we&#8217;d like to understand - a gargantuan hidden Markov model with bajillions of states.</p><h3>A quick detour on hidden Markov models</h3><p>&#8230;Yes? You don&#8217;t know what hidden Markov models are? Oh.</p><p>If you grew up after deep learning happened, you might have missed hidden Markov models (HMMs). </p><p>The idea is that there is an internal &#8220;generating state&#8221; which you cannot directly observe (X&#8321;, X&#8322;, X&#8323;), but you know that each state has slightly different probabilities (b&#8321;&#8321;, b&#8321;&#8322;, etc.) of producing visible outputs (y&#8321;, y&#8322;, &#8230;). </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7aAq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7aAq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 424w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 848w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 1272w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7aAq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png" width="427" height="341.6" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:750,&quot;resizeWidth&quot;:427,&quot;bytes&quot;:26561,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7aAq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 424w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 848w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 1272w, https://substackcdn.com/image/fetch/$s_!7aAq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff946cca1-896a-4bd0-b922-caf8c1768a56_750x600.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Source: Wikipedia/Hidden Markov model</figcaption></figure></div><p>The goal is to learn these probabilities and infer the generating state from the input sequence. A classic example was predicting whether and unknown DNA segment is part of a gene. Coding regions tend to have higher GC content than non-coding regions, which the HMMs could recognize.</p><p>So, where were we?</p><h3>You can be training the wrong idea</h3><p>Since we don&#8217;t have a complete cell descriptor, <em>the context</em> in which your data was generated matters a lot. Metadata is key. </p><p>Otherwise you will confuse the AI.</p><p>Say you&#8217;re training a model using both gene knockout (KO) and drug response data. There&#8217;s a discrepancy: a pair of data points where a drug kills the cell but knocking out its target doesn&#8217;t. </p><p>Why? A drug may bind to other proteins we don&#8217;t know about. If your system just assumes that KO = drug (in high enough dose), <strong>you just taught the model that the drug kills the cell at low doses, </strong><em><strong>and brings them back to life as the dose tends to infinity</strong></em><strong>.</strong></p><p>I&#8217;ve been surprised how often these curation issues get overlooked, especially by teams coming primarily from the ML world. But biology is messy. We&#8217;ve worked with big-name ML groups relatively new to biopharma and much of what follows came as a surprise to them. So let me show you just the tip of the iceberg.</p><p>Nothing fancy, no RNA-seq, Perturb-seq, no CRISPR, no complex combinations. Not even multiple modalities. Just plain old drug response data.</p><h3>Curating an &#8220;IC50&#8221; data point</h3><p>Let&#8217;s say you have this data point: </p><blockquote><p><strong>Dabrafenib, HeLa, 50% inhibition @ 10 nM.</strong> </p></blockquote><p>What should you tell the AI? What is missing from here?<br>Let&#8217;s check the underlying data. <em>You have that, right?</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!a4Uk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!a4Uk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!a4Uk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png" width="790" height="489" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:68812,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!a4Uk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!a4Uk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6f2da58-0400-4ae5-9bb5-cde2d8f55af2_790x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A simple, straightforward IC50 curve. Real data is rarely this nice.</figcaption></figure></div><p>This is how it might look like. We take the data points, fit a sigmoid curve on it, and take the halfway point on the y-axis, right? Simple.</p><p>But wait:</p><h4>1. What do you mean by inhibition?</h4><p>Remember, cells keep growing during an assay. So did you measure:</p><ul><li><p>the point where the cells grow <em>half as fast</em> as without the drug?</p></li><li><p>the point where you have <em>half as many</em> cells <em>as you started with?</em></p></li><li><p>the point where you have exactly <em>half as many cells </em>as a <em>control growing in a different well</em>?</p></li></ul><p>All of these have, at some point, been labeled &#8220;IC50&#8221;. That&#8217;s incorrect.<br>The first one is called GI50 (for Growth Inhibition).<br>The second is LD50 (for Lethal Dose).<br>And only the third is truly <strong>IC50</strong>.</p><p>So unless you compare to a control, your value is not IC50, no matter how it&#8217;s called.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RQhs!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RQhs!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RQhs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png" width="724" height="448.14683544303796" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:489,&quot;width&quot;:790,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:76403,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RQhs!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!RQhs!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cfee544-88c9-4ffb-a0c9-b0518f33afb2_790x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">If you are not comparing to the control but to the t=0 cell count, you can have a GI50 or LD50 but not an IC50.</figcaption></figure></div><h4>2. What do you mean by &#8220;50%&#8221;?</h4><p>But what if your dose-response curve never hits 0? </p><p>Most drugs don&#8217;t kill <em>all</em> cells. So we must also distinguish between <strong>absolute</strong> <strong>50%</strong> inhibition, and <strong>50% of the maximum observed </strong>inhibition. Only the first one is IC50. The second is formally <strong>EC50</strong>, but of course these terms are used interchangeably all the time. It doesn&#8217;t help that they coincide on example curves where the dose-response curve does hit 0.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!stlE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!stlE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!stlE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!stlE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!stlE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!stlE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png" width="790" height="489" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!stlE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!stlE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!stlE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!stlE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f6e2cb-8f2e-4b3c-a076-85c1d72fb666_790x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">EC50 and IC50 turn out to be different measures when the maximum cell death is less than 100%.</figcaption></figure></div><p></p><h4>3. How long was the treatment?</h4><p>Some drugs act on different timescales. For instance DNA damage response (DDR) inhibitors generally do nothing in the standard 3-4 day assays. You need 7 days before enough DNA damage accumulates to visibly affect cell behavior.</p><p>But there&#8217;s also a mathematical problem. </p><p>Cells grow <em>exponentially.</em> At the same time, the 50% is a <em>linear</em> ratio of the untreated and treated cell counts. What you&#8217;re really modulating is the <strong>rate of growth (and cell death)</strong>. So even if the drug effect is constant, a 3 and a 4 day measurement will yield <em>different</em> IC50 values.</p><p>Fortunately, you can correct for this mathematically, but only if you know how long the experiment lasted.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uwRa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uwRa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 424w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 848w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 1272w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uwRa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png" width="790" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:790,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:56381,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uwRa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 424w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 848w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 1272w, https://substackcdn.com/image/fetch/$s_!uwRa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1dfd8dfc-28ab-4423-b283-3f326188fde3_790x490.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>4. How did you fit the curve?</h4><p>If your data is well behaved, most curve-fitting methods will give you similar IC50 values.</p><p>But what if your data looks like this?<br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cjup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cjup!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cjup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png" width="498" height="308.2556962025316" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7eadd137-cacb-43a4-9840-ccb069374963_790x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:790,&quot;resizeWidth&quot;:498,&quot;bytes&quot;:48465,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Cjup!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 424w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 848w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 1272w, https://substackcdn.com/image/fetch/$s_!Cjup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7eadd137-cacb-43a4-9840-ccb069374963_790x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tW85!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tW85!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 424w, https://substackcdn.com/image/fetch/$s_!tW85!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 848w, https://substackcdn.com/image/fetch/$s_!tW85!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 1272w, https://substackcdn.com/image/fetch/$s_!tW85!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tW85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png" width="492" height="304.9277566539924" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:489,&quot;width&quot;:789,&quot;resizeWidth&quot;:492,&quot;bytes&quot;:47330,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tW85!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 424w, https://substackcdn.com/image/fetch/$s_!tW85!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 848w, https://substackcdn.com/image/fetch/$s_!tW85!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 1272w, https://substackcdn.com/image/fetch/$s_!tW85!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa12762ca-0d25-49d3-b68c-2f02fd69bf6a_789x489.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The sigmoid assumption doesn&#8217;t apply to resistant cell lines. If you&#8217;re lucky, you might get a faint slope, but generally it&#8217;s just going to be noise. NLME fit is designed to handle hard cases leveraging expected behavior from similar cell lines, but as you may see (red curves), these can easily become wild extrapolations. </figcaption></figure></div><p>So what should you do? Just say there&#8217;s no prediction? In many use-cases you need to give a value no matter what. Depends on your use-case, but make sure you use the right data. For example, GDSC&#8217;s non-linear mixed effects(NLME) fitting does the latter - uses other cell lines&#8217; data to give you a prediction no matter how ugly. We prefer just saying no if we can, so we had to refit all the curves with a different algorithm. But we needed to be aware to do that and needed to get the individual dose point data.</p><h4>5. What did you actually measure?</h4><p>How do you tell which cells are dead? Unless they completely dissolve (which they don&#8217;t in typical assay timescales) there&#8217;s no large &#8220;DEAD&#8221; sign written on a dead cell. You need some way to tell them apart.</p><p>And that&#8217;s the next issue. Some assays (like CellTiter-Glo) measure ATP levels to estimate live cell count. Others measure their metabolic rate by tracking NADH use (resazurin - Alamar Blue). You can also use DNA intercalators to highlight individual dead cells undergoing apoptosis, and count them under a microscope.</p><p>But these methods don&#8217;t agree perfectly. Not all cells die via apoptosis. Some cells may have metabolism but are already doomed. Some drugs just mess with the assay readout directly (see below).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q6jw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q6jw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 424w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 848w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q6jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png" width="354" height="266" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/428c7963-53d2-4987-9b57-670275a792a8_354x266.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:266,&quot;width&quot;:354,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:65568,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/161145886?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q6jw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 424w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 848w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F428c7963-53d2-4987-9b57-670275a792a8_354x266.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Some compounds inhibit viability measurements, but don&#8217;t really induce cell death. Fig. 1b. from <a href="https://doi.org/10.1186/s12943-016-0517-3">10.1186/s12943-016-0517-3</a></figcaption></figure></div><p>Do you have the metadata to tell them apart?</p><h3>The data&#8217;s in the details</h3><p>I&#8217;m leaving out plenty of advanced topics like seeding density or the physical location of the well on the plate - you get the idea. </p><p><strong>Until we have an &#8220;ultimate data type&#8221; that fully captures cell state, understanding and harmonizing the data is not optional - it&#8217;s paramount.</strong></p><p>Thanks to <strong>Balazs Szabo</strong> and <strong>Miklos Laczik</strong> for their help with the NLME fitting and <strong>Richard Izrael</strong> for the ideas and reviewing!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why can we predict biology?]]></title><description><![CDATA[and what are we really predicting?]]></description><link>https://blog.turbine.ai/p/why-can-we-predict-biology</link><guid isPermaLink="false">https://blog.turbine.ai/p/why-can-we-predict-biology</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Thu, 22 May 2025 14:32:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!b15y!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1452ecd3-7635-4c10-8d6f-0b0aeda38363_200x200.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h4>Yes, biology is complex</h4><p>The first thing most people hear about biology is that it&#8217;s unbelievably complex.</p><p>Just this week, someone asked me how it&#8217;s possible to predict cell behavior from just 20,000 numbers (an RNASeq vector). It feels hard to imagine given the known complexity of cells.</p><p>Indeed. Every single cell contains billions of proteins in an incomprehensible number of possible combinations. Each protein is a whole machinery in and of itself, consisting of thousands of atoms in elaborate combinations. We are made of trillions of these cells.</p><p>Why do we even dare to think it is possible to predict any of this? </p><p>We can predict because cells - and we - are not random configurations of atoms. If we were, the only way to predict what will happen to us is to simulate from the atomic level with Schr&#246;dinger&#8217;s equation. </p><p>Just for fun, let&#8217;s calculate how infeasible that is. There are 10^24 atoms in an average human. Schr&#246;dinger&#8217;s equation scales quadratically, and we&#8217;d need femtosecond precision, We&#8217;re suddenly looking at ~10^63 operations per second of atomic simulation. A H100 GPU does say a petaFLOP (10^15) a second, so we&#8217;d still need a <em>quindecillion (</em>10^48) GPUs for real-time simulation. That&#8217;s almost the number of atoms on Earth. Yeah, that&#8217;s not gonna happen.</p><h4>Learning from our ancestors</h4><p>And yet, molecular biology is a thing. Alphafold <em>is</em> predictive. What are we really learning? </p><p>My hypothesis is this:<br><strong>We are learning the optimization surface carved by evolution.</strong></p><p>The only reason there is anything to learn is that our ancestors were subject to evolution for billions of years. We were being sculpted over the aeons to respond in certain ways to certain inputs. In ways that keeps our germ line alive, that is. </p><p>That means <strong>the reason why Alphafold can work<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> is that the proteins were themselves subject to evolutionary pressure</strong>. If my hypothesis is true, it follows that Alphafold would struggle with <em>random, </em>synthetic proteins that lack any evolutionary context<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>I don&#8217;t think we&#8217;re going to find any deterministic equation at these higher levels that resemble the ones we learned to use in physics. The rulebook to survive 3 billion years is much better described as as a surface optimized by evolution. As a lucky coincidence<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>, this is exactly how machine learning algorithms work inside - they approximate mathematical surfaces.</p><h4>Why does this matter?</h4><p><strong>It gives us some insight into how cells think.</strong></p><p>We tend to analyze biology in terms of DNA, RNA, proteins and molecules as these are the tangible entities we can measure. From there, we have built pathway diagrams and regulatory networks which have taught us a lot about how cells work <em>in general.</em></p><p>However, this has limited practical use. A drug that kills the majority of cells is just poison. To move forward, it&#8217;s exactly the outliers which you want to capture. The one outstanding indication where your drug is especially powerful, exactly <em>because</em> there&#8217;s a special constellation of factors causing the cell behavior to deviate from textbook form (&#8220;<a href="https://www.cell.com/cancer-cell/fulltext/S1535-6108%2802%2900133-2">Can a biologist fix a radio?</a>&#8221;).</p><p>In order to progress, we needed to let go of our old way of thinking about individual proteins responsible for cell behavior, and yield more control to the AI to organize the collective behavior of the components the way data tells us.</p><h4>Maybe cells think in functions</h4><p>I think the reason this worked is that cells are evolved to perform <em>functions, </em>making them<strong> &#8220;think&#8221; at a </strong><em><strong>process</strong></em><strong> level. Evolution was hacking whatever proteins were available,</strong> <strong>constantly tweaking and repurposing them to solve the most immediate problems.</strong> Hence all the different RAS proteins with overlapping functions, or moonlighting proteins with completely unrelated roles.</p><p>So I suspect that in a future where virtual cells are commonplace, peeking into what lies within the ultimate virtual cell&#8217;s neurons, we would find <strong>a mapping of functions</strong> - a web of ancestral functions evolved over time and their correspondence to the physical elements - genes, proteins, probably even parts of proteins (domains).</p><p>This would explain why we see our models learning much more from drug perturbations than from genetic ones - the job of a working drug is to disrupt a <em>function</em>, not a gene, after all.</p><p>(Thanks a lot for reviewing, <strong>Balint Pfliegel, Gerold Csendes</strong> and <strong>Bence Szalai</strong>!)</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>This is just <em>why</em> it works, not <em>how</em> it works.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>There is an argument to be made here that the 22 amino acids we are made of are also pre-selected by evolution, hence there may be also be simplified ruleset that describes their behavior without resorting to full atomic simulation.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>It is not <em>exactly</em> coincidence, but that&#8217;s not very relevant to the topic at hand.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Pretraining virtual cells is useless]]></title><description><![CDATA[the way we do it now]]></description><link>https://blog.turbine.ai/p/pretraining-virtual-cells-is-useless</link><guid isPermaLink="false">https://blog.turbine.ai/p/pretraining-virtual-cells-is-useless</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Wed, 16 Apr 2025 16:53:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>UPDATE: this was extended into a poster at scVerse 2025, you can check it out <a href="https://documents.turbine.ai/view/76370c14019c4db99aba3969de4a7977f5f352938d76429c873508b1e0d089ac/Turbine_SCVERSE_2025">here</a>.</em></p><p>Clickbaiting aside, theoretically, pretraining is <a href="https://blog.turbine.ai/p/do-cell-foundation-models-work">still</a> a good idea: <br>Let&#8217;s try to make use of the troves of unlabeled, pre-treatment single-cell RNASeq data to teach the system biological fundamentals. Then the actual training on the targeted, expensive, and scarce data doesn&#8217;t have to start from ground zero, so maybe it goes farther.</p><p>Before we dive in and talk about the results, a quick primer on pretraining.</p><h4>What are we pretraining?</h4><p>What does the AI really learn during pretraining? There is no shortage of fancy names like &#8220;language of life&#8221; or &#8220;fundamental biology&#8221; (yes, I am guilty too). But deep inside, it&#8217;s just <strong>correlations of gene expression</strong>. Something like this: if gene A is highly expressed and gene B is not expressed, then most likely gene C is highly expressed as well. </p><p>Some articles mention learning gene regulatory networks (GRNs). It&#8217;s the same thing. If you take these complex correlations, simplify them to 1-to-1 rules and chain them together, what you get is a GRN.</p><p>The way most bioGPTs go about this pretraining is that we <em>mask</em> some of the expression values, and ask the system to predict them.</p><p>Here&#8217;s how it would look in an LLM:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dMPP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dMPP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 424w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 848w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 1272w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dMPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png" width="566" height="440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:440,&quot;width&quot;:566,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:13647,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/160578508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dMPP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 424w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 848w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 1272w, https://substackcdn.com/image/fetch/$s_!dMPP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d8e29f5-5d6e-4ca7-bf2e-2f4d5ce5216f_566x440.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It&#8217;s like asking the system to correct some broken English. There&#8217;s a word that&#8217;s clearly wrong there, what the author could have intended? </p><h4>Proof of the pudding</h4><p>So one of our research teams went in, and did the same thing - masked out 15% of the gene expressions in all samples. They then ran a pre-training on scRNASeq data from CELLxGENE, 30M cells (filtering out 10% of the original 33M samples not coming from the 10x Genomics platform).</p><p>It worked perfectly. The predictions had a 76%  correlation with the ground truth, the same as experimental replicates. Great!</p><p>Then came fine-tuning. Ultimately we want to understand how drugs affect the cells. We want to be able to predict how their transcriptomic landscape looks <em>after</em> treatment. So we added some perturbation data.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G4Oi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G4Oi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 424w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 848w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 1272w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G4Oi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png" width="349" height="326.8412698412698" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:531,&quot;width&quot;:567,&quot;resizeWidth&quot;:349,&quot;bytes&quot;:21563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/160578508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G4Oi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 424w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 848w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 1272w, https://substackcdn.com/image/fetch/$s_!G4Oi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dd164e6-e792-4a6c-b81a-f08931a117ea_567x531.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Perturbation prediction performance (Pearson correlation of differential gene expression) on MixSeq data with and without pretraining. </figcaption></figure></div><p>Not much difference. If anything, fine-tuning made the training slightly <em>worse</em>. So to understand drug response<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>, pretraining was not really helpful. But maybe we were doing it wrong. How much information is really there in untreated RNA data?</p><h4>Less information than you think</h4><p>So the team went back to work. The interesting moment came with a set of experiments where they started increasing the ratio of masked genes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gvRz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gvRz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 424w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 848w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 1272w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gvRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png" width="618" height="509" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:509,&quot;width&quot;:618,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:24481,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/160578508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gvRz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 424w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 848w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 1272w, https://substackcdn.com/image/fetch/$s_!gvRz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c8cf13-eaad-4362-91ca-ea509364c730_618x509.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">As the ratio of masked genes change from left to right (red line, right axis), the model performance (measured as Pearson correlation of predicted vs actual gene expression level) stays the same (blue bars, left axis).</figcaption></figure></div><p>Wait, what? We are at the experimental replicate level of predictivity even with <em>all genes masked out?</em> What does the system even base its predictions on? </p><p>Turns out the remaining information with all genes&#8217; expressions masked out is <em>which genes were even expressed in the cell </em>to start with. Single-cell RNASeq differs from bulk in that it captures relatively little RNA from each individual cell, so what you see is just the most abundant genes rather than the the full transcriptome.<br><br>The issue isn&#8217;t that more information from RNASeq doesn&#8217;t help - that can be on us. The problem is that this piece of information is enough to get to experimental-level performance - ie. that&#8217;s all the information there is about single cells!</p><p>It seems that in pre-treatment cells the genes detected by scRNASeq are heavily correlated. Probably there aren&#8217;t <em>that</em> many major cell types to start with, and single-cell technology is not yet good enough to reliably detect smaller changes in individual cells.</p><p>Which leaves us with three possible consequences:</p><ul><li><p>either the gene regulatory information in the data is not good enough</p></li><li><p>or we&#8217;re not extracting data the right way (there is additional information in how cells associate which we&#8217;re not using)</p></li></ul><ul><li><p>or healthy gene regulation is just not the right kind of information we need to understand drug response.</p></li></ul><p>Thanks to our great Skunkworks Infinity team &#8212; <strong>Gerold Csendes, Gema Sanz, Bence Czako and Bence Szalai</strong> for working this out!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.turbine.ai/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>We <em>could</em> design a very specific task where the missing information is gene regulation, and pre-training does help - predicting unknown gene expression values post-perturbation <em>given some of the post-treatment expression values from the same perturbation</em>. The figure below shows the effect of pre-training. Whether this is useful in any practical application is anyone&#8217;s guess.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qIJY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qIJY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qIJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png" width="520" height="390" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:520,&quot;bytes&quot;:19249,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.turbine.ai/i/160578508?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qIJY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!qIJY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b3d8b9-02c2-4d7d-814f-15292b23b2c0_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></div></div>]]></content:encoded></item><item><title><![CDATA[How to make data points worthwhile?]]></title><description><![CDATA[Over the years as we worked with more and more clients, we encountered training data in all shapes and sizes.]]></description><link>https://blog.turbine.ai/p/how-to-make-data-points-worthwhile</link><guid isPermaLink="false">https://blog.turbine.ai/p/how-to-make-data-points-worthwhile</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Sat, 11 Jan 2025 11:58:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Over the years as we worked with more and more clients, we encountered training data in all shapes and sizes. It quickly became evident that just having a lot of raw data points doesn&#8217;t automatically result in a good model - it matters what you measure.</p><p>The team began developing intuitions about which types of training data work best. For example, drug perturbations seemed about 10 times more impactful than the same number of CRISPR data points. Post-treatment RNASeq data (measuring the whole transcriptome after treatment rather than just cell viability) gave better models, but definitely not 20.000 times better<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. Similarly, single cell measurements are better than bulk measurements, but not 10.000 times better<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>I asked to have these intuitions quantified. <br>Why is CRISPR worse? Is the technology inherently less robust?</p><h3><strong>It matters </strong><em><strong>what</strong></em><strong> you perturb</strong> </h3><p>Turns out the problem was that cells are pretty robust so most single gene KOs don&#8217;t really do anything. Drugs, on the other hand are specifically designed to elicit a response and usually bind to multiple proteins especially at higher concentrations.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XlbZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XlbZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 424w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 848w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 1272w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XlbZ!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png" width="1174" height="368.7268648345485" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27396552-3143-4d50-a309-fdc80f57d254_1783x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:560,&quot;width&quot;:1783,&quot;resizeWidth&quot;:1174,&quot;bytes&quot;:170533,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XlbZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 424w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 848w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 1272w, https://substackcdn.com/image/fetch/$s_!XlbZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27396552-3143-4d50-a309-fdc80f57d254_1783x560.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Significant expression change events in the LINCS drug perturbation and the LINCS CRISPR dataset. X axis is the average distance (Euclidean distance in RNA space) of a sample replica group from the bias (global average expression change for any perturbation), Y axis shows the average replica-to-replica distance within a sample. Significant expression change evens are shown with filled dots below the diagonal, <strong>where the replicas are closer to each other than to the bias</strong>.</figcaption></figure></div><p>Therefore, in the CRISPR training we were showing a lot of differently looking RNASeq data to the model, but most of those amounted to no actual change in cell behavior, essentially teaching noise to the model. No wonder these models performed worse.</p><h3>Compressing training data</h3><p>In this case, is it true that only perturbations that cause meaningful changes carry most of the information in the training? Could we &#8220;compress&#8221; the training data by only using the meaningful data points?</p><p>In order to do that, the first question we had to answer was what &#8220;meaningful change&#8221; means. </p><p>Different teams came up with different definitions.</p><p>&#8220;Horizons&#8221; team devised the idea that a sample is significant <strong>if the RNASeq pattern is significantly different in any pathway</strong>. This gives a compression factor of ~6x, so 1500-2000 points from every 10000 data points in LINCS.</p><p>&#8220;Skunkworks&#8221; took the RNA pattern as a whole, hypothesizing that those RNASeq patterns are useful where the <strong>replicates are closer to each other than to the bias (</strong>average RNASeq value over many perturbations). <em>This is the data you can see on the first figure above.</em> <br>Surprisingly, samples where this is true are very rare, yielding a compression factor of 30-50x (2-300 significant samples from 10000)</p><p>So how well do these compressed datasets work in an actual training?<br>Here&#8217;s how.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sJ9u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sJ9u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 424w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 848w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 1272w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sJ9u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png" width="504" height="377.87129724208376" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:979,&quot;resizeWidth&quot;:504,&quot;bytes&quot;:102846,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sJ9u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 424w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 848w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 1272w, https://substackcdn.com/image/fetch/$s_!sJ9u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F094b6335-6b50-4a84-bf36-d7bcf9a2d48e_979x734.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Post-treatment pathway activity prediction performance for 3 selected pathways on different datasets (partial correlation above the bias). The baseline &#8220;full dataset&#8221; score is trained on the full LINCS drug dataset, the &#8220;outlier&#8221; is the Horizons-defined subsetting, '&#8220;mse&#8221; is the Skunkworks-defined subsetting (bias-z is a third different definition we&#8217;ve been experimenting with, don&#8217;t worry about that). The &#8220;filter&#8221; column shows models&#8217; performance trained only on their respective subset, &#8220;inverted&#8221; shows model performance trained only on the negative of their respective subsets. (also, &#8220;padded&#8221; is a dataset padded to 10000 data points in all cases with random inclusion, but that&#8217;s immaterial for now).</figcaption></figure></div><p><em>Disclaimer: this was just a quick investigation, not a fully robust analysis.</em></p><p>What the results appear to suggest though, is that it is at least <em>possible</em> to find small subsets of data points carrying most of the useful information in a training<br>(this is shown by the performance of the &#8220;filter&#8221; column being equal or better than the baseline &#8220;full&#8221; dataset performance while at the same time datasets trained on the inverse subsets (&#8220;inverted&#8221;) missing these key data points performed significantly worse.) </p><p>Given how little <em>perturbed</em> RNASeq data is out there to train from, there is no need to speed up trainings with data compression yet. We still do some subsetting to remove the noise, but otherwise generally try to use as much info as we can.</p><h3>A better way to generate wet-lab data</h3><p><strong>The real value of this compression becomes apparent when </strong><em><strong>generating</strong></em><strong> wet-lab data.</strong> Wouldn&#8217;t it be wonderful if there was a way to only generate the important data points? To get 6-30x the value for your experimental dollars?</p><p>The problem is that we only know whether a perturbation did anything after performing the experiment itself.</p><p>But what if there was a way to <em>guess</em>?<br>Maybe if you had something like, I don&#8217;t know, a <em>Simulated Cell?</em>&#128522;</p><p>Let&#8217;s run some numbers, how much could such a predictive model help?</p><p>Based on the previous tests, the prevalence of meaningful events in a randomly generated data set is somewhere around 10% .</p><p>Now suppose you have a predictive model where you both have a 70% chance to successfully predict these meaningful events, but you also have a 30% chance to have false negatives (70% sensitivity). This results in the following contingency table.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gUe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gUe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 424w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 848w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 1272w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gUe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png" width="503" height="112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:112,&quot;width&quot;:503,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9505,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gUe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 424w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 848w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 1272w, https://substackcdn.com/image/fetch/$s_!gUe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fe9b096-71a8-4aa4-b53f-ddefc2d9484a_503x112.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>So, generating 100 &#8220;smart&#8221; data points yields 70 valuable training samples compared to the 10 we would have originally gotten using random generation:a 7x compression rate.</p><p>The catch is that there are important points you will always discard due to the false negatives of the simulator, 3.3% of the significant data points in this case.<br>It&#8217;s a tradeoff I&#8217;m willing to take.</p><p>In real life, our actual performance varies depending on how hard the problem is (see the previous benchmarking post)</p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;d727fa4d-3ddc-4076-965b-2f6a65435163&quot;,&quot;caption&quot;:&quot;This is a human-readable summary of the EFFECT paper [1]. I found that the process of scientific writing (especially with multiple authors and review rounds) makes texts significantly harder to read than intended - hence this post.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;sm&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;So how do you benchmark biology?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:273376699,&quot;name&quot;:&quot;Kris Szalay&quot;,&quot;bio&quot;:&quot;CTO@Turbine&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ba2e11b-3cb7-4a4c-9fda-ab297dde1afe_100x100.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-10-07T06:59:15.426Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://turbineai.substack.com/p/so-how-do-you-benchmark-biology&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:149683328,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Turbine AI&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1452ecd3-7635-4c10-8d6f-0b0aeda38363_200x200.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p>but it&#8217;s around 60-70% for the hardest specific subsets with a lot of outliers (resulting in 6-7x compression rate just as shown in the table above) and around 95% on the full dataset, yielding <strong>a 20x effective data compression rate.</strong></p><h3>AI in biology can be done today if you use data wisely</h3><p>We believe that for many practical use-cases in drug discovery, AI for complex biology is already possible, today.</p><p>However, to make your platform viable in current industry practice, you need to use your data wisely. The reality is that you can&#8217;t go around asking for hundreds of thousands of training data points to fine-tune every new project you get, because very few pharma projects generate that kind of data. At the same time, few drug discovery teams out there would be able or willing to accept the data generation &#8220;fit-out phase&#8221; for their indications of interest to take more than a year and cost many millions of dollars. It&#8217;s just not sustainable.<br><br>But if you can provide useful results, quickly, from datasets of a size that pharma companies can actually generate in realistic time (and cost) and keep doing that, it <em>will</em> add up over time. </p><p>In the end, probably no single AI platform will be able to match the simultaneous data generation capability of all pharma companies rushing to get their next drug to market. So we think our best bet now is to tap into that stream. </p><p>That necessitates a platform that can provide partners value <strong>now</strong>. Which is why we&#8217;ve always had dedicated teams working on making our production models actionable and easy-to-use rather than only focusing on the next model generation.</p><p>Data kindly lifted from the work performed by <strong>Laszlo Mero</strong>, <strong>Milan Sztilkovics</strong>, <strong>Imre Gaspar</strong> and <strong>Valer Kaszas</strong> - thank you for your work! Additional thanks for the review &amp; edits to <strong>Balint Paholcsek</strong>, <strong>Szabolcs Nagy, Imre Gaspar</strong> and <strong>Bence Szalai</strong>.</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>RNASeq generates one data point per gene in each sample.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Single-cell methods measure somewhere between 1000 to 10000 cells per sample.</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[In defense of RNASeq]]></title><description><![CDATA[We only use DNA and RNA for defining a cell (whether it&#8217;s a patient cell, PDX or cell line).]]></description><link>https://blog.turbine.ai/p/in-defense-of-rnaseq</link><guid isPermaLink="false">https://blog.turbine.ai/p/in-defense-of-rnaseq</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Thu, 24 Oct 2024 14:01:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We only use DNA and RNA for defining a cell (whether it&#8217;s a patient cell, PDX or cell line). I was asked many times about using proteomics data. In particular: why are we not using proteomics for modeling? Why do we think RNASeq is deep enough to get to a good model?</p><h3>Information flow in a cell</h3><p><em>Because</em> - as the argument goes - <em>RNASeq only tells you something about the rate of change in the proteome. It does not tell you a lot about protein concentration, let alone protein activity which eventually defines the phenotype - what the cell actually does.</em></p><p>Given that this is how information flows in a cell, the reasoning makes sense:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OtZB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OtZB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 424w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 848w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 1272w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OtZB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png" width="975" height="321" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:321,&quot;width&quot;:975,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38211,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OtZB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 424w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 848w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 1272w, https://substackcdn.com/image/fetch/$s_!OtZB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F435822e2-e2ac-49f4-b88d-05c502bc864e_975x321.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>So</em> - the logic follows <em>- you could work your way backwards through the chain of causality and guess what the genome or the epigenome looks like based on how they impacted the transcriptome.</em> <em>Same way, you can guess the transcriptome based on the proteome</em>.<br><em>But the other way is impossible. Since there is separate regulation at the proteome level, a single transcriptome can produce many different proteomes.</em> </p><p>This is the gist of the argument. And I would agree - would these methods be at the same technology level. Sadly, (phospho)proteomics doesn&#8217;t really scale (for the time being). Proteins don&#8217;t readily amplify like nucleic acids do, and sequencers are <em>much</em> higher throughput than mass spectrometers. <br><br>So the question is: would you choose <em><strong>one</strong> </em>proteomic sample over a <em><strong>thousand</strong></em> RNA samples (like a Perturb-Seq study)?</p><p>It depends. Is it even theoretically possible to figure out proteomics from RNA? <br>If not, then we need to go deeper, no matter the cost.</p><h3>Defining cells with proteomics</h3><p>First, it&#8217;s generally accepted that RNA levels correlate with protein levels in the steady state [1]. There is a good reason for that: proteins constantly break down and thus need to be constantly replenished via transcription, independent from anything else that may happen inside the cell. This results in a baseline correlation in around 0.6 (Pearson) between RNA and protein levels in the steady state. <br>So RNA <em>could</em> be good enough to initialize the model state.</p><p>Is it good enough?</p><p>The CCLE consortium has released a rather large-scale proteomic dataset[2] which we tested early 2023.</p><p>We trained three random forest models, one only using RNA data, one adding proteomics and one using both RNA and proteomics<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>.</p><p>Here they are:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uIbl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uIbl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 424w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 848w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 1272w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uIbl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png" width="1058" height="325" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:325,&quot;width&quot;:1058,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:80091,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!uIbl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 424w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 848w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 1272w, https://substackcdn.com/image/fetch/$s_!uIbl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fee3335ae-f9ea-4c54-81a4-d6abf4bac49c_1058x325.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Histograms of random forest (RF) gene essentiality prediction performance. A separate RF model was trained for each gene on 72% of 292 cell lines. The models then needed to predict the essentiality of the gene in question for the other 28% of the cell lines. A) results using both proteomics and transcriptomics features of the cell lines, B) transcriptomics only, C) proteomics only.</figcaption></figure></div><p>The improvement is slight at best. Now we&#8217;re not huge experts in proteomics, so we may not have used the data the best way, but based on this data it certainly does not merit the 1000 to 1 cost of generating proteomics - <em>for us, for the time being</em>, of course.</p><h3>Reverse engineering protein logic</h3><p>All this was steady-state, initialization data.</p><p>But could we use transcriptomics to figure out the unknown logic of protein regulation? <br>Establishing causality requires running <strong>perturbation</strong> experiments. We are specifically interested reading out how the cell changes in response to perturbation.<br>In this case the steady-state assumption no longer holds, RNA and proteomics will be nowhere close to each other.</p><p>Still, we happily use tens of thousands of perturbation RNA signatures (differential expression vectors).</p><p>Why does this work?</p><p><strong>Because the information flow is actually a loop.</strong> </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QTOA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QTOA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 424w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 848w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 1272w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QTOA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png" width="972" height="305" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:305,&quot;width&quot;:972,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:40882,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QTOA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 424w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 848w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 1272w, https://substackcdn.com/image/fetch/$s_!QTOA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89e2f5a0-d1c6-4bda-9aec-7b0f252ed5db_972x305.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It works, because perturbations (ex. drugs) cause a cascade of protein activity changes, which - cascading down through the transcription factors - cause a host of transcriptomic changes. </p><p>It may be hard <em>for us</em> to deconvolute what pattern belongs to which change, but this is exactly what machine learning was invented for. Neural networks are great pattern matchers, even our own squishy ones. Can you tell me what animals these footprints belong to?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PXsw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PXsw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 424w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 848w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 1272w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PXsw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png" width="438" height="302" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04db78a3-0d86-48db-b159-91391bce91a5_438x302.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:302,&quot;width&quot;:438,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27201,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!PXsw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 424w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 848w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 1272w, https://substackcdn.com/image/fetch/$s_!PXsw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04db78a3-0d86-48db-b159-91391bce91a5_438x302.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Easily, right? None of these footprints contain anything that actually makes an elephant or a human, but <strong>given the constraints that it must be an animal </strong>there is not much ambiguity.</p><p>These RNA footprints (a term coined by Schubert et al. [3]) gave us the opportunity to reverse engineer protein activity from RNA.</p><h3>A case for multimodality</h3><p>OK, how about having proteomics <em>besides</em> RNASeq? Surely it would increase the model performance, right?</p><p>Yes, it <em>could</em>. Take the following example:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aIOC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aIOC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 424w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 848w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 1272w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aIOC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png" width="624" height="318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db692d4-c011-4572-86da-0c3566f010fe_624x318.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:318,&quot;width&quot;:624,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28600,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aIOC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 424w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 848w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 1272w, https://substackcdn.com/image/fetch/$s_!aIOC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db692d4-c011-4572-86da-0c3566f010fe_624x318.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Why is protein A inactive? Is it because it is inhibited (left scenario), or just because the gene is damaged (right scenario)?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ruv2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ruv2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 424w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 848w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 1272w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ruv2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png" width="1114" height="308" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:308,&quot;width&quot;:1114,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54121,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ruv2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 424w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 848w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 1272w, https://substackcdn.com/image/fetch/$s_!ruv2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03bb827c-f2ab-47e1-8c85-e80da749ace5_1114x308.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>These cases are theoretically impossible to distinguish unless given more data. Same goes <em>mutatis mutandis</em> for any potential pair of layers.</p><p>However, you <em>could</em> figure out the right gene regulation pattern still only using RNA if you <strong>add one more perturbed sample</strong>. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6btd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6btd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 424w, https://substackcdn.com/image/fetch/$s_!6btd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 848w, https://substackcdn.com/image/fetch/$s_!6btd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 1272w, https://substackcdn.com/image/fetch/$s_!6btd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6btd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png" width="1275" height="309" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e485ae07-f933-4754-98e6-c341732f0f39_1275x309.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:309,&quot;width&quot;:1275,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:60325,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6btd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 424w, https://substackcdn.com/image/fetch/$s_!6btd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 848w, https://substackcdn.com/image/fetch/$s_!6btd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 1272w, https://substackcdn.com/image/fetch/$s_!6btd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe485ae07-f933-4754-98e6-c341732f0f39_1275x309.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>If knocking out gene B makes the protein turn on in the second study, we were observing the left scenario, otherwise we were observing the right one.</p><p>Of course, having another view at the system will also help noise correction, but, similarly, <em>so could another sample</em>. So this is my current opinion: </p><div class="pullquote"><p><em>Multimodality helps, but only if it doesn&#8217;t cost much more than another round of samples.</em></p></div><p><strong>This is why we use DNA as a second mode.</strong> DNA sequencing is also cheap, and while many DNA changes could be reverse engineered just by looking at the transcribed RNA, not all of them. As the example above shows, if a protein is not expressed at all, you would need additional experiments to decipher whether the underlying mechanism is specific downregulation of that protein or DNA damage.</p><p>Thank you <strong>Tamas Beke</strong> for the proteomics trainings! </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts about our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>References</h3><p>[<a href="https://www.cell.com/cell/fulltext/S0092-8674(16)30270-7">1</a>] Liu et al. &#8220;On the Dependency of Cellular Protein Levels on mRNA Abundance&#8221; </p><p>[<a href="https://www.cell.com/cell/fulltext/S0092-8674(19)31385-6#secsectitle0020">2</a>] Nusinow et al. &#8220;Quantitative Proteomics of the Cancer Cell Line Encyclopedia&#8221;</p><p>[<a href="https://doi.org/10.6084/m9.figshare.19700056.v2">3</a>] Broad &#8220;DepMap 2022 Q2 Public&#8221;</p><p>[<a href="https://www.nature.com/articles/s41586-019-1186-3">4</a>] Ghandi et al. &#8220;Next-generation characterization of the Cancer Cell Line Encyclopedia&#8221;</p><p>[<a href="https://www.nature.com/articles/s41467-017-02391-6">5</a>] Schubert et al. &#8220;Perturbation-response genes reveal signaling footprints in cancer gene expression&#8221;</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>RNA and gene sensitivity data comes from the DepMap 2022 Q2 release [3].</p><p></p></div></div>]]></content:encoded></item><item><title><![CDATA[So how do you benchmark biology?]]></title><description><![CDATA[This is a human-readable summary of the EFFECT paper.]]></description><link>https://blog.turbine.ai/p/so-how-do-you-benchmark-biology</link><guid isPermaLink="false">https://blog.turbine.ai/p/so-how-do-you-benchmark-biology</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Mon, 07 Oct 2024 06:59:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>This is a human-readable summary of the EFFECT paper [1]. I found that the process of scientific writing (especially with multiple authors and review rounds) makes texts significantly harder to read than intended - hence this post.</em></p><div><hr></div><p>Good benchmarking is a cornerstone of progress in all fields of AI.</p><p>The whole premise of AI is being able to figure out hidden connections within your data. However - exactly because these connections are hidden - what the AI actually latches onto may not be what you like.</p><h2>Benchmarking tanks</h2><p>There is an urban legend floating in the AI community about a team who tried to train an AI to recognize tanks. The system worked perfectly on the test benchmarks then immediately failed miserably in the field.</p><p>Here&#8217;s a set of training images. Guess what happened.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zi05!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zi05!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zi05!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zi05!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zi05!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zi05!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg" width="1200" height="581.0439560439561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:705,&quot;width&quot;:1456,&quot;resizeWidth&quot;:1200,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!zi05!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zi05!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zi05!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zi05!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73850705-cd7a-453b-8d73-7f6957a932c1_2500x1210.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">An illustration of how some training samples might have looked like. Generated with DALL-E. Thanks <strong>B&#225;lint Farkas</strong> for the images!</figcaption></figure></div><p>.</p><p>.</p><p>.</p><p>.</p><p>The clouds cleared after the tank photos were made, so all negative images were made in sunshine.</p><p>So all the AI learned was that no sun = tank, sun = no tank.</p><p>But back to biology.</p><h2>Benchmarking biology</h2><p>All of this is made exponentially harder by the fact that in biology, we don&#8217;t even really have a ground truth to work with. There are tons of unknown, uncontrolled variables in any experiment, and data gets more noisy the deeper you go.</p><p>What&#8217;s the actual information content of an RNASeq experiment? Which RNA values are trustworthy? How trustworthy they are? Hard to say.</p><p>But we need to start <em>somewhere</em>. Let&#8217;s try establishing a beachhead and building from there. Let&#8217;s start from the most controlled setup possible: secondary, cultured cell lines. Let&#8217;s take the metric that&#8217;s closest to some form of ground truth: <em>cell viability</em>. Do the cells survive or die in response to your intervention (a drug or a gene knockout, for example)?</p><p>This is probably the <em>least</em> noisy information we have, and it even has a particular application in oncology, where you actually want to kill a certain population of cells, but only those cells if possible.</p><p>There are two gold standard datasets for this kind of setup: Depmap[2] (for gene knockouts) and GDSC2[3] (for drug effects).</p><p>OK, fine. So let&#8217;s take Depmap or GDSC2, remove say 20% of the data randomly, and if I can predict the missing data well enough, my method works, right?</p><p>Your method will work wonderfully. You will get ~90% accuracy. A lot of people tend to think that viability prediction is a solved challenge in computational biology, we can get methods to be as precise as experimental replicates.</p><div class="pullquote"><p>Unfortunately, we were collectively doing the tank thing.</p></div><h2>Three things to change</h2><p>We have found three problems:</p><h3>1. Most of the data is not surprising. You want to predict the outliers.</h3><p>Check this sample plot. This is how the data really looks:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dc9W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dc9W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 424w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 848w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 1272w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dc9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png" width="452" height="465.03846153846155" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:749,&quot;width&quot;:728,&quot;resizeWidth&quot;:452,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!dc9W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 424w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 848w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 1272w, https://substackcdn.com/image/fetch/$s_!dc9W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a6dab1d-1605-4e96-af0d-cb9ecb21c9e2_728x749.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Histogram of the IC50 sensitivity values of the GDSC2 cell line panel to Bortezomib, a generally strong drug, and Cyclophosphamide, a relatively weak drug. Excerpted from Figure 2 of the EFFECT paper.</figcaption></figure></div><p>Some drugs are just generally stronger than others. Some cell lines are just generally more frail than others.</p><p>What&#8217;s really useful if you can <strong>find the outliers</strong>. Is there a mighty resistant cell line which is surprisingly sensitive to your drug? Is there a cell line in which a gene is suddenly essential?</p><p>To focus your metrics on the important question don&#8217;t use (uncorrected) global correlations<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a>. <strong>Calculate a separate correlation value per gene (or per cell) and median-aggregate them.</strong> Pearson is better then Spearman as you want to emphasize the outliers. This is similar to what z-score does.</p><h3>2. We were not splitting to answer the right question.</h3><p>In how many real situations is both the cell line and the drug of interest known? I&#8217;m either giving you a new drug which has not been tested before or want to understand how my drug would fare in patient - who are actually a new environment each.</p><p>So <strong>either leave some cell lines entirely out of training</strong> (we call this a CEX split - cell-line exclusive) <strong>or leave entire drugs out</strong> (DEX - drug-exclusive).</p><p>Now when you leave drugs out, be careful that the drugs you left in are different enough. Some drugs are actually pretty similar to each other so you may inadvertedly leak data. Targeting the same pathway is fine. Depending on your use-case, having some shared protein targets could be OK as long as there&#8217;s not too much overlap. This needs some work, but we have some curated splits you can use below<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>.</p><p>There are many other ways to split the data if you have more complex data. Two others we tend to use frequently:</p><ul><li><p><strong>Can you predict a drug&#8217;s effect in vivo only from in vitro data?</strong> So your drug of interest can only have in vitro data in training, but you can have some other drugs with in vivo data so you understand the environment. We call this PDX-exclusive, as we usually do this when predicting to patient-derived xenograft models implanted in mice.</p></li><li><p>If given combination data to work with: <strong>could you have predicted this combination effect using mono data only for the two drugs in question?</strong> Single drugs are easy to test on many cell lines (with a PRISM screen for example), but the cost explodes when you want to test all possible combinations, so in silico is also useful here.</p></li></ul><h3>3. There can be more sources of bias present simultaneously.</h3><p>Many years ago, with some of our first models, we were very happy with our performance. We used z-scores, we did drug-exclusive splits and have gotten surprisingly high scores. <strong>Sadly, it was a mirage.</strong></p><p>The problem was the general sensitivity of cell lines to drugs [4], as both the split and the metric were only adjusting for drugs.</p><p><em><strong>Under the hood, train/test splitting adjusts for one kind of bias, and a good metric can also adjust for one.</strong></em>, However, in this setup the two biases we adjusted for happened to coincide, and cell line bias was left in. You can also easily have more than two sources of bias which you just cannot remove just by combining metrics and splitting.</p><p>We needed a more powerful tool.</p><p>It&#8217;s impossible to programmatically correct for <em>unknown</em> sources of bias, but it is possible to correct for any number of <em>known</em> sources.</p><p>We called this tool (creative, I know) <strong>the Bias Detector</strong>. Just these three steps:</p><ul><li><p>Take a bias prediction from each bias source you want to filter(the mean of all the samples in the training set from the same source, eg. how strong your drug is on average on all of the cell lines in the train set)</p></li><li><p>Combine all these bias predictions into one bias predictor with a linear model</p></li><li><p>Your corrected metric is the partial correlation of your prediction and the ground truth with the bias prediction as the controlling variable.</p></li></ul><p>This works with most continuous metrics. It is possible to build a version of the Bias Detector for a classifier based on the same considerations, but it will be slightly less intuitive<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a>.</p><h2>Solving for viability</h2><p>The mean partial correlation among drug replicas in GDSC2 is <strong>0.51</strong>, so that&#8217;s how good we can theoretically be.</p><p>How did standard ML algorithms fare after correction? Not well:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PGhw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PGhw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 424w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 848w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 1272w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PGhw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png" width="639" height="372" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:372,&quot;width&quot;:639,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PGhw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 424w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 848w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 1272w, https://substackcdn.com/image/fetch/$s_!PGhw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a4d299c-bc8e-46d1-bd0a-74aa4e2b2773_639x372.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Partial correlations of drug predictive performance of three different ML methods (LR=linear regression, RF=random forest, MLP=multi-layer perceptron) on four different training regimen in CEX (left panel) and DEX (right panel) split. Excerpted from Figure 4 of the EFFECT paper.</figcaption></figure></div><p>Even viability is clearly still unsolved. Which means that it might make sense to ask all the fancy biology foundational models this simple question first: Can it tell us whether the cell would live or die better than a Random Forest?</p><p>Only after this would it probably make sense to focus on getting the actual RNA levels right.</p><p>RNA prediction does give additional biological insights, but it is also a whole new can of worms. That&#8217;s because you don&#8217;t just have to fit a single number anymore, but a whole twenty thousand of them. How to balance each? Maybe I could cover some of this in a next post.</p><p>We have made a reference benchmark set and our Bias Detector implementation freely available. Do try it if you have something, maybe you finally figured it all out.</p><p><strong>Bias Detector code:</strong> <a href="https://github.com/turbine-ai/DrugKOPred-benchmark-bias">https://github.com/turbine-ai/DrugKOPred-benchmark-bias</a></p><p><strong>Reference benchmark:</strong> <a href="https://benchmark.turbine.ai">https://benchmark.turbine.ai</a></p><p>Thank you <strong>Bence Szalai</strong>, <strong>Imre G&#225;sp&#225;r</strong>, <strong>Val&#233;r Kasz&#225;s</strong>, <strong>L&#225;szl&#243; M&#233;r&#337;</strong>, <strong>Mil&#225;n Sztilkovics</strong> for working on this together.<br>Thanks to <strong>Andreas Bender</strong>, <strong>Aviad Tsherniak</strong>, and <strong>Daniel Veres</strong> for proof-reading the paper and suggesting how to make it more understandable.</p><h4>References:</h4><p>[<a href="https://www.biorxiv.org/content/10.1101/2023.10.02.560281v2">1</a>]: Szalai et al.&nbsp;&#8220;The EFFECT benchmark suite: measuring cancer sensitivity prediction performance - without the bias&#8221;</p><p>[<a href="https://www.cell.com/cell/fulltext/S0092-8674(17)30651-7">2</a>]: Tsherniak et al.&nbsp;&#8220;Defining a Cancer Dependency Map&#8221;</p><p>[<a href="https://www.cell.com/fulltext/S0092-8674(16)30746-2">3</a>]: Iorio et al.&nbsp;&#8220;A Landscape of Pharmacogenomic Interactions in Cancer&#8221;</p><p>[<a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5031330/">4</a>]: Geeleher et al.&nbsp;&#8220;Cancer biomarker discovery is improved by accounting for variability in general levels of drug sensitivity in pre-clinical models&#8221;</p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Global correlations corrected for bias are perfectly usable. </p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Dmn9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Dmn9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Dmn9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png" width="300" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c2d86dd-a567-4028-875f-3042be886d39_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:300,&quot;bytes&quot;:23601,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Dmn9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!Dmn9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c2d86dd-a567-4028-875f-3042be886d39_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HjAL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HjAL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HjAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png" width="300" height="225" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:640,&quot;resizeWidth&quot;:300,&quot;bytes&quot;:24810,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HjAL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 424w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 848w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 1272w, https://substackcdn.com/image/fetch/$s_!HjAL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4781ddff-c4f7-466f-ad23-2d6e7d7980f1_640x480.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><br>The plots above show the performance of standard ML methods measured by bias-corrected global Pearson correlation. As more cell line and drug features are introduced, the performance logically improves (only by adding cell features in the cell-exclusive (CEX) and only by adding drug features in the drug-exclusive (DEX) setup)</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>The drug splits you can find at <a href="https://benchmark.turbine.ai">https://benchmark.turbine.ai</a> also have some drug targets overlapping between the train and test set, but we took care so that drugs in the test set have at least somewhat different target profiles from any drug in the train set.</p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>What you can do is take a cellwise or drugwise metric, and compare with an appropriate statistical test whether your performance is significantly better than the bias. You can then tally the # of drugs or cells together where you are significantly over bias for a global performance score. What this does not tell you as a global score is <em>how much</em> better are you than the bias on the average drug / cell line.</p></div></div>]]></content:encoded></item><item><title><![CDATA[Do cell foundation models work? ]]></title><description><![CDATA[Biology is hard, and it&#8217;s very easy to accidentally produce misleading results.]]></description><link>https://blog.turbine.ai/p/do-cell-foundation-models-work</link><guid isPermaLink="false">https://blog.turbine.ai/p/do-cell-foundation-models-work</guid><dc:creator><![CDATA[Kris Szalay]]></dc:creator><pubDate>Mon, 23 Sep 2024 20:41:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Biology is hard, and it&#8217;s very easy to accidentally produce misleading results. This post only aims to help us improve together and get closer to the dream of understanding biology instead of calling individual methods or authors out.</em></p><div><hr></div><p><em>UPDATE: Others have also reached the same conclusion, Constantin et al. just published <a href="https://www.biorxiv.org/content/10.1101/2024.09.16.613342">this</a>.</em><br><em>It&#8217;s becoming more important than ever to keep your benchmarks healthy!</em></p><p><em>UPDATE #2: We have turned this post into a paper. You can find it at <a href="https://www.biorxiv.org/content/10.1101/2024.09.30.615843v1">https://www.biorxiv.org/content/10.1101/2024.09.30.615843v1</a> with some additional analysis which have been omitted from here for clarity.</em></p><p><strong>Foundation models in biology are a great concept.</strong></p><p>The core idea is to show the AI how cells can look like &#8211; what are the &#8220;allowed&#8221; transcriptomic states (gene expression-level combinations) that describe actual cells versus &#8220;disallowed&#8221; states which don&#8217;t describe an actual working cell.</p><p>Why is any state disallowed in the first place?</p><p>A live cell is a very carefully regulated environment. Changing its protein levels is just like going in and reorganizing the gears in a steam engine &#8211; done randomly the engine will most likely blow up. The underlying assumption is that for an AI to learn the shared surface of the cells, it needs to build an internal representation of gene regulation &#8211; a gene regulatory network (GRN) hidden inside the Transformer&#8217;s clockwork: the attention weights.</p><p>This is an idea that might just work; but does it?</p><p>As with most large AI models, theoretical reasoning only gets you so far, the proof of the pudding is in the eating. Do we have a task which would be infeasible to do well without knowing the &#8220;true&#8221; human GRN? It turns out there is: perturbation prediction. If the model can figure out how cells respond to a gene (or a combination of genes) getting knocked out that, it must have built a useful internal understanding of biology.</p><p><strong>Fortunately, the authors of scGPT[1] did pose this question to the model, here are the results:</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r3C8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r3C8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r3C8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png" width="568" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9307121e-973a-41b3-8912-cda1f749113b_568x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:568,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17529,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r3C8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!r3C8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9307121e-973a-41b3-8912-cda1f749113b_568x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>ScLLM model performance comparison on the Adamson et al.[2] dataset. Score on the y-axis is the gene-wise Pearson correlation of differential expressions &#8211; true vs predicted</em></figcaption></figure></div><p>Are we done? This seems to imply that we can predict differential expression of genes with 0.6+ correlation for new perturbations. This seems respectable, and while not perfect, probably already useful.</p><p><strong>Let&#8217;s add a simple bias predictor, predicting only the mean gene expression for each gene in the trainset.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hcWO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hcWO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hcWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png" width="568" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:568,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!hcWO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 424w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 848w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 1272w, https://substackcdn.com/image/fetch/$s_!hcWO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F934f46fc-2351-45bb-94bd-9a4d2df09119_568x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>ScLLM model performance comparison on the Adamson et al.[2] dataset, with train mean predictor performance&#8203;. Score on the y-axis is the gene-wise Pearson correlation of differential expressions &#8211; true vs predicted</em></figcaption></figure></div><p>Has our previously respectable performance been just outmatched by a simple mean predictor? Let&#8217;s dive into the data to understand what&#8217;s going on. Calculating how well differential expressions correlate between all pairs of samples yields the following plot. (Note that the samples have been pseudo-bulked which is an interesting lesson on its own &#8211; despite having tens of thousands of cells, you may still only have a few dozen samples of information, as shown below.)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!iFNP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!iFNP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 424w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 848w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 1272w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!iFNP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png" width="644" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:460,&quot;width&quot;:644,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!iFNP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 424w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 848w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 1272w, https://substackcdn.com/image/fetch/$s_!iFNP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff78e5e0b-9455-486a-b14f-edf969e9d9a0_644x460.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">P<em>airwise DE correlations of sample pairs in the Adamson et al.[2] dataset&#8203;</em></figcaption></figure></div><p>Reading the plot gives us a clue on why the mean predictor performs so well: most of the responses are very similar! #0, #1, #57 and #58 is a clear outlier group. Most of the other examples are extremely correlated. While you can observe a few separate response mechanisms in the bulk of the samples, the correlation is 0.5+ even across response types (and easily 0.8+ within a response group for different samples).</p><p>Probably the reason behind these responses being so highly correlated is that all perturbations have been targeting different proteins in the same growth pathway, hence the highly similar results.</p><p>Having data that&#8217;s so biased is not ideal in any dataset, but especially in biology you want to have outliers; they are the bread and butter of your benchmark. When your AI will get used in the real world, these would become the shiny sparks that lead scientists to the golden ore of finding selective patient populations. (You might even want to focus your scoring function on finding outliers, but that is a story for another time.)</p><p>Our findings above tell us that this is not a useful benchmark set, but not that the method itself is bad.</p><p><strong>The Replogle et al.[3] dataset gives us a much better picture indeed:</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VjoO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VjoO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 424w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 848w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 1272w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VjoO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png" width="638" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0f2a823-435d-4917-b759-2301af8a5dba_638x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:638,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!VjoO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 424w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 848w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 1272w, https://substackcdn.com/image/fetch/$s_!VjoO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0f2a823-435d-4917-b759-2301af8a5dba_638x470.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Pairwise DE correlations of sample pairs in the Replogle et al.[3] dataset&#8203;</em></figcaption></figure></div><p>While we still have correlated rows, there are many more unique responses in this dataset. Indeed, the performance of the mean predictor drops significantly: to 0.35 from the previous 0.7 in the Adamson set. Unfortunately, all models&#8217; performance drop below the mean predictor too; scGPT, in particular, drops to 0.24.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1hoY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1hoY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 424w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 848w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 1272w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1hoY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png" width="576" height="432" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:432,&quot;width&quot;:576,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!1hoY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 424w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 848w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 1272w, https://substackcdn.com/image/fetch/$s_!1hoY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F071ddf6b-95c7-46a5-ad68-692a6044461d_576x432.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>ScLLM model performance comparison on the Replogle et al.[3] dataset, with train mean predictor performance&#8203;. Score on the y-axis is the gene-wise Pearson correlation of differential expressions &#8211; true vs predicted</em></figcaption></figure></div><p>And even here, we&#8217;re still only working with a single cell line, K562! A good benchmark should be able to measure how well your model works on untrained cell lines, as frankly, each new patient will behave like a cell line you&#8217;ve never seen before.</p><p>If there is one lesson here, it&#8217;s this: check your benchmarks! Having good benchmarks is harder than it looks. Let me plug our EFFECT paper[4] at the end which can give you some considerations to start.</p><p>Most of the actual work underlying this post was done by <strong>Gerold Csendes</strong> and <strong>Bence Szalai</strong> &#8211; thanks for your work!</p><div><hr></div><h1>References</h1><p><a href="https://www.nature.com/articles/s41592-024-02201-0">[1]</a>: Haotian et al.&nbsp;&#8220;scGPT: toward building a foundation model for single-cell multi-omics using generative AI&#8221;</p><p><a href="https://www.cell.com/cell/fulltext/S0092-8674(16)31660-9">[2]</a>: Britt Adamson et al.&nbsp;&#8220;A multiplexed single-cell CRISPR screening platform enables systematic dissection of the unfolded protein response&#8221;</p><p><a href="https://www.cell.com/cell/fulltext/S0092-8674(22)00597-9">[3]</a>: Replogle et al.&nbsp;&#8220;Mapping information-rich genotype-phenotype landscapes with genome-scale Perturb-seq&#8221;</p><p><a href="https://www.biorxiv.org/content/10.1101/2023.10.02.560281v2">[4]</a>: Szalai et al. &#8220;The EFFECT benchmark suite: measuring cancer sensitivity prediction performance &#8211; without the bias&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.turbine.ai/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to keep up with our work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>