<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1d3 20150301//EN" "http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd">
<article article-type="research-article" dtd-version="1.1d3" xml:lang="en" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">PLoS Comput Biol</journal-id>
<journal-id journal-id-type="publisher-id">plos</journal-id>
<journal-id journal-id-type="pmc">ploscomp</journal-id>
<journal-title-group>
<journal-title>PLOS Computational Biology</journal-title>
</journal-title-group>
<issn pub-type="ppub">1553-734X</issn>
<issn pub-type="epub">1553-7358</issn>
<publisher>
<publisher-name>Public Library of Science</publisher-name>
<publisher-loc>San Francisco, CA USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.1371/journal.pcbi.1008495</article-id>
<article-id pub-id-type="publisher-id">PCOMPBIOL-D-20-01281</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
<subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Applied mathematics</subject><subj-group><subject>Algorithms</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Simulation and modeling</subject><subj-group><subject>Algorithms</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Optimization</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Systems biology</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Systems science</subject><subj-group><subject>Systems biology</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Systems science</subject><subj-group><subject>Systems biology</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Medicine and health sciences</subject><subj-group><subject>Oncology</subject><subj-group><subject>Cancer treatment</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Chemistry</subject><subj-group><subject>Chemical properties</subject><subj-group><subject>Dimerization</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Physical sciences</subject><subj-group><subject>Chemistry</subject><subj-group><subject>Physical chemistry</subject><subj-group><subject>Chemical properties</subject><subj-group><subject>Dimerization</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Software tools</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Software tools</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Medicine and health sciences</subject><subj-group><subject>Oncology</subject><subj-group><subject>Cancers and neoplasms</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Measurement</subject><subj-group><subject>Time measurement</subject></subj-group></subj-group></subj-group></article-categories>
<title-group>
<article-title>Confidence intervals by constrained optimization—An algorithm and software package for practical identifiability analysis in systems biology</article-title>
<alt-title alt-title-type="running-head">Practical identifiability analysis by constrained optimization</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes" equal-contrib="yes" xlink:type="simple">
<contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-2887-1903</contrib-id>
<name name-style="western">
<surname>Borisov</surname>
<given-names>Ivan</given-names>
</name>
<role content-type="https://casrai.org/credit/">Investigation</role>
<role content-type="https://casrai.org/credit/">Validation</role>
<role content-type="https://casrai.org/credit/">Visualization</role>
<role content-type="https://casrai.org/credit/">Writing – original draft</role>
<xref ref-type="corresp" rid="cor001">*</xref>
<xref ref-type="aff" rid="aff001"/>
</contrib>
<contrib contrib-type="author" equal-contrib="yes" xlink:type="simple">
<contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0001-6612-5373</contrib-id>
<name name-style="western">
<surname>Metelkin</surname>
<given-names>Evgeny</given-names>
</name>
<role content-type="https://casrai.org/credit/">Conceptualization</role>
<role content-type="https://casrai.org/credit/">Data curation</role>
<role content-type="https://casrai.org/credit/">Supervision</role>
<role content-type="https://casrai.org/credit/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"/>
</contrib>
</contrib-group>
<aff id="aff001"><addr-line>INSYSBIO LLC, Moscow, Russia</addr-line></aff>
<contrib-group>
<contrib contrib-type="editor" xlink:type="simple">
<name name-style="western">
<surname>Beard</surname>
<given-names>Daniel A.</given-names>
</name>
<role>Editor</role>
<xref ref-type="aff" rid="edit1"/>
</contrib>
</contrib-group>
<aff id="edit1"><addr-line>University of Michigan, UNITED STATES</addr-line></aff>
<author-notes>
<fn fn-type="conflict" id="coi001">
<p>The authors have declared that no competing interests exist.</p>
</fn>
<corresp id="cor001">* E-mail: <email xlink:type="simple">borisov@insysbio.com</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>21</day>
<month>12</month>
<year>2020</year>
</pub-date>
<pub-date pub-type="collection">
<month>12</month>
<year>2020</year>
</pub-date>
<volume>16</volume>
<issue>12</issue>
<elocation-id>e1008495</elocation-id>
<history>
<date date-type="received">
<day>17</day>
<month>7</month>
<year>2020</year>
</date>
<date date-type="accepted">
<day>6</day>
<month>11</month>
<year>2020</year>
</date>
</history>
<permissions>
<copyright-year>2020</copyright-year>
<copyright-holder>Borisov, Metelkin</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="info:doi/10.1371/journal.pcbi.1008495"/>
<abstract>
<p>Practical identifiability of Systems Biology models has received a lot of attention in recent scientific research. It addresses the crucial question for models’ predictability: how accurately can the models’ parameters be recovered from available experimental data. The methods based on profile likelihood are among the most reliable methods of practical identification. However, these methods are often computationally demanding or lead to inaccurate estimations of parameters’ confidence intervals. Development of methods, which can accurately produce parameters’ confidence intervals in reasonable computational time, is of utmost importance for Systems Biology and QSP modeling.</p>
<p>We propose an algorithm Confidence Intervals by Constraint Optimization (CICO) based on profile likelihood, designed to speed-up confidence intervals estimation and reduce computational cost. The numerical implementation of the algorithm includes settings to control the accuracy of confidence intervals estimates. The algorithm was tested on a number of Systems Biology models, including Taxol treatment model and STAT5 Dimerization model, discussed in the current article.</p>
<p>The CICO algorithm is implemented in a software package freely available in Julia (<ext-link ext-link-type="uri" xlink:href="https://github.com/insysbio/LikelihoodProfiler.jl" xlink:type="simple">https://github.com/insysbio/LikelihoodProfiler.jl</ext-link>) and Python (<ext-link ext-link-type="uri" xlink:href="https://github.com/insysbio/LikelihoodProfiler.py" xlink:type="simple">https://github.com/insysbio/LikelihoodProfiler.py</ext-link>).</p>
</abstract>
<abstract abstract-type="summary">
<title>Author summary</title>
<p>Differential equations-based models are widely used in Systems Biology and Quantitative Systems Pharmacology and play a significant role in the discovery of new disease-directed drugs. Complexity of models is a trade off from their employment to crucial fields of biology and medicine. These areas of application require large non-linear models with many unknown parameters. How accurately can the parameters of a model be recovered from experimental data? What is the identifiable subset of parameters? Can the model be reduced or reparameterized to become identifiable? All those questions of identifiability analysis are essential for model’s predictability and reliability. That explains why the topic of identifiability of Systems Biology models has received a lot of attention in recent scientific research. However, existing numerical methods of identifiability analysis are computationally demanding or often lead to inaccurate estimations. Development of methods, which can accurately produce parameters’ confidence intervals in reasonable computational time, is of utmost importance for Systems Biology and QSP modeling. We propose an algorithm and a software package to test identifiability of Systems Biology models, designed to speed-up confidence intervals estimation and reduce computational cost. The software package was tested on a number of Systems Biology models, including Taxol treatment model and STAT5 Dimerization model, discussed in the current article.</p>
</abstract>
<funding-group>
<funding-statement>The authors received no specific funding for this work.</funding-statement>
</funding-group>
<counts>
<fig-count count="2"/>
<table-count count="2"/>
<page-count count="13"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>PLOS Publication Stage</meta-name>
<meta-value>vor-update-to-uncorrected-proof</meta-value>
</custom-meta>
<custom-meta>
<meta-name>Publication Update</meta-name>
<meta-value>2021-01-05</meta-value>
</custom-meta>
<custom-meta id="data-availability">
<meta-name>Data Availability</meta-name>
<meta-value>All relevant data are within the manuscript.</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<disp-quote>
<p>This is a <italic>PLOS Computational Biology</italic> Methods paper.</p>
</disp-quote>
<sec id="sec001" sec-type="intro">
<title>Introduction</title>
<sec id="sec002">
<title>Practical and structural identifiability</title>
<p>Reliability and predictability of a kinetic systems biology model depends on how precisely the parameters of the model can be recovered from the given experimental data. Fitting a model to experimental data is not enough to estimate all the parameters unambiguously. Noisy or incomplete experimental data as well as the models structure often result in uncertainty in parameters estimations.</p>
<p>Identifiability analysis is crucial for models verification. It addresses the question to what extent and with what level of certainty can parameters of a model be recovered from the available experimental data. Two branches of identifiability analysis are distinguished [<xref ref-type="bibr" rid="pcbi.1008495.ref001">1</xref>] often referred to as <italic>structural</italic> identification and <italic>practical</italic> identification. While structural identifiability is the characteristic of a model’s structure and does not take into account available experimental data, practical identifiability considers real noisy and incomplete experimental data.</p>
<p>The goal of <italic>structural</italic> approach [<xref ref-type="bibr" rid="pcbi.1008495.ref002">2</xref>,<xref ref-type="bibr" rid="pcbi.1008495.ref003">3</xref>] (<italic>prior</italic> identifiability analysis) is to verify model’s identifiability by exploring the model’s structure independently from the experimental data. A wide range of methods have been proposed for testing structural identifiability. The strengths and weaknesses of those methods have been thoroughly analyzed in scientific literature [<xref ref-type="bibr" rid="pcbi.1008495.ref001">1</xref>,<xref ref-type="bibr" rid="pcbi.1008495.ref004">4</xref>].</p>
<p><italic>Practical</italic> identification (<italic>posterior</italic> identifiability analysis) is a data-based approach. The approach addresses the possibility and the precision of parameters estimation based on available data. It takes into account the measurement noise and data incompleteness. Hence, parameters’ values can be recovered only with some level of certainty, typically described by confidence intervals and confidence regions. The authors of the study [<xref ref-type="bibr" rid="pcbi.1008495.ref005">5</xref>] define practical identifiability on the basis of profile likelihood notion: identifiable parameter is one that has finite profile likelihood-based confidence interval. Accordingly, the non-identifiable parameters’ profile likelihood-based confidence interval is infinite.</p>
<p>Even if a model includes only structurally identifiable parameters it doesn’t imply their practical identifiability. While structural non-identifiability implies practical non-identifiability, structurally identifiable models often appear to be practically non-identifiable [<xref ref-type="bibr" rid="pcbi.1008495.ref006">6</xref>].</p>
<p>Profile likelihood is a reliable though computationally demanding approach to test parameters’ identifiability in Systems Biology (SB). It helps us understand how the data can be mapped to parameters’ values and how accurate the model predictions are.</p>
<p>Following the definitions of [<xref ref-type="bibr" rid="pcbi.1008495.ref005">5</xref>], in the current study we propose new algorithm for practical identification and confidence intervals estimation. This algorithm is designed to produce confidence intervals in shorter computational time compared to other profile likelihood-based approaches while controlling the accuracy of estimates. It does not require the intermediate points to lie on the likelihood profile, which leads to less likelihood function calls. We also propose an implementation of the algorithm in a free open source package tested on a number of published kinetic models.</p>
</sec>
</sec>
<sec id="sec003" sec-type="materials|methods">
<title>Materials and methods</title>
<sec id="sec004">
<title>A kinetic systems biology model</title>
<p>A kinetic systems biology model can be expressed as an ODE system:
<disp-formula id="pcbi.1008495.e001">
<alternatives>
<graphic id="pcbi.1008495.e001g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e001" xlink:type="simple"/>
<mml:math display="block" id="M1">
<mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">p</mml:mi></mml:mrow><mml:mo>)</mml:mo>
</mml:math>
</alternatives>
<label>(1)</label>
</disp-formula></p>
<p>The state vector <bold><italic>x</italic></bold>(<italic>t</italic>) denotes variables of the model (e.g. concentrations of molecular compounds or other values), <bold><italic>u</italic></bold>(<italic>t</italic>)–known input or control (e.g. treatment regime), <bold><italic>p</italic></bold> –parameters of the model and <bold><italic>f</italic></bold> is defined by rate laws. <bold><italic>x</italic></bold>(<italic>t</italic>) variables can be numerically integrated for the time range (0, <italic>t</italic><sub><italic>end</italic></sub>) given nominal initial values <bold><italic>x</italic></bold><sub><bold>0</bold></sub> = <bold><italic>x</italic></bold>(0) and parameters <bold><italic>p</italic></bold>.</p>
</sec>
<sec id="sec005">
<title>Parameters evaluation and point estimates</title>
<p>The subset of unknown parameters can be estimated using the experimental dataset by solving the inverse problem. Typically, not all the variables <italic>x</italic> are directly measured and observables <inline-formula id="pcbi.1008495.e002"><alternatives><graphic id="pcbi.1008495.e002g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e002" xlink:type="simple"/><mml:math display="inline" id="M2"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><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>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula> denote experimentally accessible quantities. The observables can be defined as function of <bold><italic>x</italic></bold>(<italic>t</italic>), set of additional parameters <bold><italic>s</italic></bold> (observation parameters) and random values usually representing measurement errors. An important case of measurement error is additive error with known variance:
<disp-formula id="pcbi.1008495.e003">
<alternatives>
<graphic id="pcbi.1008495.e003g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e003" xlink:type="simple"/>
<mml:math display="block" id="M3">
<mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><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>t</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">s</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi>ε</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>…</mml:mo><mml:mi>n</mml:mi>
</mml:math>
</alternatives>
<label>(2)</label>
</disp-formula>
where <italic>ε</italic><sub><italic>i</italic></sub> are the measurement errors and <italic>g</italic><sub><italic>i</italic></sub> are observation functions, <italic>n</italic> is the number of measured components.</p>
<p>The unknown parameters <bold><italic>θ</italic></bold>⊆{<bold><italic>p</italic></bold>,<bold><italic>s</italic></bold>,<bold><italic>x</italic></bold><sub><bold>0</bold></sub>} can be estimated by fitting simulated values <italic>y</italic><sub><italic>i</italic></sub>(<bold><italic>θ</italic></bold>,<italic>t</italic>) = <italic>g</italic><sub><italic>i</italic></sub>(<bold><italic>x</italic></bold>(<italic>t</italic>,<bold><italic>p</italic></bold>,<bold><italic>x</italic></bold><sub><bold>0</bold></sub>), <bold><italic>s</italic></bold>) to experimental data <inline-formula id="pcbi.1008495.e004"><alternatives><graphic id="pcbi.1008495.e004g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e004" xlink:type="simple"/><mml:math display="inline" id="M4"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula>. Assuming the joint distribution of the measurement noise <italic>ε</italic> is known, the estimates of parameters <inline-formula id="pcbi.1008495.e005"><alternatives><graphic id="pcbi.1008495.e005g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e005" xlink:type="simple"/><mml:math display="inline" id="M5"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> are typically obtained with MLE approach [<xref ref-type="bibr" rid="pcbi.1008495.ref007">7</xref>]. It implies maximizing the probability of obtaining <inline-formula id="pcbi.1008495.e006"><alternatives><graphic id="pcbi.1008495.e006g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e006" xlink:type="simple"/><mml:math display="inline" id="M6"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> values, given the model with <bold><italic>θ</italic></bold> parameters. This is usually performed by minimizing the corresponding negative logarithm of the likelihood function (objective function):
<disp-formula id="pcbi.1008495.e007">
<alternatives>
<graphic id="pcbi.1008495.e007g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e007" xlink:type="simple"/>
<mml:math display="block" id="M7">
<mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>g</mml:mi><mml:mspace width="0.25em"/><mml:mrow><mml:mrow><mml:munder><mml:mrow><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:mi>θ</mml:mi></mml:mrow></mml:munder></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow>
</mml:math>
</alternatives>
<label>(3)</label>
</disp-formula>
<disp-formula id="pcbi.1008495.e008">
<alternatives>
<graphic id="pcbi.1008495.e008g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e008" xlink:type="simple"/>
<mml:math display="block" id="M8">
<mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:mn>2</mml:mn><mml:mi mathvariant="normal">l</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">g</mml:mi><mml:mo>[</mml:mo><mml:mi>Λ</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>]</mml:mo>
</mml:math>
</alternatives>
</disp-formula></p>
<p>The exact choice of the likelihood function <italic>Λ</italic>(<bold><italic>θ</italic></bold>) is based on measurement error model. For additive error with known variance according to (<xref ref-type="disp-formula" rid="pcbi.1008495.e003">2</xref>) it can be represented as sum of squared residuals:
<disp-formula id="pcbi.1008495.e009">
<alternatives>
<graphic id="pcbi.1008495.e009g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e009" xlink:type="simple"/>
<mml:math display="block" id="M9">
<mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mstyle displaystyle="false"><mml:msubsup><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>n</mml:mi></mml:mrow></mml:msubsup></mml:mstyle><mml:mrow><mml:mrow><mml:mstyle displaystyle="false"><mml:msubsup><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>k</mml:mi></mml:mrow></mml:msubsup></mml:mstyle><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><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:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>σ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mrow></mml:mrow>
</mml:math>
</alternatives>
<label>(4)</label>
</disp-formula></p>
<p>Here the double summation is performed over <italic>n</italic> –the number of measured components and <italic>k</italic> –the number of measured time points. <inline-formula id="pcbi.1008495.e010"><alternatives><graphic id="pcbi.1008495.e010g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e010" xlink:type="simple"/><mml:math display="inline" id="M10"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> denote experimental data points, <italic>y</italic><sub><italic>i</italic></sub>(<bold><italic>θ</italic></bold>,<italic>t</italic><sub><italic>j</italic></sub>)–simulated values and <inline-formula id="pcbi.1008495.e011"><alternatives><graphic id="pcbi.1008495.e011g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e011" xlink:type="simple"/><mml:math display="inline" id="M11"><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>σ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></alternatives></inline-formula> is the error variance.</p>
<p>MLE provides the point estimates <inline-formula id="pcbi.1008495.e012"><alternatives><graphic id="pcbi.1008495.e012g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e012" xlink:type="simple"/><mml:math display="inline" id="M12"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> for the unknown parameters <bold><italic>θ</italic></bold> but does not tell us anything about the uncertainty in <bold><italic>θ</italic></bold> estimates. Indeed, the estimated parameters <inline-formula id="pcbi.1008495.e013"><alternatives><graphic id="pcbi.1008495.e013g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e013" xlink:type="simple"/><mml:math display="inline" id="M13"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> may not be unique: another set of parameters may give the same objective function value or be very close to it. The accuracy of the estimates can be expressed by confidence intervals or confidence bands.</p>
</sec>
<sec id="sec006">
<title>Profile Likelihood based confidence intervals</title>
<p>Confidence interval (CI) is an estimate of the unknown parameter which characterizes it by the range of values for particular confidence level <italic>α</italic>. The confidence interval is a better alternative to the point estimate because it gives more information about possible parameter values.</p>
<p>A confidence interval with confidence level <italic>α</italic> for the parameter <italic>θ</italic><sub><italic>i</italic></sub> is an interval defined by probability <inline-formula id="pcbi.1008495.e014"><alternatives><graphic id="pcbi.1008495.e014g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e014" xlink:type="simple"/><mml:math display="inline" id="M14"><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>≤</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>≤</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>α</mml:mi></mml:math></alternatives></inline-formula>. It is important to note that the definition uses the probability term. It implies constructing a confidence interval many times using numerous data samples, which is typically impossible. Researchers often use different asymptotic methods to estimate confidence intervals, which can produce different estimations [<xref ref-type="bibr" rid="pcbi.1008495.ref008">8</xref>].</p>
<p>Different methods of CI estimation may lead to different definitions of parameters’ identifiability. Profile likelihood is one of the most common and robust ways to construct CIs and state practical identifiability of the estimated parameters [<xref ref-type="bibr" rid="pcbi.1008495.ref009">9</xref>] based on likelihood-ratio test. It implies constructing likelihood-based CIs by exploring <italic>l</italic>(<bold><italic>θ</italic></bold>) as a function of a single parameter <italic>θ</italic><sub><italic>i</italic></sub> [<xref ref-type="bibr" rid="pcbi.1008495.ref010">10</xref>]
<disp-formula id="pcbi.1008495.e015">
<alternatives>
<graphic id="pcbi.1008495.e015g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e015" xlink:type="simple"/>
<mml:math display="block" id="M15">
<mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:munder><mml:mrow><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>≠</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow>
</mml:math>
</alternatives>
<label>(5)</label>
</disp-formula></p>
<p>Corresponding confidence interval for an estimate <inline-formula id="pcbi.1008495.e016"><alternatives><graphic id="pcbi.1008495.e016g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e016" xlink:type="simple"/><mml:math display="inline" id="M16"><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> with confidence level <italic>α</italic> is defined by
<disp-formula id="pcbi.1008495.e017">
<alternatives>
<graphic id="pcbi.1008495.e017g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e017" xlink:type="simple"/>
<mml:math display="block" id="M17">
<mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>≡</mml:mo><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>]</mml:mo><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>:</mml:mo><mml:mspace width="0.12em"/><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>≤</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo>
</mml:math>
</alternatives>
<label>(6)</label>
</disp-formula>
where Δ<sub><italic>α</italic></sub> is <italic>α</italic> quantile of the <italic>χ</italic><sup>2</sup> distribution if the likelihood ratio test is used, <inline-formula id="pcbi.1008495.e018"><alternatives><graphic id="pcbi.1008495.e018g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e018" xlink:type="simple"/><mml:math display="inline" id="M18"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> is the point estimate of the unknown parameters <bold><italic>θ</italic></bold> which corresponds to the minimum of <italic>l</italic>(<bold><italic>θ</italic></bold>).</p>
<p>Confidence intervals estimation is the major goal of practical identifiability analysis. According to [<xref ref-type="bibr" rid="pcbi.1008495.ref005">5</xref>] “<italic>a parameter estimate <inline-formula id="pcbi.1008495.e019"><alternatives><graphic id="pcbi.1008495.e019g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e019" xlink:type="simple"/><mml:math display="inline" id="M19"><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> is practically non-identifiable, if the likelihood-based confidence region is infinitely extended in increasing and/or decreasing direction of θ</italic><sub><italic>i</italic></sub>, <italic>although the likelihood (negative log-likelihood) has a unique minimum for this parameter</italic>”.</p>
</sec>
<sec id="sec007">
<title>Available methods</title>
<p>Two general numerical approaches to construct parameters profiles and PL-based CIs are currently developed and implemented in software packages [<xref ref-type="bibr" rid="pcbi.1008495.ref011">11</xref>–<xref ref-type="bibr" rid="pcbi.1008495.ref013">13</xref>]. They can be distinguished as <italic>stepwise optimization-based</italic> approaches and <italic>integration-based</italic> approaches. These approaches sequentially calculate <italic>l</italic><sub><italic>PL</italic></sub>(<italic>θ</italic><sub><italic>i</italic></sub>) until the profile function reaches the threshold <inline-formula id="pcbi.1008495.e020"><alternatives><graphic id="pcbi.1008495.e020g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e020" xlink:type="simple"/><mml:math display="inline" id="M20"><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula>.</p>
<p><italic>Stepwise optimization-based</italic> approaches are based on the definition of <italic>l</italic><sub><italic>PL</italic></sub>(<italic>θ</italic><sub><italic>i</italic></sub>). They imply exploring the shape of <italic>l</italic><sub><italic>PL</italic></sub>(<italic>θ</italic><sub><italic>i</italic></sub>) by making small steps from the minima <inline-formula id="pcbi.1008495.e021"><alternatives><graphic id="pcbi.1008495.e021g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e021" xlink:type="simple"/><mml:math display="inline" id="M21"><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> in the increasing or decreasing direction and re-optimizing <italic>l</italic>(<bold><italic>θ</italic></bold>) for all <italic>θ</italic><sub><italic>j</italic>≠<italic>i</italic></sub> at each step of <italic>θ</italic><sub><italic>i</italic></sub>. The smaller <italic>θ</italic><sub><italic>i</italic></sub> steps the numerical algorithm takes while exploring <italic>l</italic><sub><italic>PL</italic></sub>(<italic>θ</italic><sub><italic>i</italic></sub>) the more accurate the profiles are. At the same time, re-optimizing <italic>l</italic>(<bold><italic>θ</italic></bold>) at each <italic>θ</italic><sub><italic>i</italic></sub> step may require thousands of likelihood function calls, which can be inacceptable for high dimensional ODE models. Progressive derivative-based [<xref ref-type="bibr" rid="pcbi.1008495.ref005">5</xref>] and linearly extrapolated stepping [<xref ref-type="bibr" rid="pcbi.1008495.ref011">11</xref>] have been proposed to make appropriate steps and more accurate profile estimations.</p>
<p><italic>Integration-based</italic> approaches suggest obtaining <italic>θ</italic><sub><italic>i</italic></sub> profile as a solution of the ODE system. The ODE system itself is derived from optimal conditions for constrained optimization of <italic>l</italic>(<bold><italic>θ</italic></bold>) defined in Lagrangian form. Potentially solving the modified ODE system should produce <inline-formula id="pcbi.1008495.e022"><alternatives><graphic id="pcbi.1008495.e022g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e022" xlink:type="simple"/><mml:math display="inline" id="M22"><mml:mrow><mml:mrow><mml:mi mathvariant="italic">arg</mml:mi><mml:munder><mml:mrow><mml:mi mathvariant="normal">min</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>≠</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>]</mml:mo></mml:mrow></mml:mrow></mml:math></alternatives></inline-formula>. However, numerical integration of these ODEs requires Hessian of the likelihood function, which is hard or impossible to compute in many real cases. A number of ideas have been proposed to relax the requirements and either approximate Hessian [<xref ref-type="bibr" rid="pcbi.1008495.ref014">14</xref>] or obtain it from adjoint sensitivity analysis [<xref ref-type="bibr" rid="pcbi.1008495.ref012">12</xref>].</p>
<p>Various numerical implementations of <italic>stepwise optimization-based</italic> and <italic>integration-based</italic> approaches have been developed [<xref ref-type="bibr" rid="pcbi.1008495.ref013">13</xref>,<xref ref-type="bibr" rid="pcbi.1008495.ref015">15</xref>] CI endpoints can be obtained with these methods as sequence of optimizations or numerical integration steps, which is often unstable or computationally expensive. The success of these methods critically depends on the initial step choice, and calculations become even more expensive when parameter is not identifiable or has wider confidence interval than expected. Existing PL methods are mainly focused on visualizing the profiles and stating if the parameter is identifiable or non-identifiable. The accuracy of CI endpoints estimation is in general beyond the scope of these methods.</p>
</sec>
</sec>
<sec id="sec008" sec-type="results">
<title>Results</title>
<sec id="sec009">
<title>Algorithm</title>
<p>The current study presents a new approach for confidence intervals estimation and profile likelihood-based analysis of identifiability: Confidence Intervals estimated by Constrained Optimization (CICO). It addresses the above-mentioned difficulties of stepwise optimization-based and integration-based PL implementations, namely computational effort, accuracy of CI endpoints estimation and algorithm termination criteria. The key idea of the method is to obtain CI endpoints and avoid the calculation of profiles as the most computationally expensive part of the analysis.</p>
</sec>
<sec id="sec010">
<title>Method rationale</title>
<p>According to [<xref ref-type="bibr" rid="pcbi.1008495.ref010">10</xref>] for a given significance level <italic>α</italic> <inline-formula id="pcbi.1008495.e023"><alternatives><graphic id="pcbi.1008495.e023g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e023" xlink:type="simple"/><mml:math display="inline" id="M23"><mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> endpoint values <inline-formula id="pcbi.1008495.e024"><alternatives><graphic id="pcbi.1008495.e024g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e024" xlink:type="simple"/><mml:math display="inline" id="M24"><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>}</mml:mo></mml:math></alternatives></inline-formula> can be found as solutions of the system of <italic>m</italic> equations:
<disp-formula id="pcbi.1008495.e025">
<alternatives>
<graphic id="pcbi.1008495.e025g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e025" xlink:type="simple"/>
<mml:math display="block" id="M25">
<mml:mrow><mml:mo>[</mml:mo><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn>
</mml:math>
</alternatives>
<label>(7)</label>
</disp-formula>
where <italic>j</italic> = 1,…,<italic>i</italic>−1,<italic>i</italic>+1,…,<italic>m</italic>; <italic>m</italic> is the number of parameters, and <inline-formula id="pcbi.1008495.e026"><alternatives><graphic id="pcbi.1008495.e026g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e026" xlink:type="simple"/><mml:math display="inline" id="M26"><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> in terms of (<xref ref-type="disp-formula" rid="pcbi.1008495.e017">6</xref>).</p>
<p>Modified version of Newton-Raphson algorithm is proposed in [<xref ref-type="bibr" rid="pcbi.1008495.ref010">10</xref>] to solve (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) and obtain <inline-formula id="pcbi.1008495.e027"><alternatives><graphic id="pcbi.1008495.e027g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e027" xlink:type="simple"/><mml:math display="inline" id="M27"><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula>. Here we propose a different approach to solve (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) based on constrained optimization.</p>
<p>Assuming there exists a solution of (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) and <italic>l</italic>(<bold><italic>θ</italic></bold>) possesses derivatives at <bold><italic>θ</italic></bold>*, we can denote <inline-formula id="pcbi.1008495.e028"><alternatives><graphic id="pcbi.1008495.e028g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e028" xlink:type="simple"/><mml:math display="inline" id="M28"><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>s</mml:mi></mml:math></alternatives></inline-formula>.</p>
<list list-type="order">
<list-item><p>In case <italic>s</italic>&lt;0, we can multiply the right and left side of Eq (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) by a positive parameter <inline-formula id="pcbi.1008495.e029"><alternatives><graphic id="pcbi.1008495.e029g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e029" xlink:type="simple"/><mml:math display="inline" id="M29"><mml:mi>μ</mml:mi><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:mfrac><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> and rewrite the system in the following form:
<disp-formula id="pcbi.1008495.e030">
<alternatives>
<graphic id="pcbi.1008495.e030g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e030" xlink:type="simple"/>
<mml:math display="block" id="M30">
<mml:mrow><mml:mo>{</mml:mo><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>≠</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>⇔</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>μ</mml:mi><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn>0</mml:mn><mml:mo>+</mml:mo><mml:mi>μ</mml:mi><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>≠</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn>
</mml:math>
</alternatives>
</disp-formula>
or using matrix notation:
<disp-formula id="pcbi.1008495.e031">
<alternatives>
<graphic id="pcbi.1008495.e031g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e031" xlink:type="simple"/>
<mml:math display="block" id="M31">
<mml:mrow><mml:mo>[</mml:mo><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mi>μ</mml:mi><mml:mo>(</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>∇</mml:mo><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>μ</mml:mi><mml:mo>∇</mml:mo><mml:mo>(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn>
</mml:math>
</alternatives>
<label>(8)</label>
</disp-formula></p>
<p>Note, that <bold><italic>c</italic></bold><sup><italic>T</italic></sup><bold><italic>θ</italic></bold> is a hyperplane with normal vector <inline-formula id="pcbi.1008495.e032"><alternatives><graphic id="pcbi.1008495.e032g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e032" xlink:type="simple"/><mml:math display="inline" id="M32"><mml:msubsup><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>≠</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></alternatives></inline-formula>.</p>
<p>The system (<xref ref-type="disp-formula" rid="pcbi.1008495.e031">8</xref>) states the necessary optimality conditions (Karush-Kuhn-Tucker conditions) at <bold><italic>θ</italic>*</bold> for the following Lagrangian function:
<disp-formula id="pcbi.1008495.e033">
<alternatives>
<graphic id="pcbi.1008495.e033g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e033" xlink:type="simple"/>
<mml:math display="block" id="M33">
<mml:mi>L</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi>μ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>μ</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">*</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo>
</mml:math>
</alternatives>
<label>(9A)</label>
</disp-formula>
which refers to minimization of target function <italic>f</italic>(<bold><italic>θ</italic></bold>) = <bold><italic>c</italic></bold><sup><italic>T</italic></sup><bold><italic>θ</italic></bold> = <italic>θ</italic><sub><italic>i</italic></sub> with inequality constraint <inline-formula id="pcbi.1008495.e034"><alternatives><graphic id="pcbi.1008495.e034g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e034" xlink:type="simple"/><mml:math display="inline" id="M34"><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>≤</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula>. The minimal <italic>θ</italic><sub><italic>i</italic></sub> value is the lower CI endpoint <inline-formula id="pcbi.1008495.e035"><alternatives><graphic id="pcbi.1008495.e035g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e035" xlink:type="simple"/><mml:math display="inline" id="M35"><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:math></alternatives></inline-formula></p></list-item>
<list-item><p>Likewise, in case <italic>s</italic>&gt;0 we can denote <inline-formula id="pcbi.1008495.e036"><alternatives><graphic id="pcbi.1008495.e036g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e036" xlink:type="simple"/><mml:math display="inline" id="M36"><mml:mi>μ</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:mfrac><mml:mo>&gt;</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> and apply the similar transformations to the system (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) to obtain optimality conditions for Lagrangian function:
<disp-formula id="pcbi.1008495.e037">
<alternatives>
<graphic id="pcbi.1008495.e037g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e037" xlink:type="simple"/>
<mml:math display="block" id="M37">
<mml:mi>L</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi>μ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>−</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>μ</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo><mml:mo>,</mml:mo>
</mml:math>
</alternatives>
<label>(9B)</label>
</disp-formula>
which refers to minimization of target function <italic>f</italic>(<bold><italic>θ</italic></bold>) = −<italic>θ</italic><sub><italic>i</italic></sub> with inequality constraint <inline-formula id="pcbi.1008495.e038"><alternatives><graphic id="pcbi.1008495.e038g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e038" xlink:type="simple"/><mml:math display="inline" id="M38"><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>≤</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> and. The maximal <italic>θ</italic><sub><italic>i</italic></sub> value is the upper CI endpoint <inline-formula id="pcbi.1008495.e039"><alternatives><graphic id="pcbi.1008495.e039g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e039" xlink:type="simple"/><mml:math display="inline" id="M39"><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:math></alternatives></inline-formula></p></list-item>
<list-item><p><inline-formula id="pcbi.1008495.e040"><alternatives><graphic id="pcbi.1008495.e040g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e040" xlink:type="simple"/><mml:math display="inline" id="M40"><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> is a special case. In this case ∇<italic>l</italic>(<bold><italic>θ</italic></bold>*) = 0 and <bold><italic>θ</italic></bold>* is a stationary point of <italic>l</italic>(<bold><italic>θ</italic></bold>) which can be a solution of (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) but does not satisfy (<xref ref-type="disp-formula" rid="pcbi.1008495.e031">8</xref>). Theoretically, the CICO algorithm excludes this case and additional assumption <inline-formula id="pcbi.1008495.e041"><alternatives><graphic id="pcbi.1008495.e041g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e041" xlink:type="simple"/><mml:math display="inline" id="M41"><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo><mml:mo>≠</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> should be made for (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) and (<xref ref-type="disp-formula" rid="pcbi.1008495.e031">8</xref>) to be equivalent. In practice, exact equality <inline-formula id="pcbi.1008495.e042"><alternatives><graphic id="pcbi.1008495.e042g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e042" xlink:type="simple"/><mml:math display="inline" id="M42"><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></alternatives></inline-formula> can hardly happen and derivatives close to zero can be handled by lowering the tolerance of the chosen optimizer and ODE solver.</p></list-item>
</list>
</sec>
<sec id="sec011">
<title>Interpretation</title>
<p>In the previous section we have reformulated the problem of confidence intervals estimation in the terms of constrained optimization. This approach has a clear geometrical interpretation. We are looking for tangent hyperplanes to the confidence region <inline-formula id="pcbi.1008495.e043"><alternatives><graphic id="pcbi.1008495.e043g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e043" xlink:type="simple"/><mml:math display="inline" id="M43"><mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>:</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>≤</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:math></alternatives></inline-formula>, which correspond to the minimal and maximal feasible <italic>θ</italic><sub><italic>i</italic></sub>. For <bold><italic>θ</italic></bold>∈<italic>R</italic><sup>2</sup> the approach can be illustrated by <bold><xref ref-type="fig" rid="pcbi.1008495.g001">Fig 1</xref></bold>. The contour lines reflect confidence regions for different <inline-formula id="pcbi.1008495.e044"><alternatives><graphic id="pcbi.1008495.e044g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e044" xlink:type="simple"/><mml:math display="inline" id="M44"><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> values. (<bold>A)</bold> plot stands for identifiable case and (<bold>B)</bold> for non-identifiable. In identifiable case (<bold>A)</bold> each confidence region is limited. Hence, corresponding confidence intervals <inline-formula id="pcbi.1008495.e045"><alternatives><graphic id="pcbi.1008495.e045g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e045" xlink:type="simple"/><mml:math display="inline" id="M45"><mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> have finite endpoints. In non-identifiable case (<bold>B)</bold> confidence intervals for parameter <italic>θ</italic><sub>1</sub> is infinite and confidence interval for <italic>θ</italic><sub>2</sub> has no finite upper endpoint. CI endpoints were calculated using CICO method.</p>
<fig id="pcbi.1008495.g001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pcbi.1008495.g001</object-id>
<label>Fig 1</label>
<caption>
<title>Contour lines.</title>
<p>Plots show the contour lines of two functions, chosen to illustrate identifiable and non-identifiable cases. Plot (<bold>A)</bold> is an identifiable case illustrated by Booth function <italic>l</italic><sub><italic>A</italic></sub>(<bold><italic>θ</italic></bold>) = (<italic>θ</italic><sub>1</sub>+2<italic>θ</italic><sub>2</sub>−7)<sup>2</sup>+(2<italic>θ</italic><sub>1</sub>+<italic>θ</italic><sub>2</sub>−5)<sup>2</sup>, which has known minimum <italic>l</italic><sub><italic>A</italic></sub>(1,3) = 0. Plot (<bold>B)</bold> illustrate non-identifiable case by Rosenbrock function <inline-formula id="pcbi.1008495.e046"><alternatives><graphic id="pcbi.1008495.e046g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e046" xlink:type="simple"/><mml:math display="inline" id="M46"><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:mn>1</mml:mn><mml:mo>−</mml:mo><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mn>100</mml:mn><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:math></alternatives></inline-formula> with minimum <italic>l</italic><sub><italic>B</italic></sub>(1,1) = 0. The star-shaped points mark the minima of the above functions. The bold contour represents the <inline-formula id="pcbi.1008495.e047"><alternatives><graphic id="pcbi.1008495.e047g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e047" xlink:type="simple"/><mml:math display="inline" id="M47"><mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>{</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi><mml:mo>:</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>)</mml:mo><mml:mo>−</mml:mo><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>≤</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:math></alternatives></inline-formula> for <inline-formula id="pcbi.1008495.e048"><alternatives><graphic id="pcbi.1008495.e048g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e048" xlink:type="simple"/><mml:math display="inline" id="M48"><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>200</mml:mn></mml:math></alternatives></inline-formula>. The dashed lines are profile paths projected on (<italic>θ</italic><sub>1</sub>, <italic>θ</italic><sub>2</sub>) Red circles mark the points where tangent hyperplanes correspond to parameters’ minimal or maximal values in <italic>CR</italic><sub><italic>α</italic></sub>. Red circles are CI endpoints. The contours were calculated using marching squares algorithm implemented in Contour.jl package (<ext-link ext-link-type="uri" xlink:href="https://github.com/JuliaGeometry/Contour.jl" xlink:type="simple">https://github.com/JuliaGeometry/Contour.jl</ext-link>). They are provided for illustrative purposes only.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pcbi.1008495.g001" xlink:type="simple"/>
</fig>
</sec>
<sec id="sec012">
<title>Scan bounds and termination criteria</title>
<p>All PL-based approaches: stepwise optimization, integration-based algorithm and CICO imply exploring <bold><italic>θ</italic></bold> space by calculating an objective function <italic>l</italic>(<bold><italic>θ</italic></bold>) at different <bold><italic>θ</italic></bold> points. For a given parameter <italic>θ</italic><sub><italic>i</italic></sub> no a-priori information about its identifiability is usually available. In case <italic>θ</italic><sub><italic>i</italic></sub> is identifiable we can expect that the profile will intersect with the threshold. In contrast, to state parameter’s non-identifiability we have to check all <italic>θ</italic><sub><italic>i</italic></sub> feasible values, which can be the whole R space. The definition of practical non-identifiability [<xref ref-type="bibr" rid="pcbi.1008495.ref009">9</xref>] requires exploration of the whole <italic>θ</italic><sub><italic>i</italic></sub> domain but in practice it is never performed. Due to the limitations of computational resources a limited region of <italic>θ</italic><sub><italic>i</italic></sub> is often utilized in practice for general identifiability analysis.</p>
<p>To address the discrepancy between identifiability definition and its practical application the numerical implementation of CICO proposes the notion of scan bounds <inline-formula id="pcbi.1008495.e049"><alternatives><graphic id="pcbi.1008495.e049g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e049" xlink:type="simple"/><mml:math display="inline" id="M49"><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula> which represent feasible parameters’ values. The scan bounds may be selected based on biologically acceptable values or available computational resources. In practice this approach was utilized by researchers implicitly but the bounds were not used for algorithms termination criteria.</p>
<p>The proposed scan bounds naturally suggest the notion of <italic>practical identifiability within the bounds</italic>. We will call a parameter “<italic>practically identifiable within the bounds</italic>” if its whole confidence interval for a particular confidence level <italic>α</italic> is located inside the pre-defined scan bounds, i.e. <inline-formula id="pcbi.1008495.e050"><alternatives><graphic id="pcbi.1008495.e050g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e050" xlink:type="simple"/><mml:math display="inline" id="M50"><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>]</mml:mo><mml:mo>⊆</mml:mo><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula>. If the condition is not satisfied, i.e. <inline-formula id="pcbi.1008495.e051"><alternatives><graphic id="pcbi.1008495.e051g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e051" xlink:type="simple"/><mml:math display="inline" id="M51"><mml:mo>∃</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>∈</mml:mo><mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>]</mml:mo></mml:math></alternatives></inline-formula>, but <inline-formula id="pcbi.1008495.e052"><alternatives><graphic id="pcbi.1008495.e052g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e052" xlink:type="simple"/><mml:math display="inline" id="M52"><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> ∈ <inline-formula id="pcbi.1008495.e053"><alternatives><graphic id="pcbi.1008495.e053g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e053" xlink:type="simple"/><mml:math display="inline" id="M53"><mml:mo>(</mml:mo><mml:mrow><mml:mo>−</mml:mo><mml:mi>∞</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>]</mml:mo><mml:mo>∪</mml:mo><mml:mo>[</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mi>∞</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula> we will call this <italic>parameter practically non-identifiable within the bounds</italic>.</p>
<p>It is necessary to note that the PL-based confidence intervals may be asymmetric relative to <inline-formula id="pcbi.1008495.e054"><alternatives><graphic id="pcbi.1008495.e054g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e054" xlink:type="simple"/><mml:math display="inline" id="M54"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> in contrast to asymptotic confidence intervals. In some cases CIs have finite endpoint in one direction and infinite endpoint in another. In practice it is reasonable to analyze the identifiability of lower and upper sides separately.</p>
<p>The definition of identifiability within the bounds is utilized in the CICO implementation. If lower or upper CI endpoint is present within the scan bounds <inline-formula id="pcbi.1008495.e055"><alternatives><graphic id="pcbi.1008495.e055g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e055" xlink:type="simple"/><mml:math display="inline" id="M55"><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula> the algorithm converges to the endpoint with preset tolerance. If one of confidence interval’s point is found out of scan bounds <inline-formula id="pcbi.1008495.e056"><alternatives><graphic id="pcbi.1008495.e056g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e056" xlink:type="simple"/><mml:math display="inline" id="M56"><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula> the algorithm terminates and the appropriate message is displayed.</p>
</sec>
<sec id="sec013">
<title>Software implementation: LikelihoodProfiler</title>
<p>We provide an implementation of CICO algorithm in an open source free package LikelihoodProfiler <ext-link ext-link-type="uri" xlink:href="https://github.com/insysbio/LikelihoodProfiler.jl" xlink:type="simple">https://github.com/insysbio/LikelihoodProfiler.jl</ext-link> written in Julia language [<xref ref-type="bibr" rid="pcbi.1008495.ref016">16</xref>]. The package was also translated to free open source package in Python <ext-link ext-link-type="uri" xlink:href="https://github.com/insysbio/LikelihoodProfiler.py" xlink:type="simple">https://github.com/insysbio/LikelihoodProfiler.py</ext-link>. LikelihoodProfiler allows the user to perform CI estimation and state parameter’s identifiability. The main function exposed to the end-user is <monospace>get_interval</monospace> which calculates the upper and lower CI endpoints for the selected parameter <italic>θ</italic><sub><italic>i</italic></sub>. Currently the CICO implementation depends on NLopt package [<xref ref-type="bibr" rid="pcbi.1008495.ref017">17</xref>] and the user can choose any suitable optimization algorithm from this package.</p>
<p>To test parameters’ identifiability the user should provide <monospace>loss_func</monospace> which is the likelihood function of unknown parameters <italic>θ</italic>. The function is expected to be based on MLE approach. The user should also set <monospace>theta_init</monospace> which is the initial values of parameters which are typically (but not necessary) the optimal values <inline-formula id="pcbi.1008495.e057"><alternatives><graphic id="pcbi.1008495.e057g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e057" xlink:type="simple"/><mml:math display="inline" id="M57"><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></alternatives></inline-formula> obtained by fitting parameters to experimental data. Other mandatory settings are <monospace>loss_crit,</monospace> which denotes <inline-formula id="pcbi.1008495.e058"><alternatives><graphic id="pcbi.1008495.e058g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e058" xlink:type="simple"/><mml:math display="inline" id="M58"><mml:msubsup><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>l</mml:mi><mml:mo>(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi mathvariant="bold-italic">θ</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi></mml:mrow><mml:mrow><mml:mi>α</mml:mi></mml:mrow></mml:msub></mml:math></alternatives></inline-formula> and index denoting the parameter of interest in vector. The user may also set <monospace>scan_bounds</monospace> which is the feasible <italic>θ</italic><sub><italic>i</italic></sub> range <inline-formula id="pcbi.1008495.e059"><alternatives><graphic id="pcbi.1008495.e059g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pcbi.1008495.e059" xlink:type="simple"/><mml:math display="inline" id="M59"><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>θ</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>U</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:math></alternatives></inline-formula>, or use the default values (1e-9, 1e9). The following Julia code loads LikelihoodProfiler package and evaluates <monospace>theta</monospace> endpoints for likelihood function <monospace>l(theta)</monospace>.</p>
<p specific-use="line"><monospace>using LikelihoodProfiler</monospace></p>
<p specific-use="line"><monospace>l(theta) = 5.0 + (theta[1]-3.0)^2 + (theta[1]-theta[2]-1.0)^2</monospace></p>
<p specific-use="line"><monospace>theta_init = [3.0, 2.0]</monospace></p>
<p specific-use="line"><monospace>ci = [get_interval(theta_init, i, l, loss_crit = 9.0) for i in 1:2]</monospace></p>
<p>The implementation utilizes two termination criteria, which address two possible situations. In case there is a confidence interval endpoint within the <monospace>scan_bounds</monospace>, optimization stops when the algorithm converges to the endpoint with the preset tolerance and <monospace>BORDER_FOUND_BY_SCAN_TOL</monospace> message is displayed. In case the algorithm doesn’t find any feasible point above the threshold the algorithm stops with <monospace>SCAN_BOUNDS_REACHED</monospace> message.</p>
<p>The algorithm can also work in transformed space (<monospace>log</monospace> or <monospace>logit</monospace>) which can speed up the optimization process for complex nonlinear models. An optional argument <monospace>scale</monospace> of <monospace>get_interval</monospace> function can set search space for each parameter individually. It supports three options:: <monospace>direct,: log,: logit</monospace> with default <monospace>scale</monospace> set to: <monospace>direct</monospace> for all parameters. The package also includes a set of useful tools for visualization.</p>
<p>Internally LikelihoodProfiler uses Augmented Lagrangian algorithm [<xref ref-type="bibr" rid="pcbi.1008495.ref018">18</xref>,<xref ref-type="bibr" rid="pcbi.1008495.ref019">19</xref>] from NLopt package [<xref ref-type="bibr" rid="pcbi.1008495.ref017">17</xref>], which implies combining the objective function and the constraint into a single function. Then the augmented objective function with no constraints is passed to an optimization algorithm. Augmented Lagrangian implementation used in the package was proved to converge to KKT points [<xref ref-type="bibr" rid="pcbi.1008495.ref018">18</xref>]. The optimization of the augmented objective function can be performed with any gradient-based or derivative-free algorithm including global optimization methods.</p>
</sec>
<sec id="sec014">
<title>Validation: The cancer taxol treatment model</title>
<p>Here we provide identifiability analysis of the cancer taxol treatment model [<xref ref-type="bibr" rid="pcbi.1008495.ref020">20</xref>]. Though the primary goal of this analysis is to verify CI endpoints computed with CICO, we also provide performance estimations of CICO algorithm vs. original implementation [<xref ref-type="bibr" rid="pcbi.1008495.ref020">20</xref>]. The original Matlab code is based on stepwise-optimization approach which implies recovering the whole parameters profile to obtain CI endpoint values (<ext-link ext-link-type="uri" xlink:href="https://github.com/marisae/cancer-chemo-identifiability" xlink:type="simple">https://github.com/marisae/cancer-chemo-identifiability</ext-link>).</p>
<p>The taxol treatment model is defined by the set of ODEs with three state variables, five unknown parameters (a0, ka, r0, d0, kd), dosage regime and experimental data. The unknown parameters have been fitted to experimental data and their estimated values were taken from original Matlab implementation. Even though the model is structurally identifiable, practically available experimental data, as it was shown [<xref ref-type="bibr" rid="pcbi.1008495.ref020">20</xref>], is insufficient to recover all the unknown parameters.</p>
<p>The same authors provide an open GitHub repository with Matlab implementation of the taxol treatment model (<ext-link ext-link-type="uri" xlink:href="https://github.com/marisae/cancer-chemo-identifiability" xlink:type="simple">https://github.com/marisae/cancer-chemo-identifiability</ext-link>). This implementation was used to verify the results obtained by CICO algorithm. The repository includes Matlab script for a0 identification. We have adapted this script to estimate CI for other four unknown parameters (ka, r0, d0, kd). No changes were made to the original Matlab code with the exception of counters, which were added to count the number of likelihood function calls the algorithm makes until it reaches the threshold. Internally the Matlab implementation uses lsqcurvefit function for fitting.</p>
<p>To run identifiability analysis with LikelihoodProfiler package the taxol treatment model was rewritten in Julia language. To make the numerical simulations comparable with original Matlab implementation Julia’s analogue of Matlab ode23s solver Rosenbrock23 from DifferentialEquations.jl package [<xref ref-type="bibr" rid="pcbi.1008495.ref021">21</xref>] was used with the same tolerances setup: relative 1e-3, absolute 1e-6. Search bounds for all unknown parameters were set to (1e-3,1e3). CICO CI endpoints were estimated with Nelder-Mead derivative-free solver from NLopt package.</p>
<p>CI endpoints estimated with CICO (<bold><xref ref-type="table" rid="pcbi.1008495.t001">Table 1</xref></bold>) correspond with the values obtained in the original code.</p>
<table-wrap id="pcbi.1008495.t001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pcbi.1008495.t001</object-id>
<label>Table 1</label> <caption><title>Comparison of CICO and stepwise profile likelihood methods for the cancer taxol treatment model.</title></caption>
<alternatives>
<graphic id="pcbi.1008495.t001g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pcbi.1008495.t001" xlink:type="simple"/>
<table>
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="left"/>
<th align="center" colspan="5">LikelihoodProfiler (CICO)</th>
<th align="center" colspan="5">Original Matlab (Stepwise PL)</th>
</tr>
<tr>
<th align="left">Parameter</th>
<th align="center">Lower Endpoint</th>
<th align="center">Upper Endpoint</th>
<th align="center">LF Calls (Lower)</th>
<th align="center">LF Calls (Upper)</th>
<th align="center">Time (sec)</th>
<th align="center">Lower Endpoint</th>
<th align="center">Upper Endpoint</th>
<th align="center">LF Calls (Lower)</th>
<th align="center">LF Calls (Upper)</th>
<th align="center">Time (sec)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">a0</td>
<td align="left">6.76</td>
<td align="left">17.3</td>
<td align="left">285</td>
<td align="left">601</td>
<td align="left">2.79</td>
<td align="left">(7.9, 8.32)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">(17.05, 17.46)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">285</td>
<td align="left">1715</td>
<td align="left">97.74</td>
</tr>
<tr>
<td align="left">ka</td>
<td align="left">4.99</td>
<td align="left">10.73</td>
<td align="left">522</td>
<td align="left">349</td>
<td align="left">3.26</td>
<td align="left">(4.86, 5.26)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">(10.52, 10.93)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">682</td>
<td align="left">670</td>
<td align="left">75.16</td>
</tr>
<tr>
<td align="left">r0</td>
<td align="left">NI</td>
<td align="left">0.4</td>
<td align="left">49</td>
<td align="left">796</td>
<td align="left">2.85</td>
<td align="left">NI</td>
<td align="left">(0.36, 0.37)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">1510</td>
<td align="left">7475</td>
<td align="left">531.96</td>
</tr>
<tr>
<td align="left">d0</td>
<td align="left">0.19</td>
<td align="left">NI</td>
<td align="left">601</td>
<td align="left">170</td>
<td align="left">2.81</td>
<td align="left">(0.13, 0.2)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">NI</td>
<td align="left">1605</td>
<td align="left">&gt;20000</td>
<td align="left">&gt;1000</td>
</tr>
<tr>
<td align="left">kd</td>
<td align="left">50.51</td>
<td align="left">NI</td>
<td align="left">796</td>
<td align="left">223</td>
<td align="left">3.74</td>
<td align="left">(47.65, 53.61)<xref ref-type="table-fn" rid="t001fn002">*</xref></td>
<td align="left">NI</td>
<td align="left">930</td>
<td align="left">12260</td>
<td align="left">722.52</td>
</tr>
</tbody>
</table>
</alternatives>
<table-wrap-foot>
<fn id="t001fn001"><p>CI endpoints estimated with CICO and CIs’ estimates obtained in the original Matlab stepwise optimization-based implementation. The CI endpoints for original Matlab implementation are given as intervals</p></fn>
<fn id="t001fn002"><p>(*) because stepwise PL approach doesn’t estimate endpoints with any preset tolerance but marks two points before and after parameter’s profile intersects the threshold. NI stands for non-identifiable parameter. Elapsed time is measured by <monospace>@time</monospace> in Julia and <monospace>tic toc</monospace> in Matlab. Computations were performed on a standard desktop computer (2.30 GHz Intel Core i3 with 8 GB RAM).</p></fn>
</table-wrap-foot>
</table-wrap>
<p>As most of computational efforts in “profiling” approach are focused on solving ODEs with different parameters’ sets, the performance of the algorithms was measured by the number of likelihood function calls (<bold><xref ref-type="table" rid="pcbi.1008495.t001">Table 1</xref></bold>) the algorithm makes until it reaches (or converges to) the endpoint. In the taxol treatment model each likelihood function computation requires solving ODE system four times for four different treatment doses.</p>
<p>In general, CICO needs less likelihood function evaluations than stepwise optimization-based profiling to converge to endpoint value. Efficacy of CICO is especially evident in non-identifiable cases. This is due to the constraints incorporated in the objective function as a penalty part. It starts to penalize the algorithm only when optimizer gets near to the threshold, which doesn’t happen in many non-identifiable cases where profiles are flat.</p>
<p><bold><xref ref-type="fig" rid="pcbi.1008495.g002">Fig 2</xref></bold> illustrates the search path of stepwise “profiling” and CICO for identifiable a0 parameter and non-identifiable kd parameter. Stepwise-optimization tends to follow the profile path while CICO algorithm doesn’t require the intermediate points to lie on the profile, which leads to fewer likelihood-function calls.</p>
<fig id="pcbi.1008495.g002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pcbi.1008495.g002</object-id>
<label>Fig 2</label>
<caption>
<title>Search paths for the parameters’ CI endpoints of the cancer taxol treatment model.</title>
<p>The path of CI search for stepwise optimization-based algorithm (<bold>A, C</bold>) and CICO algorithm (<bold>B, D</bold>). Circles denote the points reached by the algorithm during the search and numbers above the circles indicate the number of likelihood function calls the algorithm makes to reach this point. The dotted line is the likelihood profile calculated separately for illustrative purposes. The dashed horizontal line marks the significance level <italic>α</italic> = 0.95. Red circles mark the estimated endpoints (if they exist) for CICO algorithm and black–the points, where the algorithm reaches the box constraints. It denotes non-identifiable case. (<bold>A</bold>) Estimation of lower and upper CI endpoints with the stepwise optimization-based method for a0 parameter. (<bold>B</bold>) Estimation of lower and upper CI endpoints with CICO method for a0 parameter. (<bold>C</bold>) Estimation of lower and upper CI endpoints with the stepwise optimization-based method for kd parameter. (<bold>D</bold>) Estimation of lower and upper CI endpoints with CICO method for kd parameter.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pcbi.1008495.g002" xlink:type="simple"/>
</fig>
</sec>
<sec id="sec015">
<title>Validation: STAT5 dimerization model</title>
<p>STAT5 Dimerization Model [<xref ref-type="bibr" rid="pcbi.1008495.ref022">22</xref>] consists of eight state variables, nine parameters and experimental dataset. It is proposed as one of the benchmark models in dMod simulation package [<xref ref-type="bibr" rid="pcbi.1008495.ref013">13</xref>]. We have translated the model from PEtab format used by dMod into Julia. The model’s files include best-fit parameter values, which were taken as initial values for identifiability analysis. The boundaries for parameters deviance were set according to PEtab data to (1e-5,1e5). We have reproduced the identifiability analysis of the model in R with dMod and in Julia with LikelihoodProfiler.</p>
<p>dMod implements <italic>integration-based</italic> approach to parameters identification, according to which parameters’ profiles are obtained as a solution of ODE system. This approach mentioned in Section 2.4 (Available methods) relies on first derivatives of the likelihood function and Hessian approximation. To ensure the integration accurately follows the profile path each point proposed by integration step can be used as the initial point for optimization. This option is controlled by <monospace>method =“optimize”</monospace> setting. In case of STAT5 Dimerization Model we have used the”<monospace>optimize”</monospace> method because default”<monospace>integrate”</monospace> method had not produced all the profiles due to Hessian-related issues. We have added iteration counter to R code to count likelihood function calls. dMod stops the profile integration when it intersects the threshold or when parameter bounds are reached. Hence, CI endpoints are reported as intervals with average width approximately equal to 3e-2 (<bold><xref ref-type="table" rid="pcbi.1008495.t002">Table 2</xref></bold>).</p>
<table-wrap id="pcbi.1008495.t002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pcbi.1008495.t002</object-id>
<label>Table 2</label> <caption><title>Comparison of LikelihoodProfiler and dMod for STAT5 dimerization model.</title></caption>
<alternatives>
<graphic id="pcbi.1008495.t002g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pcbi.1008495.t002" xlink:type="simple"/>
<table>
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="left"/>
<th align="center" colspan="5">LikelihoodProfiler (CICO)</th>
<th align="center" colspan="4">dMod (optimize)</th>
</tr>
<tr>
<th align="left">Parameter</th>
<th align="center">Lower Endpoint</th>
<th align="center">Upper Endpoint</th>
<th align="center">LF Calls (Lower)</th>
<th align="center">LF Calls (Upper)</th>
<th align="center">Time (sec)</th>
<th align="center">Lower Endpoint</th>
<th align="center">Upper Endpoint</th>
<th align="center">LF Calls (Total)</th>
<th align="center">Time (sec)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Epo_degradation_BaF3</td>
<td align="left">-1.71</td>
<td align="left">-1.42</td>
<td align="left">523</td>
<td align="left">494</td>
<td align="left">0.75</td>
<td align="left">(-1.74, -1.72)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">(-1.42, -1.39)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">1716</td>
<td align="left">42.15</td>
</tr>
<tr>
<td align="left">k_exp_hetero</td>
<td align="left">NI</td>
<td align="left">-3.15</td>
<td align="left">4</td>
<td align="left">1036</td>
<td align="left">0.72</td>
<td align="left">NI</td>
<td align="left">(-3.1, -3.01)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">533</td>
<td align="left">13.53</td>
</tr>
<tr>
<td align="left">k_exp_homo</td>
<td align="left">-2.48</td>
<td align="left">-1.98</td>
<td align="left">237</td>
<td align="left">289</td>
<td align="left">0.4</td>
<td align="left">(-2.56, -2.52)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">(-1.95, -1.93)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">1931</td>
<td align="left">47.89</td>
</tr>
<tr>
<td align="left">k_imp_hetero</td>
<td align="left">-1.86</td>
<td align="left">-1.69</td>
<td align="left">171</td>
<td align="left">179</td>
<td align="left">0.32</td>
<td align="left">(-1.91, -1.9)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">(-1.67,-1.66)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">1435</td>
<td align="left">37.58</td>
</tr>
<tr>
<td align="left">k_imp_homo</td>
<td align="left">0.19</td>
<td align="left">NI</td>
<td align="left">1287</td>
<td align="left">7</td>
<td align="left">1.04</td>
<td align="left">(0.11, 0.18)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">NI</td>
<td align="left">2675</td>
<td align="left">66.35</td>
</tr>
<tr>
<td align="left">k_phos</td>
<td align="left">4.16</td>
<td align="left">4.27</td>
<td align="left">143</td>
<td align="left">168</td>
<td align="left">0.21</td>
<td align="left">(4.1, 4.12)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">(4.29, 4.3)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">1959</td>
<td align="left">50.75</td>
</tr>
<tr>
<td align="left">sd_pSTAT5A_rel</td>
<td align="left">0.44</td>
<td align="left">0.77</td>
<td align="left">172</td>
<td align="left">243</td>
<td align="left">0.34</td>
<td align="left">(0.42, 0.44)<xref ref-type="table-fn" rid="t002fn002">*</xref></td>
<td align="left">(0.78, 0.8)</td>
<td align="left">2165</td>
<td align="left">55.58</td>
</tr>
<tr>
<td align="left">sd_pSTAT5B_rel</td>
<td align="left">0.72</td>
<td align="left">0.99</td>
<td align="left">231</td>
<td align="left">186</td>
<td align="left">0.34</td>
<td align="left">(0.66, 0.68)</td>
<td align="left">(0.99, 1.01)</td>
<td align="left">2062</td>
<td align="left">53.50</td>
</tr>
<tr>
<td align="left">sd_rSTAT5A_rel</td>
<td align="left">0.4</td>
<td align="left">0.67</td>
<td align="left">204</td>
<td align="left">929</td>
<td align="left">0.83</td>
<td align="left">(0.35, 0.36)</td>
<td align="left">(0.67, 0.67)</td>
<td align="left">2062</td>
<td align="left">53.49</td>
</tr>
</tbody>
</table>
</alternatives>
<table-wrap-foot>
<fn id="t002fn001"><p>CI endpoints estimated with LikelihoodProfiler (CICO) and CIs’ estimates obtained in dMod. Lower and upper CI endpoints for dMod are given as intervals</p></fn>
<fn id="t002fn002"><p>* marking two points before and after parameter’s profile intersects the threshold. NI stands for non-identifiable parameter. Elapsed time is measured by <monospace>@time</monospace> in Julia and <monospace>system.time</monospace> in R. Computations were performed on a standard desktop computer (2.30 GHz Intel Core i3 with 8 GB RAM).</p></fn>
</table-wrap-foot>
</table-wrap>
<p>This allowed us to set tolerance of endpoint estimation in LikelihoodProfiler <monospace>scan_tol = 1e-2.</monospace> To make Julia simulations close to deSolve.lsoda used in dMod we have chosen LSODA differential equations solver (supported by DifferentialEquations.jl) with the same tolerance setup: relative 1e-7, absolute 1e-7. Nelder-Mead derivative-free solver from NLopt package was used to estimate CI endpoints.</p>
<p>Taking into account the difference of the underlying optimizers, the endpoints reported by LikelihoodProfiler correspond to the values obtained in dMod. The performance of each package was measured by the number of likelihood function evaluations and time required to compute CI endpoints. The results indicate the efficiency of CICO, which on average overperforms integration-based approach implemented in dMod even though dMod relies on model’s functions compiled to C. Only for <italic>k_exp_hetero</italic> parameter dMod "optimize” method has recorded fewer likelihood function calls. Timings indicate significant practical efficacy of both CICO and Julia language for this task.</p>
<p>The detailed identifiability analysis of the Taxol treatment model and STAT5 dimerization model, the source code as well as other use-case models’ identifiability analyses are published on our GitHub repository (<ext-link ext-link-type="uri" xlink:href="https://github.com/insysbio/likelihoodprofiler-cases" xlink:type="simple">https://github.com/insysbio/likelihoodprofiler-cases</ext-link>).</p>
</sec>
</sec>
<sec id="sec016" sec-type="conclusions">
<title>Discussion</title>
<p>A number of recent studies have demonstrated that profile likelihood-based methods are efficient to analyze identifiability of the parameters reconstructed on the basis of experimental data. In the absence of identifiability analysis one can never be certain how reliable parameters estimations and how accurate the model predictions are. However, practical usage of profile likelihood-based methods has not become a standard routine yet due to a number of challenges.</p>
<p>Indeed, profile likelihood-based methods are computationally demanding. Progressive stepping and other optimizations of the basic profile likelihood approach impose restrictions on the likelihood function (such as the need to calculate gradients) and limits the set of the applicable optimization methods. The CICO algorithm attempts to solve this problem by replacing multiple calculations of the likelihood function with constrained optimization. For each individual parameter only two optimization iterations are required to calculate the lower and upper CI endpoints. CICO doesn’t require the gradient of the likelihood function and allows the user to choose derivative-free or gradient-based optimization algorithm.</p>
<p>Other challenges originate from uncertainty in practical non-identifiability definition. It is implied that researchers have to scan sufficiently wide but finite intervals to state a non-identifiable case. In practice it is usually performed by visualizing the profiles on a chosen interval and extrapolating profiles behavior to the global parameters feasible region. In the current study we have proposed a formal criteria of the algorithm termination, utilizing the scan bounds notion, which can automate the analysis process and get rid of subjectivity.</p>
<p>The numerical experiments have demonstrated that confidence intervals obtained with CICO algorithm ​​coincide with the results reported in the publications. As it was shown, on average the algorithm overperforms considered above optimization-based and integration-based PL implementations. This comparison was performed with the default solver settings and can possibly be optimized for greater efficiency. Moreover, the optimization-based PL approach doesn’t converge to the endpoint, while the CICO algorithm was developed to accurately estimate CI endpoints. Hence a more thorough comparison of the algorithms is difficult, since the termination criteria of the optimization-based PL doesn’t take into account the accuracy of CI endpoints estimation.</p>
<p>To compare the methods we have measured efficacy in terms of elapsed time and likelihood function calls required to obtain CI endpoints. In general, CICO implementation in LikelihoodProfiler is about 100 times faster than dMod integration-based approach (R) and optimization-based method (Matlab). However, it is important to note that timings highly depend on the programming language, optimization method and ODE solver used while the number of likelihood function evaluations is a language independent measurement, though it also is affected by the efficacy of optimization algorithm and ODE solver.</p>
<p>In addition to confidence intervals, other interval estimates may also be of interest: confidence n-dimensional parameters’ regions, prediction bands, etc. The CICO algorithm usage can be potentially expanded to calculate these generalizations of confidence intervals, and we plan to test its use for these classes of tasks in our future studies.</p>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="pcbi.1008495.ref001"><label>1</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Miao</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Xia</surname> <given-names>X</given-names></name>, <name name-style="western"><surname>Perelson</surname> <given-names>AS</given-names></name>, <name name-style="western"><surname>Wu</surname> <given-names>H</given-names></name>. <article-title>On identifiability of nonlinear ODE models and applications in viral dynamics</article-title>. <source>SIAM Review</source>. <year>2011</year>. pp. <fpage>3</fpage>–<lpage>39</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1137/090757009" xlink:type="simple">10.1137/090757009</ext-link></comment> <object-id pub-id-type="pmid">21785515</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref002"><label>2</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Bellman</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Åström</surname> <given-names>KJ</given-names></name>. <article-title>On structural identifiability</article-title>. <source>Math Biosci</source>. <year>1970</year>;<volume>7</volume>: <fpage>329</fpage>–<lpage>339</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/0025-5564%2870%2990132-X" xlink:type="simple">10.1016/0025-5564(70)90132-X</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref003"><label>3</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Cobelli</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>DiStefano</surname> <given-names>JJ</given-names></name>. <article-title>Parameter and structural identifiability concepts and ambiguities: a critical review and analysis</article-title>. <source>Am J Physiol</source>. <year>1980</year>;<volume>239</volume>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1152/ajpregu.1980.239.1.R7" xlink:type="simple">10.1152/ajpregu.1980.239.1.R7</ext-link></comment> <object-id pub-id-type="pmid">7396041</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref004"><label>4</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Chis</surname> <given-names>OT</given-names></name>, <name name-style="western"><surname>Banga</surname> <given-names>JR</given-names></name>, <name name-style="western"><surname>Balsa-Canto</surname> <given-names>E</given-names></name>. <article-title>Structural identifiability of systems biology models: A critical comparison of methods</article-title>. <source>PLoS One</source>. <year>2011</year>;<volume>6</volume>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1371/journal.pone.0027755" xlink:type="simple">10.1371/journal.pone.0027755</ext-link></comment> <object-id pub-id-type="pmid">22132135</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref005"><label>5</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Raue</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Kreutz</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Maiwald</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Bachmann</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Schilling</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Klingmüller</surname> <given-names>U</given-names></name>, <etal>et al</etal>. <article-title>Structural and practical identifiability analysis of partially observed dynamical models by exploiting the profile likelihood</article-title>. <source>Bioinformatics</source>. <year>2009</year>;<volume>25</volume>: <fpage>1923</fpage>–<lpage>1929</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1093/bioinformatics/btp358" xlink:type="simple">10.1093/bioinformatics/btp358</ext-link></comment> <object-id pub-id-type="pmid">19505944</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref006"><label>6</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Eisenberg</surname> <given-names>MC</given-names></name>, <name name-style="western"><surname>Robertson</surname> <given-names>SL</given-names></name>, <name name-style="western"><surname>Tien</surname> <given-names>JH</given-names></name>. <article-title>Identifiability and estimation of multiple transmission pathways in cholera and waterborne disease</article-title>. <source>J Theor Biol</source>. <year>2013</year>;<volume>324</volume>: <fpage>84</fpage>–<lpage>102</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.jtbi.2012.12.021" xlink:type="simple">10.1016/j.jtbi.2012.12.021</ext-link></comment> <object-id pub-id-type="pmid">23333764</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref007"><label>7</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Seber</surname> <given-names>GAF</given-names></name>, <name name-style="western"><surname>Wild</surname> <given-names>CJ</given-names></name>. <source>Nonlinear Regression</source>. <publisher-loc>Hoboken, NJ, USA</publisher-loc>: <publisher-name>John Wiley &amp; Sons, Inc</publisher-name>.; <year>1989</year>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1002/0471725315" xlink:type="simple">10.1002/0471725315</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref008"><label>8</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Kolobkov</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Demin</surname> <given-names>O</given-names></name>, <name name-style="western"><surname>Metelkin</surname> <given-names>E</given-names></name>. <article-title>Comparison of asymptotic confidence sets for regression in small samples</article-title>. <source>J Biopharm Stat</source>. <year>2016</year>;<volume>26</volume>: <fpage>742</fpage>–<lpage>757</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/10543406.2015.1052818" xlink:type="simple">10.1080/10543406.2015.1052818</ext-link></comment> <object-id pub-id-type="pmid">26099035</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref009"><label>9</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Kreutz</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Raue</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Kaschek</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Timmer</surname> <given-names>J</given-names></name>. <article-title>Profile likelihood in systems biology</article-title>. <source>FEBS J</source>. <year>2013</year>;<volume>280</volume>: <fpage>2564</fpage>–<lpage>2571</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1111/febs.12276" xlink:type="simple">10.1111/febs.12276</ext-link></comment> <object-id pub-id-type="pmid">23581573</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref010"><label>10</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Venzon</surname> <given-names>DJ</given-names></name>, <name name-style="western"><surname>Moolgavkar</surname> <given-names>SH</given-names></name>. <article-title>A Method for Computing Profile-Likelihood-Based Confidence Intervals.</article-title> <source>Appl Stat</source>. <year>1988</year>;<volume>37</volume>: <fpage>87</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.2307/2347496" xlink:type="simple">10.2307/2347496</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref011"><label>11</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Boiger</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Hasenauer</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Hroß</surname> <given-names>S</given-names></name>, <name name-style="western"><surname>Kaltenbacher</surname> <given-names>B</given-names></name>. <article-title>Integration based profile likelihood calculation for PDE constrained parameter estimation problems</article-title>. <source>Inverse Probl</source>. <year>2016</year>;<volume>32.</volume> <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1088/0266-5611/32/12/125009" xlink:type="simple">10.1088/0266-5611/32/12/125009</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref012"><label>12</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Stapor</surname> <given-names>P</given-names></name>, <name name-style="western"><surname>Fröhlich</surname> <given-names>F</given-names></name>, <name name-style="western"><surname>Hasenauer</surname> <given-names>J</given-names></name>. <chapter-title>Optimization and profile calculation of ODE models using second order adjoint sensitivity analysis</chapter-title>. <source>Bioinformatics</source>. <publisher-name>Oxford University Press</publisher-name>; <year>2018</year>. pp. <fpage>i151</fpage>–<lpage>i159</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1093/bioinformatics/bty230" xlink:type="simple">10.1093/bioinformatics/bty230</ext-link></comment> <object-id pub-id-type="pmid">29949990</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref013"><label>13</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Kaschek</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Mader</surname> <given-names>W</given-names></name>, <name name-style="western"><surname>Kaschek</surname> <given-names>MF</given-names></name>, <name name-style="western"><surname>Rosenblatt</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Timmer</surname> <given-names>J</given-names></name>. <article-title>Dynamic modeling, parameter estimation, and uncertainty analysis in R</article-title>. <source>J Stat Softw</source>. <year>2019</year>;<volume>88</volume>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.18637/jss.v088.i10" xlink:type="simple">10.18637/jss.v088.i10</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref014"><label>14</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Chen</surname> <given-names>JS</given-names></name>, <name name-style="western"><surname>Jennrich</surname> <given-names>RI</given-names></name>. <article-title>Simple accurate approximation of likelihood profiles</article-title>. <source>J Comput Graph Stat</source>. <year>2002</year>;<volume>11</volume>: <fpage>714</fpage>–<lpage>732</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1198/106186002493" xlink:type="simple">10.1198/106186002493</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref015"><label>15</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Raue</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Steiert</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Schelker</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Kreutz</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Maiwald</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Hass</surname> <given-names>H</given-names></name>, <etal>et al</etal>. <article-title>Data2Dynamics: a modeling environment tailored to parameter estimation in dynamical systems</article-title>. <source>Bioinformatics</source>. <year>2015</year>;<volume>31</volume>: <fpage>3558</fpage>–<lpage>60</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1093/bioinformatics/btv405" xlink:type="simple">10.1093/bioinformatics/btv405</ext-link></comment> <object-id pub-id-type="pmid">26142188</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref016"><label>16</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Bezanson</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Edelman</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Karpinski</surname> <given-names>S</given-names></name>, <name name-style="western"><surname>Shah</surname> <given-names>VB</given-names></name>. <article-title>Julia: A fresh approach to numerical computing</article-title>. <source>SIAM Rev</source>. <year>2017</year>;<volume>59</volume>: <fpage>65</fpage>–<lpage>98</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1137/141000671" xlink:type="simple">10.1137/141000671</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref017"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Steven G. Johnson. The NLopt nonlinear-optimization package. Available: <ext-link ext-link-type="uri" xlink:href="http://github.com/stevengj/nlopt" xlink:type="simple">http://github.com/stevengj/nlopt</ext-link></mixed-citation></ref>
<ref id="pcbi.1008495.ref018"><label>18</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Conn</surname> <given-names>AR</given-names></name>, <name name-style="western"><surname>Gould</surname> <given-names>NIM</given-names></name>, <name name-style="western"><surname>Toint</surname> <given-names>PL</given-names></name>. <article-title>A globally convergent augmented Lagrangian algorithm for optimization with general constraints and simple bounds</article-title>. <source>SIAM J Numer Anal</source>. <year>1991</year>;<volume>28</volume>: <fpage>545</fpage>–<lpage>572</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1137/0728030" xlink:type="simple">10.1137/0728030</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref019"><label>19</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Birgin</surname> <given-names>EG</given-names></name>, <name name-style="western"><surname>Martánez</surname> <given-names>JM</given-names></name>. <article-title>Improving ultimate convergence of an augmented Lagrangian method</article-title>. <source>Optim Methods Softw</source>. <year>2008</year>;<volume>23</volume>: <fpage>177</fpage>–<lpage>195</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1080/10556780701577730" xlink:type="simple">10.1080/10556780701577730</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref020"><label>20</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Eisenberg</surname> <given-names>MC</given-names></name>, <name name-style="western"><surname>Jain</surname> <given-names>H V</given-names></name>. <article-title>A confidence building exercise in data and identifiability: Modeling cancer chemotherapy as a case study</article-title>. <source>J Theor Biol</source>. <year>2017</year>;<volume>431</volume>: <fpage>63</fpage>–<lpage>78</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.jtbi.2017.07.018" xlink:type="simple">10.1016/j.jtbi.2017.07.018</ext-link></comment> <object-id pub-id-type="pmid">28733187</object-id></mixed-citation></ref>
<ref id="pcbi.1008495.ref021"><label>21</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Rackauckas</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Nie</surname> <given-names>Q</given-names></name>. <article-title>DifferentialEquations.jl–A Performant and Feature-Rich Ecosystem for Solving Differential Equations in Julia</article-title>. <source>J Open Res Softw</source>. <year>2017</year>;<volume>5</volume>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5334/jors.151" xlink:type="simple">10.5334/jors.151</ext-link></comment></mixed-citation></ref>
<ref id="pcbi.1008495.ref022"><label>22</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Boehm</surname> <given-names>ME</given-names></name>, <name name-style="western"><surname>Adlung</surname> <given-names>L</given-names></name>, <name name-style="western"><surname>Schilling</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Roth</surname> <given-names>S</given-names></name>, <name name-style="western"><surname>Klingmüller</surname> <given-names>U</given-names></name>, <name name-style="western"><surname>Lehmann</surname> <given-names>WD</given-names></name>. <article-title>Identification of isoform-specific dynamics in phosphorylation-dependent STAT5 dimerization by quantitative mass spectrometry and mathematical modeling</article-title>. <source>J Proteome Res</source>. <year>2014</year>;<volume>13</volume>: <fpage>5685</fpage>–<lpage>5694</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1021/pr5006923" xlink:type="simple">10.1021/pr5006923</ext-link></comment> <object-id pub-id-type="pmid">25333863</object-id></mixed-citation></ref>
</ref-list>
</back>
<sub-article article-type="aggregated-review-documents" id="pcbi.1008495.r001" specific-use="decision-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pcbi.1008495.r001</article-id>
<title-group>
<article-title>Decision Letter 0</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Beard</surname>
<given-names>Daniel A</given-names>
</name>
<role>Deputy Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2020</copyright-year>
<copyright-holder>Daniel A Beard</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pcbi.1008495" document-id-type="doi" document-type="article" id="rel-obj001" link-type="peer-reviewed-article"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>0</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">4 Sep 2020</named-content>
</p>
<p>Dear Mr. Borisov,</p>
<p>Thank you very much for submitting your manuscript "Confidence intervals by constrained optimization – an algorithm and software package for practical identifiability analysis in Systems Biology" for consideration at PLOS Computational Biology. As with all papers reviewed by the journal, your manuscript was reviewed by members of the editorial board and by several independent reviewers. The reviewers appreciated the attention to an important topic. Based on the reviews, we are likely to accept this manuscript for publication, providing that you modify the manuscript according to the review recommendations.</p>
<p>Please prepare and submit your revised manuscript within 30 days. If you anticipate any delay, please let us know the expected resubmission date by replying to this email. </p>
<p>When you are ready to resubmit, please upload the following:</p>
<p>[1] A letter containing a detailed list of your responses to all review comments, and a description of the changes you have made in the manuscript. Please note while forming your response, if your article is accepted, you may have the opportunity to make the peer review history publicly available. The record will include editor decision letters (with reviews) and your responses to reviewer comments. If eligible, we will contact you to opt in or out</p>
<p>[2] Two versions of the revised manuscript: one with either highlights or tracked changes denoting where the text has been changed; the other a clean version (uploaded as the manuscript file).</p>
<p>Important additional instructions are given below your reviewer comments.</p>
<p>Thank you again for your submission to our journal. We hope that our editorial process has been constructive so far, and we welcome your feedback at any time. Please don't hesitate to contact us if you have any questions or comments.</p>
<p>Sincerely,</p>
<p>Daniel A Beard</p>
<p>Deputy Editor</p>
<p>PLOS Computational Biology</p>
<p>Daniel Beard</p>
<p>Deputy Editor</p>
<p>PLOS Computational Biology</p>
<p>***********************</p>
<p>A link appears below if there are any accompanying review attachments. If you believe any reviews to be missing, please contact <email xlink:type="simple">ploscompbiol@plos.org</email> immediately:</p>
<p>[LINK]</p>
<p>Reviewer's Responses to Questions</p>
<p><bold>Comments to the Authors:</bold></p>
<p><bold>Please note here if the review is uploaded as an attachment.</bold></p>
<p>Reviewer #1: The article is very clearly written. The authors lay out a timeline of the developments of the field that to me seems fairly complete and leads directly to the new method as a substantial increase in the field. The motivation for focusing on the structural identifiability is made fairly clear. The method is well-described and after reading it, it's clear that it should work. The evidence then demonstrates that it does work. I can easily see this method and this package being used by many researchers in practice.</p>
<p>That said, there are some improvements that should probably be made to the paper before publication. For one, I think that section 3.4 is unnecessary. I think it's fairly clear that this kind of numerical method needs to be computed on some finite support so practically all determinations are going to be made in some box. I don't think that more than a sentence or a paragraph is really required to get that point across. Secondly, the paper itself doesn't seem to have a lot of the validation. One example is used as validation, but the paper needs more. When I look at the package they discuss, I can see 5 clear examples with Binder links that demonstrate the method on more systems: some of this should be in the paper instead of 3.4 in order to more broadly demonstrate the validity of this method. Next, what they established was "structural efficiency", i.e. efficiency in terms of likelihood function evaluations. But it would've been nice to also see "practical efficiency", i.e. raw timings for the MATLAB method and Julia and Python implementation of the new methods, and use this to demonstrate a clear orders of magnitude actual performance improvement. Overall I think it's a really good paper, a good idea, and a strong result with just some touch-ups requires to really hammer home the advance in a more clear way.</p>
<p>Reviewer #2: This article presents a novel method to study practical identifiability of parameters of ODE-based models. The method is innovative and seems to overcome existing methods in terms of computational cost, at least in the presented example. It can definitely be useful for the Research community, especially since the authors have made it freely available either in Julia or in Python. The article is very clear and well written. It cites all relevant literature. I have three minor comments:</p>
<p>-Equation 7 : precise the values for j, to make clearer the fact that this is a system of more than 2 equations.</p>
<p>-Equation 8: it is not obvious how the authors transformed system (<xref ref-type="disp-formula" rid="pcbi.1008495.e025">7</xref>) into system (<xref ref-type="disp-formula" rid="pcbi.1008495.e031">8</xref>). More explanations are needed here since this is key to understand the algorithm. Are the systems strictly equivalent? In the definition of c, the authors need to precise the position of the “1” in the vector.</p>
<p>-The authors claim in the Abstract and Introduction that their method provides more accurate estimation of confidence Interval bounds. However, this is not demonstrated in the article, neither theoretically, nor computationally (On the opposite, they do provide some evidence of the lower computational cost of their algorithm compared to existing ones). Please either add the corresponding evidence or modify the text.</p>
<p>**********</p>
<p><bold>Have all data underlying the figures and results presented in the manuscript been provided?</bold></p>
<p>Large-scale datasets should be made available via a public repository as described in the <italic>PLOS Computational Biology</italic> <ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/ploscompbiol/s/data-availability" xlink:type="simple">data availability policy</ext-link>, and numerical data that underlies graphs or summary statistics should be provided in spreadsheet form as supporting information.</p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p>PLOS authors have the option to publish the peer review history of their article (<ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/ploscompbiol/s/editorial-and-peer-review-process#loc-peer-review-history" xlink:type="simple">what does this mean?</ext-link>). If published, this will include your full peer review and any attached files.</p>
<p>If you choose “no”, your identity will remain anonymous but your review may still be made public.</p>
<p><bold>Do you want your identity to be public for this peer review?</bold> For information about this choice, including consent withdrawal, please see our <ext-link ext-link-type="uri" xlink:href="https://www.plos.org/privacy-policy" xlink:type="simple">Privacy Policy</ext-link>.</p>
<p>Reviewer #1: <bold>Yes: </bold>Christopher Rackauckas</p>
<p>Reviewer #2: No</p>
<p><underline>Figure Files:</underline></p>
<p>While revising your submission, please upload your figure files to the Preflight Analysis and Conversion Engine (PACE) digital diagnostic tool, <underline><ext-link ext-link-type="uri" xlink:href="https://pacev2.apexcovantage.com/" xlink:type="simple">https://pacev2.apexcovantage.com</ext-link></underline>. PACE helps ensure that figures meet PLOS requirements. To use PACE, you must first register as a user. Then, login and navigate to the UPLOAD tab, where you will find detailed instructions on how to use the tool. If you encounter any issues or have any questions when using PACE, please email us at <underline><email xlink:type="simple">figures@plos.org</email></underline>.</p>
<p><underline>Data Requirements:</underline></p>
<p>Please note that, as a condition of publication, PLOS' data policy requires that you make available all data used to draw the conclusions outlined in your manuscript. Data must be deposited in an appropriate repository, included within the body of the manuscript, or uploaded as supporting information. This includes all numerical values that were used to generate graphs, histograms etc.. For an example in PLOS Biology see here: <ext-link ext-link-type="uri" xlink:href="http://www.plosbiology.org/article/info%3Adoi%2F10.1371%2Fjournal.pbio.1001908#s5" xlink:type="simple">http://www.plosbiology.org/article/info%3Adoi%2F10.1371%2Fjournal.pbio.1001908#s5</ext-link>.</p>
<p><underline>Reproducibility:</underline></p>
<p>To enhance the reproducibility of your results, PLOS recommends that you deposit laboratory protocols in protocols.io, where a protocol can be assigned its own identifier (DOI) such that it can be cited independently in the future. For instructions see <underline><ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/plospathogens/s/submission-guidelines" xlink:type="simple">http://journals.plos.org/ploscompbiol/s/submission-guidelines#loc-materials-and-methods</ext-link></underline></p>
</body>
</sub-article>
<sub-article article-type="author-comment" id="pcbi.1008495.r002">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pcbi.1008495.r002</article-id>
<title-group>
<article-title>Author response to Decision Letter 0</article-title>
</title-group>
<related-object document-id="10.1371/journal.pcbi.1008495" document-id-type="doi" document-type="peer-reviewed-article" id="rel-obj002" link-type="rebutted-decision-letter" object-id="10.1371/journal.pcbi.1008495.r001" object-id-type="doi" object-type="decision-letter"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>1</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="author-response-date">20 Oct 2020</named-content>
</p>
<supplementary-material id="pcbi.1008495.s001" mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document" position="float" xlink:href="info:doi/10.1371/journal.pcbi.1008495.s001" xlink:type="simple">
<label>Attachment</label>
<caption>
<p>Submitted filename: <named-content content-type="submitted-filename">Letter to reviewers.docx</named-content></p>
</caption>
</supplementary-material>
</body>
</sub-article>
<sub-article article-type="aggregated-review-documents" id="pcbi.1008495.r003" specific-use="decision-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pcbi.1008495.r003</article-id>
<title-group>
<article-title>Decision Letter 1</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Beard</surname>
<given-names>Daniel A</given-names>
</name>
<role>Deputy Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2020</copyright-year>
<copyright-holder>Daniel A Beard</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pcbi.1008495" document-id-type="doi" document-type="article" id="rel-obj003" link-type="peer-reviewed-article"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>1</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">6 Nov 2020</named-content>
</p>
<p>Dear Mr. Borisov,</p>
<p>We are pleased to inform you that your manuscript 'Confidence Intervals by Constrained Optimization – an Algorithm and Software Package for Practical Identifiability Analysis in Systems Biology' has been provisionally accepted for publication in PLOS Computational Biology.</p>
<p>Before your manuscript can be formally accepted you will need to complete some formatting changes, which you will receive in a follow up email. A member of our team will be in touch with a set of requests.</p>
<p>Please note that your manuscript will not be scheduled for publication until you have made the required changes, so a swift response is appreciated.</p>
<p>IMPORTANT: The editorial review process is now complete. PLOS will only permit corrections to spelling, formatting or significant scientific errors from this point onwards. Requests for major changes, or any which affect the scientific understanding of your work, will cause delays to the publication date of your manuscript.</p>
<p>Should you, your institution's press office or the journal office choose to press release your paper, you will automatically be opted out of early publication. We ask that you notify us now if you or your institution is planning to press release the article. All press must be co-ordinated with PLOS.</p>
<p>Thank you again for supporting Open Access publishing; we are looking forward to publishing your work in PLOS Computational Biology. </p>
<p>Best regards,</p>
<p>Daniel A Beard</p>
<p>Deputy Editor</p>
<p>PLOS Computational Biology</p>
<p>Daniel Beard</p>
<p>Deputy Editor</p>
<p>PLOS Computational Biology</p>
<p>***********************************************************</p>
<p>Reviewer's Responses to Questions</p>
<p><bold>Comments to the Authors:</bold></p>
<p><bold>Please note here if the review is uploaded as an attachment.</bold></p>
<p>Reviewer #1: The authors have addressed my previous concerns and demonstrate a significant improvement to the practical application of practical identifiability analysis with these new results. In addition, I can confirm that their code, timing, and results on the Julia side are easily reproducible.</p>
<p>Reviewer #2: The authors have answered all my comments.</p>
<p>**********</p>
<p><bold>Have all data underlying the figures and results presented in the manuscript been provided?</bold></p>
<p>Large-scale datasets should be made available via a public repository as described in the <italic>PLOS Computational Biology</italic> <ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/ploscompbiol/s/data-availability" xlink:type="simple">data availability policy</ext-link>, and numerical data that underlies graphs or summary statistics should be provided in spreadsheet form as supporting information.</p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p>PLOS authors have the option to publish the peer review history of their article (<ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/ploscompbiol/s/editorial-and-peer-review-process#loc-peer-review-history" xlink:type="simple">what does this mean?</ext-link>). If published, this will include your full peer review and any attached files.</p>
<p>If you choose “no”, your identity will remain anonymous but your review may still be made public.</p>
<p><bold>Do you want your identity to be public for this peer review?</bold> For information about this choice, including consent withdrawal, please see our <ext-link ext-link-type="uri" xlink:href="https://www.plos.org/privacy-policy" xlink:type="simple">Privacy Policy</ext-link>.</p>
<p>Reviewer #1: <bold>Yes: </bold>Chris Rackauckas</p>
<p>Reviewer #2: No</p>
</body>
</sub-article>
<sub-article article-type="editor-report" id="pcbi.1008495.r004" specific-use="acceptance-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pcbi.1008495.r004</article-id>
<title-group>
<article-title>Acceptance letter</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Beard</surname>
<given-names>Daniel A</given-names>
</name>
<role>Deputy Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2020</copyright-year>
<copyright-holder>Daniel A Beard</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pcbi.1008495" document-id-type="doi" document-type="article" id="rel-obj004" link-type="peer-reviewed-article"/>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">1 Dec 2020</named-content>
</p>
<p>PCOMPBIOL-D-20-01281R1 </p>
<p>Confidence Intervals by Constrained Optimization – an Algorithm and Software Package for Practical Identifiability Analysis in Systems Biology</p>
<p>Dear Dr Borisov,</p>
<p>I am pleased to inform you that your manuscript has been formally accepted for publication in PLOS Computational Biology. Your manuscript is now with our production department and you will be notified of the publication date in due course.</p>
<p>The corresponding author will soon be receiving a typeset proof for review, to ensure errors have not been introduced during production. Please review the PDF proof of your manuscript carefully, as this is the last chance to correct any errors. Please note that major changes, or those which affect the scientific understanding of the work, will likely cause delays to the publication date of your manuscript. </p>
<p>Soon after your final files are uploaded, unless you have opted out, the early version of your manuscript will be published online. The date of the early version will be your article's publication date. The final article will be published to the same URL, and all versions of the paper will be accessible to readers.</p>
<p>Thank you again for supporting PLOS Computational Biology and open-access publishing. We are looking forward to publishing your work! </p>
<p>With kind regards,</p>
<p>Nicola Davies</p>
<p>PLOS Computational Biology | Carlyle House, Carlyle Road, Cambridge CB4 3DN | United Kingdom <email xlink:type="simple">ploscompbiol@plos.org</email> | Phone +44 (0) 1223-442824 | <ext-link ext-link-type="uri" xlink:href="http://ploscompbiol.org" xlink:type="simple">ploscompbiol.org</ext-link> | @PLOSCompBiol</p>
</body>
</sub-article>
</article>