<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "http://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="other" dtd-version="1.2" xml:lang="en">
    <front>
        <journal-meta>
            <journal-id journal-id-type="pmc">F1000Research</journal-id>
            <journal-title-group>
                <journal-title>F1000Research</journal-title>
            </journal-title-group>
            <issn pub-type="epub">2046-1402</issn>
            <publisher>
                <publisher-name>F1000 Research Limited</publisher-name>
                <publisher-loc>London, UK</publisher-loc>
            </publisher>
        </journal-meta>
        <article-meta>
            <article-id pub-id-type="doi">10.12688/f1000research.166080.1</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Software Tool Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>
                    <italic>MetaLLMReporter: An R Shiny App Integrating Meta-Analysis Execution with LLM-Assisted Reporting</italic>
                </article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 1; peer review: 1 approved with reservations]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>khan</surname>
                        <given-names>laiba</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0009-0005-4845-3900</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>khan</surname>
                        <given-names>Maham</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0009-0002-2994-143X</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Rzayev</surname>
                        <given-names>Nijat</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Investigation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0009-0006-0570-6928</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Kour</surname>
                        <given-names>Manpreet</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0009-0004-6682-4966</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Rana</surname>
                        <given-names>Touqeer</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Project Administration</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <uri content-type="orcid">https://orcid.org/0009-0003-0904-7235</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Ahmad</surname>
                        <given-names>Mahmood</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Data Curation</role>
                    <role content-type="http://credit.niso.org/">Formal Analysis</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Validation</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-9107-3704</uri>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Lac</surname>
                        <given-names>Joanne</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <uri content-type="orcid">https://orcid.org/0009-0004-3533-434X</uri>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>University College London Social Research Institute, London, England, UK</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:joanne.lac.20@ucl.ac.uk">joanne.lac.20@ucl.ac.uk</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>23</day>
                <month>7</month>
                <year>2025</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2025</year>
            </pub-date>
            <volume>14</volume>
            <elocation-id>724</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>3</day>
                    <month>7</month>
                    <year>2025</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 khan l et al.</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access article distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <self-uri content-type="pdf" xlink:href="https://f1000research.com/articles/14-724/pdf"/>
            <abstract>
                <sec>
                    <title>Background</title>
                    <p>Statistical tests are numerous in conducting a meta-analysis goes beyond the simple calculation of a group estimate. Combining these diverse results (heterogeneity, bias, sensitivity, subgroups, etc.) into a coherent whole suitable for various groups of people (e.g., academic papers, plain language summaries) is a major challenge.</p>
                </sec>
                <sec>
                    <title>Methods</title>
                    <p>We created 

                        <bold>MetaLLMReporter,
</bold> an interactive web tool with R (v4.4.0) and Shiny framework (v1.8.1.1) with a bs4Dash (v2.3.2) interface. It accepts user-supplied CSV data for continuous measurements (mean, sd, n) carries out a series of standard meta-analysis procedures using functions from meta, metafor, and dmetar packages. Above all, it integrates Google&#x2019;s Gemini large language model (LLM) using API calls (httr, jsonlite) to generate automatically systematic written text reports consolidating the analyses in various formats (Cochrane, NEJM, Lancet, Plain Language).</p>
                </sec>
                <sec>
                    <title>Results/Functionality</title>
                    <p>The 
                        <bold>MetaLLMReporter</bold> carries out a standard meta-analysis (meta::metacont) and performs additional analyses, including heterogeneity assessment, leave-one-out sensitivity analysis, publication bias tests (meta::metabias), meta-regression (metafor::rma), subgroup analysis (meta::metacont), cumulative meta-analysis (meta::metacum), Bayesian meta-analysis (bayesmeta::bayesmeta), trim-and-fill (meta::trimfill), outlier detection (dmetar::find.outliers), and p-curve analysis (dmetar::pcurve). Text summaries for each analysis is displayed. Users can then trigger the LLM to generate detailed reports formatted in specific journal formats or plain language.</p>
                </sec>
                <sec>
                    <title>Conclusions</title>
                    <p>

                        <bold>MetaLLMReporter</bold> makes it easier to generate textual symbolises various aspects of meta-analysis and uses LLM technology to help write reports for various audiences. It is intended to assist researchers in interpreting and reporting complicated meta-analysis results more effectively.</p>
                </sec>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>Meta-analysis</kwd>
                <kwd>Reporting</kwd>
                <kwd>Interpretation</kwd>
                <kwd>Large Language Model (LLM)</kwd>
                <kwd>Shiny</kwd>
                <kwd>R</kwd>
                <kwd>Automation</kwd>
                <kwd>Evidence Synthesis</kwd>
                <kwd>meta</kwd>
                <kwd>metafor</kwd>
            </kwd-group>
            <funding-group>
                <funding-statement>The author(s) declared that no grants were involved in supporting this work.</funding-statement>
            </funding-group>
        </article-meta>
    </front>
    <body>
        <sec id="sec5" sec-type="intro">
            <title>Introduction</title>
            <p>Meta-analysis is a valuable method of quantitative data synthesis across studies. For continuous outcome measures, it usually entails calculation and combining either Standardized Mean Differences (SMD) or Mean Differences (MD) (
                <xref ref-type="bibr" rid="ref2">Borenstein et al., 2009</xref>). However, merely calculating a pooled average is the starting point. A complete meta-analysis also considers the degree to which large the results of the studies are dissimilar from each other (heterogeneity) (
                <xref ref-type="bibr" rid="ref8">Higgins &amp; Thompson, 2002</xref>), whether specific studies can be missing (most likely due to publication bias) (
                <xref ref-type="bibr" rid="ref5">Egger et al., 1997</xref>), and to what degree the results are sensitive to including or excluding certain studies (sensitivity analysis). Researchers would also like to see how results of studies differ&#x2014;this can be explored using subgroup analyses or meta-regression (
                <xref ref-type="bibr" rid="ref16">Thompson &amp; Higgins, 2002</xref>; 
                <xref ref-type="bibr" rid="ref4">Deeks et al., 2008</xref>). In other cases, different approaches like cumulative meta-analysis, Bayesian models, or trim-and-fill adjustments might be helpful. Although excellent R packages like meta (
                <xref ref-type="bibr" rid="ref1">Balduzzi et al., 2019</xref>; 
                <xref ref-type="bibr" rid="ref15">Schwarzer et al., 2023</xref>, 
                <xref ref-type="bibr" rid="ref14">2024</xref>), metafor (
                <xref ref-type="bibr" rid="ref17">Viechtbauer, 2010</xref>), and dmetar (
                <xref ref-type="bibr" rid="ref7">Harrer et al., 2021</xref>) have all these functions, putting it all together into a neat, well-presented report is still hard work. Writing up and summarizing results of heterogeneity tests, bias analyses, sensitivity analyses, and subgroup findings can be tedious&#x2014;especially if you&#x2019;re doing language writing for particular journals or for non-technical audiences. To address this challenge, we created MetaLLMReporter.</p>
            <p>The R Shiny application (
                <xref ref-type="bibr" rid="ref3">Chang et al., 2024</xref>; 
                <xref ref-type="bibr" rid="ref12">R Core Team, 2024</xref>) automates a wide range of common meta-analyses of continuous outcome data with a single CSV file upload.</p>
            <p>The most distinctive feature is interoperability with Google&#x2019;s Gemini large language model (LLM). After completing the analyses, the app then gathers all the results and sends them to the LLM to generate draft reports in various formats&#x2014;plain language summaries, for example. This allows researchers to produce written descriptions of their results quickly without wasting time and improving readability.</p>
        </sec>
        <sec id="sec6" sec-type="methods">
            <title>Methods</title>
            <sec id="sec7">
                <title>Implementation</title>
                <p>The app is built using R (version 4.4.0) and the Shiny web framework (version 1.8.1.1). It uses the 
                    <monospace>bs4Dash</monospace> package (version 2.3.2; 
                    <xref ref-type="bibr" rid="ref6">Granjon, 2023</xref>) to create the dashboard interface.</p>
            </sec>
            <sec id="sec8">
                <title>Core meta-analysis engine</title>
                <p>A full suite of analyses is run using functions from established R packages:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Main Pooling:</bold> The function 
                                <monospace>meta::metacont</monospace> is used to pool MD or SMD values, depending on user selection. The user also selects the effect measure, pooling method, heterogeneity estimator, and whether to use a fixed or random effects model.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Heterogeneity:</bold> Key heterogeneity statistics (Q, I
                                <sup>2</sup>, and &#x03c4; (
                                <xref ref-type="bibr" rid="ref2">Borenstein et al., 2009</xref>)) are taken from the 
                                <monospace>metacont</monospace> object.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Sensitivity:</bold> A leave-one-out analysis is done using 
                                <monospace>meta::metainf</monospace>, and outliers are detected using 
                                <monospace>dmetar::find.outliers</monospace>.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Publication Bias:</bold> Egger&#x2019;s regression test is done with 
                                <monospace>meta::metabias</monospace>, and trim-and-fill analysis with 
                                <monospace>meta::trimfill</monospace>. P-curve analysis uses 
                                <monospace>dmetar::pcurve</monospace>.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Meta-Regression:</bold> If columns 
                                <monospace>Reg</monospace>, 
                                <monospace>Reg2</monospace>, or 
                                <monospace>Reg3</monospace> are available, meta-regression is done using 
                                <monospace>metafor::rma</monospace>.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Subgroup Analysis:</bold> If a 
                                <monospace>subgroup</monospace> column is provided, subgroup analysis is performed using 
                                <monospace>meta::metacont</monospace>.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Cumulative Analysis:</bold> This is handled using 
                                <monospace>meta::metacum</monospace>.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>

                                <bold>Bayesian Analysis:</bold> The Bayesian meta-analysis uses 
                                <monospace>bayesmeta::bayesmeta</monospace> (
                                <xref ref-type="bibr" rid="ref13">R&#x00f6;ver, 2020</xref>), with effect sizes first calculated using 
                                <monospace>metafor::escalc</monospace> (
                                <xref ref-type="bibr" rid="ref9">L&#x00fc;decke, 2018</xref>).</p>
                        </list-item>
                    </list>
                </p>
            </sec>
            <sec id="sec9">
                <title>Data input</title>
                <p>Users upload a CSV file via 
                    <monospace>shiny::fileInput</monospace>. The data must contain columns for 
                    <monospace>meanintervention</monospace>, 
                    <monospace>sdintervention</monospace>, 
                    <monospace>totalintervention</monospace>, 
                    <monospace>meancontrol</monospace>, 
                    <monospace>sdcontrol</monospace>, 
                    <monospace>totalcontrol</monospace>, and 
                    <monospace>author</monospace>. Optional columns include 
                    <monospace>Reg</monospace>, 
                    <monospace>Reg2</monospace>, 
                    <monospace>Reg3</monospace>, and 
                    <monospace>subgroup</monospace>. If needed, a default value can be set for 
                    <monospace>totalintervention</monospace> (
                    <xref ref-type="bibr" rid="ref19">Wickham et al., 2023</xref>, 
                    <xref ref-type="bibr" rid="ref20">2024</xref>).</p>
            </sec>
            <sec id="sec10">
                <title>LLM integration</title>
                <p>

                    <bold>API call</bold>
                </p>
                <p>The helper function 
                    <monospace>generate_content</monospace> is used to send a request via 
                    <monospace>httr::POST</monospace> (
                    <xref ref-type="bibr" rid="ref10">Ooms, 2024</xref>), using 
                    <monospace>jsonlite::toJSON</monospace> (
                    <xref ref-type="bibr" rid="ref11">Ooms, 2014</xref>) to format the request and 
                    <monospace>fromJSON</monospace> to process the response. The Gemini API (specifically the gemini-2.0-flash model) is called using a randomly selected API key from a hardcoded list. The user need to insert their own API key if using from github.</p>
                <p>

                    <bold>Prompting</bold>
                </p>
                <p>After the statistical analyses are completed reactively, their textual outputs are collected using 
                    <monospace>capture.output</monospace> and combined into a single string (
                    <monospace>allText()</monospace>). This string is used as the main input for the LLM. Prompts include specific instructions to rewrite the content in different styles (Cochrane, NEJM, Lancet, or Plain Language), along with guidelines for structure and minimum length.</p>
                <p>

                    <bold>Output processing</bold>
                </p>
                <p>The LLM&#x2019;s raw response is cleaned of basic markdown formatting using the 
                    <monospace>clean_markdown</monospace> function (based on 
                    <monospace>gsub</monospace>), and the cleaned output is rendered using 
                    <monospace>shiny::htmlOutput</monospace> so that formatting like line breaks is preserved (
                    <xref ref-type="bibr" rid="ref21">Xie et al., 2024</xref>).</p>
            </sec>
            <sec id="sec11">
                <title>User interface</title>
                <p>The dashboard interface includes two main tabs:
                    <list list-type="bullet">
                        <list-item>
                            <label>&#x2022;</label>
                            <p>The 
                                <bold>&#x201c;Inputs&#x201d;</bold> tab handles data upload and lets users choose key meta-analysis settings.</p>
                        </list-item>
                        <list-item>
                            <label>&#x2022;</label>
                            <p>The 
                                <bold>&#x201c;Meta-Analysis Text&#x201d;</bold> tab displays the outputs for each analysis type (Heterogeneity, Leave-One-Out, Publication Bias, etc.), along with four tabs that show the LLM-generated text in Cochrane, NEJM, Lancet, and Plain Language formats.</p>
                        </list-item>
                    </list>
                </p>
            </sec>
            <sec id="sec12">
                <title>Operation</title>
                <p>You can run MetaLLM Reporter locally with R (version 4.0.0 or higher) and the required packages, or use a hosted version in your browser. To access LLM features, you&#x2019;ll need an internet connection and a valid Google Gemini API key (user to provide).</p>
            </sec>
            <sec id="sec13">
                <title>Data upload &amp; settings</title>
                <p>In the &#x201c;Inputs&#x201d; tab, upload a CSV with mean, SD, and sample size for both groups, plus the author name. Optional columns (
                    <monospace>Reg</monospace>, 
                    <monospace>Reg2</monospace>, 
                    <monospace>Reg3</monospace>, 
                    <monospace>subgroup</monospace>) enable meta-regression and subgroup analysis. Select your effect measure (MD/SMD) and analysis options. A sample CSV is available for reference.</p>
            </sec>
            <sec id="sec14">
                <title>View analysis outputs</title>
                <p>Go to the &#x201c;Meta-Analysis Text&#x201d; tab to see results like heterogeneity, publication bias, and regression. The app runs all analyses automatically.</p>
            </sec>
            <sec id="sec15">
                <title>View LLM interpretations</title>
                <p>Check the final four tabs (&#x201c;LLM Cochrane&#x201d;, &#x201c;LLM NEJM&#x201d;, &#x201c;LLM Lancet&#x201d;, &#x201c;LLM Plain&#x201d;) for AI-generated summaries tailored to different reporting styles.</p>
            </sec>
        </sec>
        <sec id="sec16">
            <title>Use cases</title>
            <p>MetaLLM Reporter is designed to assist researchers who have completed a meta-analysis, or possess the requisite data, in consolidating diverse statistical outputs into comprehensive written summaries or reports.</p>
            <p>

                <bold>Scenario 1: Drafting a results section:</bold> A researcher uploads their meta-analysis dataset. After confirming the analyses run correctly by checking the individual output tabs (e.g, Heterogeneity, Publication Bias), they navigate to the &#x201c;LLM Cochrane&#x201d; or &#x201c;LLM NEJM&#x201d; tab. They copy the generated text as a starting point for drafting the results section of their systematic review manuscript, carefully reviewing and editing the LLM output for accuracy, completeness, and appropriate nuance.</p>
            <p>

                <bold>Scenario 2: Plain language summary generation:</bold> For patient education materials or conference abstracts, their searcher validates the &#x201c;LLM Plain&#x201d; tab output. This concise summary of the meta-analysis findings is meticulously reviewed for accuracy against the statistical results.</p>
            <p>These scenarios demonstrate the tool&#x2019;s capacity to automate the generation of initial text drafts from complex statistical results, potentially expediting the reporting process.</p>
            <sec id="sec17">
                <title>Analysis</title>
                <p>Though a vast number of tools exist for doing meta-analysis, briefing results from heterogeneity tests, bias calculations, sensitivity analyses, and subgroup/meta-regression analyses into intelligible written description relics a massive undertaking.</p>
                <p>MetaLLMReporter referrers to this problem by performing not just a plethora of average meta-analysis actions using already existing R packages (meta, metafor, dmetar, etc.) but also by mixing a large language model (LLM) to instinctively produce reports in different styles.</p>
                <p>The main revolution is the usage of Google&#x2019;s Gemini LLM to produce statistical yields into organized texts that are catered for a diverse audience, going from recognized Cochrane-style reports to simple language abstracts. This intends to drastically decrease the writing effort that is expected by researchers, providing them with drafts, including results from various analytical components. The program executes a wide range of appropriate analyses robotically on data upload, making sure the components are readily accessible for the LLM prompt.</p>
                <p>Nonetheless, the dependence on LLM-generated texts needs serious deliberation. Whilst possibly saving time, the output must be cautiously reviewed as a draft needing thorough analysis and proof reading by experts. LLMs may mistake the context, misunderstand statistical distinctions, or quite possibly &#x201c;hallucinate&#x201d; information. The superiority of the LLM is seriously reliant on the cohesive and extensiveness of the prompt given and with the abilities of the LLM used. The present implementation also necessitates implanting API keys, leading to potential security risks thus making it inappropriate for large scale sharing without changes made. Moreover, the app centres on text production and lacks the interactive plotting aspects found in other meta-analysis tools.</p>
                <p>Changes down the line could potentially give users the ability to choose which analysis to incorporate in the LLM prompt, fine tuning the prompts for more precision and style adherence, including visuals together with texts, accompanying further data types, presenting options for diverse LLMs, and applying additional safe API key management.</p>
            </sec>
        </sec>
        <sec id="sec18">
            <title>Ethics approval and consent to participate</title>
            <p>This study did not involve human participants, human data, or human tissue. Therefore, ethical approval and consent to participate were not required.</p>
        </sec>
        <sec id="sec19">
            <title>Software availability</title>
            <p>Source code available from: 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/mahmood789/LLMSMD">https://github.com/mahmood789/LLMSMD</ext-link>
            </p>
            <p>Archived software available from: 
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.15790137">https://doi.org/10.5281/zenodo.15790137</ext-link>
            </p>
            <p>License: Apache 2.0 (OSI-approved open license)</p>
            <p>This software is freely available and can be used without restriction. Use of the LLM features (e.g., Gemini API) requires a valid API key provided by the user. The demonstration dataset and all analysis functionality are included in the GitHub repository for full replication of results.</p>
        </sec>
    </body>
    <back>
        <sec id="sec22" sec-type="data-availability">
            <title>Data and software availability</title>
            <sec id="sec23">
                <title>Underlying data</title>
                <p>No new data were generated or analyzed in support of this research. All data and materials supporting the results or analyses presented in this article are openly available. A sample dataset used for demonstration is included in the GitHub repository and can be used to replicate all study findings.</p>
                <p>These datasets include:</p>
                <p>The values behind the means, standard deviations, and other measures reported;</p>
                <p>The values used to build graphs and figures;</p>
                <p>The points extracted from images for analysis.</p>
                <p>No new external data were generated during this study. All provided data are openly licensed under the Apache 2.0 license, permitting unrestricted reuse.</p>
                <p>Dataset available from: 
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/mahmood789/LLMSMD">https://github.com/mahmood789/LLMSMD</ext-link>
                </p>
                <p>Persistent identifier: Zenodo DOI 
                    <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.15790137">https://doi.org/10.5281/zenodo.15790137</ext-link>
                </p>
                <p>License: Apache 2.0</p>
                <p>If any dataset cannot be shared due to ethical, privacy, or security concerns, this will be noted in future updates. At present, no such restrictions apply.</p>
            </sec>
        </sec>
        <ack>
            <title>Acknowledgments</title>
            <p>None.</p>
        </ack>
        <ref-list>
            <title>References</title>
            <ref id="ref1">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Balduzzi</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>R&#x00fc;cker</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Schwarzer</surname>
                            <given-names>G</given-names>
                        </name>
</person-group>:
                    <article-title>How to perform a meta-analysis with R: a practical tutorial.</article-title>
                    <source>

                        <italic toggle="yes">Evid. Based Ment. Health.</italic>
</source>
                    <year>2019</year>;<volume>22</volume>(<issue>4</issue>):<fpage>153</fpage>&#x2013;<lpage>160</lpage>.
                    <pub-id pub-id-type="pmid">31563865</pub-id>
                    <pub-id pub-id-type="doi">10.1136/ebmental-2019-300117</pub-id>
                    <pub-id pub-id-type="pmcid">PMC10231495</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref2">
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Borenstein</surname>
                            <given-names>M</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Hedges</surname>
                            <given-names>LV</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Higgins</surname>
                            <given-names>JPT</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <source>

                        <italic toggle="yes">Introduction to Meta-Analysis.</italic>
</source>
                    <publisher-name>Wiley</publisher-name>;<year>2009</year>.
                    <isbn>978-0470057247</isbn>.</mixed-citation>
            </ref>
            <ref id="ref3">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Chang</surname>
                            <given-names>W</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Cheng</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Allaire</surname>
                            <given-names>JJ</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>shiny: Web Application Framework for R. R package version 1.8.1.1.</article-title>
                    <year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://shiny.posit.co/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref4">
                <mixed-citation publication-type="book">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Deeks</surname>
                            <given-names>JJ</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Higgins</surname>
                            <given-names>JPT</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Altman</surname>
                            <given-names>DG</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <chapter-title>Chapter 9: Analysing data and undertaking meta-analyses. </chapter-title>
                    <person-group person-group-type="editor">

                        <name name-style="western">
                            <surname>Higgins</surname>
                            <given-names>JPT</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Green</surname>
                            <given-names>S</given-names>
                        </name>
</person-group>, editors.
                    <source>

                        <italic toggle="yes">Cochrane Handbook for Systematic Reviews of Interventions (Version 5.0.0).</italic>
</source>
                    <publisher-name>The Cochrane Collaboration</publisher-name>;<year>2008</year>.
                    <ext-link ext-link-type="uri" xlink:href="http://www.handbook.cochrane.org">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref5">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Egger</surname>
                            <given-names>M</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Davey Smith</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Schneider</surname>
                            <given-names>M</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Bias in meta-analysis detected by a simple, graphical test.</article-title>
                    <source>

                        <italic toggle="yes">BMJ.</italic>
</source>
                    <year>1997</year>;<volume>315</volume>(<issue>7109</issue>):<fpage>629</fpage>&#x2013;<lpage>634</lpage>.
                    <pub-id pub-id-type="pmid">9310563</pub-id>
                    <pub-id pub-id-type="doi">10.1136/bmj.315.7109.629</pub-id>
                    <pub-id pub-id-type="pmcid">PMC2127453</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref6">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Granjon</surname>
                            <given-names>D</given-names>
                        </name>
</person-group>:
                    <article-title>bs4Dash: A &#x2018;Bootstrap 4&#x2019; Version of &#x2018;shinydashboard&#x2019;.</article-title>
                    <source>

                        <italic toggle="yes">R package version 2.3.2.</italic>
</source>
                    <year>2023</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/RinteRface/bs4Dash">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref7">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Harrer</surname>
                            <given-names>M</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Cuijpers</surname>
                            <given-names>P</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Furukawa</surname>
                            <given-names>TA</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>dmetar: Companion R Package For The Guide &#x2018;Doing Meta-Analysis in R&#x2019;.</article-title>
                    <source>

                        <italic toggle="yes">R package version 0.0.9000.</italic>
</source>
                    <year>2021</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://dmetar.protectlab.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref8">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Higgins</surname>
                            <given-names>JPT</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Thompson</surname>
                            <given-names>SG</given-names>
                        </name>
</person-group>:
                    <article-title>Quantifying heterogeneity in a meta-analysis.</article-title>
                    <source>

                        <italic toggle="yes">Stat. Med.</italic>
</source>
                    <year>2002</year>;<volume>21</volume>(<issue>11</issue>):<fpage>1539</fpage>&#x2013;<lpage>1558</lpage>.
                    <pub-id pub-id-type="pmid">12111919</pub-id>
                    <pub-id pub-id-type="doi">10.1002/sim.1186</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref9">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>L&#x00fc;decke</surname>
                            <given-names>D</given-names>
                        </name>
</person-group>:
                    <article-title>esc: Effect Size Computation for Meta-Analysis. R package version [e.g., 0.5.1 or check current].</article-title>
                    <year>2018</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://CRAN.R-project.org/package=esc">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref10">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Ooms</surname>
                            <given-names>J</given-names>
                        </name>
</person-group>:
                    <article-title>httr: Tools for Working with URLs and HTTP.</article-title>
                    <source>

                        <italic toggle="yes">R package version 1.4.7.</italic>
</source>
                    <year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://httr.r-lib.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref11">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Ooms</surname>
                            <given-names>J</given-names>
                        </name>
</person-group>:
                    <article-title>The jsonlite Package: A Practical and Consistent Mapping Between JSON Data and R Objects.</article-title>
                    <source>

                        <italic toggle="yes">arXiv:1403.2805 [stat.CO].</italic>
</source>
                    <year>2014</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://arxiv.org/abs/1403.2805">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref12">
                <mixed-citation publication-type="book">
                    <collab>R Core Team</collab>:
                    <source>

                        <italic toggle="yes">R: A Language and Environment for Statistical Computing.</italic>
</source>
                    <publisher-loc>Vienna, Austria</publisher-loc>:
                    <publisher-name>R Foundation for Statistical Computing</publisher-name>;<year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://www.R-project.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref13">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>R&#x00f6;ver</surname>
                            <given-names>C</given-names>
                        </name>
</person-group>:
                    <article-title>Bayesian random-effects meta-analysis using the bayesmeta R package.</article-title>
                    <source>

                        <italic toggle="yes">J. Stat. Softw.</italic>
</source>
                    <year>2020</year>;<volume>93</volume>(<issue>6</issue>):<fpage>1</fpage>&#x2013;<lpage>51</lpage>.
                    <pub-id pub-id-type="doi">10.18637/jss.v093.i06</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref14">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Schwarzer</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Balduzzi</surname>
                            <given-names>S</given-names>
                        </name>

                        <name name-style="western">
                            <surname>R&#x00fc;cker</surname>
                            <given-names>G</given-names>
                        </name>
</person-group>:
                    <article-title>meta: General Package for Meta-Analysis.</article-title>
                    <source>

                        <italic toggle="yes">R package version 7.0-0.</italic>
</source>
                    <year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/guido-s/meta">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref15">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Schwarzer</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>R&#x00fc;cker</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bagheri</surname>
                            <given-names>S</given-names>
                        </name>
</person-group>:
                    <article-title>metasens: Advanced Statistical Methods to Model and Adjust for Bias in Meta-Analysis. R package version 1.4-0.</article-title>
                    <year>2023</year>. (Loaded but not explicitly used in server logic provided).
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/guido-s/metasens">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref16">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Thompson</surname>
                            <given-names>SG</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Higgins</surname>
                            <given-names>JPT</given-names>
                        </name>
</person-group>:
                    <article-title>How should meta-regression analyses be undertaken and interpreted?</article-title>
                    <source>

                        <italic toggle="yes">Stat. Med.</italic>
</source>
                    <year>2002</year>;<volume>21</volume>(<issue>11</issue>):<fpage>1559</fpage>&#x2013;<lpage>1573</lpage>.
                    <pub-id pub-id-type="pmid">12111920</pub-id>
                    <pub-id pub-id-type="doi">10.1002/sim.1187</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref17">
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Viechtbauer</surname>
                            <given-names>W</given-names>
                        </name>
</person-group>:
                    <article-title>Conducting meta-analyses in R with the metafor package.</article-title>
                    <source>

                        <italic toggle="yes">J. Stat. Softw.</italic>
</source>
                    <year>2010</year>;<volume>36</volume>(<issue>3</issue>):<fpage>1</fpage>&#x2013;<lpage>48</lpage>.
                    <pub-id pub-id-type="doi">10.18637/jss.v036.i03</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref18">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Viechtbauer</surname>
                            <given-names>W</given-names>
                        </name>
</person-group>:
                    <article-title>Metafor: Meta-Analysis Package for R.</article-title>
                    <source>

                        <italic toggle="yes">R package version 4.8-0.</italic>
</source>
                    <year>2025</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://www.metafor-project.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref19">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Wickham</surname>
                            <given-names>H</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Fran&#x00e7;ois</surname>
                            <given-names>R</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Henry</surname>
                            <given-names>L</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>dplyr: A Grammar of Data Manipulation.</article-title>
                    <source>

                        <italic toggle="yes">R package version 1.1.4.</italic>
</source>
                    <year>2023</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://dplyr.tidyverse.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref20">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Wickham</surname>
                            <given-names>H</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Hester</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bryan</surname>
                            <given-names>J</given-names>
                        </name>
</person-group>:
                    <article-title>readr: Read Rectangular Text Data.</article-title>
                    <source>

                        <italic toggle="yes">R package version 2.1.5.</italic>
</source>
                    <year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://readr.tidyverse.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref21">
                <mixed-citation publication-type="other">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Xie</surname>
                            <given-names>Y</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Cheng</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Tan</surname>
                            <given-names>X</given-names>
                        </name>
</person-group>:
                    <article-title>DT: A Wrapper of the JavaScript Library &#x2018;DataTables&#x2019;.</article-title>
                    <source>

                        <italic toggle="yes">R package version 0.33.</italic>
</source>
                    <year>2024</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/rstudio/DT">Reference Source</ext-link>
                </mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report413883">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.182939.r413883</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Shen</surname>
                        <given-names>Xiangmin</given-names>
                    </name>
                    <xref ref-type="aff" rid="r413883a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0009-0001-8301-7961</uri>
                </contrib>
                <aff id="r413883a1">
                    <label>1</label>Northwestern University, Evanston, Illinois, USA</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>19</day>
                <month>9</month>
                <year>2025</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2025 Shen X</copyright-statement>
                <copyright-year>2025</copyright-year>
                <license xlink:href="https://creativecommons.org/licenses/by/4.0/">
                    <license-p>This is an open access peer review report distributed under the terms of the Creative Commons Attribution Licence, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
                </license>
            </permissions>
            <related-article ext-link-type="doi" id="relatedArticleReport413883" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.166080.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve-with-reservations</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>
                <bold>Summary</bold>
            </p>
            <p> The article presents MetaLLMReporter, an R Shiny application that runs standard meta-analysis for continuous outcomes and then generates draft narrative reports using a large language model (LLM). The app reads a user CSV to calculate aggregated means, standard deviations, and sample sizes, fits fixed-effect or random-effects models using established R packages, prints textual outputs for common diagnostics such as heterogeneity, leave-one-out analysis, publication bias tests, trim-and-fill, meta-regression, subgroup and cumulative analyses, and an optional Bayesian model. It then sends the captured text to an LLM to produce prose in several editorial styles. The paper provides a public GitHub repository and a Zenodo archive.</p>
            <p> </p>
            <p> 
                <bold>Rationale</bold>
            </p>
            <p> The motivation is clear: investigators often have many numerical outputs from a meta-analysis and need coherent text for reports or manuscripts. The paper frames the tool as a bridge between analytic output and narrative reporting.</p>
            <p> </p>
            <p> To strengthen the motivation further, the authors can add one concrete use case that maps each displayed analysis block to a common reporting requirement, and a short note that LLM text must be checked by a human.</p>
            <p> </p>
            <p> 
                <bold>Technical soundness of the description</bold>
            </p>
            <p> The top-level architecture is sound and maps well to standard practice in R. However, several details in the current code can yield incorrect or fragile results.</p>
            <p> </p>
            <p> First, cumulative meta-analysis is called without enforcing a chronological or pre-specified ordering. The output will depend on input row order. A meta-analysis usually orders cumulative results by year or another meaningful variable. The app should require a study-level ordering column and sort before calling the cumulative procedure.</p>
            <p> </p>
            <p> Second, if the uploaded CSV lacks the intervention sample size, the server fills one default value from a numeric input and uses it for all studies. This can bias effect size variances and weights. The app should reject inputs that miss required counts for either group or ask for per-study values.</p>
            <p> </p>
            <p> Third, in the meta-regression and Bayesian analysis, the code recomputes study effects with metafor::escalc() using the UI&#x2019;s effect measure, while the main model uses meta::metacont() with a configurable SMD method. This can produce a mismatch if the SMD correction in the two paths differs. The regression should reuse the study-level effects and standard errors from the fitted meta object or enforce the exact same SMD specification in escalc().</p>
            <p> </p>
            <p> Fourth, the &#x201c;Study Weights&#x201d; text pastes names (m$w.random) with the numeric weights. In typical meta::metacont fits the weight vector is not named, so the display can be unlabeled.</p>
            <p> </p>
            <p> Finally, there are plaintext LLM API keys in the code and the key is passed in the URL. Keys must not be hardcoded. They should be read from environment variables or a secrets store and never logged. Also, sampling from multiple keys seems unnecessary.</p>
            <p> </p>
            <p> These issues do not change the overall concept, but they affect correctness, security, and maintainability.</p>
            <p> </p>
            <p> 
                <bold>Reproducibility</bold>
            </p>
            <p> The article gives repository and archive links, the tool is small, and package names are stated, which makes basic replication feasible.</p>
            <p> </p>
            <p> For stronger reproducibility across systems, the repository should include an renv.lock with exact package versions or a minimal Dockerfile and instructions to run the app. The app should also document the exact CSV schema with a minimal valid example and validation rules, and explain how to set the LLM API key at runtime. Without these pieces, users may encounter version drift or silent data issues.</p>
            <p> </p>
            <p> 
                <bold>Interpreting outputs and datasets</bold>
            </p>
            <p> The tool prints many standard summaries, but it does not guide users on when a diagnostic is meaningful or how to read it. For example, Egger&#x2019;s test can be unreliable with few studies or strong heterogeneity; p-curve has assumptions that should be stated; cumulative meta-analysis requires a justified ordering. The app should add short, in-context notes that state applicability conditions and common pitfalls, and it should display a per-study table of computed effects and variances so users can verify inputs. Adding forest and funnel plots would also help users cross-check the prose.</p>
            <p> </p>
            <p> 
                <bold>Conclusions supported by findings</bold>
            </p>
            <p> It is reasonable to conclude that the app can run standard analyses and produce draft narratives. However, claims about reporting support and workflow gains would be stronger with a small worked example that starts from the sample CSV, shows the key numeric outputs, and compares the LLM drafts with a hand-written baseline. If any performance or quality claim is made, it should be backed with either expert review or a simple user study.</p>
            <p> </p>
            <p> 
                <bold>Suggestions to make the article scientifically sound</bold>
            </p>
            <p> (i) Enforce a valid ordering for cumulative meta-analysis by requiring an ordering column and sorting before computation.</p>
            <p> (ii) Avoid filling in default values and require complete per-study counts, or explicitly document and implement a principled missing-data strategy that does not bias variances.</p>
            <p> (iii) Align the meta-regression inputs with the primary model by reusing study-level effects and standard errors from the meta fit or by ensuring escalc() applies the same SMD correction as the main model.&#x00a0;</p>
            <p> (iv) Replace the unlabeled weight printout with a labeled table that pairs each studlab with its weight.</p>
            <p> (v) Remove hardcoded LLM API keys from the code and read a single key from the environment. Do not pass keys in query strings. Document setup steps for users.</p>
            <p> (vi) Add input validation and short interpretive notes next to each diagnostic to warn about small-k limits, heterogeneity effects, and assumptions.</p>
            <p> (vii) Provide an renv.lock or Dockerfile and a minimal end-to-end script or vignette that reproduces the example in the article.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Partly</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Partly</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Partly</p>
            <p>Reviewer Expertise:</p>
            <p>Data mining, measurement</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.</p>
        </body>
    </sub-article>
</article>
