﻿<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="methods-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Explor Drug Sci</journal-id>
<journal-id journal-id-type="publisher-id">EDS</journal-id>
<journal-title-group>
<journal-title>Exploration of Drug Science</journal-title>
</journal-title-group>
<issn pub-type="epub">2836-7677</issn>
<publisher>
<publisher-name>Open Exploration Publishing</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.37349/eds.2026.1008167</article-id>
<article-id pub-id-type="manuscript">1008167</article-id>
<article-categories>
<subj-group>
<subject>Protocol</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>PKPDindex: an R/CRAN package for PK/PD index analysis</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-5887-8583</contrib-id>
<name>
<surname>Alabdulkarim</surname>
<given-names>Najla</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role content-type="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role content-type="https://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role content-type="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role content-type="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing—original draft</role>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing—review &amp; editing</role>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="I2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="cor1">
<sup>*</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4561-7173</contrib-id>
<name>
<surname>Standing</surname>
<given-names>Joseph F</given-names>
</name>
<role content-type="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role content-type="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role content-type="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role content-type="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing—review &amp; editing</role>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="I3">
<sup>3</sup>
</xref>
</contrib>
<contrib contrib-type="editor">
<name>
<surname>Zhang</surname>
<given-names>Jinwei</given-names>
</name>
<role>Academic Editor</role>
<aff>Chinese Academy of Sciences, China</aff>
</contrib>
</contrib-group>
<aff id="I1">
<sup>1</sup>Infection, Immunity and Inflammation Department, Great Ormond Street Institute of Child Health, University College London, WC1N 1EH London, United Kingdom</aff>
<aff id="I2">
<sup>2</sup>Department of Clinical Pharmacy, College of Pharmacy, Princess Nourah Bint Abdulrahman University, Riyadh 11564, Saudi Arabia</aff>
<aff id="I3">
<sup>3</sup>Department of Pharmacy, Great Ormond Street Hospital for Children NHS Foundation Trust, WC1N 3JH London, United Kingdom</aff>
<author-notes>
<corresp id="cor1">
<bold>
<sup>*</sup>Correspondence:</bold> Najla Alabdulkarim, Infection, Immunity and Inflammation Department, Great Ormond Street Institute of Child Health, University College London, WC1N 1EH London, United Kingdom; Department of Clinical Pharmacy, College of Pharmacy, Princess Nourah Bint Abdulrahman University, Riyadh 11564, Saudi Arabia. <email>naaalabdulkarim@hotmail.com</email></corresp>
</author-notes>
<pub-date pub-type="collection">
<year>2026</year>
</pub-date>
<pub-date pub-type="epub">
<day>15</day>
<month>07</month>
<year>2026</year>
</pub-date>
<volume>4</volume>
<elocation-id>1008167</elocation-id>
<history>
<date date-type="received">
<day>09</day>
<month>05</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>11</day>
<month>06</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>© The Author(s) 2026.</copyright-statement>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This is an Open Access article licensed under a Creative Commons Attribution 4.0 International License (<ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link>), which permits unrestricted use, sharing, adaptation, distribution and reproduction in any medium or format, for any purpose, even commercially, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.</license-p>
</license>
</permissions>
<abstract>
<p id="absp-1">
<italic>PKPDindex()</italic> is a free and open-source R package for analysing pharmacokinetic/pharmacodynamic (PK/PD) indices, including AUC/MIC, Cmax/MIC, and T&gt;MIC. Development was motivated by previously identified inconsistencies in PK/PD index modelling and reporting practices. The package fits eight variations of the Emax model to data and compares model performance using the Akaike information criterion (AIC) and <italic>R</italic><sup>2</sup> values. As input, the package requires a dataset containing PK/PD indices and a response variable. As output, it generates tables summarising all fitted models, identifies the best-fitting model for each index, and produces customisable plots of model fits with parameter estimates. <italic>PKPDindex()</italic> is freely available on CRAN (<uri xlink:href="https://CRAN.R-project.org/package=PKPDindex">https://CRAN.R-project.org/package=PKPDindex</uri>).</p>
</abstract>
<kwd-group>
<kwd>pharmacokinetic/pharmacodynamic (PK/PD) index</kwd>
<kwd>Emax model</kwd>
<kwd>R package</kwd>
<kwd>antimicrobial pharmacology</kwd>
<kwd>model fitting</kwd>
<kwd>dose fractionation studies</kwd>
<kwd>PKPDindex</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p id="p-1">The pharmacokinetic and pharmacodynamic (PKPD) index describes the relationship between a drug’s concentration and its therapeutic effect [<xref ref-type="bibr" rid="B1">1</xref>]. The most commonly applied indices include the ratio of the area under the concentration–time curve to the minimum inhibitory concentration (AUC/MIC), the ratio of the maximum drug concentration to the MIC (Cmax/MIC), and the proportion of time during which drug concentrations exceed the MIC (T&gt;MIC). These indices are essential to antimicrobial pharmacology, guiding dose selection, regimen optimization, and translational research across preclinical and clinical studies.</p>
<p id="p-2">The PKPD indices are typically derived from dose fractionation studies, in which different dosing regimens are tested to determine the effect of the drug [<xref ref-type="bibr" rid="B2">2</xref>, <xref ref-type="bibr" rid="B3">3</xref>]. Using these data, an Emax model can be fitted to describe the relationship between drug exposure and antibacterial response. Key parameters of the Emax model include E0 (baseline effect without the drug), Emax (maximum effect the drug can achieve), EI50 (the value of the PK/PD index associated with 50% of the maximum effect), and γ (Hill coefficient, which determines the steepness of the curve) [<xref ref-type="bibr" rid="B4">4</xref>, <xref ref-type="bibr" rid="B5">5</xref>]. The Emax model has eight possible variations, depending on whether the baseline effect is fixed or estimated to determine whether the drug has an inhibitory or stimulatory effect. Each of these models can be fitted to AUC/MIC, Cmax/MIC, and T&gt;MIC to find the best index [<xref ref-type="bibr" rid="B4">4</xref>].</p>
<p id="p-3">A recent systematic review highlighted the lack of a standardized approach to identifying the optimal PK/PD index [<xref ref-type="bibr" rid="B6">6</xref>]. In most published studies, <italic>R</italic><sup>2</sup> values are used to identify the best model and the optimal PK/PD index. However, <italic>R</italic><sup>2</sup> only reflects how well the model fits the data, without considering model complexity or the number of parameters [<xref ref-type="bibr" rid="B7">7</xref>, <xref ref-type="bibr" rid="B8">8</xref>]. Consequently, reliance on <italic>R</italic><sup>2</sup> alone may favor more complex models and can lead to suboptimal model selection. For nonlinear Emax models, information-based criteria such as Akaike’s Information Criterion (AIC) and Bayesian Information Criterion (BIC) [<xref ref-type="bibr" rid="B9">9</xref>, <xref ref-type="bibr" rid="B10">10</xref>] provide a more robust basis for model comparison because they consider both model fit and complexity [<xref ref-type="bibr" rid="B6">6</xref>, <xref ref-type="bibr" rid="B8">8</xref>, <xref ref-type="bibr" rid="B11">11</xref>, <xref ref-type="bibr" rid="B12">12</xref>].</p>
<p id="p-4">Despite the importance of accurately fitting Emax models to identify the optimal PK/PD index, no existing <bold>R/CRAN</bold> package provides a comprehensive method to fit all eight possible models and select the best one based on appropriate criteria. The aim was to develop an R package for public use, that offers a systematic and standardized method for fitting Emax models and finding the optimal PK/PD index.</p>
</sec>
<sec id="s2">
<title>Materials</title>
<sec id="t2-1">
<title>Overview</title>
<p id="p-5">
<italic>PKPDindex()</italic> provides a tool for fitting Emax models to PKPD data. This package examines the relationship between drug concentration and biological response by applying a set of predefined Emax models to the provided dataset. It allows customization in terms of model selection, parameter initialization, and plot settings.</p>
</sec>
<sec id="t2-2">
<title>Software requirements</title>
<p id="p-6">
<italic>PKPDindex()</italic> is implemented in R and available through CRAN. Users require an R installation and PKPDindex package to perform the analyses described in this protocol. The package can be installed directly from <uri xlink:href="https://CRAN.R-project.org/package=PKPDindex">https://CRAN.R-project.org/package=PKPDindex</uri>.</p>
</sec>
<sec id="t2-3">
<title>Input requirements and data structure</title>
<p id="p-7">The <italic>PKPDindex()</italic> requires a dataset containing PKPD indices and a corresponding response variable that reflects the antimicrobial effect. Data should be provided as a standard R data frame, with each row representing an experimental condition or individual observation.</p>
<p id="p-8">The <italic>PKPDindex()</italic> converts all column names to lowercase to prevent case-sensitivity issues. It also checks the presence of both the <italic>y_column</italic> (default name: “response”) and the predictor columns <italic>x_columns</italic> (default column name: <italic>auc_mic</italic>, <italic>cmax_mic</italic>, <italic>t_mic</italic>). If the dataset uses different column names, users can specify them manually within the function.</p>
<p id="p-9">The <italic>y_column</italic> should be the log10-transformed change in cfu/mL (Δlog10 cfu/mL). Alternatively, users may supply raw cfu/mL counts at the initial <italic>CFU_init</italic> and 24-hour <italic>CFU_24</italic> time points, in which case the function will automatically calculate the Δlog10 cfu/mL.</p>
<p id="p-10">The user must calculate the <italic>x_columns</italic> from their PK model before analysis, since the function does not generate them. These include area under the concentration–time curve divided by the MIC <italic>auc_mic</italic>, peak drug concentration divided by the MIC <italic>cmax_mic</italic>, and time the drug concentration stays above the MIC <italic>t_mic</italic>.</p>
<p id="p-11">The package validates that the required columns are present and contain numeric data. It does not automatically screen for zero values, skewness, or outliers. Model fitting failures are captured and reported in the output.</p>
</sec>
<sec id="t2-4">
<title>Emax model variants</title>
<p id="p-12">The <italic>PKPDindex()</italic> package defines eight nonlinear Emax models (m1–m8) (<xref ref-type="table" rid="t1">Table 1</xref>), each representing different combinations of key parameters: E0, Emax, EI50, and Hill coefficient. These models vary based on whether E0 and Emax are fixed or estimated during the fitting process. Additionally, some models incorporate the Hill coefficient to account for sigmoidal (S-shaped) dose-response curves. This flexibility allows the selection of the most appropriate model based on the complexity of the data and the biological system under study.</p>
<table-wrap id="t1">
<label>Table 1</label>
<caption>
<p id="t1-p-1">
<bold>Emax model variants (m1–m8) defined in the <italic>PKPDindex(</italic><italic>)</italic> package.</bold>
</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th>
<bold>Formula</bold>
</th>
<th>
<bold>Model</bold>
</th>
<th>
<bold>Estimated parameter</bold>
</th>
<th>
<bold>Fixed parameter</bold>
</th>
<th>
<bold>Includes Hill coefficient</bold>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>m1</td>
<td>
<disp-formula id="eq_in_t_1">
<mml:math id="m85666">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50</td>
<td>E0, Emax</td>
<td>No</td>
</tr>
<tr>
<td>m2</td>
<td>
<disp-formula id="eq_in_t_2">
<mml:math id="m85401">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, “γ”</td>
<td>E0, Emax</td>
<td>Yes</td>
</tr>
<tr>
<td>m3</td>
<td>
<disp-formula id="eq_in_t_3">
<mml:math id="mae2b7">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, Emax</td>
<td>E0, “γ”</td>
<td>No</td>
</tr>
<tr>
<td>m4</td>
<td>
<disp-formula id="eq_in_t_4">
<mml:math id="mb5ea2">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>-</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, Emax, “γ”</td>
<td>E0</td>
<td>Yes</td>
</tr>
<tr>
<td>m5</td>
<td>
<disp-formula id="eq_in_t_5">
<mml:math id="mf4ceb">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, E0</td>
<td>Emax, “γ”</td>
<td>No</td>
</tr>
<tr>
<td>m6</td>
<td>
<disp-formula id="eq_in_t_6">
<mml:math id="m316b3">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">f</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal"> </mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, E0, “γ”</td>
<td>Emax</td>
<td>Yes</td>
</tr>
<tr>
<td>m7</td>
<td>
<disp-formula id="eq_in_t_7">
<mml:math id="mbd254">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, E0, Emax</td>
<td>“γ”</td>
<td>No</td>
</tr>
<tr>
<td>m8</td>
<td>
<disp-formula id="eq_in_t_8">
<mml:math id="me3171">
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>-</mml:mo>
<mml:mfenced separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">m</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>×</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mn>50</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">γ</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:math>
</disp-formula>
</td>
<td>EI50, E0, Emax, “γ”</td>
<td>None</td>
<td>Yes</td>
</tr>
</tbody>
</table>
</table-wrap>
<p id="p-13">The eight Emax model variants represent alternative assumptions regarding baseline effect (E0), maximum effect (Emax), and the shape of the exposure–response relationship (Hill coefficient). In practice, there is no universally preferred model, and model selection should be driven by the observed data rather than predefined biological assumptions. Simpler models may be adequate when data are limited or do not support estimation of additional parameters, whereas more complex models may better capture nonlinear exposure-response relationships when sufficient information is available. The <italic>PKPDindex()</italic> package therefore fits all model variants and uses objective model-selection criteria to identify the most appropriate model for a given dataset.</p>
</sec>
<sec id="t2-5">
<title>Parameter initialization</title>
<p id="p-14">Parameter initialization sets the starting values for Emax model fitting. By default, the Hill coefficient (γ) is initialized to 1, corresponding to the standard hyperbolic Emax model. This provides a neutral starting value for model fitting. E0 and Emax depend on the characteristics of the specific dataset. Therefore, users are required to specify initial values for E0 and Emax (<italic>E0_fix</italic>, <italic>Emax_fix</italic>) based on prior knowledge and data characteristics. Once these values are provided, the package automatically estimates an approximate EI50 starting value from the observed data. Alternatively, users may supply initial EI50 values through the <italic>EI50_init</italic> argument.</p>
<p id="p-15">The EI50 estimate is derived from the PK/PD index value associated with a response halfway between the baseline effect (E0) and the maximum effect (Emax), calculated as:</p>
<p id="p-16">
<disp-formula id="eq1">
<label></label>
<mml:math id="m6509c">
<mml:mtext>Response= </mml:mtext>
<mml:mfrac>
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>_</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>x</mml:mi>
<mml:mtext>+</mml:mtext>
<mml:mi>E</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>2</mml:mtext>
</mml:mrow>
</mml:mfrac>
</mml:math>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s3">
<title>Procedure</title>
<sec id="t3-1">
<title>Step 1: Prepare the dataset</title>
<p id="p-17">Prepare a dataset containing the response variable and one or more PK/PD indices. By default, the response variable should be stored in a column named response and PK/PD indices in columns named <italic>auc_mic</italic>, <italic>cmax_mic</italic>, and <italic>t_mic</italic>. Alternative column names can be specified through the <italic>y_column</italic> and <italic>x_columns</italic> arguments. For demonstration purposes, the example dataset included with the package can be loaded using:</p>
<p id="p-18">
<disp-formula id="eq2">
<label></label>
<mml:math id="m46626">
<mml:mtext>data("PKPDindex_data")</mml:mtext>
</mml:math>
</disp-formula>
</p>
<p id="p-19">If different column names are used, they can be specified as follows:</p>
<p id="p-20">
<disp-formula id="eq3">
<label></label>
<mml:math id="m008e9">
<mml:mi>x</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>s</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>(</mml:mo>
<mml:mo>"</mml:mo>
<mml:mi>a</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>c</mml:mi>
<mml:mo>"</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>"</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>"</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>"</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>"</mml:mo>
<mml:mo>)</mml:mo>
</mml:math>
</disp-formula>
</p>
<p id="p-21">
<disp-formula id="eq4">
<label></label>
<mml:math id="m04f5a">
<mml:mi>y</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo>"</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>u</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>c</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mo>"</mml:mo>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="t3-2">
<title>Step 2: Specify initial parameter values</title>
<p id="p-22">Before fitting the models, provide values for <italic>E0_fix</italic> and <italic>Emax_fix</italic>. Optional starting values for EI50 may also be supplied through the <italic>EI50_init</italic> argument. If <italic>EI50_init</italic> is omitted, the package will estimate starting values automatically. For example, the initial parameter values can be defined as follows:</p>
<p id="p-23">
<disp-formula id="eq5">
<label></label>
<mml:math id="ma9da8">
<mml:mi>E</mml:mi>
<mml:mn>0</mml:mn>
<mml:mo>_</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1.23</mml:mn>
</mml:math>
</disp-formula>
</p>
<p id="p-24">
<disp-formula id="eq6">
<label></label>
<mml:math id="mbd5b0">
<mml:mi>E</mml:mi>
<mml:mi>m</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>x</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4.8</mml:mn>
</mml:math>
</disp-formula>
</p>
<p id="p-25">
<disp-formula id="eq7">
<label></label>
<mml:math id="me31b8">
<mml:mi>E</mml:mi>
<mml:mi>I</mml:mi>
<mml:mn>50</mml:mn>
<mml:mo>_</mml:mo>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>(</mml:mo>
<mml:mn>1,1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>)</mml:mo>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="t3-3">
<title>Step 3: Fit Emax models</title>
<p id="p-26">Execute the <italic>PKPDindex()</italic> function using the prepared dataset and specified initial parameter values. The package applies the <italic>nls()</italic> nonlinear least squares method in R to fit the models to the dataset. It iterates through each model, adjusts the parameters, and calculates the AIC and <italic>R</italic><sup>2</sup> to assess the model fit.</p>
<p id="p-27">The control settings for the NLS algorithm were configured as follows: The maximum number of iterations (<italic>maxiter = 500</italic>), the fitting tolerance (<italic>tol = 1e–5</italic>) and the minimum step size factor (<italic>minFactor = 1e–7</italic>). Users can modify these control settings to accommodate different data characteristics.</p>
<p id="p-28">The package incorporates error handling to capture and report fitting failures, ensuring the analysis proceeds without interruption. Model fitting failures may occur when the nonlinear least squares algorithm is unable to identify parameter estimates that adequately describe the data, for example, because of insufficient information in the dataset, poor convergence, highly variable observations, or unsuitable starting values. Models that fail to converge are retained in the output and reported with a “Failure” status, while AIC, <italic>R</italic><sup>2</sup>, and parameter estimates are reported as NA. Such models are excluded from best-model selection. The current version of the package relies on the convergence assessment provided by the underlying <italic>nls()</italic> algorithm and does not perform formal sensitivity analyses of starting parameter values, apply parameter bounds or constraints, or conduct additional evaluations of local minima, parameter identifiability, or fit stability. Users may specify alternative starting values through the function arguments and should assess the biological plausibility of fitted parameter estimates when interpreting results (<xref ref-type="fig" rid="algor1">Algorithm 1</xref>).</p>
<fig id="algor1" position="float">
<label>Algorithm 1</label>
<caption>
<p id="algor1-p-1">
<bold>Example usage of the <italic>PKPDindex(</italic><italic>)</italic>.</bold>
</p>
</caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="eds-04-1008167.algor.1.tif" />
</fig>
</sec>
<sec id="t3-4">
<title>Step 4: Evaluate model performance</title>
<p id="p-29">Model evaluation in the <italic>PKPDindex()</italic> package is based on two key performance metrics: the AIC and <italic>R</italic><sup>2</sup>. AIC is used for model comparison, as it balances goodness-of-fit with model complexity. A lower AIC value indicates a better model fit. <italic>R</italic><sup>2</sup> is also calculated to provide an additional measure of how well the model explains the variability in the response data, with higher values indicating better explanatory power.</p>
<p id="p-30">The model with the lowest AIC is selected as the best model for each PK/PD index. However, all model fits are summarized in the output, including their AIC, <italic>R</italic><sup>2</sup>, and success status, enabling transparent evaluation. The package also offers a model manual selection using the <italic>select_mod</italic> argument (<xref ref-type="fig" rid="algor2">Algorithm 2</xref>).</p>
<fig id="algor2" position="float">
<label>Algorithm 2</label>
<caption>
<p id="algor2-p-1">
<bold>Example usage of the <italic>PKPDindex(</italic><italic>)</italic>.</bold>
</p>
</caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="eds-04-1008167.algor.2.tif" />
</fig>
</sec>
<sec id="t3-5">
<title>Step 5: Generate plots</title>
<p id="p-31">The function allows users to generate and customize the appearance of plots, including the colors of the data points <italic>point_color</italic> and fitted lines <italic>line_color</italic>, as well as adjust the axis limits (<italic>xlim</italic> and <italic>ylim</italic>), axis labels (<italic>x_label</italic> and <italic>y_label</italic>), and plot titles <italic>plot_title</italic>. Font sizes for titles <italic>title_cex</italic>, axis labels <italic>label_cex</italic>, axis tick labels <italic>axis_cex</italic>, and model annotation details <italic>detail_cex</italic> can also be adjusted. In addition, a log10 transformation can be applied to the x-axis for each PK/PD index through the argument <italic>log_scale_x</italic> to better visualize wide concentration ranges (<xref ref-type="fig" rid="algor3">Algorithm 3</xref>).</p>
<fig id="algor3" position="float">
<label>Algorithm 3</label>
<caption>
<p id="algor3-p-1">
<bold>Example usage of the <italic>PKPDindex(</italic><italic>)</italic>.</bold>
</p>
</caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="eds-04-1008167.algor.3.tif" />
</fig>
</sec>
</sec>
<sec id="s4">
<title>Expected results</title>
<sec id="t4-1">
<title>Output structure</title>
<p id="p-32">The <italic>PKPDindex()</italic> generates a list containing three key components. The <italic>All_Model_Results</italic> element provides a detailed summary of all models fitted for each PK/PD index, including performance metrics such as AIC, <italic>R</italic><sup>2</sup>, and parameter estimates, along with the fit status for each model. The <italic>Best_Models</italic> component summarizes the best-fitting model for each index, including the key parameters (E0, Emax, Hill coefficient, EI50) and corresponding evaluation metrics AIC and <italic>R</italic><sup>2</sup> values. Lastly, the <italic>Plots</italic> element contains a list of plots for the best-fitting models. <xref ref-type="table" rid="t2">Table 2</xref> shows an example of <italic>All_Model_Results</italic> output.</p>
<table-wrap id="t2">
<label>Table 2</label>
<caption>
<p id="t2-p-1">
<bold>Example of the <italic>All_Model_Results</italic> output from the <italic>PKPDindex(</italic><italic>)</italic>.</bold>
</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th>
<bold>PK/PD index</bold>
</th>
<th>
<bold>Model</bold>
</th>
<th>
<bold>AIC</bold>
</th>
<th>
<bold>
<italic>R</italic>
<sup>2</sup>
</bold>
</th>
<th>
<bold>E0</bold>
</th>
<th>
<bold>Emax</bold>
</th>
<th>
<bold>gam</bold>
</th>
<th>
<bold>EI50</bold>
</th>
<th>
<bold>Success</bold>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>AUC/MIC</td>
<td>m1</td>
<td>36.82</td>
<td>71.33%</td>
<td>1.5</td>
<td>4.8</td>
<td>1</td>
<td>34.62</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m2</td>
<td>32.18</td>
<td>79.43%</td>
<td>1.5</td>
<td>4.8</td>
<td>0.66</td>
<td>38.24</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m3</td>
<td>34.93</td>
<td>76.40%</td>
<td>1.5</td>
<td>3.6</td>
<td>1</td>
<td>16.53</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m4</td>
<td>33.58</td>
<td>80.04%</td>
<td>1.5</td>
<td>10.71</td>
<td>0.47</td>
<td>572.63</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m5</td>
<td>32.4</td>
<td>79.20%</td>
<td>0.89</td>
<td>4.8</td>
<td>1</td>
<td>70.56</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m6</td>
<td>33.28</td>
<td>80.33%</td>
<td>1.11</td>
<td>4.8</td>
<td>0.79</td>
<td>60.74</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m7</td>
<td>33.1</td>
<td>80.51%</td>
<td>1</td>
<td>3.71</td>
<td>1</td>
<td>36.52</td>
<td>Success</td>
</tr>
<tr>
<td>AUC/MIC</td>
<td>m8</td>
<td>33.52</td>
<td>81.99%</td>
<td>0.65</td>
<td>2.21</td>
<td>5.14</td>
<td>23.11</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m1</td>
<td>65.56</td>
<td>–20.66%</td>
<td>1.5</td>
<td>4.8</td>
<td>1</td>
<td>12.65</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m2</td>
<td>58.87</td>
<td>21.85%</td>
<td>1.5</td>
<td>4.8</td>
<td>0.28</td>
<td>29.23</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m3</td>
<td>60.96</td>
<td>13.25%</td>
<td>1.5</td>
<td>1.95</td>
<td>1</td>
<td>0.16</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m4</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m5</td>
<td>56.39</td>
<td>30.99%</td>
<td>0.31</td>
<td>4.8</td>
<td>1</td>
<td>56.2</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m6</td>
<td>57.37</td>
<td>34.40%</td>
<td>0.12</td>
<td>4.8</td>
<td>2.08</td>
<td>39.28</td>
<td>Success</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m7</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>Cmax/MIC</td>
<td>m8</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m1</td>
<td>78.02</td>
<td>–124.92%</td>
<td>1.5</td>
<td>4.8</td>
<td>1</td>
<td>59.18</td>
<td>Success</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m2</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m3</td>
<td>60.52</td>
<td>15.15%</td>
<td>1.5</td>
<td>1.86</td>
<td>1</td>
<td>0.07</td>
<td>Success</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m4</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m5</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m6</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m7</td>
<td>62.47</td>
<td>15.36%</td>
<td>1.3</td>
<td>1.66</td>
<td>1</td>
<td>0.09</td>
<td>Success</td>
</tr>
<tr>
<td>T&gt;MIC</td>
<td>m8</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>Failure</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p id="t2-fn-1">The table lists all fitted Emax model variants for each PK/PD index, including the model’s name, Akaike Information Criterion (AIC), and <italic>R</italic><sup>2</sup>. Parameter estimates for each model E0 (baseline effect), Emax (maximum effect), gam (Hill coefficient), and EI50 (PK/PD index producing 50% of the maximal effect), are also shown, along with the success of model fitting. EI50 is expressed in the same unit as the corresponding PK/PD index.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="t4-2">
<title>Visualization of results</title>
<p id="p-33">When <italic>plot_results=TRUE</italic>, the <italic>PKPDindex()</italic> automatically generates plots that visualize the relationship between each PK/PD index (AUC/MIC, Cmax/MIC, T&gt;MIC) and the pharmacodynamic response. <xref ref-type="fig" rid="fig1">Figure 1</xref> shows an example of the expected plot output. For each index, the function displays the best-fitting model curve alongside the observed data points, allowing direct visual assessment of model performance. Each plot also displays the fitted model's key parameters and performance metrics including AIC, <italic>R</italic><sup>2</sup>, E0, Emax, γ, and EI50, which are annotated directly on the graph.</p>
<fig id="fig1" position="float">
<label>Figure 1</label>
<caption>
<p id="fig1-p-1">
<bold>Example of output plot from the <italic>PKPDindex(</italic><italic>)</italic>.</bold> The plot shows the optimal Emax models selected for each PK/PD index based on the lowest AIC values. Model performance is summarised by the corresponding <italic>R</italic><sup>2</sup>, E0, Emax, Hill coefficient, and EI50 estimates displayed on each plot.</p>
</caption>
<graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="eds-04-1008167-g001.tif" />
</fig>
</sec>
</sec>
</body>
<back>
<glossary>
<title>Abbreviations</title>
<def-list>
<def-item>
<term>AUC/MIC</term>
<def>
<p>area under the concentration–time curve to the minimum inhibitory concentration</p>
</def>
</def-item>
<def-item>
<term>Cmax/MIC</term>
<def>
<p>maximum drug concentration to the minimum inhibitory concentration</p>
</def>
</def-item>
<def-item>
<term>PK/PD</term>
<def>
<p>pharmacokinetic/pharmacodynamic</p>
</def>
</def-item>
<def-item>
<term>T&gt;MIC</term>
<def>
<p>time above minimum inhibitory concentration</p>
</def>
</def-item>
</def-list>
</glossary>
<sec id="s5">
<title>Declarations</title>
<sec id="t-5-1">
<title>Acknowledgments</title>
<p>The authors would like to thank University College London (UCL) for providing access to research databases and necessary materials.</p>
</sec>
<sec id="t-5-2">
<title>Author contributions</title>
<p>NA: Conceptualization, Methodology, Software, Validation, Formal analysis, Writing—original draft, Writing—review &amp; editing. JFS: Conceptualization, Supervision, Validation, Writing—review &amp; editing. The authors read and approved the submitted version.</p>
</sec>
<sec id="t-5-3" sec-type="COI-statement">
<title>Conflicts of interest</title>
<p>The authors declare that they have no conflicts of interest.</p>
</sec>
<sec id="t-5-4">
<title>Ethical approval</title>
<p>Not applicable.</p>
</sec>
<sec id="t-5-5">
<title>Consent to participate</title>
<p>Not applicable.</p>
</sec>
<sec id="t-5-6">
<title>Consent to publication</title>
<p>Not applicable.</p>
</sec>
<sec id="t-5-7" sec-type="data-availability">
<title>Availability of data and materials</title>
<p>The PKPDindex package, including the example datasets and source code used in this protocol, is publicly available through the Comprehensive R Archive Network (CRAN) at <uri xlink:href="https://CRAN.R-project.org/package=PKPDindex">https://CRAN.R-project.org/package=PKPDindex</uri>. All data described in this manuscript are available within the package and can be accessed by users through CRAN.</p>
</sec>
<sec id="t-5-8">
<title>Funding</title>
<p>NA received a scholarship funded by Princess Nourah bint Abdulrahman University. JFS was supported by a UK Medical Research Council fellowship (MR/008665/1). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</p>
</sec>
<sec id="t-5-9">
<title>Copyright</title>
<p>© The Author(s) 2026.</p>
</sec>
</sec>
<sec id="s6">
<title>Publisher’s note</title>
<p>Open Exploration maintains a neutral stance on jurisdictional claims in published institutional affiliations and maps. All opinions expressed in this article are the personal views of the author(s) and do not represent the stance of the editorial team or the publisher.</p>
</sec>
<ref-list>
<ref id="B1">
<label>1</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mouton</surname>
<given-names>JW</given-names>
</name>
<name>
<surname>Dudley</surname>
<given-names>MN</given-names>
</name>
<name>
<surname>Cars</surname>
<given-names>O</given-names>
</name>
<name>
<surname>Derendorf</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Drusano</surname>
<given-names>GL</given-names>
</name>
</person-group>
<article-title>Standardization of pharmacokinetic/pharmacodynamic (PK/PD) terminology for anti-infective drugs: an update</article-title>
<source>J Antimicrob Chemother</source>
<year iso-8601-date="2005">2005</year>
<volume>55</volume>
<fpage>601</fpage>
<lpage>7</lpage>
<pub-id pub-id-type="doi">10.1093/jac/dki079</pub-id>
<pub-id pub-id-type="pmid">15772142</pub-id>
</element-citation>
</ref>
<ref id="B2">
<label>2</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nielsen</surname>
<given-names>EI</given-names>
</name>
<name>
<surname>Cars</surname>
<given-names>O</given-names>
</name>
<name>
<surname>Friberg</surname>
<given-names>LE</given-names>
</name>
</person-group>
<article-title>Pharmacokinetic/Pharmacodynamic (PK/PD) Indices of Antibiotics Predicted by a Semimechanistic PKPD Model: a Step toward Model-Based Dose Optimization</article-title>
<source>Antimicrob Agents Chemother</source>
<year iso-8601-date="2011">2011</year>
<volume>55</volume>
<fpage>4619</fpage>
<lpage>30</lpage>
<pub-id pub-id-type="doi">10.1128/aac.00182-11</pub-id>
<pub-id pub-id-type="pmid">21807983</pub-id>
<pub-id pub-id-type="pmcid">PMC3186970</pub-id>
</element-citation>
</ref>
<ref id="B3">
<label>3</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nielsen</surname>
<given-names>EI</given-names>
</name>
<name>
<surname>Friberg</surname>
<given-names>LE</given-names>
</name>
</person-group>
<article-title>Pharmacokinetic-Pharmacodynamic Modeling of Antibacterial Drugs</article-title>
<source>Pharmacol Rev</source>
<year iso-8601-date="2013">2013</year>
<volume>65</volume>
<fpage>1053</fpage>
<lpage>90</lpage>
<pub-id pub-id-type="doi">10.1124/pr.111.005769</pub-id>
<pub-id pub-id-type="pmid">23803529</pub-id>
</element-citation>
</ref>
<ref id="B4">
<label>4</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Rotschafer</surname>
<given-names>JC</given-names>
</name>
<name>
<surname>Andes</surname>
<given-names>DR</given-names>
</name>
<name>
<surname>Rodvold</surname>
<given-names>KA</given-names>
</name>
</person-group>
<source>Antibiotic Pharmacodynamics</source>
<publisher-loc>New York</publisher-loc>
<publisher-name>Humana Press</publisher-name>
<year iso-8601-date="2016">2016</year>
<pub-id pub-id-type="doi">10.1007/978-1-4939-3323-5</pub-id>
</element-citation>
</ref>
<ref id="B5">
<label>5</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Goutelle</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Maurin</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Rougier</surname>
<given-names>F</given-names>
</name>
<name>
<surname>Barbaut</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Bourguignon</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Ducher</surname>
<given-names>M</given-names>
</name>
<etal>et al.</etal>
</person-group>
<article-title>The Hill equation: a review of its capabilities in pharmacological modelling</article-title>
<source>Fundam Clin Pharmacol</source>
<year iso-8601-date="2008">2008</year>
<volume>22</volume>
<fpage>633</fpage>
<lpage>48</lpage>
<pub-id pub-id-type="doi">10.1111/j.1472-8206.2008.00633.x</pub-id>
<pub-id pub-id-type="pmid">19049668</pub-id>
</element-citation>
</ref>
<ref id="B6">
<label>6</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alabdulkarim</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Readman</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Mead</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Oakley</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Wenker</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Kembou</surname>
<given-names>J</given-names>
</name>
<etal>et al.</etal>
</person-group>
<article-title>Systematic review of antimicrobial pharmacokinetic/pharmacodynamic indices in murine thigh and hollow fibre dose fractionation studies analysed with a standard method</article-title>
<source>J Antimicrob Chemother</source>
<year iso-8601-date="2025">2025</year>
<volume>81</volume>
<elocation-id>e81</elocation-id>
<pub-id pub-id-type="doi">10.1093/jac/dkaf446</pub-id>
<pub-id pub-id-type="pmid">41405421</pub-id>
<pub-id pub-id-type="pmcid">PMC12802965</pub-id>
</element-citation>
</ref>
<ref id="B7">
<label>7</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Spiess</surname>
<given-names>AN</given-names>
</name>
<name>
<surname>Neumeyer</surname>
<given-names>N</given-names>
</name>
</person-group>
<article-title>An evaluation of R2 as an inadequate measure for nonlinear models in pharmacological and biochemical research: a Monte Carlo approach</article-title>
<source>BMC Pharmacol</source>
<year iso-8601-date="2010">2010</year>
<volume>10</volume>
<elocation-id>6</elocation-id>
<pub-id pub-id-type="doi">10.1186/1471-2210-10-6</pub-id>
<pub-id pub-id-type="pmid">20529254</pub-id>
<pub-id pub-id-type="pmcid">PMC2892436</pub-id>
</element-citation>
</ref>
<ref id="B8">
<label>8</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Burnham</surname>
<given-names>KP</given-names>
</name>
<name>
<surname>Anderson</surname>
<given-names>DR</given-names>
</name>
</person-group>
<article-title>Multimodel Inference</article-title>
<source>Sociol Methods Res</source>
<year iso-8601-date="2004">2004</year>
<volume>33</volume>
<fpage>261</fpage>
<lpage>304</lpage>
<pub-id pub-id-type="doi">10.1177/0049124104268644</pub-id>
</element-citation>
</ref>
<ref id="B9">
<label>9</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Akaike</surname>
<given-names>H</given-names>
</name>
</person-group>
<article-title>Information theory and an extension of the maximum likelihood principle</article-title>
<person-group person-group-type="editor">
<name>
<surname>Petrov</surname>
<given-names>BN</given-names>
</name>
<name>
<surname>Csaki</surname>
<given-names>F</given-names>
</name>
</person-group>
<source>Budapest (Hungary): Akadémiai Kiadó; 1973</source>
<comment>pp. 267–81.</comment>
</element-citation>
</ref>
<ref id="B10">
<label>10</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kuha</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>AIC and BIC</article-title>
<source>Sociol Methods Res</source>
<year iso-8601-date="2004">2004</year>
<volume>33</volume>
<fpage>188</fpage>
<lpage>229</lpage>
<pub-id pub-id-type="doi">10.1177/0049124103262065</pub-id>
</element-citation>
</ref>
<ref id="B11">
<label>11</label>
<element-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Ting</surname>
<given-names>N</given-names>
</name>
</person-group>
<source>Dose finding in drug development</source>
<comment>Springer Science &amp; Business Media; 2006.</comment>
<pub-id pub-id-type="doi">10.1007/0-387-33706-7</pub-id>
</element-citation>
</ref>
<ref id="B12">
<label>12</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schwarz</surname>
<given-names>G</given-names>
</name>
</person-group>
<article-title>Estimating the Dimension of a Model</article-title>
<source>Ann Stat</source>
<year iso-8601-date="1978">1978</year>
<volume>6</volume>
<elocation-id>e6</elocation-id>
<pub-id pub-id-type="doi">10.1214/aos/1176344136</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
</article>