<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.3 20210610//EN"  "JATS-archivearticle1-3-mathml3.dtd"><article xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.3"><front><journal-meta><journal-id journal-id-type="nlm-ta">elife</journal-id><journal-id journal-id-type="publisher-id">eLife</journal-id><journal-title-group><journal-title>eLife</journal-title></journal-title-group><issn publication-format="electronic" pub-type="epub">2050-084X</issn><publisher><publisher-name>eLife Sciences Publications, Ltd</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">100949</article-id><article-id pub-id-type="doi">10.7554/eLife.100949</article-id><article-id pub-id-type="doi" specific-use="version">10.7554/eLife.100949.3</article-id><article-version article-version-type="publication-state">version of record</article-version><article-categories><subj-group subj-group-type="display-channel"><subject>Research Article</subject></subj-group><subj-group subj-group-type="heading"><subject>Computational and Systems Biology</subject></subj-group><subj-group subj-group-type="heading"><subject>Genetics and Genomics</subject></subj-group></article-categories><title-group><article-title>Discovering root causal genes with high-throughput perturbations</article-title></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name><surname>Strobl</surname><given-names>Eric V</given-names></name><contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0009-0003-9894-9694</contrib-id><email>evs98@pitt.edu</email><xref ref-type="aff" rid="aff1">1</xref><xref ref-type="fn" rid="con1"/><xref ref-type="fn" rid="conf1"/></contrib><contrib contrib-type="author"><name><surname>Gamazon</surname><given-names>Eric</given-names></name><xref ref-type="aff" rid="aff2">2</xref><xref ref-type="other" rid="fund1"/><xref ref-type="other" rid="fund2"/><xref ref-type="fn" rid="con2"/><xref ref-type="fn" rid="conf1"/></contrib><aff id="aff1"><label>1</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/01an3r305</institution-id><institution>University of Pittsburgh</institution></institution-wrap><addr-line><named-content content-type="city">Pittsburgh</named-content></addr-line><country>United States</country></aff><aff id="aff2"><label>2</label><institution-wrap><institution-id institution-id-type="ror">https://ror.org/02vm5rt34</institution-id><institution>Vanderbilt University Medical Center</institution></institution-wrap><addr-line><named-content content-type="city">Nashville</named-content></addr-line><country>United States</country></aff></contrib-group><contrib-group content-type="section"><contrib contrib-type="editor"><name><surname>Knowles</surname><given-names>David</given-names></name><role>Reviewing Editor</role><aff><institution>Department of Computer Science and Department of Systems Biology</institution><country>United States</country></aff></contrib><contrib contrib-type="senior_editor"><name><surname>Moses</surname><given-names>Alan M</given-names></name><role>Senior Editor</role><aff><institution-wrap><institution-id institution-id-type="ror">https://ror.org/03dbr7087</institution-id><institution>University of Toronto</institution></institution-wrap><country>Canada</country></aff></contrib></contrib-group><pub-date publication-format="electronic" date-type="publication"><day>05</day><month>03</month><year>2025</year></pub-date><volume>13</volume><elocation-id>RP100949</elocation-id><history><date date-type="sent-for-review" iso-8601-date="2024-08-13"><day>13</day><month>08</month><year>2024</year></date></history><pub-history><event><event-desc>This manuscript was published as a preprint.</event-desc><date date-type="preprint" iso-8601-date="2024-08-13"><day>13</day><month>08</month><year>2024</year></date><self-uri content-type="preprint" xlink:href="https://doi.org/10.1101/2024.01.13.574491"/></event><event><event-desc>This manuscript was published as a reviewed preprint.</event-desc><date date-type="reviewed-preprint" iso-8601-date="2024-10-15"><day>15</day><month>10</month><year>2024</year></date><self-uri content-type="reviewed-preprint" xlink:href="https://doi.org/10.7554/eLife.100949.1"/></event><event><event-desc>The reviewed preprint was revised.</event-desc><date date-type="reviewed-preprint" iso-8601-date="2025-02-10"><day>10</day><month>02</month><year>2025</year></date><self-uri content-type="reviewed-preprint" xlink:href="https://doi.org/10.7554/eLife.100949.2"/></event></pub-history><permissions><copyright-statement>© 2024, Strobl and Gamazon</copyright-statement><copyright-year>2024</copyright-year><copyright-holder>Strobl and Gamazon</copyright-holder><ali:free_to_read/><license xlink:href="http://creativecommons.org/licenses/by/4.0/"><ali:license_ref>http://creativecommons.org/licenses/by/4.0/</ali:license_ref><license-p>This article is distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</ext-link>, which permits unrestricted use and redistribution provided that the original author and source are credited.</license-p></license></permissions><self-uri content-type="pdf" xlink:href="elife-100949-v1.pdf"/><abstract><p>Root causal gene expression levels – or <italic>root causal genes</italic> for short – correspond to the initial changes to gene expression that generate patient symptoms as a downstream effect. Identifying root causal genes is critical towards developing treatments that modify disease near its onset, but no existing algorithms attempt to identify root causal genes from data. RNA-sequencing (RNA-seq) data introduces challenges such as measurement error, high dimensionality and non-linearity that compromise accurate estimation of root causal effects even with state-of-the-art approaches. We therefore instead leverage Perturb-seq, or high-throughput perturbations with single-cell RNA-seq readout, to learn the causal order between the genes. We then transfer the causal order to bulk RNA-seq and identify root causal genes specific to a given patient for the first time using a novel statistic. Experiments demonstrate large improvements in performance. Applications to macular degeneration and multiple sclerosis also reveal root causal genes that lie on known pathogenic pathways, delineate patient subgroups and implicate a newly defined omnigenic root causal model.</p></abstract><kwd-group kwd-group-type="author-keywords"><kwd>root cause</kwd><kwd>causal discovery</kwd><kwd>RNA-seq</kwd><kwd>Perturb-seq</kwd></kwd-group><kwd-group kwd-group-type="research-organism"><title>Research organism</title><kwd>Human</kwd></kwd-group><funding-group><award-group id="fund1"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000051</institution-id><institution>National Human Genome Research Institute</institution></institution-wrap></funding-source><award-id>R01HG011138</award-id><principal-award-recipient><name><surname>Gamazon</surname><given-names>Eric</given-names></name></principal-award-recipient></award-group><award-group id="fund2"><funding-source><institution-wrap><institution-id institution-id-type="FundRef">http://dx.doi.org/10.13039/100000051</institution-id><institution>National Human Genome Research Institute</institution></institution-wrap></funding-source><award-id>R35HG010718</award-id><principal-award-recipient><name><surname>Gamazon</surname><given-names>Eric</given-names></name></principal-award-recipient></award-group><funding-statement>The funders had no role in study design, data collection and interpretation, or the decision to submit the work for publication.</funding-statement></funding-group><custom-meta-group><custom-meta specific-use="meta-only"><meta-name>Author impact statement</meta-name><meta-value>Root causal genes correspond to the initial changes to gene expression that induce a diagnosis and can be reliably detected from bulk RNA-seq after determining a causal ordering from Perturb-seq.</meta-value></custom-meta><custom-meta specific-use="meta-only"><meta-name>publishing-route</meta-name><meta-value>prc</meta-value></custom-meta></custom-meta-group></article-meta></front><body><sec id="s1" sec-type="intro"><title>Introduction</title><p><italic>Root causes of disease</italic> correspond to the most upstream causes of a diagnosis. Intuitively, only a few root causes should have strong causal effects on the diagnosis, just like a machine breaks down due to a few root causal problems. <italic>Pathogenesis</italic> refers to the causal cascade from root causes to the diagnosis. Genetic and non-genetic factors may act as root causes and affect gene expression as an intermediate step during pathogenesis. We introduce root causal gene expression levels – or <italic>root causal genes</italic> for short – that correspond to the initial changes to <italic>gene expression</italic> induced by genetic and non-genetic root causes that have large causal effects on a downstream diagnosis (<xref ref-type="fig" rid="fig1">Figure 1a</xref>). Root causal genes differ from core genes that directly cause the diagnosis and thus lie at the end, rather than at the beginning, of pathogenesis (<xref ref-type="bibr" rid="bib7">Boyle et al., 2017</xref>). Root causal genes also generalize (the expression levels of) driver genes that only account for the effects of somatic mutations primarily in cancer (<xref ref-type="bibr" rid="bib36">Martínez-Jiménez et al., 2020</xref>).</p><fig id="fig1" position="float"><label>Figure 1.</label><caption><title>Root causes, root causal genes and root causal effects.</title><p>(<bold>a</bold>) Toy example where a variable <inline-formula><mml:math id="inf1"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> simultaneously models genetic and non-genetic root causes that jointly have a large causal effect on a diagnosis <inline-formula><mml:math id="inf2"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> through gene expression <inline-formula><mml:math id="inf3"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. <inline-formula><mml:math id="inf4"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> first affects the gene expression level <inline-formula><mml:math id="inf5"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>, or the root causal gene. The root causal gene then affects other downstream levels during pathogenesis, including the core (or direct causal) gene <inline-formula><mml:math id="inf6"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>4</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>, to ultimately induce <inline-formula><mml:math id="inf7"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. (<bold>b</bold>) We hypothesize that the causal effects of most root causes are small, but a few exert large causal effects (red ellipse), in each patient with disease. As a result, the distribution of these <italic>root causal effects</italic> tends to be right skewed in disease.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig1-v1.tif"/></fig><p>Treating root causal genes can modify disease pathogenesis in its entirety, whereas targeting other causes may only provide symptomatic relief. For example, mutations in Gaucher disease cause decreased expression of wild type beta-glucocerebrosidase, or the root causal gene (<xref ref-type="bibr" rid="bib38">Nagral, 2014</xref>). We can give a patient blood transfusions to alleviate the fatigue and anemia associated with the disease, but we seek more definitive treatments like recombinant glucocerebrosidase that replaces the deficient enzyme. Enzyme replacement therapy alleviates the associated liver, bone and neurological abnormalities of Gaucher disease as a downstream effect. Identifying root causal genes is therefore critical for developing treatments that eliminate disease near its pathogenic onset.</p><p>The problem is further complicated by the existence of complex disease, where a patient may have multiple root causal genes that differ from other patients even within the same diagnostic category (<xref ref-type="bibr" rid="bib11">Cano-Gamez and Trynka, 2020</xref>). Complex diseases often have an overwhelming number of causes but, just like a machine usually breaks down due to one or a few root causal problems, the root causal genes may only represent a small subset of the genes because the causal effects of only a few root causes are large (<xref ref-type="fig" rid="fig1">Figure 1b</xref>). We thus also seek to identify <italic>patient-specific</italic> root causal genes in order to classify patients into meaningful biological subgroups each hopefully dictated by only a small group of genes.</p><p>No existing method identifies root causal genes from data. Many algorithms focus on discovering associational or predictive relations, sometimes visually represented as gene regulatory networks (<xref ref-type="bibr" rid="bib14">Costa-Silva et al., 2017</xref>; <xref ref-type="bibr" rid="bib18">Ellington et al., 2023</xref>). Other methods even identify causal relations (<xref ref-type="bibr" rid="bib22">Friedman et al., 2000</xref>; <xref ref-type="bibr" rid="bib69">Wang et al., 2023</xref>; <xref ref-type="bibr" rid="bib71">Wen et al., 2023</xref>; <xref ref-type="bibr" rid="bib9">Buschur et al., 2020</xref>), but none pinpoint the <italic>first</italic> gene expression levels that ultimately generate the vast majority of pathogenesis. Simply learning a causal graph does not resolve the issue because causal graphs do not summarize the effects of <italic>unobserved</italic> root causes, such as unmeasured environmental changes or variants, that are needed to identify all root causal genes. We therefore define the Root Causal Strength (RCS) score to identify all root causal genes unique to each patient. We then design the Root Causal Strength using Perturbations (RCSP) algorithm that estimates RCS from bulk RNA-seq under minimal assumptions by integrating Perturb-seq, or high-throughput perturbation experiments using CRISPR-based technologies coupled with single-cell RNA-sequencing (<xref ref-type="bibr" rid="bib17">Dixit et al., 2016</xref>; <xref ref-type="bibr" rid="bib1">Adamson et al., 2016</xref>; <xref ref-type="bibr" rid="bib16">Datlinger et al., 2017</xref>). Experiments demonstrate marked improvements in performance, when investigators have access to a large bulk RNA-seq dataset and a genome-wide Perturb-seq dataset from a cell line of a disease-relevant tissue. Finally, application of the algorithm to two complex diseases with disparate pathogeneses recovers an <italic>omnigenic root causal model</italic>, where a small set of root causal genes drive pathogenesis but impact many downstream genes within each patient. As a result, nearly all gene expression levels are correlated with the diagnosis at the population level.</p></sec><sec id="s2" sec-type="results"><title>Results</title><p>We briefly summarize the Methods in the first two subsections.</p><sec id="s2-1"><title>Definitions</title><p><italic>Differential expression analysis</italic> identifies differences in gene expression levels between groups <inline-formula><mml:math id="inf8"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> (<xref ref-type="bibr" rid="bib14">Costa-Silva et al., 2017</xref>). A gene <inline-formula><mml:math id="inf9"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> may be differentially expressed due to multiple reasons. For example, <inline-formula><mml:math id="inf10"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> may cause <inline-formula><mml:math id="inf11"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, or a confounder <inline-formula><mml:math id="inf12"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>C</mml:mi></mml:mstyle></mml:math></inline-formula> may explain the relation between <inline-formula><mml:math id="inf13"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf14"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> such that <inline-formula><mml:math id="inf15"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">←</mml:mo><mml:mi>C</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. In this paper, we take expression analysis a step further by pinpointing <italic>causal</italic> relations from expression levels regardless of the variable type of <inline-formula><mml:math id="inf16"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> (discrete or continuous). We in particular seek to discover <italic>patient-specific root causal genes</italic> from bulk RNA-seq data, which we carefully define below.</p><p>We represent a biological system in bulk RNA-seq as a causal graph <inline-formula><mml:math id="inf17"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> – such as in <xref ref-type="fig" rid="fig2">Figure 2a</xref> – where <inline-formula><mml:math id="inf18"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi></mml:mstyle></mml:math></inline-formula> vertices <inline-formula><mml:math id="inf19"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> represent true gene expression levels in a bulk sample and <inline-formula><mml:math id="inf20"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> denotes the patient symptoms or diagnosis. The set <inline-formula><mml:math id="inf21"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> contains thousands of genes in practice. Directed edges between the vertices in <inline-formula><mml:math id="inf22"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> refer to direct causal relations. We assume that gene expression causes patient symptoms but not vice versa so that no edge from <inline-formula><mml:math id="inf23"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is directed towards <inline-formula><mml:math id="inf24"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. The set <inline-formula><mml:math id="inf25"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> refers to the <italic>parents</italic> of <inline-formula><mml:math id="inf26"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>, or those variables with an edge directed into <inline-formula><mml:math id="inf27"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. For example, <inline-formula><mml:math id="inf28"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> in <xref ref-type="fig" rid="fig2">Figure 2a</xref>. A <italic>root vertex</italic> corresponds to a vertex with no parents.</p><fig id="fig2" position="float"><label>Figure 2.</label><caption><title>Method overview and synthetic data results.</title><p>(<bold>a</bold>) We consider a latent causal graph over the true counts <inline-formula><mml:math id="inf29"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. (<bold>b</bold>) We augment the graph with error terms <inline-formula><mml:math id="inf30"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> such that each <inline-formula><mml:math id="inf31"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in red has an edge directed towards <inline-formula><mml:math id="inf32"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. (<bold>c</bold>) The RCS of <inline-formula><mml:math id="inf33"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, denoted by <inline-formula><mml:math id="inf34"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, quantifies the magnitude of the <italic>conditional root causal effect</italic>, or the strength of the causal effect from <inline-formula><mml:math id="inf35"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf36"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> conditional on <inline-formula><mml:math id="inf37"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. (<bold>d</bold>) We cannot observe <inline-formula><mml:math id="inf38"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> in practice but instead observe the noisy surrogates <inline-formula><mml:math id="inf39"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in blue corrupted by Poisson measurement error. (<bold>e</bold>) Perturbing a variable such as <inline-formula><mml:math id="inf40"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>3</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> changes the marginal distributions of downstream variables shown in green under mild conditions. (<bold>f</bold>) RCSP thus uses the perturbation data to identify (an appropriate superset of) the surrogate parents for each variable in order to compute <inline-formula><mml:math id="inf41"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula>. (<bold>g</bold>) Violin plots show that RCSP achieved the smallest RMSE to the ground truth RCS values in the synthetic data. (<bold>h</bold>) RCSP also took about the same amount of time to complete as multivariate regression. Univariate regression only took 11 s on average, so its bar is not visible. Error bars denote 95% confidence intervals of the mean over 30 synthetic datasets. (<bold>i</bold>) Finally, RCSP maintained low RMSE values regardless of the number of clusters considered.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig2-v1.tif"/></fig><p>We can associate <inline-formula><mml:math id="inf42"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> with the structural equation <inline-formula><mml:math id="inf43"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf44"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> that links each vertex to its parents and error term <inline-formula><mml:math id="inf45"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> (<xref ref-type="bibr" rid="bib45">Pearl, 2009</xref>). The error term <inline-formula><mml:math id="inf46"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is not simply a regression residual but instead represents a combination of unobserved factors that only influence <inline-formula><mml:math id="inf47"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, such as unobserved transcriptional regulators, certain genetic variants and specific environmental conditions. We thus also include the error terms <inline-formula><mml:math id="inf48"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in the directed graph of <xref ref-type="fig" rid="fig2">Figure 2b</xref>. All root vertices are error terms and vice versa. The <italic>root causes</italic> of <inline-formula><mml:math id="inf49"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> are the error terms that cause <inline-formula><mml:math id="inf50"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, or have a directed path into <inline-formula><mml:math id="inf51"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We define the <italic>root causal strength</italic> (RCS) of <inline-formula><mml:math id="inf52"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf53"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> as the following absolute difference (<xref ref-type="fig" rid="fig2">Figure 2c</xref>):<disp-formula id="equ1"><label>(1)</label><mml:math id="m1"><mml:mrow><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p><p>We prove the last equality in the Materials and methods. As a result, RCS <inline-formula><mml:math id="inf54"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> directly measures the contribution of the gene <inline-formula><mml:math id="inf55"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf56"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> according to its error term <inline-formula><mml:math id="inf57"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> without recovering the error term values. The algorithm does not impose distributional assumptions or functional restrictions such as additive noise to estimate the error term values as an intermediate step. Moreover <inline-formula><mml:math id="inf58"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is patient-specific because the values of <inline-formula><mml:math id="inf59"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf60"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> may differ between patients. We have <inline-formula><mml:math id="inf61"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> when <inline-formula><mml:math id="inf62"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is not a cause of <inline-formula><mml:math id="inf63"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, and we say that the gene <inline-formula><mml:math id="inf64"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> is a <italic>patient-specific root causal gene</italic> if <inline-formula><mml:math id="inf65"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≫</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, or its (conditional) root causal effect is large as depicted by the red ellipse in <xref ref-type="fig" rid="fig1">Figure 1b</xref>.</p></sec><sec id="s2-2"><title>Algorithm</title><p>We propose an algorithm called Root Causal Strength using Perturbations (RCSP) that estimates <inline-formula><mml:math id="inf66"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>…</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mstyle></mml:math></inline-formula> from genes measured in both bulk RNA-seq and Perturb-seq datasets derived from possibly independent studies but from the same tissue type. We rely on bulk RNA-seq instead of single-cell RNA-seq in order to obtain many samples of the label <inline-formula><mml:math id="inf67"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We focus on statistical estimation rather than statistical inference because <inline-formula><mml:math id="inf68"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> when <inline-formula><mml:math id="inf69"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> causes <inline-formula><mml:math id="inf70"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> under mild conditions, so we reject the null hypothesis that <inline-formula><mml:math id="inf71"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> for many genes if many gene expression levels cause <inline-formula><mml:math id="inf72"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. However, just like a machine typically breaks down due to only one or a few root causal problems, we hypothesize that only a few genes have large RCS scores <inline-formula><mml:math id="inf73"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≫</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> even in complex disease.</p><p>Estimating <inline-formula><mml:math id="inf74"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> requires access to the true gene expression levels <inline-formula><mml:math id="inf75"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> and the removal of the effects of confounding. We first control for batch effects representing unwanted sources of technical variation such as different sequencing platforms or protocols. We however can only obtain imperfect counts <inline-formula><mml:math id="inf76"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> from RNA sequencing even within each batch (<xref ref-type="fig" rid="fig2">Figure 2d</xref>). Measurement error introduces confounding as well because it prevents us from exactly controlling for the causal effects of the gene expression levels. Investigators usually mitigate measurement error by normalizing the gene expression levels by sequencing depth. We show in the Materials and methods that the Poisson distribution approximates the measurement error distribution induced by the sequencing process to high accuracy (<xref ref-type="bibr" rid="bib12">Choudhary and Satija, 2022</xref>; <xref ref-type="bibr" rid="bib50">Sarkar and Stephens, 2021</xref>). We leverage this fact to eliminate the need for normalization by sequencing depth using an asymptotic argument where the library size <inline-formula><mml:math id="inf77"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> approaches infinity. <inline-formula><mml:math id="inf78"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> takes on a value of at least ten million in bulk RNA-seq, but we also empirically verify that the theoretical results hold well in the Appendix. We thus eliminate the Poisson measurement error and batch effects by controlling for the batches <inline-formula><mml:math id="inf79"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> but not <inline-formula><mml:math id="inf80"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> in non-linear regression models.</p><p>We in particular show that <inline-formula><mml:math id="inf81"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> in <xref ref-type="disp-formula" rid="equ1">Equation 1</xref> is also equivalent to:<disp-formula id="equ2"><label>(2)</label><mml:math id="m2"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf82"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> refers to the <italic>surrogate parents</italic> of <inline-formula><mml:math id="inf83"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, or the variables in <inline-formula><mml:math id="inf84"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> associated with <inline-formula><mml:math id="inf85"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>⊆</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. RCSP can identify (an appropriate superset of) the surrogate parents of each variable using perturbation data because perturbing a gene changes the marginal distributions of its downstream effects – which the algorithm detects from data under mild assumptions (<xref ref-type="fig" rid="fig2">Figure 2e and f</xref>). The algorithm thus only transfers the binary presence or absence of causal relations from the single cell to bulk data – rather than the exact functional relationships – in order to remain robust against discrepancies between the two data types; we empirically verify the robustness in the Appendix. RCSP finally performs the two non-linear regressions needed to estimate <inline-formula><mml:math id="inf86"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf87"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf88"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. We will compare <inline-formula><mml:math id="inf89"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> against Statistical Dependence (SD), a measure of correlational strength defined as <inline-formula><mml:math id="inf90"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>|</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> where we have removed the conditioning on <inline-formula><mml:math id="inf91"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p></sec><sec id="s2-3"><title>In silico identification of root causal genes</title><p>We simulated 30 bulk RNA-seq and Perturb-seq datasets from random directed graphs summarizing causal relations between gene expression levels. We performed single gene knock-down perturbations over 2500 genes and 100 batches. We obtained 200 cell samples from each perturbation, and another 200 controls without perturbations. We therefore generated a total of 2501×200=500, 200 single cell samples for each Perturb-seq dataset. We simulated 200 bulk RNA-seq samples. We compared RCSP against the Additive Noise Model (ANM; <xref ref-type="bibr" rid="bib46">Peters, 2014</xref>; <xref ref-type="bibr" rid="bib61">Strobl and Lasko, 2023a</xref>), the Linear Non-Gaussian Acyclic Model (LiNGAM; <xref ref-type="bibr" rid="bib46">Peters, 2014</xref>; <xref ref-type="bibr" rid="bib60">Strobl and Lasko, 2022b</xref>), CausalCell (<xref ref-type="bibr" rid="bib71">Wen et al., 2023</xref>), univariate regression residuals (Uni Reg), and multivariate regression residuals (Multi Reg). The first two algorithms are state-of-the-art approaches used for error term extraction and, in theory, root causal discovery. See Materials and methods for comprehensive descriptions of the simulation setup and comparator algorithms.</p><p>We summarize accuracy results in <xref ref-type="fig" rid="fig2">Figure 2g</xref> using the Root Mean Squared Error (RMSE) to the ground truth <inline-formula><mml:math id="inf92"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> values. All statements about pairwise differences hold true at a Bonferonni corrected threshold of 0.05/5 according to paired two-sided t-tests, since we compared RCSP against a total of five algorithms. RCSP estimated <inline-formula><mml:math id="inf93"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> most accurately by a large margin. ANM and LiNGAM are theoretically correct under their respective assumptions, but they struggle to outperform standard multivariate regression due to the presence of measurement error in RNA-seq (Appendix). Feature selection and causal discovery with CausalCell did not improve performance. Univariate regression performed the worst, since it does not consider the interactions between variables. RCSP achieved the lowest RMSE while completing in about the same amount of time as multivariate regression on average (<xref ref-type="fig" rid="fig2">Figure 2h</xref>). RCSP maintained the lowest RMSE even in the cyclic case, and the performance of the algorithm remained robust to differences between the directed graphs underlying the bulk RNA-seq and Perturb-seq data (Appendix). We conclude that RCSP both scalably and accurately estimates <inline-formula><mml:math id="inf94"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p>We will cluster the RCS values in real data to find patient subgroups. We therefore also performed hierarchical clustering using Ward’s method (<xref ref-type="bibr" rid="bib70">Ward, 1963</xref>) on the values of <inline-formula><mml:math id="inf95"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> estimated by RCSP with the synthetic data. We then computed the RMSEs and averaged them within each cluster. We found that RCSP maintained low average RMSE values regardless of the number of clusters considered (<xref ref-type="fig" rid="fig2">Figure 2i</xref>). We conclude that RCSP maintains accurate estimation of <inline-formula><mml:math id="inf96"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> across different numbers of clusters.</p></sec><sec id="s2-4"><title>Oxidative stress in age-related macular degeneration</title><p>We ran RCSP on a bulk RNA-seq dataset of 513 individuals with age-related macular degeneration (AMD; GSE115828) and a Perturb-seq dataset of 247,914 cells generated from an immortalized retinal pigment epithelial (RPE) cell line (<xref ref-type="bibr" rid="bib47">Ratnapriya et al., 2019</xref>; <xref ref-type="bibr" rid="bib49">Replogle et al., 2022</xref>). The Perturb-seq dataset contains knockdown experiments of 2077 genes overlapping with the genes of the bulk dataset. We set the target <inline-formula><mml:math id="inf97"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> to the Minnesota Grading System score, a measure of the severity of AMD based on stereoscopic color fundus photographs. We always included age and sex as a biological variable as covariates. We do not have access to the ground truth values of <inline-formula><mml:math id="inf98"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> in real data, so we evaluated RCSP using seven alternative techniques. See Materials and methods for a detailed rationale of the evaluation of real data. RCSP outperformed all other algorithms in this dataset (Appendix). We therefore only analyze the output of RCSP in detail here.</p><p>AMD is a neurodegenerative disease of the aging retina (<xref ref-type="bibr" rid="bib28">Hadziahmetovic and Malek, 2020</xref>), so age is a known root cause of the disease. We therefore determined if RCSP identified age as a root cause. Note that RCSP does not need perturbation data of age to compute the RCS values of age, since age has no parents in the directed graph. The algorithm estimated a heavy tailed distribution of the RCS values indicating that most of the RCS values deviated away from zero (<xref ref-type="fig" rid="fig3">Figure 3a</xref>). The Deviation of the RCS (D-RCS), or the deviation from an RCS value of zero, measures the tailedness of the distribution while preserving the unit of measurement. The D-RCS of age corresponded to 0.46 – more than double that of the nearest gene (<xref ref-type="fig" rid="fig3">Figure 3d</xref>). We conclude that RCSP correctly detected age as a root cause of AMD.</p><fig id="fig3" position="float"><label>Figure 3.</label><caption><title>Analysis of AMD.</title><p>(<bold>a</bold>) The distribution of the RCS scores of age deviated away from zero and had a composite D-RCS of 0.46. (<bold>b</bold>) However, the majority of gene D-RCS scores concentrated around zero, whereas the majority of gene D-SD scores concentrated around the relatively larger value of 0.10. Furthermore, the D-RCS scores of the genes in (<bold>d</bold>) mapped onto the ‘amino acid transport across the plasma membrane’ pathway known to be involved in the pathogenesis of AMD in (<bold>c</bold>). Blue bars survived 5% FDR correction. (<bold>e</bold>) Drug enrichment analysis revealed four significant drugs, the later three of which have therapeutic potential. (<bold>f</bold>) Hierarchical clustering revealed four clear clusters according to the elbow method, which we plot by UMAP dimensionality reduction in (<bold>g</bold>). The RCS scores of the top genes in (<bold>d</bold>) increased only from the left to right on the first UMAP dimension (x-axis); we provide an example of SLC7A5 in (<bold>h</bold>) and one of three detected exceptions in (<bold>i</bold>). We therefore performed pathway enrichment analysis on the black cluster in (<bold>g</bold>) containing the largest RCS scores. (<bold>j</bold>) The amino acid transport pathway had a larger degree of enrichment in the black cluster as compared to the global analysis in (<bold>c</bold>).</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig3-v1.tif"/></fig><p>Root causal genes typically affect many downstream genes before affecting <inline-formula><mml:math id="inf99"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We therefore expect to identify few root causal genes but many genes that correlate with <inline-formula><mml:math id="inf100"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. To evaluate this hypothesis, we examined the distribution of D-RCS relative to the distribution of the Deviation of Statistical Dependence (D-SD), or the deviation from an SD value of zero, in <xref ref-type="fig" rid="fig3">Figure 3b</xref>. Notice that the histogram of D-RCS scores in <xref ref-type="fig" rid="fig3">Figure 3b</xref> mimics a folded distribution of <xref ref-type="fig" rid="fig1">Figure 1b</xref>. Thus, few D-RCS scores had large values implying the existence of only a few root causal genes. In contrast, most of the D-SD scores had relatively larger values concentrated around 0.10 implying the existence of many genes correlated with <inline-formula><mml:math id="inf101"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We conclude that RCSP identified few root causal genes rather than many correlated genes for AMD.</p><p>The pathogenesis of AMD involves the loss of RPE cells. The RPE absorbs light in the back of the retina, but the combination of light and oxygen induces oxidative stress, and then a cascade of events such as immune cell activation, cellular senescence, drusen accumulation, neovascularization and ultimately fibrosis (<xref ref-type="bibr" rid="bib3">Barouch and Miller, 2007</xref>). We therefore expect the root causal genes of AMD to include genes involved in oxidative stress during early pathogenesis. The gene MIPEP with the highest D-RCS score in <xref ref-type="fig" rid="fig3">Figure 3d</xref> indeed promotes the maturation of oxidative phosphorylation-related proteins (<xref ref-type="bibr" rid="bib53">Shi et al., 2011</xref>). The second gene SLC7A5 is a solute carrier that activates mTORC1 whose hyperactivation increases oxidative stress via lipid peroxidation (<xref ref-type="bibr" rid="bib37">Nachef et al., 2021</xref>; <xref ref-type="bibr" rid="bib24">Go et al., 2020</xref>). The gene HEATR1 is involved in ribosome biogenesis that is downregulated by oxidative stress (<xref ref-type="bibr" rid="bib68">Turi et al., 2018</xref>). The top genes discovered by RCSP thus identify pathways known to be involved in oxidative stress. We further verified that measurement error did not explain their large D-RCS scores in the Appendix.</p><p>We subsequently jointly analyzed the D-RCS values of all 2077 genes. We performed pathway enrichment analysis that yielded one pathway ‘amino acid transport across the plasma membrane’ that passed an FDR threshold of 5% (<xref ref-type="fig" rid="fig3">Figure 3c</xref>). The leading edge genes of the pathway included the solute carriers SLC7A5 and SLC1A5. These two genes function in conjunction to increase the efflux of essential amino acids out of the lysosome (<xref ref-type="bibr" rid="bib41">Nicklin et al., 2009</xref>; <xref ref-type="bibr" rid="bib5">Beaumatin et al., 2019</xref>). Some of these essential amino acids like L-leucine and L-arginine activate mTORC1 that in turn increases lipid peroxidation induced oxidative stress and the subsequent degeneration of the RPE (<xref ref-type="bibr" rid="bib37">Nachef et al., 2021</xref>; <xref ref-type="bibr" rid="bib24">Go et al., 2020</xref>). We conclude that pathway enrichment analysis correctly identified solute carrier genes involved in a known pathway promoting oxidative stress in AMD.</p><p>We next ran drug enrichment analysis with the D-RCS scores. The top compound arsenous acid inhibits RPE proliferation (<xref ref-type="bibr" rid="bib67">Su et al., 2020</xref>), but the other three significant drugs have therapeutic potential (<xref ref-type="fig" rid="fig3">Figure 3e</xref>). Busulfan decreases the requirement for intravitreal anti-VEGF injections (<xref ref-type="bibr" rid="bib15">Dalvin et al., 2022</xref>). Genistein is a protein kinase inhibitor that similarly attenuates neovascularization (<xref ref-type="bibr" rid="bib32">Kinoshita et al., 2014</xref>) and blunts the effect of ischemia on the retina (<xref ref-type="bibr" rid="bib30">Kamalden et al., 2011</xref>). Finally, a metabolite of the antiviral agent 3’-azido-3’-deoxythymidine inhibits neovascularization and mitigates RPE degeneration (<xref ref-type="bibr" rid="bib39">Narendran et al., 2020</xref>). We conclude that the D-RCS scores identified promising drugs for the treatment of AMD.</p><p>Hierarchical clustering and UMAP dimensionality reduction on the patient-specific RCS values revealed four clear clusters of patients by the elbow method on the sum of squares plot (<xref ref-type="fig" rid="fig3">Figure 3f and g</xref>, respectively). The RCS scores of most of the top genes exhibited a clear gradation increasing only from the left to the right hand side of the UMAP embedding; we plot an example in <xref ref-type="fig" rid="fig3">Figure 3h</xref>. We found three exceptions to this rule among the top 30 genes (example in <xref ref-type="fig" rid="fig3">Figure 3i</xref> and see the Appendix). RCSP thus detected genes with large RCS scores primarily in the black cluster of <xref ref-type="fig" rid="fig3">Figure 3g</xref>. Pathway enrichment analysis within this cluster alone yielded supra-significant results on the same pathway detected in the global analysis (<xref ref-type="fig" rid="fig3">Figure 3j</xref> versus <xref ref-type="fig" rid="fig3">Figure 3c</xref>). Furthermore, drug enrichment analysis results by cluster confirmed that patients in the black cluster with many root causal genes are likely the hardest to treat (Appendix). We conclude that RCSP detected a subgroup of patients whose root causal genes have large RCS scores and involve known pathogenic pathways related to oxidative stress.</p></sec><sec id="s2-5"><title>T cell infiltration in multiple sclerosis</title><p>We next ran RCSP on 137 samples collected from CD4+ T cells of multiple sclerosis (MS; GSE137143) as well as Perturb-seq data of 1,989,578 K562 cells, which can be genetically engineered into artificial antigen-presenting cells for expanding T cells (<xref ref-type="bibr" rid="bib10">Butler and Hirano, 2014</xref>; <xref ref-type="bibr" rid="bib49">Replogle et al., 2022</xref>). We set the target <inline-formula><mml:math id="inf102"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> to the Expanded Disability Status Scale score, a measure of MS severity. RCSP outperformed all other algorithms in this dataset as well (Appendix).</p><p>MS progresses over time, and RCSP correctly detected age as a root cause of MS severity with RCS values deviating away from zero (<xref ref-type="fig" rid="fig4">Figure 4a</xref>). The distribution of gene D-RCS scores concentrated around zero with a long tail, whereas the distribution of gene D-SD scores concentrated around a relatively larger value of 0.3 (<xref ref-type="fig" rid="fig4">Figure 4b</xref>). RCSP thus detected an omnigenic root causal model with a few root causal genes but many correlated genes.</p><fig id="fig4" position="float"><label>Figure 4.</label><caption><title>Analysis of MS.</title><p>(<bold>a</bold>) The distribution of the RCS scores of age deviated away from zero with a composite D-RCS of 0.55. (<bold>b</bold>) The distribution of D-RCS concentrated around zero, whereas the distribution of D-SD concentrated around 0.3. (<bold>d</bold>) RCSP identified many genes with large D-RCS scores that in turn mapped onto known pathogenic pathways in MS in (<bold>c</bold>). Hierarchical clustering revealed three clusters in (<bold>e</bold>), which we plot in two dimensions with UMAP in (<bold>f</bold>). Top genes did not correlate with either dimension of the UMAP embedding; we provide an example of the MNT gene in (<bold>g</bold>). (<bold>h</bold>) Drug enrichment analysis in the green cluster implicated multiple cathepsin inhibitors. Finally, EPH-ephrin signaling survived FDR correction in (<bold>c</bold>) and was enriched in the pink cluster in (<bold>i</bold>) which contained more MS patients with the relapsing-remitting subtype in (<bold>j</bold>); subtypes include relapsing-remitting (RR), primary progressive (PP), secondary progressive (SP), clinically isolated syndrome (CIS), and radiologically isolated syndrome (RIS).</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig4-v1.tif"/></fig><p>MS is an inflammatory neurodegenerative disease that damages the myelin sheaths of nerve cells in the brain and spinal cord. T cells may mediate the inflammatory process by crossing a disrupted blood brain barrier and repeatedly attacking the myelin sheaths (<xref ref-type="bibr" rid="bib20">Fletcher et al., 2010</xref>). Damage induced by the T cells also perturbs cellular homeostasis and leads to the accumulation of misfolded proteins (<xref ref-type="bibr" rid="bib2">Andhavarapu et al., 2019</xref>). The root causal genes of MS thus likely include genes involved in T cell infiltration across the blood brain barrier.</p><p>Genes with the highest D-RCS scores included MNT, CERCAM, and HERPUD2 (<xref ref-type="fig" rid="fig4">Figure 4d</xref>). MNT is a MYC antagonist that modulates the proliferative and pro-survival signals of T cells after engagement of the T cell receptor (<xref ref-type="bibr" rid="bib23">Gnanaprakasam and Wang, 2017</xref>). Similarly, CERCAM is an adhesion molecule expressed at high levels in microvessels of the brain that increases leukocyte transmigration across the blood brain barrier (<xref ref-type="bibr" rid="bib58">Starzyk et al., 2000</xref>). HERPUD2 is involved in the endoplasmic-reticulum associated degradation of unfolded proteins (<xref ref-type="bibr" rid="bib33">Kokame et al., 2000</xref>). Genes with the highest D-RCS scores thus serve key roles in known pathogenic pathways of MS.</p><p>We found multiple genes with high D-RCS scores in MS, in contrast to AMD where age dominated (<xref ref-type="fig" rid="fig4">Figure 4d</xref> versus <xref ref-type="fig" rid="fig3">Figure 3d</xref>). Measurement error did not account for the high scores (Appendix). We performed pathway enrichment analysis using the D-RCS scores of all genes and discovered two significant pathways at an FDR corrected threshold of 5%: ‘adenomatous polyposis coli (APC) truncation mutants have impaired AXIN binding’ and ‘EPH-ephrin signaling’ (<xref ref-type="fig" rid="fig4">Figure 4c</xref>). APC and AXIN are both members of the Wnt signaling pathway and regulate levels of beta-catenin (<xref ref-type="bibr" rid="bib55">Spink et al., 2000</xref>). Furthermore, inhibition of Wnt/beta-catenin causes CD4+ T cell infiltration into the central nervous system via the blood brain barrier in MS (<xref ref-type="bibr" rid="bib34">Lengfeld et al., 2017</xref>). Ephrins similarly regulate T cell migration into the central nervous system (<xref ref-type="bibr" rid="bib35">Luo et al., 2016</xref>) and are overexpressed in MS lesions (<xref ref-type="bibr" rid="bib54">Sobel, 2005</xref>). The APC-AXIN and EPH-ephrin pathways are thus consistent with the known pathophysiology of central nervous system T cell infiltration in MS.</p><p>We subsequently performed hierarchical clustering of the RCS scores. The within cluster sum of squares plot in <xref ref-type="fig" rid="fig4">Figure 4e</xref> revealed the presence of three clusters by the elbow method. We plot the three clusters in a UMAP embedding in <xref ref-type="fig" rid="fig4">Figure 4f</xref>. The clusters did not show a clear relationship with MS symptom severity (Appendix) or the levels of the top most genes of <xref ref-type="fig" rid="fig4">Figure 4d</xref>; we plot the MNT gene as an example in <xref ref-type="fig" rid="fig4">Figure 4g</xref>. However, further analyses with additional genes revealed that the distribution of many lower ranked genes governed the structure of the UMAP embedding (Appendix). The D-RCS scores of each cluster also implicated different mechanisms of T cell pathology including APC-AXIN in the green cluster, disturbed T cell homeostasis in the pink cluster and platelet enhanced T cell autoreactivity in the blue cluster (Appendix).</p><p>Global drug enrichment analysis did not yield any significant drugs even at a liberal FDR threshold of 10%. We thus ran drug enrichment analysis in each cluster of <xref ref-type="fig" rid="fig4">Figure 4f</xref>. The blue and pink clusters again did not yield significant drugs. However, the third green cluster identified the cysteine cathepsin inhibitors dipeptide-derived nitriles, phenylalinine derivatives, e-64, L-006235 and L-873724 (<xref ref-type="fig" rid="fig4">Figure 4h</xref>); statistical significance of the first three held even after correcting for multiple comparisons with the Bonferroni adjustment of 0.05/4 on the q-values. The leading edge genes of the significant drugs included the cathepsins CTSL, CTSS, and CTSB exclusively. These drug enrichment results corroborate multiple experimental findings highlighting the therapeutic efficacy of cathepsin inhibitors in a subgroup of MS patients responsive to interferon therapy (<xref ref-type="bibr" rid="bib29">Haves-Zburof et al., 2011</xref>; <xref ref-type="bibr" rid="bib8">Burster et al., 2007</xref>).</p><p>Prior research has also shown that EPH-ephrin signaling is more prevalent in relapsing-remitting multiple sclerosis than in other subtypes of the disease (<xref ref-type="bibr" rid="bib25">Golan et al., 2021</xref>). EPH-ephrin signaling survived FDR correction in our analysis (<xref ref-type="fig" rid="fig4">Figure 4c</xref>). Furthermore, the pathway was more enriched in the pink cluster than in the other two (<xref ref-type="fig" rid="fig4">Figure 4i</xref>). The pink cluster indeed contained a higher proportion of patients with the relapsing-remitting subtype (<xref ref-type="fig" rid="fig4">Figure 4j</xref>). RCSP thus precisely identified the enrichment of EPH-ephrin signaling in the correct subtype of MS.</p></sec></sec><sec id="s3" sec-type="discussion"><title>Discussion</title><p>We presented a framework for identifying root causal genes, or the gene expression levels directly regulated by root causes with large causal effects on <inline-formula><mml:math id="inf103"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, by modeling the root causes using the error terms of structural equation models. Each error term represents the conglomeration of unobserved root causes, such as genetic variants or environmental conditions, that directly cause a specific gene. We however do not have access to many of the error terms in practice, so we introduced the root causal strength (RCS) score, or the magnitude of the conditional causal effect of each error term, which we can compute using gene expression levels alone. The RCSP algorithm computes RCS given knowledge of the causal ancestors of each variable, which we obtained by Perturb-seq. RCSP only transfers the causal structure (binary cause-effect relations) from the single cell to bulk data rather than the exact functional relationships in order to remain robust against discrepancies between the two data types. Results with the synthetic data demonstrated marked improvements over existing alternatives. The algorithm also recovered only a few root causal genes that play key roles in known pathogenic pathways and implicate therapeutic drugs in both AMD and MS.</p><p>We detected a modest number of root causal genes in both AMD and MS, but virtually all genes were correlated with <inline-formula><mml:math id="inf104"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. This omnigenic model, where ‘omni-’ refers to the nearly all genes correlated with <inline-formula><mml:math id="inf105"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, differs from the omnigenic model involving <italic>core genes</italic> (<xref ref-type="bibr" rid="bib7">Boyle et al., 2017</xref>). Boyle et al. define core genes as genes that directly affect disease risk. The authors further elaborate that many <italic>peripheral genes</italic> affect the functions of a modest number of core genes, so the peripheral genes often explain most of disease heritability. In contrast, root causal genes may not directly cause <inline-formula><mml:math id="inf106"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> but lie substantially upstream of <inline-formula><mml:math id="inf107"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> in the causal graph. The error terms of upstream root causal genes affect many downstream genes that include both ancestors and non-ancestors of <inline-formula><mml:math id="inf108"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> (<xref ref-type="fig" rid="fig5">Figure 5</xref>). These downstream genes contain traces of the root causal gene error terms that induce the many correlations with <inline-formula><mml:math id="inf109"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. The root causal model thus assumes sparsity in upstream root causal genes, whereas the core gene model assumes sparsity in the downstream direct causal genes; the omnigenic root causal model makes no statement about the number of direct causal genes, so direct causal genes may be sparse or dense. Further, each causal genetic variant tends to have only a small effect on disease risk in complex disease because the variant can directly cause <inline-formula><mml:math id="inf110"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> or directly cause any causal gene including those with small root causal effects on <inline-formula><mml:math id="inf111"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>; thus, all error terms that cause <inline-formula><mml:math id="inf112"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> can model genetic effects on <inline-formula><mml:math id="inf113"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. However, the root causal model further elaborates that genetic <italic>and non-genetic factors</italic> often combine to produce a few root causal genes with large root causal effects, where non-genetic factors typically account for the majority of the large effects in complex disease. Many variants may therefore cause many genes in diseases with only a few root causal genes. We finally emphasize that the root causal model accounts for all deleterious effects of the root causal genes, whereas the core gene model only captures the deleterious effects captured by the diagnosis <inline-formula><mml:math id="inf114"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. For example, the <italic>disease</italic> of diabetes causes retinopathy, but retinopathy is not a part of the diagnostic criteria of diabetes. As a result, the gene expression levels that cause retinopathy but not the <italic>diagnosis</italic> of diabetes are not core genes, even though they are affected by the root causal genes. The sparsity of the root causal genes, the focus on the combined effects of genetic and non-genetic root causes, and the ability to account for root causal effects not represented by the target <inline-formula><mml:math id="inf115"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> motivate us to use the phrase <italic>omnigenic root causal model</italic> in order to distinguish it from the omnigenic core gene model.</p><fig id="fig5" position="float"><label>Figure 5.</label><caption><title>In this example, two root causal genes <inline-formula><mml:math id="inf116"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf117"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> affect many downstream genes and ultimately cause <inline-formula><mml:math id="inf118"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</title><p>Thus all genes <inline-formula><mml:math id="inf119"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>…</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>19</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> correlate with <inline-formula><mml:math id="inf120"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, but only <inline-formula><mml:math id="inf121"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf122"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> have large root causal effects on <inline-formula><mml:math id="inf123"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. The omnigenic root causal model posits that only a few root causal genes affect many downstream genes, so that nearly all genes are correlated with <inline-formula><mml:math id="inf124"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. Causal genetic variants can directly cause <inline-formula><mml:math id="inf125"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> or cause any gene expression level that causes <inline-formula><mml:math id="inf126"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> – including those with small root causal effects – but only <inline-formula><mml:math id="inf127"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf128"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> have large root causal effects on <inline-formula><mml:math id="inf129"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> due to genetic <italic>and non-genetic</italic> root causes modeled by <inline-formula><mml:math id="inf130"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf131"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. In contrast, the core gene model assumes only a few direct causal genes <inline-formula><mml:math id="inf132"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>13</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>14</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>15</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>17</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>18</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. These core genes do not account for the deleterious causal effects of <inline-formula><mml:math id="inf133"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf134"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf135"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>11</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>16</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf136"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>19</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig5-v1.tif"/></fig><p>We identified root causal genes without imposing parametric assumptions using the RCS metric. Prior measures of root causal effect require restrictive functional relations, such as linear relations or additive noise, and continuous random variables (<xref ref-type="bibr" rid="bib60">Strobl and Lasko, 2022b</xref>; <xref ref-type="bibr" rid="bib64">Strobl et al., 2024</xref>; <xref ref-type="bibr" rid="bib61">Strobl and Lasko, 2023a</xref>). These restrictions ensure exact identifiability of the underlying causal graph and error terms. However, real RNA-seq is obtained from a noisy sequencing process and contains count data arguably corrupted by Poisson measurement error (<xref ref-type="bibr" rid="bib50">Sarkar and Stephens, 2021</xref>). The Poisson measurement error introduces confounding that precludes exact recovery of the underlying error terms. The one existing root causal discovery method that can handle Poisson measurement error uses single-cell RNA-seq, estimates negative binomial distribution parameters and cannot scale to the thousands of genes required for meaningful root causal detection (<xref ref-type="bibr" rid="bib62">Strobl and Lasko, 2023b</xref>). RCSP rectifies the deficiencies of these past approaches by ensuring accurate root causal detection even in the presence of the counts, measurement error and high dimensionality of RNA-seq.</p><p>This study carries other limitations worthy of addressing in future work. The RCS score importantly quantifies root causal strength rather than root causal effect. As a result, the method cannot be used to identify the direction of root causal effect unconditional on the parents. The root causal effect and signed RCS (or expected conditional root causal effect) do not differ by much in practice (Appendix), but future work may focus on exactly identifying both the strength and direction of the unconditional causal effects of the error terms. Furthermore, RCS achieves patient but not cell-type specificity because the algorithm relies on phenotypic labels obtained from bulk RNA-seq. RCSP thus cannot identify the potentially different root causal genes present within distinct cell populations. Modern genome-wide Perturb-seq datasets also adequately perturb and measure only a few thousand, rather than all, gene expression levels. RCSP can only identify root causal genes within this perturbed and measured subset. Fourth, RCSP accounts for known batch effects and measurement error but cannot adjust for unknown confounding. Finally, RCSP assumes a directed acyclic graph. We can transform a directed graph with cycles into an acyclic one under equilibrium, but real biological distributions vary across time (<xref ref-type="bibr" rid="bib56">Spirtes, 1995</xref>; <xref ref-type="bibr" rid="bib6">Bongers et al., 2021</xref>). Future work should thus aim to estimate cell-type specific root causal effects under latent confounding and time-varying distributions.</p><p>In conclusion, RCSP integrates bulk RNA-seq and Perturb-seq to identify patient-specific root causal genes under a principled causal inference framework using the RCS score. RCS quantifies root causal strength implicitly without requiring normalization by sequencing depth or direct access to the error terms of a structural equation model. The algorithm identifies the necessary causal relations to compute RCS using reliable high-throughput perturbation data rather than observational data alone. The RCS scores often suggest an omnigenic root causal model of disease. Enrichment analyses with the RCS scores frequently reveal pathogenic pathways and drug candidates. We conclude that RCSP is a novel, accurate, scalable and disease-agnostic procedure for performing patient-specific root causal gene discovery.</p></sec><sec id="s4" sec-type="materials|methods"><title>Materials and methods</title><sec id="s4-1"><title>Background on causal discovery</title><p>We denote a singleton variable like <inline-formula><mml:math id="inf137"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> with italics and sets of variables like <inline-formula><mml:math id="inf138"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> with bold italics. We can represent a causal process using a <italic>structural equation model</italic> (SEM) linking the <inline-formula><mml:math id="inf139"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mstyle></mml:math></inline-formula> variables in <inline-formula><mml:math id="inf140"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">Z</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> using a series of deterministic functions:<disp-formula id="equ3"><label>(3)</label><mml:math id="m3"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="14.226378pt"/><mml:mi mathvariant="normal">∀</mml:mi><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">Z</mml:mi></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf141"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>f</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a function of the <italic>parents</italic>, or direct causes, of <inline-formula><mml:math id="inf142"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and an error term <inline-formula><mml:math id="inf143"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. The error terms <inline-formula><mml:math id="inf144"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> are mutually independent. We will use the terms <italic>vertex</italic> and <italic>variable</italic> interchangeably. A <italic>root vertex</italic> corresponds to a vertex without any parents. On the other hand, a <italic>terminal</italic> or <italic>sink vertex</italic> is not a parent of any other vertex.</p><p>We can associate a directed graph to <inline-formula><mml:math id="inf145"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">Z</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> by drawing a directed edge from each member of <inline-formula><mml:math id="inf146"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf147"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> for all <inline-formula><mml:math id="inf148"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">Z</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. A <italic>directed path</italic> from <inline-formula><mml:math id="inf149"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf150"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> corresponds to a sequence of adjacent directed edges from <inline-formula><mml:math id="inf151"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf152"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. If such a path exists (or <inline-formula><mml:math id="inf153"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>), then <inline-formula><mml:math id="inf154"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is an <italic>ancestor</italic> of <inline-formula><mml:math id="inf155"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf156"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a <italic>descendant</italic> of <inline-formula><mml:math id="inf157"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. We collate all ancestors of <inline-formula><mml:math id="inf158"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> into the set <inline-formula><mml:math id="inf159"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">A</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. A <italic>cycle</italic> occurs when there exists a directed path from <inline-formula><mml:math id="inf160"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf161"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and the directed edge <inline-formula><mml:math id="inf162"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">→</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. A <italic>directed acyclic graph</italic> (DAG) contains no cycles. We <italic>augment</italic> a directed graph by including additional vertices <inline-formula><mml:math id="inf163"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> and drawing a directed edge from each <inline-formula><mml:math id="inf164"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf165"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> except when <inline-formula><mml:math id="inf166"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is already a root vertex. We consider an augmented DAG <inline-formula><mml:math id="inf167"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> throughout the remainder of this manuscript.</p><p>The vertices <inline-formula><mml:math id="inf168"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf169"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> are <italic>d-connected</italic> given <inline-formula><mml:math id="inf170"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi><mml:mo>⊆</mml:mo><mml:mi mathvariant="bold-italic">Z</mml:mi><mml:mo>∖</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>Z</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> in <inline-formula><mml:math id="inf171"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> if there exists a path between <inline-formula><mml:math id="inf172"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf173"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> such that every collider on the path is an ancestor of <inline-formula><mml:math id="inf174"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> and no non-collider is in <inline-formula><mml:math id="inf175"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. The vertices are <italic>d-separated</italic> if they are not d-connected. Any DAG associated with the SEM in <xref ref-type="disp-formula" rid="equ3">Equation 3</xref> also obeys the <italic>global Markov property</italic> where <inline-formula><mml:math id="inf176"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf177"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>Z</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> are conditionally independent given <inline-formula><mml:math id="inf178"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> if they are d-separated given <inline-formula><mml:math id="inf179"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. The term <italic>d-separation faithfulness</italic> refers to the converse of the global Markov property where conditional independence implies d-separation. A distribution obeys <italic>unconditional d-separation faithfulness</italic> when we can only guarantee d-separation faithfulness when <inline-formula><mml:math id="inf180"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">W</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∅</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula></p></sec><sec id="s4-2"><title>Causal modeling of RNA sequencing</title><p>Performing causal discovery requires careful consideration of the underlying generative process. We therefore propose a causal model for RNA-seq. We differentiate between the biology and the RNA sequencing technology.</p><p>We represent a snapshot of a biological causal process using an SEM over <inline-formula><mml:math id="inf181"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> obeying <xref ref-type="disp-formula" rid="equ3">Equation 3</xref>. We assume that the phenotypic target <inline-formula><mml:math id="inf182"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a terminal vertex so that gene expression causes phenotype but not vice versa. Each <inline-formula><mml:math id="inf183"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> corresponds to the total number of RNA molecules of a unique gene in a single cell or bulk tissue sample. The error terms model root causes that are outside of gene expression, such as genetic variation or environmental factors. Moreover, the relation from gene expression to <inline-formula><mml:math id="inf184"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is stochastic because <inline-formula><mml:math id="inf185"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>, where <inline-formula><mml:math id="inf186"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> introduces the stochasticity. Two individuals may therefore have the exact same error term values over <inline-formula><mml:math id="inf187"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> but different instantiations of <inline-formula><mml:math id="inf188"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p>We unfortunately cannot observe <inline-formula><mml:math id="inf189"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> in practice but instead measure a corrupted count <inline-formula><mml:math id="inf190"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> using single cell or bulk RNA-seq technology. We derive the measurement error distribution from first principles. We map an exceedingly small fraction of each <inline-formula><mml:math id="inf191"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> within a sample at unequal coverage. Let <inline-formula><mml:math id="inf192"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>π</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> denote the probability of mapping one molecule of <inline-formula><mml:math id="inf193"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> in batch <inline-formula><mml:math id="inf194"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>j</mml:mi></mml:mstyle></mml:math></inline-formula> so that <inline-formula><mml:math id="inf195"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:munderover><mml:mo>∑</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>π</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is near zero. The law of rare events (<xref ref-type="bibr" rid="bib44">Papoulis, 1984</xref>) implies that the Poisson distribution well-approximates the library size <inline-formula><mml:math id="inf196"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> so that <inline-formula><mml:math id="inf197"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>N</mml:mi><mml:mo>∼</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p><p>We write the probability of mapping <inline-formula><mml:math id="inf198"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> in a given sample as:<disp-formula id="equ4"><mml:math id="m4"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>p</mml:mi></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>.</mml:mo></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>This proportion remains virtually unchanged when sampling without replacement because <inline-formula><mml:math id="inf199"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>≪</mml:mo><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> with small <inline-formula><mml:math id="inf200"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. We can therefore approximate sampling <italic>without</italic> replacement by sampling <italic>with</italic> replacement using a multinomial: <inline-formula><mml:math id="inf201"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>∼</mml:mo><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">N</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>;</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>…</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> This multinomial and the Poisson distribution over <inline-formula><mml:math id="inf202"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> together imply that the marginal distribution of each <inline-formula><mml:math id="inf203"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> follows an independent Poisson distribution centered at <inline-formula><mml:math id="inf204"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mo stretchy="false">(</mml:mo><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>, or:<disp-formula id="equ5"><label>(4)</label><mml:math id="m5"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∼</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p><p>We conclude that the measurement error distribution follows a Poisson distribution to high accuracy. Multiple experimental results already corroborate this theoretical conclusion (<xref ref-type="bibr" rid="bib27">Grün et al., 2014</xref>; <xref ref-type="bibr" rid="bib50">Sarkar and Stephens, 2021</xref>; <xref ref-type="bibr" rid="bib12">Choudhary and Satija, 2022</xref>).</p><p>We can represent the biology and the RNA sequencing in a single DAG over <inline-formula><mml:math id="inf205"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>∪</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>B</mml:mi><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>, where <inline-formula><mml:math id="inf206"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> denotes the batch, and <inline-formula><mml:math id="inf207"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> the target variable representing patient symptoms or diagnosis. We provide a toy example in <xref ref-type="fig" rid="fig6">Figure 6</xref>. We draw <inline-formula><mml:math id="inf208"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> over <inline-formula><mml:math id="inf209"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">Z</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in black and make each <inline-formula><mml:math id="inf210"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> a parent of <inline-formula><mml:math id="inf211"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in blue. We then include the root vertex <inline-formula><mml:math id="inf212"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> as a parent of all members of <inline-formula><mml:math id="inf213"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> in green. We augment this graph with the error terms of <inline-formula><mml:math id="inf214"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> in red and henceforth refer to the augmented DAG as <inline-formula><mml:math id="inf215"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. Repeated draws from the represented causal process generates a dataset.</p><fig id="fig6" position="float"><label>Figure 6.</label><caption><title>An example of a DAG over <inline-formula><mml:math id="inf216"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>∪</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>B</mml:mi><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> augmented with the error terms <inline-formula><mml:math id="inf217"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>.</title><p>The observed vertices <inline-formula><mml:math id="inf218"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> denote counts corrupted by batch <inline-formula><mml:math id="inf219"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> effects and Poisson measurement error.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-fig6-v1.tif"/></fig></sec><sec id="s4-3"><title>No need for normalization by sequencing depth</title><p>We provide an asymptotic argument that eliminates the need for normalization by sequencing depth when estimating conditional expectations using bulk RNA-seq. The argument applies to the conditional expectations as a whole rather than their individual parameters.</p><p>We want to recover the causal relations between <inline-formula><mml:math id="inf220"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> by removing batch <inline-formula><mml:math id="inf221"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> and depth <inline-formula><mml:math id="inf222"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> effects from the dataset because they correspond to the sequencing process rather than the underlying biology. We first consider removing sequencing depth by finding stably expressed housekeeping genes. Let <inline-formula><mml:math id="inf223"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> denote the set of housekeeping genes where <inline-formula><mml:math id="inf224"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> is a constant for each <inline-formula><mml:math id="inf225"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>; similarly <inline-formula><mml:math id="inf226"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> refers to the corresponding set with Poisson measurement error. Let <inline-formula><mml:math id="inf227"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mi>n</mml:mi></mml:mstyle></mml:math></inline-formula> be large enough such that <inline-formula><mml:math id="inf228"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mstyle></mml:math></inline-formula> for each sample. Then dividing by <inline-formula><mml:math id="inf229"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>L</mml:mi><mml:mo>≜</mml:mo><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> controls for sequencing depth in the following sense:<disp-formula id="equ6"><mml:math id="m6"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mi/><mml:mspace width="3mm"/><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mfrac><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">A</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mi/><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>p</mml:mi></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>p</mml:mi></mml:munderover><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>where we have divided <inline-formula><mml:math id="inf230"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> by a constant in the last term. Thus, dividing by <inline-formula><mml:math id="inf231"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula> removes measurement error within each batch as <inline-formula><mml:math id="inf232"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:math></inline-formula>. We assume that <inline-formula><mml:math id="inf233"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> is so large that the approximation error is negligible. We only invoke the assumption in bulk RNA-seq, where the library size <inline-formula><mml:math id="inf234"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> is on the order of at least tens of millions.</p><p>We do not divide by <inline-formula><mml:math id="inf235"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula> in practice because we may have <inline-formula><mml:math id="inf236"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> with finite <inline-formula><mml:math id="inf237"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula>. We instead always include <inline-formula><mml:math id="inf238"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi><mml:mo>∪</mml:mo><mml:mi>B</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> in the predictor set of downstream regressions. Conditioning on <inline-formula><mml:math id="inf239"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi><mml:mo>∪</mml:mo><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> ensures that all downstream regressions mitigate depth and batch effects with adequate sequencing depth, or that <inline-formula><mml:math id="inf240"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> for any <inline-formula><mml:math id="inf241"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>⊆</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> as <inline-formula><mml:math id="inf242"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:math></inline-formula>. The equality holds almost surely under a mild smoothness condition:</p><p>Lemma 1. Assume Lipschitz continuity of the conditional expectation for all <inline-formula><mml:math id="inf243"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>≥</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>:<disp-formula id="equ7"><mml:math id="m7"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>≤</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf244"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mi>B</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math></inline-formula>, <inline-formula><mml:math id="inf245"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi>O</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> is a positive constant, and we have taken an outer expectation on both sides. Then <inline-formula><mml:math id="inf246"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> almost surely.</p><p>We delegate proofs to the Appendix unless proven here in the Methods. Note that <inline-formula><mml:math id="inf247"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mfrac><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>, so the Lipschitz assumption intuitively means that accurate estimation of <inline-formula><mml:math id="inf248"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> implies accurate estimation of <inline-formula><mml:math id="inf249"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. Furthermore, conditioning on the library size <inline-formula><mml:math id="inf250"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> instead of <inline-formula><mml:math id="inf251"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula> can introduce spurious dependencies because <inline-formula><mml:math id="inf252"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> depends on all of the genes rather than just the stably expressed ones.</p><p>We now eliminate the need to condition on <inline-formula><mml:math id="inf253"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula>. Note that <inline-formula><mml:math id="inf254"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula> is a sum of independent Poisson distributions given <inline-formula><mml:math id="inf255"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> per Expression (4). This implies <inline-formula><mml:math id="inf256"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>Y</mml:mi><mml:mo>⊥</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>L</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> for any <inline-formula><mml:math id="inf257"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula>, so that <inline-formula><mml:math id="inf258"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> almost surely. We have proved:</p><p>Theorem 1. Consider the same assumption as Lemma 1. Then <inline-formula><mml:math id="inf259"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> almost surely, where we have eliminated the conditioning on <inline-formula><mml:math id="inf260"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p>We emphasize again that these equalities hold for the conditional expectation but <italic>not</italic> for the regression parameters; the regression parameters do not converge in general unless we divide by <inline-formula><mml:math id="inf261"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>L</mml:mi></mml:mstyle></mml:math></inline-formula>. We will only need to estimate conditional expectations in order to identify root causal genes.</p></sec><sec id="s4-4"><title>Identifying root causal genes</title><p>We showed how to overcome Poisson measurement error without sequencing depth normalization in the previous section. We leverage this technique to define a measure for identifying the root causal genes of <inline-formula><mml:math id="inf262"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</p></sec><sec id="s4-5"><title>Definitions</title><p>A <italic>root cause</italic> of <inline-formula><mml:math id="inf263"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> corresponds to a root vertex that is an ancestor of <inline-formula><mml:math id="inf264"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> in <inline-formula><mml:math id="inf265"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. All root vertices are error terms in an augmented graph. We define the <italic>root causal effect</italic> of any <inline-formula><mml:math id="inf266"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">E</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf267"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> as <inline-formula><mml:math id="inf268"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≜</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> (<xref ref-type="bibr" rid="bib65">Strobl, 2024a</xref>; <xref ref-type="bibr" rid="bib63">Strobl and Lasko, 2023c</xref>).</p><p>We can identify root causes using the following result:</p><p>Proposition 1. If <inline-formula><mml:math id="inf269"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> or <inline-formula><mml:math id="inf270"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> (or both), then <inline-formula><mml:math id="inf271"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root cause of <inline-formula><mml:math id="inf272"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p>We can also claim the backward direction under d-separation faithfulness. We however avoid making this additional assumption because real biological data may not arise from distributions obeying d-separation faithfulness in practice (<xref ref-type="bibr" rid="bib59">Strobl, 2022a</xref>).</p><p>Proposition 1 implies that <inline-formula><mml:math id="inf273"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root cause of <inline-formula><mml:math id="inf274"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> when:<disp-formula id="equ8"><mml:math id="m8"><mml:mrow><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mtd><mml:mtd><mml:mi/><mml:mo>≜</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>≠</mml:mo><mml:mn>0.</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p><p>The above quantity corresponds to the <italic>conditional root causal effect</italic> but not the root causal effect <inline-formula><mml:math id="inf275"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> due to the extra conditioning on <inline-formula><mml:math id="inf276"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. The two terms may also differ in direction; if <inline-formula><mml:math id="inf277"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, then this does not imply that <inline-formula><mml:math id="inf278"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, and similarly for negative values. The two variables thus represent different quantities but – in terms of priority – we would estimate <inline-formula><mml:math id="inf279"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> when we have nonzero <inline-formula><mml:math id="inf280"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. Experimental results indicate that <inline-formula><mml:math id="inf281"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf282"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> take on similar values and agree in direction about 95% of the time in practice (Appendix).</p><p>We now encounter two challenges. First, the quantities <inline-formula><mml:math id="inf283"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Υ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf284"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> depend on the unknown error term <inline-formula><mml:math id="inf285"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. We can however substitute <inline-formula><mml:math id="inf286"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> with <inline-formula><mml:math id="inf287"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> in <inline-formula><mml:math id="inf288"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> due to the following result:</p><p>Proposition 2. We have <inline-formula><mml:math id="inf289"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> under <xref ref-type="disp-formula" rid="equ3">Equation 3</xref>.</p><p>We can thus compute the conditional root causal effect <inline-formula><mml:math id="inf290"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> without access to the error terms:<disp-formula id="equ9"><mml:math id="m9"><mml:mrow><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mtd><mml:mtd><mml:mi/><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mi/><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p><p>We can determine the root causal status of on when per Proposition 1. Nevertheless, the term ‘root cause’ in colloquial language refers to two concepts simultaneously: a root vertex that causes <italic>and</italic> has a large causal effect on . We thus say that is a <italic>root causal gene</italic> of if .</p><p>The second challenge involves computing the non-parametric probability distributions of which come at a high cost. We thus define the analogous expected version by:<disp-formula id="equ10"><mml:math id="m10"><mml:mrow><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≜</mml:mo><mml:mo>∫</mml:mo><mml:mrow><mml:mi>y</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mi>d</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mspace width="1em"/><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mspace width="1em"/><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo>∣</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula><disp-formula id="equ11"><mml:math id="m11"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi/><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi>ℙ</mml:mi><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Y</mml:mi><mml:mo lspace="2.5pt" rspace="2.5pt" stretchy="false">|</mml:mo><mml:mrow><mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mi>ℙ</mml:mi><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Y</mml:mi><mml:mo lspace="2.5pt" rspace="2.5pt" stretchy="false">|</mml:mo><mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mi/><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi>ℙ</mml:mi><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Y</mml:mi><mml:mo lspace="2.5pt" rspace="2.5pt" stretchy="false">|</mml:mo><mml:mrow><mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mi>ℙ</mml:mi><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Y</mml:mi><mml:mo lspace="2.5pt" rspace="2.5pt" stretchy="false">|</mml:mo><mml:mrow><mml:mtext>Pa</mml:mtext><mml:mo>⁢</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:mrow><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf291"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>p</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> denotes the density of <inline-formula><mml:math id="inf292"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi><mml:mo>.</mml:mo></mml:mstyle></mml:math></inline-formula> Observe that if <inline-formula><mml:math id="inf293"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>, then <inline-formula><mml:math id="inf294"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. The converse is not true but likely to hold in real data when a change in the probability distribution also changes its expectation. The set <inline-formula><mml:math id="inf295"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>⊆</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> denotes the <italic>surrogate parents</italic> of <inline-formula><mml:math id="inf296"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> corresponding to the variables in <inline-formula><mml:math id="inf297"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> associated with <inline-formula><mml:math id="inf298"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>⊆</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. The last equality holds almost surely as <inline-formula><mml:math id="inf299"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:math></inline-formula> by Theorem 1.</p><p>We call <inline-formula><mml:math id="inf300"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≜</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> the <italic>Root Causal Strength</italic> (RCS) of <inline-formula><mml:math id="inf301"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf302"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. The RCS obtains a unique value <inline-formula><mml:math id="inf303"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>ϕ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> for each patient <inline-formula><mml:math id="inf304"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>j</mml:mi></mml:mstyle></mml:math></inline-formula>. We say that <inline-formula><mml:math id="inf305"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root causal gene of <inline-formula><mml:math id="inf306"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> for patient <inline-formula><mml:math id="inf307"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>j</mml:mi></mml:mstyle></mml:math></inline-formula> if <inline-formula><mml:math id="inf308"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>ϕ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>≫</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula>, since we posit a right skewed distribution of conditional root causal effects for each patient as in <xref ref-type="fig" rid="fig1">Figure 1(b)</xref>. We combine the RCS scores across a set of <inline-formula><mml:math id="inf309"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>n</mml:mi></mml:mstyle></mml:math></inline-formula> samples using the Deviation of the RCS (D-RCS) <inline-formula><mml:math id="inf310"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msqrt><mml:mfrac><mml:mn>1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:munderover><mml:mo>∑</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msubsup><mml:mi>ϕ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:msqrt></mml:mstyle></mml:math></inline-formula>, or the deviation of RCS from zero. We may compute D-RCS for each cluster or globally across all patients depending on the context. We thus likewise say that <inline-formula><mml:math id="inf311"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root causal gene for a cluster of patients or all patients in a sample if its corresponding D-RCS score for the cluster or the sample is much lager than zero, respectively. Note that we do not specify a particular cutoff value for large (conditional) root causal effects, since the root causal effects likely lie on a continuous graduated scale as opposed to approximately two binary values. Nevertheless, visual inspection of the RCS or D-RCS histograms in disease should approximate a power law, where a large mass is concentrated around zero and a long tail extends to the right similar to folding <xref ref-type="fig" rid="fig1">Figure 1b</xref>.</p></sec><sec id="s4-6"><title>Algorithm</title><p>We now design an algorithm called Root Causal Strength using Perturbations (RCSP) that recovers the RCS scores using Perturb-seq and bulk RNA-seq data.</p></sec><sec id="s4-7"><title>Finding surrogate ancestors</title><p>Computing <inline-formula><mml:math id="inf312"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf313"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> requires access to the surrogate parents of each variable or, equivalently, the causal graph <inline-formula><mml:math id="inf314"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. However, inferring <inline-formula><mml:math id="inf315"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> using causal discovery algorithms may lead to large statistical errors in the high dimensional setting (<xref ref-type="bibr" rid="bib13">Colombo, 2014</xref>) and require restrictive assumptions such as d-separation faithfulness (<xref ref-type="bibr" rid="bib57">Spirtes et al., 2000</xref>) or specific functional relations (<xref ref-type="bibr" rid="bib46">Peters, 2014</xref>).</p><p>We instead directly utilize the interventional Perturb-seq data to recover a superset of the surrogate parents. We first leverage the global Markov property and equivalently write:<disp-formula id="equ12"><label>(5)</label><mml:math id="m12"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf316"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> denotes the <italic>surrogate ancestors</italic> of <inline-formula><mml:math id="inf317"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, or the variables in <inline-formula><mml:math id="inf318"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> associated with the ancestors of <inline-formula><mml:math id="inf319"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>.</p><p>We discover the surrogate ancestors using unconditional independence tests. For any <inline-formula><mml:math id="inf320"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>, we test <inline-formula><mml:math id="inf321"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>⊥</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> by unpaired two-sided t-test, where <inline-formula><mml:math id="inf322"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is an indicator function equal to one when we perturb <inline-formula><mml:math id="inf323"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and zero in the control samples of Perturb-seq. <inline-formula><mml:math id="inf324"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is thus a parent of <inline-formula><mml:math id="inf325"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> alone but not a child of <inline-formula><mml:math id="inf326"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula>, so we do not need to condition on <inline-formula><mml:math id="inf327"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula>. We use the two-sided t-test to assess for independence because the t-statistic averages over cells to mimic bulk RNA-seq. If we reject the null and conclude that <inline-formula><mml:math id="inf328"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> then <inline-formula><mml:math id="inf329"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> must be a descendant of <inline-formula><mml:math id="inf330"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> by the global Markov property, so we include <inline-formula><mml:math id="inf331"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> into the set of surrogate descendants <inline-formula><mml:math id="inf332"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. Curating every <inline-formula><mml:math id="inf333"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> such that <inline-formula><mml:math id="inf334"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> into <inline-formula><mml:math id="inf335"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> yields the surrogate ancestors of <inline-formula><mml:math id="inf336"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> as desired.</p></sec><sec id="s4-8"><title>Procedure</title><p>We now introduce an algorithm called Root Causal Strength using Perturbations (RCSP) that discovers the surrogate ancestors of each variable <inline-formula><mml:math id="inf337"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> using Perturb-seq and then computes the RCS of each variable using bulk RNA-seq. We summarize RCSP in Algorithm 1.</p><p>RCSP takes Perturb-seq and bulk RNA-seq datasets as input. The algorithm first finds the surrogate descendants of each variable in <inline-formula><mml:math id="inf338"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> in Line 2 in order to identify the surrogate ancestors of each variable in Line 5. Access to the surrogate ancestors and the batches <inline-formula><mml:math id="inf339"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> allows RCSP to compute <inline-formula><mml:math id="inf340"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf341"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> from the bulk RNA-seq in Line 6. The algorithm thus outputs the RCS scores <inline-formula><mml:math id="inf342"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> as desired.</p><p>We certify RCSP as follows:</p><p>Theorem 2. (Fisher consistency) Consider the same assumption as Lemma 1. If unconditional d-separation faithfulness holds then RCSP recovers <inline-formula><mml:math id="inf343"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> almost surely as <inline-formula><mml:math id="inf344"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p><table-wrap id="inlinetable1" position="anchor"><table frame="hsides" rules="groups"><tbody><tr><td align="left" valign="bottom"><bold>Algorithm 1</bold>.Root Causal Strength using Perturbations (RCSP).</td></tr><tr><td align="left" valign="bottom"><bold>Input:</bold> bulk RNA-seq data with batches <inline-formula><mml:math id="inf345"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula>, Perturb-seq data<break/><bold>Output:</bold> RCS scores Φ<break/>1: <bold>for each</bold> <inline-formula><mml:math id="inf346"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> <bold>do</bold><break/>2:     <inline-formula><mml:math id="inf347"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> all <inline-formula><mml:math id="inf348"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> s.t. <inline-formula><mml:math id="inf349"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> in Perturb-seq<break/>3: <bold>end for</bold><break/>4: <bold>for each</bold> <inline-formula><mml:math id="inf350"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> <bold>do</bold><break/>5:     <inline-formula><mml:math id="inf351"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">←</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> all <inline-formula><mml:math id="inf352"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> s.t. <inline-formula><mml:math id="inf353"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula><break/>6:    Compute <inline-formula><mml:math id="inf354"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> using <xref ref-type="disp-formula" rid="equ12">Equation 5</xref> in bulk RNA-seq<break/>7: <bold>end for</bold></td></tr></tbody></table></table-wrap><p>We engineered RCSP to only require <italic>unconditional</italic> d-separation faithfulness because real distributions may not obey full d-separation faithfulness (<xref ref-type="bibr" rid="bib59">Strobl, 2022a</xref>).</p></sec><sec id="s4-9"><title>Synthetic data</title><sec id="s4-9-1"><title>Simulations</title><p>We generated a linear SEM obeying <xref ref-type="disp-formula" rid="equ3">Equation 3</xref> specifically as <inline-formula><mml:math id="inf355"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:msub><mml:mi>β</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> for every <inline-formula><mml:math id="inf356"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> and similarly <inline-formula><mml:math id="inf357"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:msub><mml:mi>β</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula>. We included <inline-formula><mml:math id="inf358"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>2500</mml:mn></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> variables in <inline-formula><mml:math id="inf359"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. We instantiated the coefficient matrix β by sampling from a <inline-formula><mml:math id="inf360"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">B</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">i</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> distribution in the upper triangular portion of the matrix. The resultant causal graph thus has an expected neighborhood size of 2. We then randomly permuted the ordering of the variables. We introduced weights into the coefficient matrix by multiplying each entry in <italic>β</italic> by a weight sampled uniformly from <inline-formula><mml:math id="inf361"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mo stretchy="false">[</mml:mo><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>−</mml:mo><mml:mn>0.25</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mo>∪</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>0.25</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. The error terms each follow a standard Gaussian distribution multiplied by 0.5. We introduced batch effects by drawing each entry of the mapping efficiencies <inline-formula><mml:math id="inf362"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>π</mml:mi></mml:mstyle></mml:math></inline-formula> from the uniform distribution between 10 and 1000 for the bulk RNA-seq, and between 0.1 and 1 for the Perturb-seq. We set <inline-formula><mml:math id="inf363"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">←</mml:mo><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">p</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> and then obtained the corrupted surrogate <inline-formula><mml:math id="inf364"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> distributed <inline-formula><mml:math id="inf365"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">i</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf366"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> and batch <inline-formula><mml:math id="inf367"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>j</mml:mi></mml:mstyle></mml:math></inline-formula>. We chose <inline-formula><mml:math id="inf368"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> uniformly at random from the set of vertices with at least one parent and no children. We drew 200 samples for the bulk RNA-seq data to mimic a large but common dataset size. We introduced knockdown perturbations in Perturb-seq by subtracting an offset of two in the softplus function: <inline-formula><mml:math id="inf369"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">←</mml:mo><mml:mrow><mml:mi mathvariant="normal">s</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mi mathvariant="normal">p</mml:mi><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">u</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>−</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. We finally drew 200 samples for the control and each perturbation condition to generate the Perturb-seq data. We repeated the above procedure 30 times.</p></sec><sec id="s4-9-2"><title>Comparators</title><p>We compared RCSP against the following four algorithms:</p><list list-type="order"><list-item><p>Additive noise model (ANM) (<xref ref-type="bibr" rid="bib46">Peters, 2014</xref>; <xref ref-type="bibr" rid="bib61">Strobl and Lasko, 2023a</xref>): performs non-linear regression of <inline-formula><mml:math id="inf370"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf371"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>∪</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> and then regresses <inline-formula><mml:math id="inf372"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> on the residuals <inline-formula><mml:math id="inf373"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mo>∖</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> to estimate <inline-formula><mml:math id="inf374"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mo>∖</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf375"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. The non-linear regression residuals are equivalent to the error terms assuming an additive noise model.</p></list-item><list-item><p>Linear Non-Gaussian Acyclic Model (LiNGAM) (<xref ref-type="bibr" rid="bib46">Peters, 2014</xref>; <xref ref-type="bibr" rid="bib60">Strobl and Lasko, 2022b</xref>): same as above but performs linear instead of non-linear regression.</p></list-item><list-item><p>CausalCell (<xref ref-type="bibr" rid="bib71">Wen et al., 2023</xref>): selects the top 50 genes with maximal statistical dependence to <inline-formula><mml:math id="inf376"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, and then runs the Peter-Clark (PC) algorithm (<xref ref-type="bibr" rid="bib57">Spirtes et al., 2000</xref>) using a non-parametric conditional independence test to identify a causal graph among the top 50 genes. The algorithm does not perform root causal inference, so we use ANM as above but condition on the estimated parent sets for the top 50 genes and the ancestors inferred from the Perturb-seq data otherwise</p></list-item><list-item><p>Univariate regression residuals (Uni Reg): regresses <inline-formula><mml:math id="inf377"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf378"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>∪</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> and estimates the absolute residuals <inline-formula><mml:math id="inf379"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>Y</mml:mi><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf380"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>∈</mml:mo><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p></list-item><list-item><p>Multivariate regression residuals (Multi Reg): similar to above but instead computes the absolute residuals after regressing <inline-formula><mml:math id="inf381"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> on <inline-formula><mml:math id="inf382"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mo>∖</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>∪</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>.</p></list-item></list><p>The first two methods are state-of-the-art approaches used for root causal discovery. Univariate and multivariate regressions do not distinguish between predictivity and causality, but we included them as sanity checks. We performed all non-linear regressions using multivariate adaptive regression splines to control for the underlying regressor (<xref ref-type="bibr" rid="bib21">Friedman, 1991</xref>). We also standardized all variables before running the regressions to prevent gaming of the marginal variances in causal discovery (<xref ref-type="bibr" rid="bib48">Reisach, 2021</xref>; <xref ref-type="bibr" rid="bib40">Ng, 2024</xref>). We compared the algorithms on their accuracy in estimating <inline-formula><mml:math id="inf383"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula>.</p></sec></sec><sec id="s4-10"><title>Real data</title><sec id="s4-10-1"><title>Quality control</title><p>We downloaded Perturb-seq datasets of retinal pigment epithelial cells from the RPE-1 cell line, and myeloid leukemia cells from the K562 cell line (<xref ref-type="bibr" rid="bib49">Replogle et al., 2022</xref>). We used the genome-wide dataset version for the latter. We downloaded the datasets from the scPerturb database on Zenodo (<xref ref-type="bibr" rid="bib26">Green, 2022</xref>) with the same quality controls as the original paper. Replogle et al. computed adjusted library sizes by equalizing the mean library size of control cells within each batch. Cells with greater than a 2000 or 3000 library size, and less than 25% or 11% mitochondrial RNA were kept, respectively. The parameters were chosen by plotting the adjusted library sizes against the mitochondrial RNA counts and then manually setting thresholds that removed low-quality cells likely consisting of ambient mRNA transcripts arising from premature cell lysis or cell death.</p><p>We next downloaded bulk RNA-seq datasets derived from patients with age-related macular degeneration (AMD; GSE115828) and multiple sclerosis (MS; GSE137143) (<xref ref-type="bibr" rid="bib47">Ratnapriya et al., 2019</xref>; <xref ref-type="bibr" rid="bib31">Kim et al., 2021</xref>). We excluded 10 individuals from the AMD dataset including one with an RNA integrity number of 21.92, five missing an integrity number (all others had an integrity number of less than 10), and four without a Minnesota Grading System score. We kept all samples from the MS dataset derived from CD4+ T cells but filtered out genes with a mean of less than 5 counts as done in the original paper.</p><p>We finally kept genes that were present in both the AMD bulk dataset and the RPE-1 Perturb-seq dataset, yielding a final count of 513 bulk RNA-seq samples and 247,914 Perturb-seq samples across 2077 genes. We also kept genes that were present in both the MS bulk dataset and the K562 Perturb-seq dataset, yielding a final count of 137 bulk RNA-seq samples and 1,989,578 Perturb-seq samples across 6882 genes. We included age and sex as a biological variable as covariates for every patient in both datasets in subsequent analyses.</p></sec><sec id="s4-10-2"><title>Evaluation rationale</title><p>We do not have access to the ground truth values of <inline-formula><mml:math id="inf384"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> in real data. We instead evaluate the RCSP estimates of <inline-formula><mml:math id="inf385"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> using alternative sources of ground truth knowledge. We first assess the accuracy of RCS using the control variable age as follows:</p><list list-type="order"><list-item><p>Determine if the RCS values of age identify age as a root cause with large causal effect in diseases that progress over time.Second, few root causal genes should drive pathogenesis because the effects of a few error terms distribute over many downstream genes. We verify the sparsity of root causal genes as follows:</p></list-item><list-item><p>Determine if the distribution of D-RCS concentrates around zero more than the distribution of the Deviation of Statistical Dependence (D-SD) defined as <inline-formula><mml:math id="inf386"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msqrt><mml:mfrac><mml:mn>1</mml:mn><mml:mi>n</mml:mi></mml:mfrac><mml:munderover><mml:mo>∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msubsup><mml:mi>ω</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:msqrt></mml:mrow></mml:mstyle></mml:math></inline-formula> for each gene <inline-formula><mml:math id="inf387"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> where <inline-formula><mml:math id="inf388"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf389"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>ω</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> its value for patient <inline-formula><mml:math id="inf390"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>j</mml:mi></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>. Determine if genes with the top D-RCS scores correspond to genes known to cause the disease.Despite the sparsity of root causal genes, we still expect the root causal genes to correspond to at least some known causes of disease:</p></list-item><list-item><p>Determine if genes with the top D-RCS scores correspond to genes known to cause the disease.Next, the root causal genes initiate the vast majority of pathogenesis, and we often have knowledge of pathogenic pathways even though we may not know the exact gene expression cascade leading to disease. Intervening on root causal genes should also modulate patient symptoms. We thus further evaluate the accuracy of RCSP using pathway and drug enrichment analyses as follows:</p></list-item><list-item><p>Determine if the D-RCS scores identify known pathogenic pathways of disease in pathway enrichment analysis.</p></list-item><list-item><p>Determine if the D-RCS scores identify drugs that treat the disease.Finally, complex diseases frequently involve multiple pathogenic pathways that differ between patients. Patients with the same complex disease also respond differently to treatment. We hence evaluate the precision of RCS as follows:</p></list-item><list-item><p>Determine if the patient-specific RCS scores identify subgroups of patients involving different but still known pathogenic pathways.</p></list-item><list-item><p>Determine if the patient-specific RCS scores identify subgroups of patients that respond differently to drug treatment.</p></list-item></list><p>In summary, we evaluate RCSP in real data based on its ability to (1) identify age as a known root cause, (2) suggest an omnigenic root causal model, (3) recover known causal genes, (4) find known pathogenic pathways, (5) find drugs that treat the disease, and (6,7) delineate patient subgroups.</p></sec><sec id="s4-10-3"><title>Enrichment analyses</title><p>Multivariate adaptive regression splines introduce sparsity, but enrichment analysis performs better with a dense input. We can estimate the conditional expectations of <inline-formula><mml:math id="inf391"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> using any general non-linear regression method, so we instead estimated the expectations using kernel ridge regression equipped with a radial basis function kernel (<xref ref-type="bibr" rid="bib52">Shawe-Taylor and Cristianini, 2004</xref>). We then computed the D-RCS across all patients for each variable in <inline-formula><mml:math id="inf392"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. We ran pathway enrichment analysis using the fast gene set enrichment analysis (FGSEA) algorithm (<xref ref-type="bibr" rid="bib51">Sergushichev, 2016</xref>) with one hundred thousand simple permutations using the D-RCS scores and pathway information from the Reactome database (version 1.86.0; <xref ref-type="bibr" rid="bib19">Fabregat et al., 2017</xref>). We likewise performed drug set enrichment analysis with the Drug Signature database (version 1.0; <xref ref-type="bibr" rid="bib72">Yoo et al., 2015</xref>). We repeated the above procedures for the D-RCS of all clusters identified by hierarchical clustering via Ward’s method (<xref ref-type="bibr" rid="bib70">Ward, 1963</xref>).</p></sec></sec></sec></body><back><sec sec-type="additional-information" id="s5"><title>Additional information</title><fn-group content-type="competing-interest"><title>Competing interests</title><fn fn-type="COI-statement" id="conf1"><p>No competing interests declared</p></fn></fn-group><fn-group content-type="author-contribution"><title>Author contributions</title><fn fn-type="con" id="con1"><p>Conceptualization, Resources, Data curation, Software, Formal analysis, Validation, Investigation, Visualization, Methodology, Writing - original draft, Writing - review and editing</p></fn><fn fn-type="con" id="con2"><p>Supervision, Writing - review and editing</p></fn></fn-group></sec><sec sec-type="supplementary-material" id="s6"><title>Additional files</title><supplementary-material id="mdar"><label>MDAR checklist</label><media xlink:href="elife-100949-mdarchecklist1-v1.docx" mimetype="application" mime-subtype="docx"/></supplementary-material></sec><sec sec-type="data-availability" id="s7"><title>Data availability</title><p>All datasets analyzed in this study have been previously published and are publicly accessible as follows: Bulk RNA-seq for AMD: GSE1158282. Bulk RNA-seq for MS: GSE1371433. Perturb-seq for the RPE-1 and K562 cell lines: DOI 10044268. R code needed to replicate all experimental results is available on <ext-link ext-link-type="uri" xlink:href="https://github.com/ericstrobl/RCSP">GitHub</ext-link> (copy archived at <xref ref-type="bibr" rid="bib66">Strobl, 2024b</xref>).</p><p>The following previously published datasets were used:</p><p><element-citation publication-type="data" specific-use="references" id="dataset1"><person-group person-group-type="author"><name><surname>Ratnapriya</surname><given-names>R</given-names></name><name><surname>Starostik</surname><given-names>M</given-names></name><name><surname>Kayode</surname><given-names>S</given-names></name><name><surname>Kwicklis</surname><given-names>M</given-names></name><name><surname>Kapphahn</surname><given-names>R</given-names></name><name><surname>Fritsche</surname><given-names>L</given-names></name><name><surname>Walton</surname><given-names>A</given-names></name><name><surname>Arvanitis</surname><given-names>M</given-names></name><name><surname>Geiser</surname><given-names>L</given-names></name><name><surname>Pietraszkiewicz</surname><given-names>A</given-names></name><name><surname>Montezuma</surname><given-names>S</given-names></name><name><surname>Chew</surname><given-names>E</given-names></name><name><surname>Battle</surname><given-names>A</given-names></name><name><surname>Abecasis</surname><given-names>G</given-names></name><name><surname>Ferrington</surname><given-names>D</given-names></name><name><surname>Chatterjee</surname><given-names>N</given-names></name><name><surname>Swaroop</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2019">2019</year><data-title>Integrated analysis of genetic variants regulating retinal transcriptome (GREx) identifies genes underlying age-related macular degeneration</data-title><source>NCBI Gene Expression Omnibus</source><pub-id pub-id-type="accession" xlink:href="https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE115828">GSE115828</pub-id></element-citation></p><p><element-citation publication-type="data" specific-use="references" id="dataset2"><person-group person-group-type="author"><name><surname>Kim</surname><given-names>K</given-names></name><name><surname>Baranzini</surname><given-names>SE</given-names></name></person-group><year iso-8601-date="2020">2020</year><data-title>Cell-Type-Specific Transcriptome of CD4+, CD8+ T cells and CD14+ monocytes in multiple sclerosis</data-title><source>NCBI Gene Expression Omnibus</source><pub-id pub-id-type="accession" xlink:href="https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE137143">GSE137143</pub-id></element-citation></p><p><element-citation publication-type="data" specific-use="references" id="dataset3"><person-group person-group-type="author"><name><surname>Replogle</surname><given-names>JM</given-names></name><name><surname>Saunders</surname><given-names>RA</given-names></name><name><surname>Pogson</surname><given-names>AN</given-names></name><name><surname>Hussmann</surname><given-names>JA</given-names></name><name><surname>Lenail</surname><given-names>A</given-names></name><name><surname>Guna</surname><given-names>A</given-names></name><name><surname>Mascibroda</surname><given-names>L</given-names></name><name><surname>Wagner</surname><given-names>EJ</given-names></name><name><surname>Adelman</surname><given-names>K</given-names></name><name><surname>Lithwick-Yanai</surname><given-names>G</given-names></name><name><surname>Iremadze</surname><given-names>N</given-names></name><name><surname>Oberstrass</surname><given-names>F</given-names></name><name><surname>Lipson</surname><given-names>D</given-names></name><name><surname>Bonnar</surname><given-names>JL</given-names></name><name><surname>Jost</surname><given-names>M</given-names></name><name><surname>Norman</surname><given-names>TM</given-names></name><name><surname>Weissman</surname><given-names>JS</given-names></name></person-group><year iso-8601-date="2022">2022</year><data-title>Mapping information-rich genotype-phenotype landscapes with genome-scale Perturb-seq</data-title><source>Zenodo</source><pub-id pub-id-type="doi">10.5281/zenodo.10044268</pub-id></element-citation></p></sec><ack id="ack"><title>Acknowledgements</title><p>Research reported in this report was supported by the National Human Genome Research Institute of the National Institutes of Health under award numbers R01HG011138 and R35HG010718.</p></ack><ref-list><title>References</title><ref id="bib1"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Adamson</surname><given-names>B</given-names></name><name><surname>Norman</surname><given-names>TM</given-names></name><name><surname>Jost</surname><given-names>M</given-names></name><name><surname>Cho</surname><given-names>MY</given-names></name><name><surname>Nuñez</surname><given-names>JK</given-names></name><name><surname>Chen</surname><given-names>Y</given-names></name><name><surname>Villalta</surname><given-names>JE</given-names></name><name><surname>Gilbert</surname><given-names>LA</given-names></name><name><surname>Horlbeck</surname><given-names>MA</given-names></name><name><surname>Hein</surname><given-names>MY</given-names></name><name><surname>Pak</surname><given-names>RA</given-names></name><name><surname>Gray</surname><given-names>AN</given-names></name><name><surname>Gross</surname><given-names>CA</given-names></name><name><surname>Dixit</surname><given-names>A</given-names></name><name><surname>Parnas</surname><given-names>O</given-names></name><name><surname>Regev</surname><given-names>A</given-names></name><name><surname>Weissman</surname><given-names>JS</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>A multiplexed single-cell CRISPR screening platform enables systematic dissection of the unfolded protein response</article-title><source>Cell</source><volume>167</volume><fpage>1867</fpage><lpage>1882</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2016.11.048</pub-id><pub-id pub-id-type="pmid">27984733</pub-id></element-citation></ref><ref id="bib2"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Andhavarapu</surname><given-names>S</given-names></name><name><surname>Mubariz</surname><given-names>F</given-names></name><name><surname>Arvas</surname><given-names>M</given-names></name><name><surname>Bever</surname><given-names>C</given-names><suffix>Jr</suffix></name><name><surname>Makar</surname><given-names>TK</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Interplay between ER stress and autophagy: A possible mechanism in multiple sclerosis pathology</article-title><source>Experimental and Molecular Pathology</source><volume>108</volume><fpage>183</fpage><lpage>190</lpage><pub-id pub-id-type="doi">10.1016/j.yexmp.2019.04.016</pub-id><pub-id pub-id-type="pmid">31047874</pub-id></element-citation></ref><ref id="bib3"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Barouch</surname><given-names>FC</given-names></name><name><surname>Miller</surname><given-names>JW</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>The role of inflammation and infection in age-related macular degeneration</article-title><source>International Ophthalmology Clinics</source><volume>47</volume><fpage>185</fpage><lpage>197</lpage><pub-id pub-id-type="doi">10.1097/IIO.0b013e3180377936</pub-id></element-citation></ref><ref id="bib4"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Basile</surname><given-names>MS</given-names></name><name><surname>Bramanti</surname><given-names>P</given-names></name><name><surname>Mazzon</surname><given-names>E</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>The role of cytotoxic T-lymphocyte antigen 4 in the pathogenesis of multiple sclerosis</article-title><source>Genes</source><volume>13</volume><elocation-id>1319</elocation-id><pub-id pub-id-type="doi">10.3390/genes13081319</pub-id><pub-id pub-id-type="pmid">35893056</pub-id></element-citation></ref><ref id="bib5"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Beaumatin</surname><given-names>F</given-names></name><name><surname>O’Prey</surname><given-names>J</given-names></name><name><surname>Barthet</surname><given-names>VJA</given-names></name><name><surname>Zunino</surname><given-names>B</given-names></name><name><surname>Parvy</surname><given-names>J-P</given-names></name><name><surname>Bachmann</surname><given-names>AM</given-names></name><name><surname>O’Prey</surname><given-names>M</given-names></name><name><surname>Kania</surname><given-names>E</given-names></name><name><surname>Gonzalez</surname><given-names>PS</given-names></name><name><surname>Macintosh</surname><given-names>R</given-names></name><name><surname>Lao</surname><given-names>LY</given-names></name><name><surname>Nixon</surname><given-names>C</given-names></name><name><surname>Lopez</surname><given-names>J</given-names></name><name><surname>Long</surname><given-names>JS</given-names></name><name><surname>Tait</surname><given-names>SWG</given-names></name><name><surname>Ryan</surname><given-names>KM</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>mTORC1 activation requires DRAM-1 by facilitating lysosomal amino acid efflux</article-title><source>Molecular Cell</source><volume>76</volume><fpage>163</fpage><lpage>176</lpage><pub-id pub-id-type="doi">10.1016/j.molcel.2019.07.021</pub-id></element-citation></ref><ref id="bib6"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Bongers</surname><given-names>S</given-names></name><name><surname>Forré</surname><given-names>P</given-names></name><name><surname>Peters</surname><given-names>J</given-names></name><name><surname>Mooij</surname><given-names>JM</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Foundations of structural causal models with cycles and latent variables</article-title><source>The Annals of Statistics</source><volume>49</volume><fpage>2885</fpage><lpage>2915</lpage><pub-id pub-id-type="doi">10.1214/21-AOS2064</pub-id></element-citation></ref><ref id="bib7"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Boyle</surname><given-names>EA</given-names></name><name><surname>Li</surname><given-names>YI</given-names></name><name><surname>Pritchard</surname><given-names>JK</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>An expanded view of complex traits: From polygenic to omnigenic</article-title><source>Cell</source><volume>169</volume><fpage>1177</fpage><lpage>1186</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2017.05.038</pub-id><pub-id pub-id-type="pmid">28622505</pub-id></element-citation></ref><ref id="bib8"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Burster</surname><given-names>T</given-names></name><name><surname>Beck</surname><given-names>A</given-names></name><name><surname>Poeschel</surname><given-names>S</given-names></name><name><surname>Øren</surname><given-names>A</given-names></name><name><surname>Baechle</surname><given-names>D</given-names></name><name><surname>Reich</surname><given-names>M</given-names></name><name><surname>Roetzschke</surname><given-names>O</given-names></name><name><surname>Falk</surname><given-names>K</given-names></name><name><surname>Boehm</surname><given-names>BO</given-names></name><name><surname>Youssef</surname><given-names>S</given-names></name><name><surname>Kalbacher</surname><given-names>H</given-names></name><name><surname>Overkleeft</surname><given-names>H</given-names></name><name><surname>Tolosa</surname><given-names>E</given-names></name><name><surname>Driessen</surname><given-names>C</given-names></name></person-group><year iso-8601-date="2007">2007</year><article-title>Interferon-gamma regulates cathepsin G activity in microglia-derived lysosomes and controls the proteolytic processing of myelin basic protein in vitro</article-title><source>Immunology</source><volume>121</volume><fpage>82</fpage><lpage>93</lpage><pub-id pub-id-type="doi">10.1111/j.1365-2567.2007.02540.x</pub-id><pub-id pub-id-type="pmid">17302735</pub-id></element-citation></ref><ref id="bib9"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Buschur</surname><given-names>KL</given-names></name><name><surname>Chikina</surname><given-names>M</given-names></name><name><surname>Benos</surname><given-names>PV</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Causal network perturbations for instance-specific analysis of single cell and disease samples</article-title><source>Bioinformatics</source><volume>36</volume><fpage>2515</fpage><lpage>2521</lpage><pub-id pub-id-type="doi">10.1093/bioinformatics/btz949</pub-id><pub-id pub-id-type="pmid">31873725</pub-id></element-citation></ref><ref id="bib10"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Butler</surname><given-names>MO</given-names></name><name><surname>Hirano</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Human cell-based artificial antigen-presenting cells for cancer immunotherapy</article-title><source>Immunological Reviews</source><volume>257</volume><fpage>191</fpage><lpage>209</lpage><pub-id pub-id-type="doi">10.1111/imr.12129</pub-id><pub-id pub-id-type="pmid">24329798</pub-id></element-citation></ref><ref id="bib11"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Cano-Gamez</surname><given-names>E</given-names></name><name><surname>Trynka</surname><given-names>G</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>From GWAS to function: using functional genomics to identify the mechanisms underlying complex diseases</article-title><source>Frontiers in Genetics</source><volume>11</volume><elocation-id>424</elocation-id><pub-id pub-id-type="doi">10.3389/fgene.2020.00424</pub-id><pub-id pub-id-type="pmid">32477401</pub-id></element-citation></ref><ref id="bib12"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Choudhary</surname><given-names>S</given-names></name><name><surname>Satija</surname><given-names>R</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Comparison and evaluation of statistical error models for scRNA-seq</article-title><source>Genome Biology</source><volume>23</volume><elocation-id>27</elocation-id><pub-id pub-id-type="doi">10.1186/s13059-021-02584-9</pub-id><pub-id pub-id-type="pmid">35042561</pub-id></element-citation></ref><ref id="bib13"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Colombo</surname><given-names>D</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Order-independent constraint-based causal structure learning</article-title><source>Journal of Machine Learning Research</source><volume>15</volume><fpage>3741</fpage><lpage>3782</lpage></element-citation></ref><ref id="bib14"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Costa-Silva</surname><given-names>J</given-names></name><name><surname>Domingues</surname><given-names>D</given-names></name><name><surname>Lopes</surname><given-names>FM</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>RNA-Seq differential expression analysis: An extended review and a software tool</article-title><source>PLOS ONE</source><volume>12</volume><elocation-id>e0190152</elocation-id><pub-id pub-id-type="doi">10.1371/journal.pone.0190152</pub-id><pub-id pub-id-type="pmid">29267363</pub-id></element-citation></ref><ref id="bib15"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dalvin</surname><given-names>LA</given-names></name><name><surname>Olsen</surname><given-names>TW</given-names></name><name><surname>Bakri</surname><given-names>SJ</given-names></name><name><surname>McCullough</surname><given-names>K</given-names></name><name><surname>Tefferi</surname><given-names>A</given-names></name><name><surname>Al-Kali</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Busulfan treatment for myeloproliferative disease may reduce injection burden in vascular endothelial growth factor-driven retinopathy</article-title><source>American Journal of Ophthalmology Case Reports</source><volume>26</volume><elocation-id>101554</elocation-id><pub-id pub-id-type="doi">10.1016/j.ajoc.2022.101554</pub-id><pub-id pub-id-type="pmid">35509281</pub-id></element-citation></ref><ref id="bib16"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Datlinger</surname><given-names>P</given-names></name><name><surname>Rendeiro</surname><given-names>AF</given-names></name><name><surname>Schmidl</surname><given-names>C</given-names></name><name><surname>Krausgruber</surname><given-names>T</given-names></name><name><surname>Traxler</surname><given-names>P</given-names></name><name><surname>Klughammer</surname><given-names>J</given-names></name><name><surname>Schuster</surname><given-names>LC</given-names></name><name><surname>Kuchler</surname><given-names>A</given-names></name><name><surname>Alpar</surname><given-names>D</given-names></name><name><surname>Bock</surname><given-names>C</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Pooled CRISPR screening with single-cell transcriptome readout</article-title><source>Nature Methods</source><volume>14</volume><fpage>297</fpage><lpage>301</lpage><pub-id pub-id-type="doi">10.1038/nmeth.4177</pub-id><pub-id pub-id-type="pmid">28099430</pub-id></element-citation></ref><ref id="bib17"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Dixit</surname><given-names>A</given-names></name><name><surname>Parnas</surname><given-names>O</given-names></name><name><surname>Li</surname><given-names>B</given-names></name><name><surname>Chen</surname><given-names>J</given-names></name><name><surname>Fulco</surname><given-names>CP</given-names></name><name><surname>Jerby-Arnon</surname><given-names>L</given-names></name><name><surname>Marjanovic</surname><given-names>ND</given-names></name><name><surname>Dionne</surname><given-names>D</given-names></name><name><surname>Burks</surname><given-names>T</given-names></name><name><surname>Raychowdhury</surname><given-names>R</given-names></name><name><surname>Adamson</surname><given-names>B</given-names></name><name><surname>Norman</surname><given-names>TM</given-names></name><name><surname>Lander</surname><given-names>ES</given-names></name><name><surname>Weissman</surname><given-names>JS</given-names></name><name><surname>Friedman</surname><given-names>N</given-names></name><name><surname>Regev</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>Perturb-Seq: Dissecting molecular circuits with scalable single-cell RNA profiling of pooled genetic screens</article-title><source>Cell</source><volume>167</volume><fpage>1853</fpage><lpage>1866</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2016.11.038</pub-id><pub-id pub-id-type="pmid">27984732</pub-id></element-citation></ref><ref id="bib18"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Ellington</surname><given-names>CN</given-names></name><name><surname>Lengerich</surname><given-names>BJ</given-names></name><name><surname>Watkins</surname><given-names>TBK</given-names></name><name><surname>Yang</surname><given-names>J</given-names></name><name><surname>Xiao</surname><given-names>H</given-names></name><name><surname>Kellis</surname><given-names>M</given-names></name><name><surname>Xing</surname><given-names>EP</given-names></name></person-group><year iso-8601-date="2023">2023</year><article-title>Contextualized networks reveal heterogeneous transcriptomic regulation in tumors at sample-specific resolution</article-title><conf-name>Neural Information and Processing Systems Workshop on Generative AI and Biology</conf-name></element-citation></ref><ref id="bib19"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Fabregat</surname><given-names>A</given-names></name><name><surname>Sidiropoulos</surname><given-names>K</given-names></name><name><surname>Viteri</surname><given-names>G</given-names></name><name><surname>Forner</surname><given-names>O</given-names></name><name><surname>Marin-Garcia</surname><given-names>P</given-names></name><name><surname>Arnau</surname><given-names>V</given-names></name><name><surname>D’Eustachio</surname><given-names>P</given-names></name><name><surname>Stein</surname><given-names>L</given-names></name><name><surname>Hermjakob</surname><given-names>H</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Reactome pathway analysis: a high-performance in-memory approach</article-title><source>BMC Bioinformatics</source><volume>18</volume><elocation-id>142</elocation-id><pub-id pub-id-type="doi">10.1186/s12859-017-1559-2</pub-id><pub-id pub-id-type="pmid">28249561</pub-id></element-citation></ref><ref id="bib20"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Fletcher</surname><given-names>JM</given-names></name><name><surname>Lalor</surname><given-names>SJ</given-names></name><name><surname>Sweeney</surname><given-names>CM</given-names></name><name><surname>Tubridy</surname><given-names>N</given-names></name><name><surname>Mills</surname><given-names>KHG</given-names></name></person-group><year iso-8601-date="2010">2010</year><article-title>T cells in multiple sclerosis and experimental autoimmune encephalomyelitis</article-title><source>Clinical and Experimental Immunology</source><volume>162</volume><fpage>1</fpage><lpage>11</lpage><pub-id pub-id-type="doi">10.1111/j.1365-2249.2010.04143.x</pub-id><pub-id pub-id-type="pmid">20682002</pub-id></element-citation></ref><ref id="bib21"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Friedman</surname><given-names>JH</given-names></name></person-group><year iso-8601-date="1991">1991</year><article-title>Multivariate Adaptive Regression Splines</article-title><source>The Annals of Statistics</source><volume>19</volume><fpage>1</fpage><lpage>67</lpage><pub-id pub-id-type="doi">10.1214/aos/1176347963</pub-id></element-citation></ref><ref id="bib22"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Friedman</surname><given-names>N</given-names></name><name><surname>Linial</surname><given-names>M</given-names></name><name><surname>Nachman</surname><given-names>I</given-names></name><name><surname>Pe’er</surname><given-names>D</given-names></name></person-group><year iso-8601-date="2000">2000</year><article-title>Using Bayesian networks to analyze expression data</article-title><conf-name>Proceedings of the Fourth Annual International Conference on Computational Molecular Biology</conf-name><fpage>127</fpage><lpage>135</lpage><pub-id pub-id-type="doi">10.1145/332306.332355</pub-id></element-citation></ref><ref id="bib23"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gnanaprakasam</surname><given-names>JNR</given-names></name><name><surname>Wang</surname><given-names>R</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>MYC in regulating immunity: metabolism and beyond</article-title><source>Genes</source><volume>8</volume><elocation-id>88</elocation-id><pub-id pub-id-type="doi">10.3390/genes8030088</pub-id><pub-id pub-id-type="pmid">28245597</pub-id></element-citation></ref><ref id="bib24"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Go</surname><given-names>YM</given-names></name><name><surname>Zhang</surname><given-names>J</given-names></name><name><surname>Fernandes</surname><given-names>J</given-names></name><name><surname>Litwin</surname><given-names>C</given-names></name><name><surname>Chen</surname><given-names>R</given-names></name><name><surname>Wensel</surname><given-names>TG</given-names></name><name><surname>Jones</surname><given-names>DP</given-names></name><name><surname>Cai</surname><given-names>J</given-names></name><name><surname>Chen</surname><given-names>Y</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>MTOR-initiated metabolic switch and degeneration in the retinal pigment epithelium</article-title><source>FASEB Journal</source><volume>34</volume><fpage>12502</fpage><lpage>12520</lpage><pub-id pub-id-type="doi">10.1096/fj.202000612R</pub-id><pub-id pub-id-type="pmid">32721041</pub-id></element-citation></ref><ref id="bib25"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Golan</surname><given-names>M</given-names></name><name><surname>Krivitsky</surname><given-names>A</given-names></name><name><surname>Mausner-Fainberg</surname><given-names>K</given-names></name><name><surname>Benhamou</surname><given-names>M</given-names></name><name><surname>Vigiser</surname><given-names>I</given-names></name><name><surname>Regev</surname><given-names>K</given-names></name><name><surname>Kolb</surname><given-names>H</given-names></name><name><surname>Karni</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Increased expression of ephrins on immune cells of patients with relapsing remitting multiple sclerosis affects oligodendrocyte differentiation</article-title><source>International Journal of Molecular Sciences</source><volume>22</volume><elocation-id>2182</elocation-id><pub-id pub-id-type="doi">10.3390/ijms22042182</pub-id><pub-id pub-id-type="pmid">33671716</pub-id></element-citation></ref><ref id="bib26"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Green</surname><given-names>TD</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>ScPerturb: information resource for harmonized single-cell perturbation data</article-title><conf-name>NeurIPS 2022 Workshop on Learning Meaningful Representations of Life</conf-name></element-citation></ref><ref id="bib27"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Grün</surname><given-names>D</given-names></name><name><surname>Kester</surname><given-names>L</given-names></name><name><surname>van Oudenaarden</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Validation of noise models for single-cell transcriptomics</article-title><source>Nature Methods</source><volume>11</volume><fpage>637</fpage><lpage>640</lpage><pub-id pub-id-type="doi">10.1038/nmeth.2930</pub-id></element-citation></ref><ref id="bib28"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Hadziahmetovic</surname><given-names>M</given-names></name><name><surname>Malek</surname><given-names>G</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Age-related macular degeneration revisited: From pathology and cellular stress to potential therapies</article-title><source>Frontiers in Cell and Developmental Biology</source><volume>8</volume><elocation-id>612812</elocation-id><pub-id pub-id-type="doi">10.3389/fcell.2020.612812</pub-id><pub-id pub-id-type="pmid">33569380</pub-id></element-citation></ref><ref id="bib29"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Haves-Zburof</surname><given-names>D</given-names></name><name><surname>Paperna</surname><given-names>T</given-names></name><name><surname>Gour-Lavie</surname><given-names>A</given-names></name><name><surname>Mandel</surname><given-names>I</given-names></name><name><surname>Glass-Marmor</surname><given-names>L</given-names></name><name><surname>Miller</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Cathepsins and their endogenous inhibitors cystatins: expression and modulation in multiple sclerosis</article-title><source>Journal of Cellular and Molecular Medicine</source><volume>15</volume><fpage>2421</fpage><lpage>2429</lpage><pub-id pub-id-type="doi">10.1111/j.1582-4934.2010.01229.x</pub-id><pub-id pub-id-type="pmid">21143385</pub-id></element-citation></ref><ref id="bib30"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kamalden</surname><given-names>TA</given-names></name><name><surname>Ji</surname><given-names>D</given-names></name><name><surname>Fawcett</surname><given-names>RJ</given-names></name><name><surname>Osborne</surname><given-names>NN</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Genistein blunts the negative effect of ischaemia to the retina caused by an elevation of intraocular pressure</article-title><source>Ophthalmic Research</source><volume>45</volume><fpage>65</fpage><lpage>72</lpage><pub-id pub-id-type="doi">10.1159/000313985</pub-id><pub-id pub-id-type="pmid">20714194</pub-id></element-citation></ref><ref id="bib31"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname><given-names>K</given-names></name><name><surname>Pröbstel</surname><given-names>A-K</given-names></name><name><surname>Baumann</surname><given-names>R</given-names></name><name><surname>Dyckow</surname><given-names>J</given-names></name><name><surname>Landefeld</surname><given-names>J</given-names></name><name><surname>Kogl</surname><given-names>E</given-names></name><name><surname>Madireddy</surname><given-names>L</given-names></name><name><surname>Loudermilk</surname><given-names>R</given-names></name><name><surname>Eggers</surname><given-names>EL</given-names></name><name><surname>Singh</surname><given-names>S</given-names></name><name><surname>Caillier</surname><given-names>SJ</given-names></name><name><surname>Hauser</surname><given-names>SL</given-names></name><name><surname>Cree</surname><given-names>BAC</given-names></name><collab>UCSF MS-EPIC Team</collab><name><surname>Schirmer</surname><given-names>L</given-names></name><name><surname>Wilson</surname><given-names>MR</given-names></name><name><surname>Baranzini</surname><given-names>SE</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Cell type-specific transcriptomics identifies neddylation as a novel therapeutic target in multiple sclerosis</article-title><source>Brain</source><volume>144</volume><fpage>450</fpage><lpage>461</lpage><pub-id pub-id-type="doi">10.1093/brain/awaa421</pub-id><pub-id pub-id-type="pmid">33374005</pub-id></element-citation></ref><ref id="bib32"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kinoshita</surname><given-names>S</given-names></name><name><surname>Noda</surname><given-names>K</given-names></name><name><surname>Tagawa</surname><given-names>Y</given-names></name><name><surname>Inafuku</surname><given-names>S</given-names></name><name><surname>Dong</surname><given-names>Y</given-names></name><name><surname>Fukuhara</surname><given-names>J</given-names></name><name><surname>Dong</surname><given-names>Z</given-names></name><name><surname>Ando</surname><given-names>R</given-names></name><name><surname>Kanda</surname><given-names>A</given-names></name><name><surname>Ishida</surname><given-names>S</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Genistein attenuates choroidal neovascularization</article-title><source>The Journal of Nutritional Biochemistry</source><volume>25</volume><fpage>1177</fpage><lpage>1182</lpage><pub-id pub-id-type="doi">10.1016/j.jnutbio.2014.06.004</pub-id></element-citation></ref><ref id="bib33"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Kokame</surname><given-names>K</given-names></name><name><surname>Agarwala</surname><given-names>KL</given-names></name><name><surname>Kato</surname><given-names>H</given-names></name><name><surname>Miyata</surname><given-names>T</given-names></name></person-group><year iso-8601-date="2000">2000</year><article-title>Herp, a new ubiquitin-like membrane protein induced by endoplasmic reticulum stress</article-title><source>The Journal of Biological Chemistry</source><volume>275</volume><fpage>32846</fpage><lpage>32853</lpage><pub-id pub-id-type="doi">10.1074/jbc.M002063200</pub-id><pub-id pub-id-type="pmid">10922362</pub-id></element-citation></ref><ref id="bib34"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Lengfeld</surname><given-names>JE</given-names></name><name><surname>Lutz</surname><given-names>SE</given-names></name><name><surname>Smith</surname><given-names>JR</given-names></name><name><surname>Diaconu</surname><given-names>C</given-names></name><name><surname>Scott</surname><given-names>C</given-names></name><name><surname>Kofman</surname><given-names>SB</given-names></name><name><surname>Choi</surname><given-names>C</given-names></name><name><surname>Walsh</surname><given-names>CM</given-names></name><name><surname>Raine</surname><given-names>CS</given-names></name><name><surname>Agalliu</surname><given-names>I</given-names></name><name><surname>Agalliu</surname><given-names>D</given-names></name></person-group><year iso-8601-date="2017">2017</year><article-title>Endothelial Wnt/β-catenin signaling reduces immune cell infiltration in multiple sclerosis</article-title><source>PNAS</source><volume>114</volume><fpage>E1168</fpage><lpage>E1177</lpage><pub-id pub-id-type="doi">10.1073/pnas.1609905114</pub-id><pub-id pub-id-type="pmid">28137846</pub-id></element-citation></ref><ref id="bib35"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Luo</surname><given-names>H</given-names></name><name><surname>Broux</surname><given-names>B</given-names></name><name><surname>Wang</surname><given-names>X</given-names></name><name><surname>Hu</surname><given-names>Y</given-names></name><name><surname>Ghannam</surname><given-names>S</given-names></name><name><surname>Jin</surname><given-names>W</given-names></name><name><surname>Larochelle</surname><given-names>C</given-names></name><name><surname>Prat</surname><given-names>A</given-names></name><name><surname>Wu</surname><given-names>J</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>EphrinB1 and EphrinB2 regulate T cell chemotaxis and migration in experimental autoimmune encephalomyelitis and multiple sclerosis</article-title><source>Neurobiology of Disease</source><volume>91</volume><fpage>292</fpage><lpage>306</lpage><pub-id pub-id-type="doi">10.1016/j.nbd.2016.03.013</pub-id></element-citation></ref><ref id="bib36"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Martínez-Jiménez</surname><given-names>F</given-names></name><name><surname>Muiños</surname><given-names>F</given-names></name><name><surname>Sentís</surname><given-names>I</given-names></name><name><surname>Deu-Pons</surname><given-names>J</given-names></name><name><surname>Reyes-Salazar</surname><given-names>I</given-names></name><name><surname>Arnedo-Pac</surname><given-names>C</given-names></name><name><surname>Mularoni</surname><given-names>L</given-names></name><name><surname>Pich</surname><given-names>O</given-names></name><name><surname>Bonet</surname><given-names>J</given-names></name><name><surname>Kranas</surname><given-names>H</given-names></name><name><surname>Gonzalez-Perez</surname><given-names>A</given-names></name><name><surname>Lopez-Bigas</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>A compendium of mutational cancer driver genes</article-title><source>Nature Reviews Cancer</source><volume>20</volume><fpage>555</fpage><lpage>572</lpage><pub-id pub-id-type="doi">10.1038/s41568-020-0290-x</pub-id></element-citation></ref><ref id="bib37"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Nachef</surname><given-names>M</given-names></name><name><surname>Ali</surname><given-names>AK</given-names></name><name><surname>Almutairi</surname><given-names>SM</given-names></name><name><surname>Lee</surname><given-names>SH</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Targeting SLC1A5 and SLC3A2/SLC7A5 as a potential strategy to strengthen anti-tumor immunity in the tumor microenvironment</article-title><source>Frontiers in Immunology</source><volume>12</volume><elocation-id>624324</elocation-id><pub-id pub-id-type="doi">10.3389/fimmu.2021.624324</pub-id><pub-id pub-id-type="pmid">33953707</pub-id></element-citation></ref><ref id="bib38"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Nagral</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Gaucher disease</article-title><source>Journal of Clinical and Experimental Hepatology</source><volume>4</volume><fpage>37</fpage><lpage>50</lpage><pub-id pub-id-type="doi">10.1016/j.jceh.2014.02.005</pub-id><pub-id pub-id-type="pmid">25755533</pub-id></element-citation></ref><ref id="bib39"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Narendran</surname><given-names>S</given-names></name><name><surname>Pereira</surname><given-names>F</given-names></name><name><surname>Yerramothu</surname><given-names>P</given-names></name><name><surname>Apicella</surname><given-names>I</given-names></name><name><surname>Wang</surname><given-names>SB</given-names></name><name><surname>Varshney</surname><given-names>A</given-names></name><name><surname>Baker</surname><given-names>KL</given-names></name><name><surname>Marion</surname><given-names>KM</given-names></name><name><surname>Ambati</surname><given-names>M</given-names></name><name><surname>Ambati</surname><given-names>VL</given-names></name><name><surname>Ambati</surname><given-names>K</given-names></name><name><surname>Sadda</surname><given-names>SR</given-names></name><name><surname>Gelfand</surname><given-names>BD</given-names></name><name><surname>Ambati</surname><given-names>J</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>A clinical metabolite of azidothymidine inhibits experimental choroidal neovascularization and retinal pigmented epithelium degeneration</article-title><source>Investigative Ophthalmology &amp; Visual Science</source><volume>61</volume><elocation-id>4</elocation-id><pub-id pub-id-type="doi">10.1167/iovs.61.10.4</pub-id><pub-id pub-id-type="pmid">32749462</pub-id></element-citation></ref><ref id="bib40"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Ng</surname><given-names>I</given-names></name></person-group><year iso-8601-date="2024">2024</year><article-title>Structure learning with continuous optimization: A sober look and beyond</article-title><conf-name>Causal Learning and Reasoning PMLR</conf-name><fpage>71</fpage><lpage>105</lpage></element-citation></ref><ref id="bib41"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Nicklin</surname><given-names>P</given-names></name><name><surname>Bergman</surname><given-names>P</given-names></name><name><surname>Zhang</surname><given-names>B</given-names></name><name><surname>Triantafellow</surname><given-names>E</given-names></name><name><surname>Wang</surname><given-names>H</given-names></name><name><surname>Nyfeler</surname><given-names>B</given-names></name><name><surname>Yang</surname><given-names>H</given-names></name><name><surname>Hild</surname><given-names>M</given-names></name><name><surname>Kung</surname><given-names>C</given-names></name><name><surname>Wilson</surname><given-names>C</given-names></name><name><surname>Myer</surname><given-names>VE</given-names></name><name><surname>MacKeigan</surname><given-names>JP</given-names></name><name><surname>Porter</surname><given-names>JA</given-names></name><name><surname>Wang</surname><given-names>YK</given-names></name><name><surname>Cantley</surname><given-names>LC</given-names></name><name><surname>Finan</surname><given-names>PM</given-names></name><name><surname>Murphy</surname><given-names>LO</given-names></name></person-group><year iso-8601-date="2009">2009</year><article-title>Bidirectional transport of amino acids regulates mTOR and autophagy</article-title><source>Cell</source><volume>136</volume><fpage>521</fpage><lpage>534</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2008.11.044</pub-id><pub-id pub-id-type="pmid">19203585</pub-id></element-citation></ref><ref id="bib42"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Olsen</surname><given-names>TW</given-names></name><name><surname>Feng</surname><given-names>X</given-names></name></person-group><year iso-8601-date="2004">2004</year><article-title>The minnesota grading system of eye bank eyes for age-related macular degeneration</article-title><source>Investigative Opthalmology &amp; Visual Science</source><volume>45</volume><elocation-id>4484</elocation-id><pub-id pub-id-type="doi">10.1167/iovs.04-0342</pub-id></element-citation></ref><ref id="bib43"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Orian</surname><given-names>JM</given-names></name><name><surname>D’Souza</surname><given-names>CS</given-names></name><name><surname>Kocovski</surname><given-names>P</given-names></name><name><surname>Krippner</surname><given-names>G</given-names></name><name><surname>Hale</surname><given-names>MW</given-names></name><name><surname>Wang</surname><given-names>X</given-names></name><name><surname>Peter</surname><given-names>K</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Platelets in multiple sclerosis: early and central mediators of inflammation and neurodegeneration and attractive targets for molecular imaging and site-directed therapy</article-title><source>Frontiers in Immunology</source><volume>12</volume><elocation-id>620963</elocation-id><pub-id pub-id-type="doi">10.3389/fimmu.2021.620963</pub-id><pub-id pub-id-type="pmid">33679764</pub-id></element-citation></ref><ref id="bib44"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Papoulis</surname><given-names>A</given-names></name></person-group><year iso-8601-date="1984">1984</year><source>Probability, Random Variables and Stochastic Processes</source><publisher-name>McGraw-Hill</publisher-name></element-citation></ref><ref id="bib45"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Pearl</surname><given-names>J</given-names></name></person-group><year iso-8601-date="2009">2009</year><source>Causality</source><publisher-name>Cambridge Press</publisher-name><pub-id pub-id-type="doi">10.1017/CBO9780511803161</pub-id></element-citation></ref><ref id="bib46"><element-citation publication-type="preprint"><person-group person-group-type="author"><name><surname>Peters</surname><given-names>J</given-names></name></person-group><year iso-8601-date="2014">2014</year><article-title>Causal discovery with continuous additive noise models</article-title><source>arXiv</source><ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/1309.6779">https://arxiv.org/abs/1309.6779</ext-link></element-citation></ref><ref id="bib47"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ratnapriya</surname><given-names>R</given-names></name><name><surname>Sosina</surname><given-names>OA</given-names></name><name><surname>Starostik</surname><given-names>MR</given-names></name><name><surname>Kwicklis</surname><given-names>M</given-names></name><name><surname>Kapphahn</surname><given-names>RJ</given-names></name><name><surname>Fritsche</surname><given-names>LG</given-names></name><name><surname>Walton</surname><given-names>A</given-names></name><name><surname>Arvanitis</surname><given-names>M</given-names></name><name><surname>Gieser</surname><given-names>L</given-names></name><name><surname>Pietraszkiewicz</surname><given-names>A</given-names></name><name><surname>Montezuma</surname><given-names>SR</given-names></name><name><surname>Chew</surname><given-names>EY</given-names></name><name><surname>Battle</surname><given-names>A</given-names></name><name><surname>Abecasis</surname><given-names>GR</given-names></name><name><surname>Ferrington</surname><given-names>DA</given-names></name><name><surname>Chatterjee</surname><given-names>N</given-names></name><name><surname>Swaroop</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2019">2019</year><article-title>Retinal transcriptome and eQTL analyses identify genes associated with age-related macular degeneration</article-title><source>Nature Genetics</source><volume>51</volume><fpage>606</fpage><lpage>610</lpage><pub-id pub-id-type="doi">10.1038/s41588-019-0351-9</pub-id><pub-id pub-id-type="pmid">30742112</pub-id></element-citation></ref><ref id="bib48"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Reisach</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Beware of the simulated DAG! causal discovery benchmarks may be easy to game</article-title><conf-name>Advances in Neural Information Processing Systems</conf-name><fpage>27772</fpage><lpage>27784</lpage></element-citation></ref><ref id="bib49"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Replogle</surname><given-names>JM</given-names></name><name><surname>Saunders</surname><given-names>RA</given-names></name><name><surname>Pogson</surname><given-names>AN</given-names></name><name><surname>Hussmann</surname><given-names>JA</given-names></name><name><surname>Lenail</surname><given-names>A</given-names></name><name><surname>Guna</surname><given-names>A</given-names></name><name><surname>Mascibroda</surname><given-names>L</given-names></name><name><surname>Wagner</surname><given-names>EJ</given-names></name><name><surname>Adelman</surname><given-names>K</given-names></name><name><surname>Lithwick-Yanai</surname><given-names>G</given-names></name><name><surname>Iremadze</surname><given-names>N</given-names></name><name><surname>Oberstrass</surname><given-names>F</given-names></name><name><surname>Lipson</surname><given-names>D</given-names></name><name><surname>Bonnar</surname><given-names>JL</given-names></name><name><surname>Jost</surname><given-names>M</given-names></name><name><surname>Norman</surname><given-names>TM</given-names></name><name><surname>Weissman</surname><given-names>JS</given-names></name></person-group><year iso-8601-date="2022">2022</year><article-title>Mapping information-rich genotype-phenotype landscapes with genome-scale Perturb-seq</article-title><source>Cell</source><volume>185</volume><fpage>2559</fpage><lpage>2575</lpage><pub-id pub-id-type="doi">10.1016/j.cell.2022.05.013</pub-id><pub-id pub-id-type="pmid">35688146</pub-id></element-citation></ref><ref id="bib50"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sarkar</surname><given-names>A</given-names></name><name><surname>Stephens</surname><given-names>M</given-names></name></person-group><year iso-8601-date="2021">2021</year><article-title>Separating measurement and expression models clarifies confusion in single-cell RNA sequencing analysis</article-title><source>Nature Genetics</source><volume>53</volume><fpage>770</fpage><lpage>777</lpage><pub-id pub-id-type="doi">10.1038/s41588-021-00873-4</pub-id><pub-id pub-id-type="pmid">34031584</pub-id></element-citation></ref><ref id="bib51"><element-citation publication-type="preprint"><person-group person-group-type="author"><name><surname>Sergushichev</surname><given-names>A</given-names></name></person-group><year iso-8601-date="2016">2016</year><article-title>An algorithm for fast preranked gene set enrichment analysis using cumulative statistic calculation</article-title><source>bioRxiv</source><pub-id pub-id-type="doi">10.1101/060012</pub-id></element-citation></ref><ref id="bib52"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Shawe-Taylor</surname><given-names>J</given-names></name><name><surname>Cristianini</surname><given-names>N</given-names></name></person-group><year iso-8601-date="2004">2004</year><source>Kernel Methods for Pattern Analysis</source><publisher-name>Cambridge University Press</publisher-name><pub-id pub-id-type="doi">10.1017/CBO9780511809682</pub-id></element-citation></ref><ref id="bib53"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Shi</surname><given-names>Y</given-names></name><name><surname>Qu</surname><given-names>J</given-names></name><name><surname>Zhang</surname><given-names>D</given-names></name><name><surname>Zhao</surname><given-names>P</given-names></name><name><surname>Zhang</surname><given-names>Q</given-names></name><name><surname>Tam</surname><given-names>POS</given-names></name><name><surname>Sun</surname><given-names>L</given-names></name><name><surname>Zuo</surname><given-names>X</given-names></name><name><surname>Zhou</surname><given-names>X</given-names></name><name><surname>Xiao</surname><given-names>X</given-names></name><name><surname>Hu</surname><given-names>J</given-names></name><name><surname>Li</surname><given-names>Y</given-names></name><name><surname>Cai</surname><given-names>L</given-names></name><name><surname>Liu</surname><given-names>X</given-names></name><name><surname>Lu</surname><given-names>F</given-names></name><name><surname>Liao</surname><given-names>S</given-names></name><name><surname>Chen</surname><given-names>B</given-names></name><name><surname>He</surname><given-names>F</given-names></name><name><surname>Gong</surname><given-names>B</given-names></name><name><surname>Lin</surname><given-names>H</given-names></name><name><surname>Ma</surname><given-names>S</given-names></name><name><surname>Cheng</surname><given-names>J</given-names></name><name><surname>Zhang</surname><given-names>J</given-names></name><name><surname>Chen</surname><given-names>Y</given-names></name><name><surname>Zhao</surname><given-names>F</given-names></name><name><surname>Yang</surname><given-names>X</given-names></name><name><surname>Chen</surname><given-names>Y</given-names></name><name><surname>Yang</surname><given-names>C</given-names></name><name><surname>Lam</surname><given-names>DSC</given-names></name><name><surname>Li</surname><given-names>X</given-names></name><name><surname>Shi</surname><given-names>F</given-names></name><name><surname>Wu</surname><given-names>Z</given-names></name><name><surname>Lin</surname><given-names>Y</given-names></name><name><surname>Yang</surname><given-names>J</given-names></name><name><surname>Li</surname><given-names>S</given-names></name><name><surname>Ren</surname><given-names>Y</given-names></name><name><surname>Xue</surname><given-names>A</given-names></name><name><surname>Fan</surname><given-names>Y</given-names></name><name><surname>Li</surname><given-names>D</given-names></name><name><surname>Pang</surname><given-names>CP</given-names></name><name><surname>Zhang</surname><given-names>X</given-names></name><name><surname>Yang</surname><given-names>Z</given-names></name></person-group><year iso-8601-date="2011">2011</year><article-title>Genetic variants at 13q12.12 are associated with high myopia in the Han Chinese population</article-title><source>American Journal of Human Genetics</source><volume>88</volume><fpage>805</fpage><lpage>813</lpage><pub-id pub-id-type="doi">10.1016/j.ajhg.2011.04.022</pub-id><pub-id pub-id-type="pmid">21640322</pub-id></element-citation></ref><ref id="bib54"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Sobel</surname><given-names>RA</given-names></name></person-group><year iso-8601-date="2005">2005</year><article-title>Ephrin A receptors and ligands in lesions and normal-appearing white matter in multiple sclerosis</article-title><source>Brain Pathology</source><volume>15</volume><fpage>35</fpage><lpage>45</lpage><pub-id pub-id-type="doi">10.1111/j.1750-3639.2005.tb00098.x</pub-id><pub-id pub-id-type="pmid">15779235</pub-id></element-citation></ref><ref id="bib55"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Spink</surname><given-names>KE</given-names></name><name><surname>Polakis</surname><given-names>P</given-names></name><name><surname>Weis</surname><given-names>WI</given-names></name></person-group><year iso-8601-date="2000">2000</year><article-title>Structural basis of the Axin-adenomatous polyposis coli interaction</article-title><source>The EMBO Journal</source><volume>19</volume><fpage>2270</fpage><lpage>2279</lpage><pub-id pub-id-type="doi">10.1093/emboj/19.10.2270</pub-id><pub-id pub-id-type="pmid">10811618</pub-id></element-citation></ref><ref id="bib56"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Spirtes</surname><given-names>P</given-names></name></person-group><year iso-8601-date="1995">1995</year><article-title>Directed cyclic graphical representations of feedback models</article-title><conf-name>Proceedings of the Eleventh Conference on Uncertainty in Artificial Intelligence</conf-name><fpage>491</fpage><lpage>498</lpage></element-citation></ref><ref id="bib57"><element-citation publication-type="book"><person-group person-group-type="author"><name><surname>Spirtes</surname><given-names>P</given-names></name><name><surname>Glymour</surname><given-names>C</given-names></name><name><surname>Scheines</surname><given-names>R</given-names></name></person-group><year iso-8601-date="2000">2000</year><source>Causation, Prediction, and Search</source><publisher-name>MIT press</publisher-name><pub-id pub-id-type="doi">10.7551/mitpress/1754.001.0001</pub-id></element-citation></ref><ref id="bib58"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Starzyk</surname><given-names>RM</given-names></name><name><surname>Rosenow</surname><given-names>C</given-names></name><name><surname>Frye</surname><given-names>J</given-names></name><name><surname>Leismann</surname><given-names>M</given-names></name><name><surname>Rodzinski</surname><given-names>E</given-names></name><name><surname>Putney</surname><given-names>S</given-names></name><name><surname>Tuomanen</surname><given-names>EI</given-names></name></person-group><year iso-8601-date="2000">2000</year><article-title>Cerebral cell adhesion molecule: A novel leukocyte adhesion determinant on blood-brain barrier capillary endothelium</article-title><source>The Journal of Infectious Diseases</source><volume>181</volume><fpage>181</fpage><lpage>187</lpage><pub-id pub-id-type="doi">10.1086/315163</pub-id><pub-id pub-id-type="pmid">10608765</pub-id></element-citation></ref><ref id="bib59"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name></person-group><year iso-8601-date="2022">2022a</year><article-title>Causal discovery with a mixture of DAGs</article-title><source>Machine Learning</source><volume>1</volume><fpage>1</fpage><lpage>25</lpage></element-citation></ref><ref id="bib60"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name><name><surname>Lasko</surname><given-names>TA</given-names></name></person-group><year iso-8601-date="2022">2022b</year><article-title>Identifying patient-specific root causes of disease</article-title><conf-name>Proceedings of the 13th ACM International Conference on Bioinformatics, Computational Biology and Health Informatics</conf-name><pub-id pub-id-type="doi">10.1145/3535508.3545553</pub-id></element-citation></ref><ref id="bib61"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name><name><surname>Lasko</surname><given-names>TA</given-names></name></person-group><year iso-8601-date="2023">2023a</year><article-title>Identifying patient-specific root causes with the heteroscedastic noise model</article-title><source>Journal of Computational Science</source><volume>72</volume><elocation-id>102099</elocation-id><pub-id pub-id-type="doi">10.1016/j.jocs.2023.102099</pub-id></element-citation></ref><ref id="bib62"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name><name><surname>Lasko</surname><given-names>TA</given-names></name></person-group><year iso-8601-date="2023">2023b</year><article-title>Root Causal Inference from Single Cell RNA Sequencing with the Negative Binomial</article-title><conf-name>Proceedings of the 14th ACM International Conference on Bioinformatics, Computational Biology and Health Informatics BCB ’23</conf-name><pub-id pub-id-type="doi">10.1145/3584371.3612972</pub-id></element-citation></ref><ref id="bib63"><element-citation publication-type="confproc"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name><name><surname>Lasko</surname><given-names>TA</given-names></name></person-group><year iso-8601-date="2023">2023c</year><article-title>Sample-specific root causal inference with latent variables</article-title><conf-name>Conference on Causal Learning and Reasoning PMLR</conf-name></element-citation></ref><ref id="bib64"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name><name><surname>Lasko</surname><given-names>TA</given-names></name><name><surname>Gamazon</surname><given-names>ER</given-names></name></person-group><year iso-8601-date="2024">2024</year><article-title>Mitigating pathogenesis for target discovery and disease subtyping</article-title><source>Computers in Biology and Medicine</source><volume>171</volume><elocation-id>108122</elocation-id><pub-id pub-id-type="doi">10.1016/j.compbiomed.2024.108122</pub-id><pub-id pub-id-type="pmid">38417381</pub-id></element-citation></ref><ref id="bib65"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name></person-group><year iso-8601-date="2024">2024a</year><article-title>Counterfactual formulation of patient-specific root causes of disease</article-title><source>Journal of Biomedical Informatics</source><volume>150</volume><elocation-id>104585</elocation-id><pub-id pub-id-type="doi">10.1016/j.jbi.2024.104585</pub-id><pub-id pub-id-type="pmid">38191012</pub-id></element-citation></ref><ref id="bib66"><element-citation publication-type="software"><person-group person-group-type="author"><name><surname>Strobl</surname><given-names>EV</given-names></name></person-group><year iso-8601-date="2024">2024b</year><data-title>Root causal strength using perturbations (RCSP)</data-title><version designator="swh:1:rev:c304a82eabc9cdc10cb0dcf655969ed5b23173f6">swh:1:rev:c304a82eabc9cdc10cb0dcf655969ed5b23173f6</version><source>Software Heritage</source><ext-link ext-link-type="uri" xlink:href="https://archive.softwareheritage.org/swh:1:dir:4f1b5ec126d15750bcf718e985ede793a3bacdff;origin=https://github.com/ericstrobl/RCSP;visit=swh:1:snp:b8a92178860b3744a05beb7c7629b94fdf31b45d;anchor=swh:1:rev:c304a82eabc9cdc10cb0dcf655969ed5b23173f6">https://archive.softwareheritage.org/swh:1:dir:4f1b5ec126d15750bcf718e985ede793a3bacdff;origin=https://github.com/ericstrobl/RCSP;visit=swh:1:snp:b8a92178860b3744a05beb7c7629b94fdf31b45d;anchor=swh:1:rev:c304a82eabc9cdc10cb0dcf655969ed5b23173f6</ext-link></element-citation></ref><ref id="bib67"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Su</surname><given-names>Y</given-names></name><name><surname>Wang</surname><given-names>F</given-names></name><name><surname>Hu</surname><given-names>Q</given-names></name><name><surname>Qu</surname><given-names>Y</given-names></name><name><surname>Han</surname><given-names>Y</given-names></name></person-group><year iso-8601-date="2020">2020</year><article-title>Arsenic trioxide inhibits proliferation of retinal pigment epithelium by downregulating expression of extracellular matrix and p27</article-title><source>International Journal of Clinical and Experimental Pathology</source><volume>13</volume><fpage>172</fpage><lpage>178</lpage><pub-id pub-id-type="pmid">32211097</pub-id></element-citation></ref><ref id="bib68"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Turi</surname><given-names>Z</given-names></name><name><surname>Senkyrikova</surname><given-names>M</given-names></name><name><surname>Mistrik</surname><given-names>M</given-names></name><name><surname>Bartek</surname><given-names>J</given-names></name><name><surname>Moudry</surname><given-names>P</given-names></name></person-group><year iso-8601-date="2018">2018</year><article-title>Perturbation of RNA Polymerase I transcription machinery by ablation of HEATR1 triggers the RPL5/RPL11-MDM2-p53 ribosome biogenesis stress checkpoint pathway in human cells</article-title><source>Cell Cycle</source><volume>17</volume><fpage>92</fpage><lpage>101</lpage><pub-id pub-id-type="doi">10.1080/15384101.2017.1403685</pub-id><pub-id pub-id-type="pmid">29143558</pub-id></element-citation></ref><ref id="bib69"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname><given-names>L</given-names></name><name><surname>Trasanidis</surname><given-names>N</given-names></name><name><surname>Wu</surname><given-names>T</given-names></name><name><surname>Dong</surname><given-names>G</given-names></name><name><surname>Hu</surname><given-names>M</given-names></name><name><surname>Bauer</surname><given-names>DE</given-names></name><name><surname>Pinello</surname><given-names>L</given-names></name></person-group><year iso-8601-date="2023">2023</year><article-title>Dictys: dynamic gene regulatory network dissects developmental continuum with single-cell multiomics</article-title><source>Nature Methods</source><volume>20</volume><fpage>1368</fpage><lpage>1378</lpage><pub-id pub-id-type="doi">10.1038/s41592-023-01971-3</pub-id></element-citation></ref><ref id="bib70"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Ward</surname><given-names>JH</given-names></name></person-group><year iso-8601-date="1963">1963</year><article-title>Hierarchical grouping to optimize an objective function</article-title><source>Journal of the American Statistical Association</source><volume>58</volume><fpage>236</fpage><lpage>244</lpage><pub-id pub-id-type="doi">10.1080/01621459.1963.10500845</pub-id></element-citation></ref><ref id="bib71"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Wen</surname><given-names>Y</given-names></name><name><surname>Huang</surname><given-names>J</given-names></name><name><surname>Guo</surname><given-names>S</given-names></name><name><surname>Elyahu</surname><given-names>Y</given-names></name><name><surname>Monsonego</surname><given-names>A</given-names></name><name><surname>Zhang</surname><given-names>H</given-names></name><name><surname>Ding</surname><given-names>Y</given-names></name><name><surname>Zhu</surname><given-names>H</given-names></name></person-group><year iso-8601-date="2023">2023</year><article-title>Applying causal discovery to single-cell analyses using CausalCell</article-title><source>eLife</source><volume>12</volume><elocation-id>e81464</elocation-id><pub-id pub-id-type="doi">10.7554/eLife.81464</pub-id><pub-id pub-id-type="pmid">37129360</pub-id></element-citation></ref><ref id="bib72"><element-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Yoo</surname><given-names>M</given-names></name><name><surname>Shin</surname><given-names>J</given-names></name><name><surname>Kim</surname><given-names>J</given-names></name><name><surname>Ryall</surname><given-names>KA</given-names></name><name><surname>Lee</surname><given-names>K</given-names></name><name><surname>Lee</surname><given-names>S</given-names></name><name><surname>Jeon</surname><given-names>M</given-names></name><name><surname>Kang</surname><given-names>J</given-names></name><name><surname>Tan</surname><given-names>AC</given-names></name></person-group><year iso-8601-date="2015">2015</year><article-title>DSigDB: drug signatures database for gene set analysis</article-title><source>Bioinformatics</source><volume>31</volume><fpage>3069</fpage><lpage>3071</lpage><pub-id pub-id-type="doi">10.1093/bioinformatics/btv313</pub-id><pub-id pub-id-type="pmid">25990557</pub-id></element-citation></ref></ref-list><app-group><app id="appendix-1"><title>Appendix 1</title><sec sec-type="appendix" id="s8"><title>Additional synthetic data results</title><sec sec-type="appendix" id="s8-1"><title>Normalization by sequencing depth</title><p>We theoretically showed that RCS does not require normalization by sequencing depth in the Methods using an asymptotic argument. We tested this claim empirically by drawing 200 bulk RNA-seq samples from random DAGs as in the Methods but over <inline-formula><mml:math id="inf393"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>250</mml:mn></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula> variables. We varied the mean sequencing depth <inline-formula><mml:math id="inf394"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:mi>p</mml:mi></mml:mstyle></mml:math></inline-formula> of each gene from 15, 20, 30, 50, 90, 170, 330–650 counts; multiplying <inline-formula><mml:math id="inf395"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:mi>p</mml:mi></mml:mstyle></mml:math></inline-formula> by <inline-formula><mml:math id="inf396"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi></mml:mstyle></mml:math></inline-formula> recovers the library size <inline-formula><mml:math id="inf397"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula>. We only included one batch in the bulk RNA-seq in order to isolate the effect of sequencing depth. We compared no normalization, normalization by 10 housekeeping genes, normalization by 20 housekeeping genes, and normalization by library size. We repeated each experiment 100 times and thus generated a total of 100×4×8=3200 datasets.</p><p>We plot the results in <xref ref-type="fig" rid="app1fig1">Appendix 1—figure 1</xref>. All methods improved with increasing mean sequencing depth as expected. The no normalization strategy performed the best at low mean sequencing depths, followed by the housekeeping genes and then total library size. The result even held with a small library size of <inline-formula><mml:math id="inf398"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn>15</mml:mn><mml:mo>×</mml:mo><mml:mn>249</mml:mn><mml:mo>=</mml:mo><mml:mn>3735</mml:mn></mml:mstyle></mml:math></inline-formula> at the smallest mean sequencing depth of 15, suggesting that the asymptotic argument holds well in bulk RNA-seq where <inline-formula><mml:math id="inf399"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:mi>p</mml:mi></mml:mstyle></mml:math></inline-formula> is often greater than 500 and <inline-formula><mml:math id="inf400"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi></mml:mstyle></mml:math></inline-formula> greater than the tens of millions. However, the average RMSEs of all normalization methods became more similar as sequencing depth increased. We conclude that no normalization exceeds or matches the accuracy of other strategies. We therefore do not normalize by sequencing depth in subsequent analyses.</p><fig id="app1fig1" position="float"><label>Appendix 1—figure 1.</label><caption><title>Mean RMSE to the ground truth RCS values across different mean sequencing depths and normalization strategies.</title><p>The no normalization strategy achieved low RMSEs at lower mean sequencing depths, but the performances of all methods converged as the mean sequencing depths increased. Error bars denote 95% confidence intervals of the mean over 100 datasets.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig1-v1.tif"/></fig></sec><sec sec-type="appendix" id="s8-2"><title>Functional causal models and measurement error</title><p>The experiments in the Results section quantify the accuracies of the algorithms in estimating <inline-formula><mml:math id="inf401"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula>. However, the functional causal models ANM and LiNGAM also estimate the error terms as an intermediate step, whereas RCSP does not. We therefore also investigated the accuracies of ANM and LiNGAM in estimating the error term values.</p><p>Theoretical results suggest that ANM and LiNGAM cannot consistently estimate the error terms in RNA-seq due to the Poisson measurement error. We empirically tested this hypothesis by sampling from bulk RNA-seq data as in the Methods but with <inline-formula><mml:math id="inf402"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>100</mml:mn></mml:mstyle></mml:math></inline-formula> and a batch size of one in order to isolate the effect of measurement error. We repeated the experiment 100 times for bulk RNA-seq sample sizes of 100, 200, 400, 800, 1600 and 3200. We plot the results in <xref ref-type="fig" rid="app1fig2">Appendix 1—figure 2</xref>. The accuracies of ANM and LiNGAM did not improve beyond an RMSE of 0.44 to the ground truth error term values even with a large sample size of 6400. We conclude that ANM and LiNGAM cannot estimate the error terms accurately in the presence of measurement error even with large sample sizes.</p><fig id="app1fig2" position="float"><label>Appendix 1—figure 2.</label><caption><title>Mean RMSE values to the ground truth error term values across different sample sizes.</title><p>The accuracies of ANM and LiNGAM do not improve with increasing sample sizes.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig2-v1.tif"/></fig></sec><sec sec-type="appendix" id="s8-3"><title>Cyclic causal graphs</title><p>We also evaluated the algorithms on directed graphs with cycles. We generated a linear SEM over <inline-formula><mml:math id="inf403"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>1000</mml:mn></mml:mstyle></mml:math></inline-formula> variables in <inline-formula><mml:math id="inf404"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. We sampled the coefficient matrix <italic>β</italic> from a Bernoulli (<inline-formula><mml:math id="inf405"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mn>1</mml:mn><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo>/</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>−</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:math></inline-formula>) distribution but did not restrict the non-zero coefficients to the upper triangular portion of the matrix. We then proceeded to permute the variable ordering and weight each entry as in the Methods for the DAG. We repeated this procedure 30 times and report the results in <xref ref-type="fig" rid="app1fig3">Appendix 1—figure 3</xref>.</p><fig id="app1fig3" position="float"><label>Appendix 1—figure 3.</label><caption><title>RCSP achieved the lowest RMSE in cyclic graphs as well.</title><p>However, error terms can influence ancestors in the cyclic case, so the interpretation of the RCS remains unclear when cycles exist.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig3-v1.tif"/></fig><p>RCSP again outperformed all other algorithms even in the cyclic case. The results suggest that conditioning on the surrogate ancestors also estimates the RCS well even in the cyclic case. However, we caution that an error term <inline-formula><mml:math id="inf406"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> can affect the ancestors of <inline-formula><mml:math id="inf407"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> when cycles exist. As a result, the RCS may not isolate the causal effect of the error term and thus not truly coincide with the notion of a root causal effect in cyclic causal graphs.</p></sec><sec sec-type="appendix" id="s8-4"><title>DAG Incongruence</title><p>We next assessed the performance of RCSP when the DAG underlying the Perturb-seq data differs from the DAG underlying the bulk RNA-seq data. We considered a mixture of two random DAGs in bulk RNA-seq, where one of the DAGs coincided with the Perturb-seq DAG and the second alternate DAG did not. We instantiated and simulated samples from each DAG as per the previous subsection. We generated 0%, 25%, 50%, 75%, and 100% of the bulk RNA-seq samples from the alternate DAG, and the rest from the Perturb-seq DAG. We ideally would like to see the performance of RCSP degrade gracefully, as opposed to abruptly, as the percent of samples derived from the alternate DAG increases.</p><p>We summarize results in <xref ref-type="fig" rid="app1fig4">Appendix 1—figure 4</xref>. As expected, RCSP performed the best when we drew all samples from the same underlying DAG for Perturb-seq and bulk RNA-seq. However, the performance of RCSP also degraded slowly as the percent of samples increased from the alternate DAG. We conclude that RCSP can accommodate some differences between the underlying DAGs in Perturb-seq and bulk RNA-seq with only a mild degradation in performance.</p><fig id="app1fig4" position="float"><label>Appendix 1—figure 4.</label><caption><title>The performance of RCSP degrades gracefully as the percent of samples from the alternate DAG increases.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig4-v1.tif"/></fig></sec><sec sec-type="appendix" id="s8-5"><title>Non-sink target</title><p>We considered the scenario where <inline-formula><mml:math id="inf408"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a non-sink (or non-terminal) vertex. If <inline-formula><mml:math id="inf409"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a parent of a gene expression level, then we cannot properly condition on the parents because modern Perturb-seq datasets usually do not intervene on <inline-formula><mml:math id="inf410"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> or measure <inline-formula><mml:math id="inf411"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We therefore empirically investigated the degradation in performance resulting from a non-sink target <inline-formula><mml:math id="inf412"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>, in particular for gene expression levels where <inline-formula><mml:math id="inf413"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a parent. We simulated 200 samples from bulk RNA-seq and each condition of Perturb-seq with a DAG over 1000 vertices, an expected neighborhood size of 2 and a non-sink target <inline-formula><mml:math id="inf414"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We then removed the outgoing edges from <inline-formula><mml:math id="inf415"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> and resampled the DAG with a sink target. We compared the results of RCSP for both DAGs in gene expression levels where <inline-formula><mml:math id="inf416"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a parent before removing the outgoing edges from <inline-formula><mml:math id="inf417"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. We plot the results in <xref ref-type="fig" rid="app1fig5">Appendix 1—figure 5</xref>. As expected, we observe a degradation in performance when <inline-formula><mml:math id="inf418"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is not a sink vertex, where the mean RMSE increased from 0.045 to 0.342. We conclude that RCSP is sensitive to violations of the sink target assumption.</p><fig id="app1fig5" position="float"><label>Appendix 1—figure 5.</label><caption><title>Results with a sink or non-sink target <inline-formula><mml:math id="inf419"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</title><p>RCSP estimated the RCS scores less accurately with a non-sink target indicating that the algorithm is sensitive to violations of the sink target assumption.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig5-v1.tif"/></fig></sec><sec sec-type="appendix" id="s8-6"><title>Root causal effect versus conditional root causal effect</title><p>We compared the expected and unconditional root causal effects <inline-formula><mml:math id="inf420"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≜</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:math></inline-formula> to the expected and conditional root causal effects or, equivalently, the signed RCS scores <inline-formula><mml:math id="inf421"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula>. These root causal effects and conditional root causal effects are not the same, but they are similar. We empirically investigated the differences between the estimated values of <inline-formula><mml:math id="inf422"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> and the true values of <inline-formula><mml:math id="inf423"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> using the RMSE and also the percent of samples with incongruent signs; <inline-formula><mml:math id="inf424"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf425"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> have incongruent signs if one is positive and the other is negative. We again drew 200 bulk RNA-seq samples from random DAGs as in the Methods over <inline-formula><mml:math id="inf426"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>250</mml:mn></mml:mstyle></mml:math></inline-formula> variables with one batch. We varied the bulk RNA-seq sample size from 100, 200, 400–800. We also compared true <inline-formula><mml:math id="inf427"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> against true <inline-formula><mml:math id="inf428"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> by estimating the two to negligible error using 20,000 samples of <inline-formula><mml:math id="inf429"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. We repeated each experiment 100 times and thus generated a total of 100 × 5 = 500 datasets.</p><p>We summarize the results in <xref ref-type="fig" rid="app1fig6">Appendix 1—figure 6</xref>. The estimated <inline-formula><mml:math id="inf430"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> values approached the true <inline-formula><mml:math id="inf431"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> values with increasing sample sizes. The true <inline-formula><mml:math id="inf432"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> values did not converge exactly to the true <inline-formula><mml:math id="inf433"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> values, but the RMSE remained low at 0.05 and the two values differed in sign only around 5.3% of the time. Increasing the number of samples of <inline-formula><mml:math id="inf434"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> to 50,000 did not change performance, confirming that we reached the floor. We conclude that the empirical results replicate the theoretical results because <inline-formula><mml:math id="inf435"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Γ</mml:mi></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf436"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Ω</mml:mi></mml:mstyle></mml:math></inline-formula> do not match exactly. However, the two quantities take on similar values and their signs matched around 95% of the time in practice.</p><fig id="app1fig6" position="float"><label>Appendix 1—figure 6.</label><caption><title>Mean RMSE (blue, left) and percent sign incongruence (green, right) of the expected root causal effects and signed RCS values, respectively.</title><p>The RMSE continues to decrease with increasing sample size but reaches a floor of around 0.05. Similarly, the percent sign incongruence decreases but reaches a floor of around 5%. Error bars denote 95% confidence intervals of the mean over 100 datasets.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig6-v1.tif"/></fig></sec></sec><sec sec-type="appendix" id="s9"><title>Additional results for age-related macular degeneration</title><sec sec-type="appendix" id="s9-1"><title>Algorithm comparisons</title><p>We say that an algorithm performs well in real data if it simultaneously (1) identifies a sparse set of root causal genes, (2) recovers known pathogenic pathways with high specificity measured by the sparsity of leading edge genes, and (3) clusters patients into clear subgroups.</p><p>We compared the algorithms with the AMD data. We summarize the results in <xref ref-type="fig" rid="app1fig7">Appendix 1—figure 7</xref> plotted on the next page. The figure contains 6 rows and 3 columns. Similar to the D-RCS, we can compute the standard deviation of the output of each algorithm from zero for each gene. The first column in <xref ref-type="fig" rid="app1fig7">Appendix 1—figure 7</xref> denotes the histograms of these standard deviations across the genes. We standardized the outputs to have mean zero and unit variance. We then added the minimum value so that all histograms begin at zero; note that the bars at zero are not visible for many algorithms, since only a few genes attained standard deviations near the minimum. If an algorithm accurately identifies root causal genes, then it should only identify a few genes with large conditional root causal effects under the omnigenic root causal model. The RCSP algorithm had a histogram with large probability mass centered around zero with a long tail to the right. The standard deviations of the outputs of the other algorithms attained large values for nearly all genes. Incorporating feature selection and causal discovery with CausalCell introduced more outliers in the histogram of ANM. We conclude that only RCSP detected an omnigenic root causal model.</p><fig id="app1fig7" position="float"><label>Appendix 1—figure 7.</label><caption><title>Comparison of the algorithms in age-related macular degeneration.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig7-v1.tif"/></fig><p>We plot the results of pathway enrichment analysis in the second column of <xref ref-type="fig" rid="app1fig7">Appendix 1—figure 7</xref>. RCSP, LiNGAM and univariate regression detected pathways related to oxidative stress in AMD. However, the ‘mitotic prometaphase’ and ‘DNA strand elongation’ pathways in blue for LiNGAM involved 94 and 27 leading edge genes, respectively. The ‘cellular responses to stimuli’ and ‘signal transduction’ pathways for multivariate regression also involved 253 and 282 leading edge genes. In contrast, the ‘amino acid plasma membrane transport’ pathway for RCSP involved two leading edge genes. We conclude that RCSP identified a known pathogenic pathway of AMD with the fewest number of leading edge genes.</p><p>We finally plot the clustering results in the third column of <xref ref-type="fig" rid="app1fig7">Appendix 1—figure 7</xref>. The RCSP sum of squares plot revealed a sharp elbow at four groups of patients, whereas the other plots did not reveal a clear number of categories using the elbow method. We conclude that only RCSP identified clear subgroups of patients in AMD.</p><p>In summary, RCSP detected a small set of root causal genes, identified pathogenic pathways with maximal specificity and discovered distinguishable patient subgroups. We therefore conclude that RCSP outperformed all other algorithms in the AMD dataset.</p></sec><sec sec-type="appendix" id="s9-2"><title>Effect of sequencing depth</title><p>Theorem 1 states that RCS scores may exhibit bias with insufficient sequencing depth. The genes with large D-RCS scores may therefore simply have low sequencing depths. To test this hypothesis, we plotted sequencing depth against D-RCS scores. Consistent with Theorem 1, we observed a small negative correlation between D-RCS and sequencing depth (ρ = −0.16, <italic>P</italic>=2.04E-13), and D-RCS scores exhibited greater variability at the lowest sequencing depths (<xref ref-type="fig" rid="app1fig8">Appendix 1—figure 8</xref>). However, genes with the largest D-RCS scores had mean sequencing depths interspersed between 20 and 3000. We conclude that genes with the largest D-RCS scores had a variety of sequencing depths ranging from low to high.</p><fig id="app1fig8" position="float"><label>Appendix 1—figure 8.</label><caption><title>Mean sequencing depth of each gene plotted against their D-RCS scores in AMD.</title><p>Genes with the largest D-RCS scores (red ellipse) had a variety of sequencing depths.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig8-v1.tif"/></fig></sec><sec sec-type="appendix" id="s9-3"><title>Biological results</title><p>We provide the full pathway enrichment analysis results in <xref ref-type="table" rid="app1table1">Appendix 1—table 1</xref> corresponding to <xref ref-type="fig" rid="fig3">Figure 3c</xref>. We summarize pathway enrichment analysis of the black cluster of <xref ref-type="fig" rid="fig3">Figure 3g</xref> in <xref ref-type="fig" rid="fig3">Figure 3j</xref>. However, analyses of the blue, green and pink clusters did not yield significant pathways even at a liberal FDR threshold of 10%.</p><table-wrap id="app1table1" position="float"><label>Appendix 1—table 1.</label><caption><title>Full pathway enrichment analysis results for all patients in the AMD dataset.</title><p>We list the Entrez gene IDs of up to the top three leading edge genes in the right-most column.</p></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Pathway</th><th align="left" valign="bottom">p-value</th><th align="left" valign="bottom">q-value</th><th align="left" valign="bottom">Effect Size</th><th align="left" valign="bottom">Leading Edge</th></tr></thead><tbody><tr><td align="left" valign="bottom">Amino acid transport across the plasma membrane</td><td align="right" valign="bottom">2.44e-05</td><td align="right" valign="bottom">0.038</td><td align="right" valign="bottom">0.995</td><td align="right" valign="bottom">81,406,510</td></tr><tr><td align="left" valign="bottom">RHO GTPases Activate ROCKs</td><td align="right" valign="bottom">2.09e-03</td><td align="right" valign="bottom">0.388</td><td align="right" valign="bottom">0.976</td><td align="right" valign="bottom">46,595,500</td></tr><tr><td align="left" valign="bottom">Endosomal/Vacuolar pathway</td><td align="right" valign="bottom">2.32e-03</td><td align="right" valign="bottom">0.388</td><td align="right" valign="bottom">0.998</td><td align="right" valign="bottom">3107</td></tr><tr><td align="left" valign="bottom">Diseases of Cellular Senescence</td><td align="right" valign="bottom">2.97e-03</td><td align="right" valign="bottom">0.388</td><td align="right" valign="bottom">0.997</td><td align="right" valign="bottom">1021</td></tr><tr><td align="left" valign="bottom">Binding of TCF/LEF:CTNNB1 to target gene promoters</td><td align="right" valign="bottom">6.52e-03</td><td align="right" valign="bottom">0.68</td><td align="right" valign="bottom">0.993</td><td align="right" valign="bottom">4609</td></tr><tr><td align="left" valign="bottom">APEX1-Indep. Resolution of AP Sites via Nucleotide Replacement</td><td align="right" valign="bottom">7.28e-03</td><td align="right" valign="bottom">0.712</td><td align="right" valign="bottom">0.980</td><td align="right" valign="bottom">112,847,515</td></tr><tr><td align="left" valign="bottom">MASTL Facilitates Mitotic Progression</td><td align="right" valign="bottom">1.59e-02</td><td align="right" valign="bottom">0.978</td><td align="right" valign="bottom">0.911</td><td align="right" valign="bottom">84,930,983</td></tr><tr><td align="left" valign="bottom">PI5P Regulates TP53 Acetylation</td><td align="right" valign="bottom">1.94e-02</td><td align="right" valign="bottom">0.978</td><td align="right" valign="bottom">0.980</td><td align="right" valign="bottom">79837</td></tr><tr><td align="left" valign="bottom">Formation of Incision Complex in GG-NER</td><td align="right" valign="bottom">2.24e-02</td><td align="right" valign="bottom">0.978</td><td align="right" valign="bottom">0.791</td><td align="right" valign="bottom">296,699,782,967</td></tr><tr><td align="left" valign="bottom">Glycine degradation</td><td align="right" valign="bottom">2.24e-02</td><td align="right" valign="bottom">0.978</td><td align="right" valign="bottom">0.977</td><td align="right" valign="bottom">1738</td></tr><tr><td align="left" valign="bottom">Prefoldin mediated transfer of substrate to CCT/TriC</td><td align="right" valign="bottom">3.96e-02</td><td align="right" valign="bottom">0.978</td><td align="right" valign="bottom">0.787</td><td align="right" valign="bottom">5,203,520,110,576</td></tr></tbody></table></table-wrap><p>We examined whether the clusters of <xref ref-type="fig" rid="fig3">Figure 3g</xref> differentiate dry and wet macular degeneration. Wet macular degeneration is associated with the highest Minnesota Grading System (MGS) score of 4 (<xref ref-type="bibr" rid="bib42">Olsen and Feng, 2004</xref>). We plotted the UMAP embedding against MGS (<xref ref-type="fig" rid="app1fig9">Appendix 1—figure 9a</xref>). None of the two UMAP dimensions correlated significantly with the MGS score (5% uncorrected threshold by Spearman’s correlation test). These results and the large RCS scores of age in <xref ref-type="fig" rid="fig3">Figure 3a</xref> seem to support the hypothesis that wet macular degeneration is a more severe type of dry macular degeneration. However, MGS does not differentiate between wet macular degeneration and late stage dry macular degeneration involving geographical atrophy. We therefore cannot separate late stage dry and wet macular degeneration using the RCS scores alone.</p><p>We correlated the two UMAP dimensions with the top 30 genes ranked by their RCS scores. We plot genes with the highest correlation to the first and second UMAP dimensions in <xref ref-type="fig" rid="app1fig9">Appendix 1—figure 9b and c</xref>, respectively. Many genes correlated with the first dimension, but only three genes correlated with the second at an FDR threshold of 5%.</p><fig id="app1fig9" position="float"><label>Appendix 1—figure 9.</label><caption><title>Additional UMAP embedding results for AMD.</title><p>(<bold>a</bold>) The UMAP dimensions did not correlate with AMD severity as assessed by the MGS score. Many genes correlated with the first UMAP dimension in (<bold>b</bold>), but only three genes correlated with the second UMAP dimension in (<bold>c</bold>). Blue bars passed an FDR threshold of 5%, error bars denote 95% confidence intervals, and the sample size corresponded to 513 individuals.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig9-v1.tif"/></fig><p>We finally performed drug enrichment analysis in each of the four clusters in <xref ref-type="fig" rid="fig3">Figure 3g</xref>. We summarize the results in <xref ref-type="fig" rid="app1fig10">Appendix 1—figure 10</xref>. Only two drugs – and one potentially therapeutic option – passed FDR correction in patients in the black cluster with the most identified root causal genes according to the RCS scores. In contrast, enrichment analysis identified many drugs in patients in the green cluster with the lowest RCS scores and thus relatively few root causal genes. The pink and blue clusters yielded moderate results. We conclude that drug enrichment analysis expectedly identified more drugs for patients on the left hand side of the UMAP embedding with fewer root causal genes than on the right hand side with many simultaneous root causal genes.</p><fig id="app1fig10" position="float"><label>Appendix 1—figure 10.</label><caption><title>Drug enrichment analysis results by cluster in <xref ref-type="fig" rid="fig3">Figure 3g</xref>.</title><p>The analyses recovered similar drugs across clusters, but the results for the green cluster in (<bold>c</bold>) were supra-significant.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig10-v1.tif"/></fig></sec></sec><sec sec-type="appendix" id="s10"><title>Additional results for multiple sclerosis</title><sec sec-type="appendix" id="s10-1"><title>Algorithm comparisons</title><p>We compared the algorithms using the MS data with the same criteria used for the AMD dataset. We summarize the results in <xref ref-type="fig" rid="app1fig11">Appendix 1—figure 11</xref> plotted on the next page. Only the histogram of RCSP had large probability mass centered around zero as shown in the first column. The histogram of LiNGAM contained many outliers, so it appears to spike around a value of 18. The histograms of ANM and CausalCell were again near identical. We conclude that only the histogram of RCSP supported an omnigenic root causal model in MS.</p><fig id="app1fig11" position="float"><label>Appendix 1—figure 11.</label><caption><title>Comparison of the algorithms in multiple sclerosis.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig11-v1.tif"/></fig><p>We performed pathway enrichment analysis on the algorithm outputs and summarize the results in the second column of <xref ref-type="fig" rid="app1fig11">Appendix 1—figure 11</xref>. The functional causal models ANM, LiNGAM and CausalCell did not identify significant pathways at an FDR corrected threshold of 0.05. In contrast, multivariate and univariate regression both identified many significant pathways in blue with no specific link to the blood brain barrier. The top six significant pathways for multivariate and univariate regression involved 112–831 and 18–545 leading edge genes, respectively. In contrast, the two significant pathways of RCSP involved only 2 and 9 leading genes. We conclude that RCSP detected pathogenic pathways of MS with the sparsest set of leading edge genes.</p><p>We finally clustered the algorithm outputs into patient subgroups. We list the sum of squares plots in the third column of <xref ref-type="fig" rid="app1fig11">Appendix 1—figure 11</xref>. Univariate regression did not differentiate between the patients because it detected one dominating cluster. RCSP and multivariate regression identified clear subgroups according to the elbow method, whereas the sum of squares plots for ANM, LiNGAM and CausalCell showed no clear cutoffs. We conclude that only RCSP and multivariate regression identified clear patient subgroups in MS.</p><p>In summary, only RCSP simultaneously detected an omnigenic root causal model, identified pathogenic pathways with high specificity and discovered clear patient subgroups. We therefore conclude that RCSP also outperformed all other algorithms in the MS dataset.</p></sec><sec sec-type="appendix" id="s10-2"><title>Effect of sequencing depth</title><p>We plot sequencing depth against the D-RCS scores of each gene similar to the AMD dataset. We again observed a small negative correlation (ρ=-0.136, <italic>P</italic>&lt;2.2E-16), indicating that genes with low sequencing depths had slightly higher D-RCS scores on average (<xref ref-type="fig" rid="app1fig12">Appendix 1—figure 12</xref>). However, genes with the largest D-RCS scores again had a variety of sequencing depths. We conclude that sequencing depth has minimal correlation with the largest D-RCS scores.</p><fig id="app1fig12" position="float"><label>Appendix 1—figure 12.</label><caption><title>Mean sequencing depth of each gene plotted against their D-RCS scores in MS.</title><p>Genes with the largest D-RCS scores (red ellipse) again had a variety of sequencing depths.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig12-v1.tif"/></fig></sec><sec sec-type="appendix" id="s10-3"><title>Biological results</title><p>We provide the full global pathway enrichment analysis results for MS in <xref ref-type="table" rid="app1table2">Appendix 1—table 2</xref>. Pathway enrichment analysis of the individual clusters in <xref ref-type="fig" rid="fig4">Figure 4f</xref> consistently implicated EPH-ephrin signaling among the top two pathways. However, each cluster also involved one separate additional pathway (<xref ref-type="fig" rid="app1fig13">Appendix 1—figure 13</xref>). The green cluster involved the same APC-AXIN pathway as the global analysis via beta-catenin. On the other hand, the blue cluster involved ‘platelet sensitization by LDL.’ Low density lipoprotein enhances platelet aggregation. Platelet degranulation in turn drives the generation of autoreactive T cells in the peripheral circulation during disturbance of the blood brain barrier (<xref ref-type="bibr" rid="bib43">Orian et al., 2021</xref>). Finally, CTLA4 regulates T-cell homeostasis and inhibits autommunity for the pink cluster (<xref ref-type="bibr" rid="bib4">Basile et al., 2022</xref>). The D-RCS scores of each cluster thus implicate different mechanisms of T cell pathology.</p><table-wrap id="app1table2" position="float"><label>Appendix 1—table 2.</label><caption><title>Full pathway enrichment analysis results for all patients in the MS dataset.</title><p>We again list up to the top three leading edge genes in the right-most column.</p></caption><table frame="hsides" rules="groups"><thead><tr><th align="left" valign="bottom">Pathway</th><th align="left" valign="bottom">p-value</th><th align="left" valign="bottom">q-value</th><th align="left" valign="bottom">Effect Size</th><th align="left" valign="bottom">Leading Edge</th></tr></thead><tbody><tr><td align="left" valign="bottom">APC truncation mutants have impaired AXIN binding</td><td align="right" valign="bottom">1.91e-06</td><td align="right" valign="bottom">3.45E-04</td><td align="right" valign="bottom">0.960</td><td align="right" valign="bottom">55,255,527</td></tr><tr><td align="left" valign="bottom">EPH-ephrin signaling</td><td align="right" valign="bottom">4.23e-05</td><td align="right" valign="bottom">6.12E-03</td><td align="right" valign="bottom">0.826</td><td align="right" valign="bottom">88,741,028,976</td></tr><tr><td align="left" valign="bottom">Ethanol oxidation</td><td align="right" valign="bottom">2.02e-03</td><td align="right" valign="bottom">0.182</td><td align="right" valign="bottom">0.967</td><td align="right" valign="bottom">219,128</td></tr><tr><td align="left" valign="bottom">RHOQ GTPase cycle</td><td align="right" valign="bottom">2.72e-03</td><td align="right" valign="bottom">0.226</td><td align="right" valign="bottom">0.793</td><td align="right" valign="bottom">9,322,887,410,395</td></tr><tr><td align="left" valign="bottom">Glycogen storage disease type 0 (muscle GYS1)</td><td align="right" valign="bottom">2.72e-03</td><td align="right" valign="bottom">0.322</td><td align="right" valign="bottom">0.996</td><td align="right" valign="bottom">2992</td></tr><tr><td align="left" valign="bottom">NFE2L2 regulating TCA cycle genes</td><td align="right" valign="bottom">6.31e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.970</td><td align="right" valign="bottom">41,993,417</td></tr><tr><td align="left" valign="bottom">C6 deamination of adenosine</td><td align="right" valign="bottom">7.42e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.981</td><td align="right" valign="bottom">103,104</td></tr><tr><td align="left" valign="bottom">Ion channel transport</td><td align="right" valign="bottom">7.63e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.728</td><td align="right" valign="bottom">5,719,854,055,515</td></tr><tr><td align="left" valign="bottom">Synthesis of IP3 and IP4 in the cytosol</td><td align="right" valign="bottom">7.63e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.904</td><td align="right" valign="bottom">363,380,523,236</td></tr><tr><td align="left" valign="bottom">Diseases associated with glycosaminoglycan metabolism</td><td align="right" valign="bottom">8.21e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.894</td><td align="right" valign="bottom">2,132,112,853,339</td></tr><tr><td align="left" valign="bottom">Signaling by SCF-KIT</td><td align="right" valign="bottom">8.67e-03</td><td align="right" valign="bottom">0.414</td><td align="right" valign="bottom">0.794</td><td align="right" valign="bottom">700,655,783,815</td></tr></tbody></table></table-wrap><fig id="app1fig13" position="float"><label>Appendix 1—figure 13.</label><caption><title>Pathway enrichment analysis results by cluster consistently revealed EPH-ephrin signaling as well as an additional pathway implicating T cell pathology.</title></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig13-v1.tif"/></fig><p>The severity of MS, as assessed by the Expanded Disability Status Scale (EDSS) score, did not correlate with either dimension of the UMAP embedding (<xref ref-type="fig" rid="app1fig14">Appendix 1—figure 14a</xref>). The top genes in <xref ref-type="fig" rid="fig4">Figure 4d</xref> such as MNT and CERCAM also did not correlate. However, lower ranked genes such as TRIP10 did (<xref ref-type="fig" rid="app1fig14">Appendix 1—figure 14b</xref>). An expanded correlation analysis with the top 30 genes revealed significant correlations across a variety of lower ranked genes (<xref ref-type="fig" rid="app1fig14">Appendix 1—figure 14c and d</xref>). We conclude that the distribution of lower ranked genes govern the structure of the UMAP embedding in <xref ref-type="fig" rid="fig4">Figure 4f</xref>.</p><fig id="app1fig14" position="float"><label>Appendix 1—figure 14.</label><caption><title>Additional analyses of the UMAP embedding for MS.</title><p>(<bold>a</bold>) The UMAP dimensions did not correlate with MS severity as assessed by EDSS. However, lower ranked genes such as TRIP10 correlated with both dimensions in (<bold>b</bold>). We expanded the analysis to the top 30 genes and plot the genes with the highest correlations to UMAP dimension one and two in (<bold>c</bold>) and (<bold>d</bold>), respectively. Error bars denote 95% confidence intervals, and the sample size corresponded to 137 individuals.</p></caption><graphic mimetype="image" mime-subtype="tiff" xlink:href="elife-100949-app1-fig14-v1.tif"/></fig></sec></sec><sec sec-type="appendix" id="s11"><title>Proofs</title><p>Lemma 1. Assume Lipschitz continuity of the conditional expectation for all <inline-formula><mml:math id="inf437"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>≥</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>:<disp-formula id="equ13"><label>(6)</label><mml:math id="m13"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mtext> </mml:mtext><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>≤</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mstyle></mml:mrow></mml:math></disp-formula></p><p>where <inline-formula><mml:math id="inf438"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mi>B</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:munder><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mover><mml:mi>x</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>π</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>B</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mstyle></mml:math></inline-formula>, <inline-formula><mml:math id="inf439"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>C</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi>O</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:math></inline-formula> is a positive constant, and we have taken an outer expectation on both sides. Then <inline-formula><mml:math id="inf440"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> almost surely.</p><p><italic>Proof</italic>.</p><p>We can write the following sequence:<disp-formula id="equ14"><label>(7)</label><mml:math id="m14"><mml:mrow><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>≤</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>C</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>≤</mml:mo><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>d</mml:mi></mml:mfrac><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mfrac><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mi>L</mml:mi></mml:mfrac></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>−</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>d</mml:mi></mml:mfrac><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p><p>where we have applied Expression (7) at the first inequality. We have <inline-formula><mml:math id="inf441"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>C</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>≤</mml:mo><mml:mi>C</mml:mi></mml:mstyle></mml:math></inline-formula> for all <inline-formula><mml:math id="inf442"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo>≥</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> in the second inequality because <inline-formula><mml:math id="inf443"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>C</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mi>O</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mstyle></mml:math></inline-formula>. With the above bound, choose <inline-formula><mml:math id="inf444"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>a</mml:mi><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:mstyle></mml:math></inline-formula> and invoke the Markov inequality:<disp-formula id="equ15"><mml:math id="m15"><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>|</mml:mo></mml:mrow><mml:mo>≥</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>≤</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>a</mml:mi></mml:mfrac><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:munder><mml:mo movablelimits="true" form="prefix">lim</mml:mo><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:munder><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>,</mml:mo><mml:mi>L</mml:mi><mml:mo>,</mml:mo><mml:mi>B</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0.</mml:mn></mml:math></disp-formula></p><p>The conclusion follows because we chose <inline-formula><mml:math id="inf445"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>a</mml:mi></mml:mstyle></mml:math></inline-formula> arbitrarily. ∎</p><p>Proposition 1. If <inline-formula><mml:math id="inf446"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> or <inline-formula><mml:math id="inf447"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> (or both), then <inline-formula><mml:math id="inf448"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root cause of <inline-formula><mml:math id="inf449"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p><italic>Proof</italic>.</p><p>If <inline-formula><mml:math id="inf450"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> or <inline-formula><mml:math id="inf451"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> (or both), then <inline-formula><mml:math id="inf452"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf453"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> are d-connected by the global Markov property. Since <inline-formula><mml:math id="inf454"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a root vertex, the d-connection implies that there exists a directed path from <inline-formula><mml:math id="inf455"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> to <inline-formula><mml:math id="inf456"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula>. ∎</p><p>Proposition 2. We have <inline-formula><mml:math id="inf457"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> under <xref ref-type="disp-formula" rid="equ3">Equation 3</xref>.</p><p><italic>Proof</italic>.</p><p>We can write:<disp-formula id="equ16"><mml:math id="m16"><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">E</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">P</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p><p>The second equality follows because <inline-formula><mml:math id="inf458"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:math></inline-formula> is a constant given <inline-formula><mml:math id="inf459"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>E</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> and <inline-formula><mml:math id="inf460"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula>. The third equality follows by the global Markov property because <inline-formula><mml:math id="inf461"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>Y</mml:mi></mml:mstyle></mml:math></inline-formula> is a terminal vertex. ∎</p><p>Theorem 2 (Fisher consistency) Consider the same assumption as Lemma 1. If unconditional d-separation faithfulness holds, then RCSP recovers <inline-formula><mml:math id="inf462"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> almost surely as <inline-formula><mml:math id="inf463"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:math></inline-formula>.</p><p><italic>Proof</italic>. If <inline-formula><mml:math id="inf464"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> in Line 2 of Algorithm 1, then <inline-formula><mml:math id="inf465"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a descendant of the root vertex <inline-formula><mml:math id="inf466"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> under the global Markov property. Similarly, if <inline-formula><mml:math id="inf467"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is a descendant of <inline-formula><mml:math id="inf468"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>, then <inline-formula><mml:math id="inf469"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> is d-connected to <inline-formula><mml:math id="inf470"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> so <inline-formula><mml:math id="inf471"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mi>X</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>⊥̸</mml:mo><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mspace width="negativethinmathspace"/><mml:mo>⊥</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> by unconditional d-separation faithfulness. Hence, <inline-formula><mml:math id="inf472"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> contains only and all the surrogate descendants of <inline-formula><mml:math id="inf473"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf474"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. This in turn implies that <inline-formula><mml:math id="inf475"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> in Line 5 of Algorithm 1 contains only and all the surrogate ancestors of <inline-formula><mml:math id="inf476"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:msub><mml:mrow class="MJX-TeXAtom-ORD"><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow class="MJX-TeXAtom-ORD"><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:math></inline-formula>. Hence, RCSP now has access to the correct set <inline-formula><mml:math id="inf477"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mstyle></mml:math></inline-formula> as well as <inline-formula><mml:math id="inf478"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>B</mml:mi></mml:mstyle></mml:math></inline-formula> for each <inline-formula><mml:math id="inf479"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mrow><mml:mover><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. We finally invoke Theorem 1 to conclude that RCSP recovers <inline-formula><mml:math id="inf480"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi mathvariant="normal">Φ</mml:mi></mml:mstyle></mml:math></inline-formula> almost surely as <inline-formula><mml:math id="inf481"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mi>N</mml:mi><mml:mo stretchy="false">→</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mstyle></mml:math></inline-formula>. ∎</p></sec></app></app-group></back><sub-article article-type="editor-report" id="sa0"><front-stub><article-id pub-id-type="doi">10.7554/eLife.100949.3.sa0</article-id><title-group><article-title>eLife Assessment</article-title></title-group><contrib-group><contrib contrib-type="author"><name><surname>Knowles</surname><given-names>David</given-names></name><role specific-use="editor">Reviewing Editor</role><aff><institution>Department of Computer Science and Department of Systems Biology</institution><country>United States</country></aff></contrib></contrib-group><kwd-group kwd-group-type="claim-importance"><kwd>Important</kwd></kwd-group><kwd-group kwd-group-type="evidence-strength"><kwd>Solid</kwd></kwd-group></front-stub><body><p>This work provides an <bold>important</bold> framework for understanding the primary causes of disease. While the theoretical results rely on strong assumptions about the underlying causal mechanisms, the authors provide <bold>solid</bold> empirical evidence that the framework is robust to modest violations of these assumptions.</p></body></sub-article><sub-article article-type="referee-report" id="sa1"><front-stub><article-id pub-id-type="doi">10.7554/eLife.100949.3.sa1</article-id><title-group><article-title>Reviewer #1 (Public review):</article-title></title-group><contrib-group><contrib contrib-type="author"><anonymous/><role specific-use="referee">Reviewer</role></contrib></contrib-group></front-stub><body><p>Summary:</p><p>This manuscript seeks to estimate the causal effect of genes on disease. To do so, they introduce a novel algorithm, termed the Root Causal Strength using Perturbations (RCSP) algorithm. RCSP uses perturb-seq to first estimate the gene regulatory network structure among genes, and then uses bulk RNA-seq with phenotype data on the samples to estimate causal effects of genes on the phenotype conditional on the learned network structure. The authors assess the performance of RCSP in comparison to other methods via simulation. Next, they apply RCSP to two real human datasets: 513 individuals age-related macular degeneration and 137 individuals with multiple sclerosis.</p><p>Strengths:</p><p>The authors tackle an important and ambitious problem - the identification of causal contributors to disease in the context of a causal inference framework. As the authors point out, observational RNA-seq data is insufficient for this kind of causal discovery, since it is very challenging to recover the true underlying graph from observational data; interventional data are needed. However, little perturb-seq data has been generated with annotated phenotype data, and much bulk RNA-seq data has already been generated, so it is useful to propose an algorithm to integrate the two as the authors have done.</p><p>The authors also offer substantial theoretical exposition for their work, bringing to bear both the literature on causal discovery as well as literature on the genetic architecture of complex traits. They also benchmark RCSP under multiple challenging simulation settings, including an analysis of RCSP when the underlying graph is not a DAG.</p><p>Weaknesses:</p><p>The notion of a &quot;root&quot; causal gene - which the authors define based on a graph theoretic notion of topologically sorting graphs - requires a graph that is directed and acyclic. It is the latter that constitutes an important weakness here - it simply is a large simplification of human biology to draw out a DAG including hundreds of genes and a phenotype Y and to claim that the true graph contains no cycles. For example - consider the authors' analysis of T cell infiltration in multiple sclerosis (MS). CD4+ effector T cells have the interesting property that they are stimulated by IL2 as a growth factor; yet IL2 also stimulates the activation of (suppressive) regulatory T cells. What does it mean to analyze CD4+ regulation in disease with a graph that does not consider IL2 (or other cytokine) mediated feedback loops/cycles? To the authors' credit, in the supplementary materials they do consider a simulated example with a cyclic underling causal graph, finding that RCSP performed well comparison to an implementation of the additive noise model (ANM), LiNGAM, CausalCell, and two simpler approaches based on linear regression.</p><p>I also encourage the authors to consider more carefully when graph structure learned from perturb-seq can be ported over to bulk RNA-seq. Consider again the MS CD4+ example - the authors first start with a large perturb-seq experiment (Replogle et al., 2022) performed in K562 cells. To what extent are K562 cells, which are derived from a leukemia cell line, suitable for learning the regulatory structure of CD4+ cells from individuals with an MS diagnosis? Presumably this structure is not exactly correct - to what extent is the RCSP algorithm sensitive to false edges in this graph? The authors perform an analysis of this scenario in Supplementary Figure 4, which shows that RCSP is robust to some degree of departure from the underlying true structure. And although challenging - it would be ideal for the RCSP to model or reflect the challenges in correctly identifying the regulatory structure.</p><p>It should also be noted that in most perturb-seq experiments, the entire genome is not perturbed, and frequently important TFs (that presumably are very far &quot;upstream&quot; and thus candidate &quot;root&quot; causal genes) are not expressed highly enough to be detected with scRNA-seq. In that context - perhaps slightly modifying the language regarding RCSP's capabilities might be helpful for the manuscript - perhaps it would be better to describe it has an algorithm for causal discovery among a set of genes that were perturbed and measured, rather than a truly complete search for causal factors. Perhaps more broadly - it would also benefit the manuscript to devote slightly more text to describing the kinds of scenarios where RCSP (and similar ideas) would be most appropriately applied - perhaps a well-powered, phenotype annotated perturb-seq dataset performed in a disease relevant primary cell.</p></body></sub-article><sub-article article-type="referee-report" id="sa2"><front-stub><article-id pub-id-type="doi">10.7554/eLife.100949.3.sa2</article-id><title-group><article-title>Reviewer #2 (Public review):</article-title></title-group><contrib-group><contrib contrib-type="author"><anonymous/><role specific-use="referee">Reviewer</role></contrib></contrib-group></front-stub><body><p>Summary:</p><p>This paper presents a very interesting use of a causal graph framework to identify the &quot;root genes&quot; of a disease phenotype. Root genes are the genes that cause a cascade of events that ultimately leads to the disease phenotype, assuming the disease progression is linear.</p><p>Strengths:</p><p>- The methodology has a solid theoretical background.</p><p>- This is a novel use of the causal graph framework to infer root causes in a graph</p><p>Comments on revisions:</p><p>The authors addressed all of my comments.</p></body></sub-article><sub-article article-type="author-comment" id="sa3"><front-stub><article-id pub-id-type="doi">10.7554/eLife.100949.3.sa3</article-id><title-group><article-title>Author response</article-title></title-group><contrib-group><contrib contrib-type="author"><name><surname>Strobl</surname><given-names>Eric V</given-names></name><role specific-use="author">Author</role><aff><institution>University of Pittsburgh</institution><addr-line><named-content content-type="city">Pittsburgh</named-content></addr-line><country>United States</country></aff></contrib><contrib contrib-type="author"><name><surname>Gamazon</surname><given-names>Eric</given-names></name><role specific-use="author">Author</role><aff><institution>Vanderbilt University Medical Center</institution><addr-line><named-content content-type="city">Nashville</named-content></addr-line><country>United States</country></aff></contrib></contrib-group></front-stub><body><p>The following is the authors’ response to the original reviews.</p><disp-quote content-type="editor-comment"><p><bold>Reviewer 1:</bold></p><p>(1) The notion of a “root” causal gene - which the authors define based on a graph theoretic notion of topologically sorting graphs - requires a graph that is directed and acyclic. It is the latter that constitutes an important weakness here - it simply is a large simplification of human biology to draw out a DAG including hundreds of genes and a phenotype <italic>Y</italic> and to claim that the true graph contains no cycles.</p></disp-quote><p>We agree that real causal graphs in biology often contain cycles. We now include additional experimental results with cyclic directed graphs in the Supplementary Materials. RCSP outperformed the other algorithms even in this setting, but we caution the reader that the theoretical interpretation of the RCS score may not coincide with a root causal effect when cycles exist:</p><p>“We also evaluated the algorithms on directed graphs with cycles. We generated a linear SEM over <italic>ρ</italic> + 1 = 1000 variables in <inline-formula><mml:math id="sa3m1"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. We sampled the coefficient matrix <italic>β</italic> from a Bernoulli (1/(<italic>p</italic> − 1)) distribution but did not restrict the non-zero coefficients to the upper triangular portion of the matrix. We then proceeded to permute the variable ordering and weight each entry as in the Methods for the DAG. We repeated this procedure 30 times and report the results in Supplementary Figure 3.</p><p>RCSP again outperformed all other algorithms even in the cyclic case. The results suggest that conditioning on the surrogate ancestors also estimates the RCS well even in the cyclic case. However, we caution that an error term <italic>Ei</italic> can affect the ancestors of <inline-formula><mml:math id="sa3m2"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> when cycles exist. As a result, the RCS may not isolate the causal effect of the error term and thus not truly coincide with the notion of a root causal effect in cyclic causal graphs.”</p><disp-quote content-type="editor-comment"><p>(2) I also encourage the authors to consider more carefully when graph structure learned from Perturb-seq can be ported over to bulk RNA-seq. Presumably this structure is not exactly correct - to what extent is the RCSP algorithm sensitive to false edges in this graph? This leap - from cell line to primary human cells - is also not modeled in the simulation. Although challenging - it would be ideal for the RCSP to model or reflect the challenges in correctly identifying the regulatory structure.</p></disp-quote><p>We now include additional experimental results, where we gradually increased the incongruence between the DAG modeling the Perturb-seq and the DAG modeling the bulk RNA-seq using a mixture of graphs. The performance of RCSP degraded gradually, rather than abruptly, with increasing incongruence. We therefore conclude that RCSP is robust to differences between the causal graphs representing Perturb-seq and bulk RNA-seq:</p><p>“We next assessed the performance of RCSP when the DAG underlying the Perturb-seq data differs from the DAG underlying the bulk RNA-seq data. We considered a mixture of two random DAGs in bulk RNA-seq, where one of the DAGs coincided with the Perturb-seq DAG and second alternate DAG did not. We instantiated and simulated samples from each DAG as per the previous subsection. We generated 0%, 25%, 50%, 75%, and 100% of the bulk RNA-seq samples from the alternate DAG, and the rest from the Perturb-seq DAG. We ideally would like to see the performance of RCSP degrade gracefully, as opposed to abruptly, as the percent of samples derived from the alternate DAG increases.</p><p>We summarize results in Supplementary Figure 4. As expected, RCSP performed the best when we drew all samples from the same underlying DAG for Perturb-seq and bulk RNA-seq. However, the performance of RCSP also degraded slowly as the percent of samples increased from the alternate DAG. We conclude that RCSP can accommodate some differences between the underlying DAGs in Perturb-seq and bulk RNA-seq with only a mild degradation in performance.”</p><disp-quote content-type="editor-comment"><p>(3) It should also be noted that in most Perturb-seq experiments, the entire genome is not perturbed, and frequently important TFs (that presumably are very far “upstream” and thus candidate “root” causal genes) are not expressed highly enough to be detected with scRNA-seq. In that context - perhaps slightly modifying the language regarding RCSP’s capabilities might be helpful for the manuscript - perhaps it would be better to describe it as an algorithm for causal discovery among a set of genes that were perturbed and measured, rather than a truly complete search for causal factors. Perhaps more broadly it would also benefit the manuscript to devote slightly more text to describing the kinds of scenarios where RCSP (and similar ideas) would be most appropriately applied - perhaps a well-powered, phenotype annotated Perturb-seq dataset performed in a disease relevant primary cell.</p></disp-quote><p>We now clarify that Perturb-seq can only identify root causal genes among the perturbed set of genes in the Discussion:</p><p>“Modern genome-wide Perturb-seq datasets also adequately perturb and measure only a few thousand, rather than all, gene expression levels. RCSP can only identify root causal genes within this perturbed and measured subset.”</p><p>We now also describe the scenario where RCSP can identify root causal genes well in the Introduction:</p><p>“Experiments demonstrate marked improvements in performance, when investigators have access to a large bulk RNA-seq dataset and a genome-wide Perturb-seq dataset from a cell line of a disease-relevant tissue.”</p><disp-quote content-type="editor-comment"><p><bold>Reviewer 2:</bold></p><p>(1) The process from health-to-disease is not linear most of the time with many checks along the way that aim to prevent the disease phenotype. This leads to a non-deterministic nature of the path from health-to-disease. In other words, with the same root gene perturbations, and depending on other factors outside of gene expression, someone may develop a phenotype in a year, another in 10 years and someone else never. Claiming that this information is included in the error terms might not be sufficient to address this issue. The authors should discuss this limitation.</p></disp-quote><p>The proposed approach accommodates the above non-deterministic nature. The error terms of <inline-formula><mml:math id="sa3m3"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> model factors that are outside of gene expression. We model the relation from gene expression to <italic>Y</italic> as probabilistic rather than deterministic because <inline-formula><mml:math id="sa3m4"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>, where <italic>EY</italic> introduces stochasticity. Thus, two individuals with the same instantiations of the root causes may develop disease differently. We now clarify this in Methods:</p><p>“The error terms model root causes that are outside of gene expression, such as genetic variation or environmental factors. Moreover, the relation from gene expression to <italic>Y</italic> is stochastic because <inline-formula><mml:math id="sa3m5"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mi mathvariant="normal">a</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>Y</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>, where <italic>EY</italic> introduces the stochasticity. Two individuals may therefore have the exact same error term values over <inline-formula><mml:math id="sa3m6"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula> but different instantiations of Y.”</p><disp-quote content-type="editor-comment"><p>(2) The paper assumes that the network connectivity will remain the same after perturbation. This is not always true due to backup mechanisms in the cells. For example, suppose that a cell wants to create product <italic>P</italic> and it can do it through two alternative paths: Path #1: <italic>A</italic> → <italic>B</italic> → <italic>P</italic>, Path #2: <italic>A</italic> → <italic>C</italic> → <italic>P</italic>. Now suppose that path #1 is more efficient, so when <italic>B</italic> can be produced, path #2 is inactive. Once the perturbation blocks element <italic>B</italic> from being produced, the graph connectivity changes by activation of path #2. I did not see the authors taking this into consideration, which seems to be a major limitation in using Perturb-seq results to infer conductivities.</p></disp-quote><p>We agree that backup mechanisms can exist and therefore now include additional experimental results, where we gradually increased the incongruence between the DAG modeling the Perturb-seq and the DAG modeling the bulk RNA-seq using a mixture of graphs. The performance of RCSP degraded gradually, rather than abruptly, with increasing incongruence. We therefore conclude that RCSP is robust to differences between the causal graphs representing Perturb-seq and bulk RNA-seq:</p><p>“We next assessed the performance of RCSP when the DAG underlying the Perturb-seq data differs from the DAG underlying the bulk RNA-seq data. We considered a mixture of two random DAGs in bulk RNA-seq, where one of the DAGs coincided with the Perturb-seq DAG and second alternate DAG did not. We generated 0%, 25%, 50%, 75%, and 100% of the bulk RNA-seq samples from the alternate DAG, and the rest from the Perturb-seq DAG. We ideally would like to see the performance of RCSP degrade gracefully, as opposed to abruptly, as the percent of samples derived from the alternate DAG increases.</p><p>We summarize results in Supplementary Figure 4. As expected, RCSP performed the best when we drew all samples from the same underlying DAG for Perturb-seq and bulk RNA-seq. However, the performance of RCSP also degraded slowly as the percent of samples increased from the alternate DAG. We conclude that RCSP can accommodate some differences between the underlying DAGs in Perturb-seq and bulk RNA-seq with only a mild degradation in performance.”</p><disp-quote content-type="editor-comment"><p>(3) There is substantial system heterogeneity that may cause the same phenotype. This goes beyond the authors claim that although the initial gene causes of a disease may differ from person to person, at some point they will all converge to changes in the same set of “root genes.” This is not true for many diseases, which are defined based on symptoms and lab tests at the patient level. You may have two completely different molecular pathologies that lead to the development of the same symptoms and test results. Breast cancer with its subtypes is a prime example of that. In theory, this issue could be addressed if there is infinite sample size. However, this assumption is largely violated in all existing biological datasets.</p></disp-quote><p>The proposed method accommodates the above heterogeneity. We do not assume that the root causes affect the same set of root causal genes. Instead the root causes <italic>and</italic> root causal genes may vary from person to person. We write in the Introduction:</p><p>“The problem is further complicated by the existence of complex disease, where a patient may have multiple root causal genes that differ from other patients even within the same diagnostic category... We thus also seek to identify <italic>patient-specific</italic> root causal genes in order to classify patients into meaningful biological subgroups each hopefully dictated by only a small group of genes.”</p><p>The root causal genes may further affect different downstream genes at the patient-specific level. However root causal genes tend to have many downstream effects so that virtually every gene expression level becomes correlated with <italic>Y</italic>. We now clarify this by describing the omnigenic root causal model in the Introduction as follows:</p><p>“Finally, application of the algorithm to two complex diseases with disparate pathogeneses recovers an <italic>omnigenic root causal model</italic>, where a small set of root causal genes drive pathogenesis but impact many downstream genes within each patient. As a result, nearly all gene expression levels are correlated with the diagnosis at the population level.”</p><disp-quote content-type="editor-comment"><p>(4) Were the values of the synthetic variables Z-scored?</p></disp-quote><p>Yes, all variables were z-scored. We now clarify this in Methods:</p><p>“We also standardized all variables before running the regressions to prevent gaming of the marginal variances in causal discovery (Reisach et al., 2021; Ng et al., 2024).”</p><disp-quote content-type="editor-comment"><p>(5) The algorithm seems to require both RNA-seq and Perturb-seq data (Algorithm 1, page 14). Can it function with RNA-seq data only? What will be different in this case?</p></disp-quote><p>The algorithm cannot function with observational bulk RNA-seq data only. We included Perturb-seq because causal discovery with observational RNA-seq data alone tends to be inaccurate and unstable, as highlighted by the results of CausalCell. We further emphasize that we do not rely on d-separation faithfulness in Methods, which is typically required for causal discovery from observational data alone:</p><p>“We can also claim the backward direction under d-separation faithfulness. We however avoid making this additional assumption because real biological data may not arise from distributions obeying d-separation faithfulness in practice.”</p><disp-quote content-type="editor-comment"><p>(6) Synthetic data generation: how many different graphs (SEMs) did they start from? (30?) How many samples per graph? Did they test different sample sizes?</p></disp-quote><p>We now clarify that we generate 30 random SEMs, each associated with a DAG. We used 200 samples for the bulk RNA-seq to mimic a relatively large but common sample size. We also drew 200 samples for each perturbation or control in the Perturb-seq data. We did not consider multiple sample sizes due to the time required to complete each run. Instead, we focused on a typical scenario where investigators would apply RCSP. We now write the following in the Methods:</p><p>“We drew 200 samples for the bulk RNA-seq data to mimic a large but common dataset size. We introduced knockdown perturbations in Perturb-seq by subtracting an offset of two in the softplus function: <inline-formula><mml:math id="sa3m7"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">←</mml:mo><mml:mi>softplus</mml:mi><mml:mo>⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>−</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>. We finally drew 200 samples for the control and each perturbation condition to generate the Perturb-seq data. We repeated the above procedure 30 times.” We also include the following in Results:</p><p>“We obtained 200 cell samples from each perturbation, and another 200 controls without perturbations. We therefore generated a total of 2501 × 200 = 500,200 single cell samples for each Perturb-seq dataset. We simulated 200 bulk RNA-seq samples.”</p><disp-quote content-type="editor-comment"><p>(7) The presentation of comparative results (Supplementary Figures 4 and 7) is not clear. No details are given on how these results were generated. (what does it mean “The first column denotes the standard deviation of the outputs for each algorithm?”) Why all other methods have higher SD differences than RCSP? Is it a matter of scaling? Shouldn’t they have at least some values near zero since the authors “added the minimum value so that all histograms begin at zero?”</p></disp-quote><p>Each of these supplementary figures contains a 6 by 3 table of figures. By the first column, we mean column one (with rows 1 through 6) of each figure. The D-RCS and D-SD scores represent standard deviations of the RCS and SD scores from zero of each gene, respectively. We can similarly compute the standard deviation of the outputs of the algorithms. We now clarify this in the Supplementary Materials:</p><p>“The figure contains 6 rows and 3 columns. Similar to the D-RCS, we can compute the standard deviation of the output of each algorithm from zero for each gene. The first column in Supplementary Figure 7 denotes the histograms of these standard deviations across the genes.”</p><p>Many histograms do not appear to start at zero because the bars are too small to be visible. We now clarify this in the Supplementary Materials as well:</p><p>“Note that the bars at zero are not visible for many algorithms, since only a few genes attained standard deviations near the minimum.”</p><disp-quote content-type="editor-comment"><p>(8) Why RCSP results are more like a negative binomial distribution and every other is kind of normal?</p></disp-quote><p>All other methods have higher standard deviations than RCSP because they fail to compute an accurate measure of the root causal effect. Recall that, just like a machine has a few root causal problems, only a few root casual genes have large root causal effects under the omnigenic root causal model. The results of RCSP look more like a negative binomial distribution because most RCS scores are concentrated around zero and only a few RCS scores are large – consistent with the omnigenic root causal model. The other algorithms fail to properly control for the upstream genes and thus attain large standard deviations for nearly all genes. We now clarify these points in the Supplementary Materials as follows:</p><p>“If an algorithm accurately identifies root causal genes, then it should only identify a few genes with large conditional root causal effects under the omnigenic root causal model. The RCSP algorithm had a histogram with large probability mass centered around zero with a long tail to the right. The standard deviations of the outputs of the other algorithms attained large values for nearly all genes. Incorporating feature selection and causal discovery with CausalCell introduced more outliers in the histogram of ANM. We conclude that only RCSP detected an omnigenic root causal model.”</p><disp-quote content-type="editor-comment"><p>(9) What is the significance of genes changing expression “from left to right” in a UMAP plot? (e.g., Fig. 3h and 3g)</p></disp-quote><p>The first UMAP dimension captured the variability of the RCS scores for most root causal genes. As a result, we could focus our analysis on the black cluster in Figure 3 (g) with large RCS scores in the subsequent pathway enrichment analysis summarized in Figure 3 (j). If two dimensions were involved, then we would need to analyze at least two clusters (e.g., black and pink), but this was not the case. We now clarify this in Results:</p><p>“The RCS scores of most of the top genes exhibited a clear gradation increasing only from the left to the right hand side of the UMAP embedding; we plot an example in Figure 3 (h). We found three exceptions to this rule among the top 30 genes (example in Figure 3 (i) and see Supplementary Materials). RCSP thus detected genes with large RCS scores primarily in the black cluster of Figure 3 (g). Pathway enrichment analysis within this cluster alone yielded supra-significant results on the same pathway detected in the global analysis...”</p><disp-quote content-type="editor-comment"><p>(10) The authors somewhat overstate the novelty of their algorithm. Representation of GRNs as causal graphs dates back in 2000 with the work of Nir Friedman in yeast. Other methods were developed more recently that look on regulatory network changes at the single sample level which the authors do not seem to be aware (e.g., Ellington et al, NeurIPS 2023 workshop GenBio and Bushur et al, 2019, Bioinformatics are two such examples). The methods they mention are for single cell data and they are not designed to connect single sample-level changes to a person’s phenotype. The RCS method needs to be put in the right background context in order to bring up what is really novel about it.</p></disp-quote><p>We agree that many methods already exist for uncovering associational, predictive (Markov, neighborhood) and causal gene regulatory networks. We now cite the above papers. However, the novelty in our manuscript is not causal graph discovery, but rather estimation of root causal effects, detection of root causal genes, and the proposal of the omnigenic root causal model. We now clarify this in the</p><p>Introduction:</p><p>“Many algorithms focus on discovering associational or predictive relations, sometimes visually represented as gene regulatory networks (Costa et al., 2017; Ellington et al., 2023). Other methods even identify causal relations (Friedman et al., 2000; Wang et al., 2023; Wen et al., 2000; Buschur et al., 2000), but none pinpoint the <italic>first</italic> gene expression levels that ultimately generate the vast majority of pathogenesis. Simply learning a causal graph does not resolve the issue because causal graphs do not summarize the effects of <italic>unobserved</italic> root causes, such as unmeasured environmental changes or variants, that are needed to identify all root causal genes. We therefore define the Root Causal Strength (RCS) score...”</p><disp-quote content-type="editor-comment"><p><bold>Reviewer 3:</bold></p><p>(1) Several assumptions of the method are problematic. The most concerning is that the observational expression changes are all causally upstream of disease. There is work using Mendelian randomization (MR) showing that the <italic>opposite</italic> is more likely to be true: most differential expression in disease cohorts is a consequence rather than a cause of disease (Porcu et al., 2021). Indeed, the oxidative stress of AMD has known cellular responses including the upregulation of p53. The authors need to think carefully about how this impacts their framework. Can the theory say anything in this light? Simulations could also be designed to address robustness.</p></disp-quote><p>Strictly speaking, we believe that differential expression in disease most likely has a cyclic causal structure: gene expression causes a diagnosis or symptom severity, and a diagnosis or symptom severity lead to treatments and other behavioral changes that perturb gene expression. For example, revTMWR in Porcu et al. (2021) uses trans-variants that are less likely to <italic>directly</italic> cause gene expression and instead directly cause a phenotype. However, TWMR as proposed in Porcu et al. (2019) instead uses cis-eQTLs and finds many putative causal relations from gene expression to phenotype. Thus, both causal directions likely hold.</p><p>RCSP uses disease-relevant tissue believed to harbor gene expression levels that cause disease. However, RCSP theoretically cannot handle the scenario where <italic>Y</italic> is a non-sink vertex <italic>and</italic> is a parent of a gene expression level because modern Perturb-seq datasets usually do not perturb or measure <italic>Y</italic>. We therefore empirically investigated the degree of error by running experiments, where we set <italic>Y</italic> to a non-sink vertex, so that it can cause gene expression. We find that the performance of RCSP degrades considerably for gene expression levels that contain <italic>Y</italic> as a parent. Thus RCSP is sensitive to violations of the sink target assumption:</p><p>“We finally considered the scenario where <italic>Y</italic> is a non-sink (or non-terminal) vertex. If <italic>Y</italic> is a parent of a gene expression level, then we cannot properly condition on the parents because modern Perturbseq datasets usually do not intervene on <italic>Y</italic> or measure <italic>Y</italic> . We therefore empirically investigated the degradation in performance resulting from a non-sink target <italic>Y</italic>, in particular for gene expression levels where <italic>Y</italic> is a parent. We again simulated 200 samples from bulk RNA-seq and each condition of Perturbseq with a DAG over 1000 vertices, an expected neighborhood size of 2 and a non-sink target <italic>Y</italic> . We then removed the outgoing edges from <italic>Y</italic> and resampled the DAG with a sink target. We compare the results of RCSP for both DAGs in gene expression levels where <italic>Y</italic> is a parent. We plot the results in Supplementary Figure 5. As expected, we observe a degradation in performance when <italic>Y</italic> is not terminal, where the mean RMSE increased from 0.045 to 0.342. We conclude that RCSP is sensitive to violations of the sink target assumption.”</p><disp-quote content-type="editor-comment"><p>(2) A closely related issue is the DAG assumption of no cycles. This assumption is brought to bear because it is required for much classical causal machinery, but is unrealistic in biology where feedback is pervasive. How robust is RCSP to (mild) violations of this assumption? Simulations would be a straightforward way to address this.</p></disp-quote><p>We agree that real causal graphs in biology often contain cycles. We now include additional experimental results with cyclic directed graphs in the Supplementary Materials. RCSP outperformed the other algorithms even in this setting, but we caution the reader that the theoretical interpretation of the RCS score may not coincide with a root causal effect when cycles exist:</p><p>“We also evaluated the algorithms on directed graphs with cycles. We generated a linear SEM over <italic>p</italic> + 1 = 1000 variables in <inline-formula><mml:math id="sa3m8"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>. We sampled the coefficient matrix <italic>β</italic> from a Bernoulli (1/(<italic>p</italic> − 1)) distribution but did not restrict the non-zero coefficients to the upper triangular portion of the matrix. We then proceeded to permute the variable ordering and weight each entry as in the Methods for the DAG. We repeated this procedure 30 times and report the results in Supplementary Figure 3.</p><p>RCSP again outperformed all other algorithms even in the cyclic case. The results suggest that conditioning on the surrogate ancestors also estimates the RCS well even in the cyclic case. However, we caution that an error term <italic>Ei</italic> can affect the ancestors of <inline-formula><mml:math id="sa3m9"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">¯</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:mstyle></mml:math></inline-formula>, when cycles exist. As a result, the RCS may not isolate the causal effect of the error term and thus not truly coincide with the notion of a root causal effect in cyclic causal graphs.”</p><disp-quote content-type="editor-comment"><p>(3) The authors spend considerable effort arguing that technical sampling noise in <italic>X</italic> can effectively be ignored (at least in bulk). While the mathematical arguments here are reasonable, they miss the bigger picture point that the measured gene expression <italic>X</italic> can only ever be a noisy/biased proxy for the expression changes that caused disease: (1) Those events happened before the disease manifested, possibly early in development for some conditions like neurodevelopmental disorders. (2) bulk RNA-seq gives only an average across cell-types, whereas specific cell-types are likely “causal.” (3) only a small sample, at a single time point, is typically available. Expression in other parts of the tissue and at different times will be variable.</p></disp-quote><p>We agree that many other sources of error exist. The causal model of RNA-expression in Methods corresponds to a single snapshot in time for each sample. We now clarify this in the Methods as follows:</p><p>“We represent a snapshot of a biological causal process using an SEM over <inline-formula><mml:math id="sa3m10"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mrow><mml:mover><mml:mi>X</mml:mi><mml:mo>~</mml:mo></mml:mover></mml:mrow><mml:mo>∪</mml:mo><mml:mi>y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula> obeying Equation (3).”</p><p>We thus only detect the root causal genes in a single snapshot in time for each sample in bulk RNA-seq. If we cannot detect the root causal effect in a gene due to the signal washing out over time as in (1), or if the root causal effect in different cell types cancel each other out to exactly zero in bulk as in (2), then we cannot detect those root causal genes even with an infinite sample size.</p><disp-quote content-type="editor-comment"><p>(4) While there are connections to the omnigenic model, the latter is somewhat misrepresented. The authors refer to the “core genes” of the omnigenic model as being at the end (longitudinal) of pathogenesis. The omnigenic model makes no statements about temporal ordering: in causal inference terminology the core genes are simply the direct causes of disease.</p></disp-quote><p>We now clarify that we use the word <italic>pathogenesis</italic> to mean the causal cascade from root causes to the diagnosis. In this case, the direct causes of the diagnosis correspond to the end of pathogenesis, while the root causes correspond to the beginning. For example, if <inline-formula><mml:math id="sa3m11"><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">→</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">→</mml:mo><mml:mi>Y</mml:mi></mml:mrow></mml:mstyle></mml:math></inline-formula>, with <italic>Y</italic> a diagnosis, then <italic>X</italic><sub>1</sub> is a root causal gene while <italic>X</italic><sub>2</sub> is a core (direct causal) gene. We now clarify this in the Introduction:</p><p>“<italic>Root causes of disease</italic> correspond to the most upstream causes of a diagnosis with strong causal effects on the diagnosis. <italic>Pathogenesis</italic> refers to the causal cascade from root causes to the diagnosis. Genetic and non-genetic factors may act as root causes and affect gene expression as an intermediate step during pathogenesis. We introduce root causal gene expression levels – or <italic>root causal genes</italic> for short – that correspond to the initial changes to <italic>gene expression</italic> induced by genetic and non-genetic root causes that have large causal effects on a downstream diagnosis (Figure 1 (a)). Root causal genes differ from core genes that directly cause the diagnosis and thus lie at the end, rather than at the beginning, of pathogenesis (Boyle et al., 2017).”</p><disp-quote content-type="editor-comment"><p>(5) A key observation underlying the omnigenic model is that genetic heritability is spread throughout the genome (and somewhat concentrated near genes expressed in disease relevant cell types). This implies that (almost) all expressed genes, or their associated (e)SNPs, are “root causes”.</p></disp-quote><p>We now clarify that genetic heritability can be spread throughout the genome in the omnigenic root causal model as well in the Discussion:</p><p>“Further, each causal genetic variant tends to have only a small effect on disease risk in complex disease because the variant can directly cause <italic>Y</italic> or directly cause any causal gene including those with small root causal effects on <italic>Y</italic> ; thus, all error terms that cause <italic>Y</italic> can model genetic effects on <italic>Y</italic>. However, the root causal model further elaborates that genetic <italic>and non-genetic factors</italic> often combine to produce a few root causal genes with large root causal effects, where non-genetic factors typically account for the majority of the large effects in complex disease. Many variants may therefore cause many genes in diseases with only a few root causal genes.”</p><p>We finally add Figure 5 into the Discussion as a concrete example illustrating the omnigenic root causal model:</p><disp-quote content-type="editor-comment"><p>(6) The claim that root causal genes would be good therapeutic targets feels unfounded. If these are highly variable across individuals then the choice of treatment becomes challenging. By contrast the causal effects may converge on core genes before impacting disease, so that intervening on the core genes might be preferable. The jury is still out on these questions, so the claim should at least be made hypothetical.</p></disp-quote><p>We clarify that we do not claim that root causal genes are better treatment targets than core genes in terms of magnitudes of causal effects on the phenotype. For example, in the common cold with a virus as the root cause, giving a patient an antiviral will eliminate fever and congestion, but so will giving a decongestant and an antipyretic. We only claim that treating root causal genes can eliminate disease near its pathogenic onset, just like giving an antiviral can eliminate the viral load and stop pathogenesis. We write the following the Introduction:</p><p>“Treating root causal genes can modify disease pathogenesis in its entirety, whereas targeting other causes may only provide symptomatic relief... Identifying root causal genes is therefore critical for developing treatments that eliminate disease near its pathogenic onset.”</p><p>We also further clarify in the Discussion that root causal genes account for deleterious causal effects not captured by the diagnosis <italic>Y</italic>:</p><p>“We finally emphasize that the root causal model accounts for all deleterious effects of the root causal genes, whereas the core gene model only captures the deleterious effects captured by the diagnosis <italic>Y</italic>. For example, the <italic>disease</italic> of diabetes causes retinopathy, but retinopathy is not a part of the diagnostic criteria of diabetes. As a result, the gene expression levels that cause retinopathy but not the <italic>diagnosis</italic> of diabetes are not core genes, even though they are affected by the root causal genes.”</p><p>We do agree that root causal genes may differ substantially between patients, although it is unclear if the heterogeneity is too great to develop treatments.</p><disp-quote content-type="editor-comment"><p>(7) The closest thing to a gold standard I believe we have for “root causal genes” is integration of molecular QTLs and GWAS, specifically coloc/MR. Here the “E” of RCSP are explicitly represented as SNPs. I don’t know if there is good data for AMD but there certainly is for MS. The authors should assess the overlap with their results. Another orthogonal avenue would be to check whether the root causal genes change early in disease progression.</p></disp-quote><p>Colocalization and Mendelian randomization unfortunately cannot identify root causal effects because they all attempt, either heuristically (colocalization) or rigorously (MR), to identify variants that cause each gene expression level rather than variants that <italic>directly</italic> cause each gene expression level and thus make up the error terms. We therefore need new methods that can identify direct causal variants in order to assess overlap.</p><p>We checked whether root causal genes change early in disease progression using knowledge of pathogenesis. In particular, oxidative stress induces pathogenesis in AMD, and RCSP identified root causal genes involved in oxidative stress in AMD:</p><p>“The pathogenesis of AMD involves the loss of RPE cells. The RPE absorbs light in the back of the retina, but the combination of light and oxygen induces oxidative stress, and then a cascade of events such as immune cell activation, cellular senescence, drusen accumulation, neovascularization and ultimately fibrosis (Barouch et al., 2007). We therefore expect the root causal genes of AMD to include genes involved in oxidative stress during early pathogenesis. The gene MIPEP with the highest D-RCS score in Figure 3 (d) indeed promotes the maturation of oxidative phosphorylation-related proteins (Shi et al., 2011). The second gene SLC7A5 is a solute carrier that activates mTORC1 whose hyperactivation increases oxidative stress via lipid peroxidation (Nachef et al., 2021; Go et al., 2020). The gene HEATR1 is involved in ribosome biogenesis that is downregulated by oxidative stress (Turi et al., 2018). The top genes discovered by RCSP thus identify pathways known to be involved in oxidative stress.”</p><p>Similarly, T cell infiltration across the blood brain barrier initiates pathogenesis in MS, and RCSP identified root causal genes involved in this infiltration:</p><p>“Genes with the highest D-RCS scores included MNT, CERCAM and HERPUD2 (Figure 4 (d)). MNT is a MYC antagonist that modulates the proliferative and pro-survival signals of T cells after engagement of the T cell receptor (Gnanaprakasam et al., 2017). Similarly, CERCAM is an adhesion molecule expressed at high levels in microvessels of the brain that increases leukocyte transmigration across the blood brain barrier (Starzyk et al., 2000). HERPUD2 is involved in the endoplasmic-reticulum associated degradation of unfolded proteins (Kokame et al., 2000). Genes with the highest D-RCS scores thus serve key roles in known pathogenic pathways of MS.”</p><disp-quote content-type="editor-comment"><p>(8) The available Perturb-seq datasets have limitations beyond on the control of the authors. (1) The set of genes that are perturbed. The authors address this by simply sub-setting their analysis to the intersection of genes represented in the perturbation and observational data. However, this may mean that a true ancestor of X is not modeled/perturbed, limiting the formal claims that can be made. Additionally, some proportion of genes that are nominally perturbed show little to no actual perturbation effect (for example, due to poor guide RNA choice) which will also lead to missing ancestors.</p></disp-quote><p>We now clarify that Perturb-seq can only identify root causal genes among the adequately perturbed set of genes in the Discussion:</p><p>“Modern genome-wide Perturb-seq datasets also only adequately perturb and measure a few thousand, rather than all, gene expression levels. RCSP can only identify root causal genes within this perturbed and measured subset.”</p><disp-quote content-type="editor-comment"><p>(9) The authors provide no mechanism for statistical inference/significance for their results at either the individual or aggregated level. While I am a proponent of using effect sizes more than p-values, there is still value in understanding how much signal is present relative to a reasonable null.</p></disp-quote><p>We now explain that RCSP does not perform statistical inference in Methods because it is not clear how to define the appropriate cut-off for the RCS score under the null distribution:</p><p>“We focus on statistical estimation rather than statistical inference because Φ<italic>i &gt;</italic> 0 when <italic>Ei</italic> causes <italic>Y</italic> under mild conditions, so we reject the null hypothesis that Φ<italic>i</italic> = 0 for many genes if many gene expression levels cause <italic>Y</italic>. However, just like a machine typically breaks down due to only one or a few root causal problems, we hypothesize that only a few genes have large RCS scores Φ<italic>i</italic> ≫ 0 even in complex disease.”</p><disp-quote content-type="editor-comment"><p>(10) I agree with the authors that age coming out of a “root cause” is potentially encouraging. However, it is also quite different in nature to expression, including being “measured” exactly. Will RCSP be biased towards variables that have lower measurement error?</p></disp-quote><p>We tested the above hypothesis by plotting sequencing depth against the D-RCS scores of each gene. We observed a small negative correlation between sequencing depth and D-RCS scores, indicating the D-RCS scores are slightly biased upwards with low sequencing depth. However, genes with the largest D-RCS scores exhibited a wide variety of sequencing depths in both MS and AMD, suggesting that sequencing depth has minimal effect on the largest D-RCS scores. We now explain these results for AMD in the Supplementary Materials:</p><p>“Theorem 1 states that RCS scores may exhibit bias with insufficient sequencing depth. The genes with large D-RCS scores may therefore simply have low sequencing depths. To test this hypothesis, we plotted sequencing depth against D-RCS scores. Consistent with Theorem 1, we observed a small negative correlation between D-RCS and sequencing depth (<italic>ρ</italic> = −0.16, p=2.04E-13), and D-RCS scores exhibited greater variability at the lowest sequencing depths (Supplementary Figure 8). However, genes with the largest D-RCS scores had mean sequencing depths interspersed between 20 and 3000. We conclude that genes with the largest D-RCS scores had a variety of sequencing depths ranging from low to high.”</p><p>We also report the results for MS:</p><p>“We plot sequencing depth against the D-RCS scores of each gene similar to the AMD dataset. We again observed a small negative correlation (<italic>ρ</italic> = −0.136, p_&lt;_2.2E-16), indicating that genes with low sequencing depths had slightly higher D-RCS scores on average (Supplementary Figure 12). However, genes with the largest D-RCS scores again had a variety of sequencing depths. We conclude that sequencing depth has minimal correlation with the largest D-RCS scores.”</p><disp-quote content-type="editor-comment"><p>(11) Finally, it’s a stretch to call K562 cells “lymphoblasts.” They are more myeloid than lymphoid.</p></disp-quote><p>We now clarify that K562 cells are undifferentiated blast cells that can be induced to differentiate into lymphoblasts in Results:</p><p>“We next ran RCSP on 137 samples collected from CD4+ T cells of multiple sclerosis (MS; GSE137143) as well as Perturb-seq data of 1,989,578 undifferentiated blast cells that can be induced to differentiate into lymphoblasts, or the precursors of T cells and other lymphocytes.”</p></body></sub-article></article>