<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1d3 20150301//EN" "http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd">
<article article-type="research-article" dtd-version="1.1d3" xml:lang="en" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">PLoS ONE</journal-id>
<journal-id journal-id-type="publisher-id">plos</journal-id>
<journal-id journal-id-type="pmc">plosone</journal-id>
<journal-title-group>
<journal-title>PLOS ONE</journal-title>
</journal-title-group>
<issn pub-type="epub">1932-6203</issn>
<publisher>
<publisher-name>Public Library of Science</publisher-name>
<publisher-loc>San Francisco, CA USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.1371/journal.pone.0289171</article-id>
<article-id pub-id-type="publisher-id">PONE-D-23-11089</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
<subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Research facilities</subject><subj-group><subject>Information centers</subject><subj-group><subject>Archives</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Computer software</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Computer software</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Source code</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Engineering and technology</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Source code</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Research assessment</subject><subj-group><subject>Reproducibility</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Computer and information sciences</subject><subj-group><subject>Data management</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Molecular biology</subject><subj-group><subject>Molecular biology techniques</subject><subj-group><subject>Sequencing techniques</subject><subj-group><subject>RNA sequencing</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Molecular biology techniques</subject><subj-group><subject>Sequencing techniques</subject><subj-group><subject>RNA sequencing</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Molecular biology</subject><subj-group><subject>Molecular biology techniques</subject><subj-group><subject>Molecular biology assays and analysis techniques</subject><subj-group><subject>Nucleic acid analysis</subject><subj-group><subject>RNA analysis</subject></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Research and analysis methods</subject><subj-group><subject>Molecular biology techniques</subject><subj-group><subject>Molecular biology assays and analysis techniques</subject><subj-group><subject>Nucleic acid analysis</subject><subj-group><subject>RNA analysis</subject></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Organisms</subject><subj-group><subject>Eukaryota</subject><subj-group><subject>Animals</subject><subj-group><subject>Vertebrates</subject><subj-group><subject>Amniotes</subject><subj-group><subject>Mammals</subject><subj-group><subject>Wildebeest</subject></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3">
<subject>Biology and life sciences</subject><subj-group><subject>Zoology</subject><subj-group><subject>Animals</subject><subj-group><subject>Vertebrates</subject><subj-group><subject>Amniotes</subject><subj-group><subject>Mammals</subject><subj-group><subject>Wildebeest</subject></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></article-categories>
<title-group>
<article-title>Scikick: A sidekick for workflow clarity and reproducibility during extensive data analysis</article-title>
<alt-title alt-title-type="running-head">Workflow clarity and reproducibility with Scikick</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Carlucci</surname>
<given-names>Matthew</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-original-draft/">Writing – original draft</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Bareikis</surname>
<given-names>Tadas</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Koncevičius</surname>
<given-names>Karolis</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Gibas</surname>
<given-names>Povilas</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Kriščiūnas</surname>
<given-names>Algimantas</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/software/">Software</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Petronis</surname>
<given-names>Art</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
</contrib>
<contrib contrib-type="author" corresp="yes" xlink:type="simple">
<contrib-id authenticated="true" contrib-id-type="orcid">https://orcid.org/0000-0002-7651-1312</contrib-id>
<name name-style="western">
<surname>Oh</surname>
<given-names>Gabriel</given-names>
</name>
<role content-type="http://credit.niso.org/contributor-roles/supervision/">Supervision</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-original-draft/">Writing – original draft</role>
<role content-type="http://credit.niso.org/contributor-roles/writing-review-editing/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff002"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff003"><sup>3</sup></xref>
<xref ref-type="corresp" rid="cor001">*</xref>
</contrib>
</contrib-group>
<aff id="aff001"><label>1</label> <addr-line>The Krembil Family Epigenetics Laboratory, The Campbell Family Mental Health Research Institute, Centre for Addiction and Mental Health, Toronto, Ontario, Canada</addr-line></aff>
<aff id="aff002"><label>2</label> <addr-line>Institute of Biotechnology, Life Sciences Center, Vilnius University, Vilnius, Lithuania</addr-line></aff>
<aff id="aff003"><label>3</label> <addr-line>Stanford University School of Medicine, Stanford, California, United States of America</addr-line></aff>
<contrib-group>
<contrib contrib-type="editor" xlink:type="simple">
<name name-style="western">
<surname>Bernasconi</surname>
<given-names>Anna</given-names>
</name>
<role>Editor</role>
<xref ref-type="aff" rid="edit1"/>
</contrib>
</contrib-group>
<aff id="edit1"><addr-line>Politecnico di Milano, ITALY</addr-line></aff>
<author-notes>
<fn fn-type="conflict" id="coi001">
<p>The authors have declared that no competing interests exist.</p>
</fn>
<corresp id="cor001">* E-mail: <email xlink:type="simple">gabriel.oh@stanford.edu</email></corresp>
</author-notes>
<pub-date pub-type="epub">
<day>27</day>
<month>7</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>18</volume>
<issue>7</issue>
<elocation-id>e0289171</elocation-id>
<history>
<date date-type="received">
<day>12</day>
<month>4</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>13</day>
<month>7</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-year>2023</copyright-year>
<copyright-holder>Carlucci et al</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="info:doi/10.1371/journal.pone.0289171"/>
<abstract>
<p>Reproducibility is crucial for scientific progress, yet a clear research data analysis workflow is challenging to implement and maintain. As a result, a record of computational steps performed on the data to arrive at the key research findings is often missing. We developed Scikick, a tool that eases the configuration, execution, and presentation of scientific computational analyses. Scikick allows for workflow configurations with notebooks as the units of execution, defines a standard structure for the project, automatically tracks the defined interdependencies between the data analysis steps, and implements methods to compile all research results into a cohesive final report. Utilities provided by Scikick help turn the complicated management of transparent data analysis workflows into a standardized and feasible practice. Scikick version 0.2.1 code and documentation is available as supplementary material. The Scikick software is available on GitHub (<ext-link ext-link-type="uri" xlink:href="https://github.com/matthewcarlucci/scikick" xlink:type="simple">https://github.com/matthewcarlucci/scikick</ext-link>) and is distributed with PyPi (<ext-link ext-link-type="uri" xlink:href="https://pypi.org/project/scikick/" xlink:type="simple">https://pypi.org/project/scikick/</ext-link>) under a GPL-3 license.</p>
</abstract>
<funding-group>
<award-group id="award001">
<funding-source>
<institution-wrap>
<institution-id institution-id-type="funder-id">http://dx.doi.org/10.13039/501100004895</institution-id>
<institution>European Social Fund</institution>
</institution-wrap>
</funding-source>
<award-id>No 09.3.3-LMT-K-712-17-0008</award-id>
<principal-award-recipient>
<name name-style="western">
<surname>Petronis</surname>
<given-names>Art</given-names>
</name>
</principal-award-recipient>
</award-group>
<funding-statement>This project was supported by the European Social Fund, ec.europa.eu/esf (project No 09.3.3-LMT-K-712-17-0008) under grant agreement with the Research Council of Lithuania (LMTLT; lmt.lt) awarded to A.P. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</funding-statement>
</funding-group>
<counts>
<fig-count count="3"/>
<table-count count="0"/>
<page-count count="8"/>
</counts>
<custom-meta-group>
<custom-meta id="data-availability">
<meta-name>Data Availability</meta-name>
<meta-value>All relevant data are within the paper and its <xref ref-type="sec" rid="sec010">Supporting information</xref> files.</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
<title>1. Introduction</title>
<p>Research reproducibility, in the many forms it takes [<xref ref-type="bibr" rid="pone.0289171.ref001">1</xref>–<xref ref-type="bibr" rid="pone.0289171.ref003">3</xref>], is essential to the scientific method. Multiple insights can often be gained from a single large dataset, however, the breadth of such investigations has placed a heavy burden on researchers who aim to practice full computational transparency. It is essential that analytical procedures are clearly documented throughout an investigation, including details of their intent, background rationale, implementation, and analysis outputs [<xref ref-type="bibr" rid="pone.0289171.ref004">4</xref>, <xref ref-type="bibr" rid="pone.0289171.ref005">5</xref>]. In its absence, investigative decisions, assumptions, and results can lose their context, and in turn, lower the quality of research communication [<xref ref-type="bibr" rid="pone.0289171.ref006">6</xref>].</p>
<p>Computational notebook formats (e.g., Jupyter Notebooks [<xref ref-type="bibr" rid="pone.0289171.ref007">7</xref>] and Rmarkdown [<xref ref-type="bibr" rid="pone.0289171.ref008">8</xref>]) and their associated development environments have paved a path for streamlined generation and sharing of computational results. Notebooks enable investigators to compile the analytical context (i.e., text), implementation (code), and results (figures) within a single document. This results in a report that reflects the entire process of analysis and serves as a transparent lens into how computations unfolded.</p>
<p>In order to develop larger projects, there is a demand to use multiple notebooks within the same analysis. To this end, in addition to best practice guidelines [<xref ref-type="bibr" rid="pone.0289171.ref009">9</xref>] and improvements to the notebook format [<xref ref-type="bibr" rid="pone.0289171.ref010">10</xref>], tools have been designed for some specific project types; generating reading materials on computational topics (e.g., bookdown [<xref ref-type="bibr" rid="pone.0289171.ref011">11</xref>] and Jupyter Book [<xref ref-type="bibr" rid="pone.0289171.ref012">12</xref>]) or developing software packages fully within notebooks (e.g., nbdev [<xref ref-type="bibr" rid="pone.0289171.ref013">13</xref>]). However, these solutions do not emphasize the ordered and interdependent execution of notebooks common to computational research projects. As such, reproducibility is compromised when projects are not configured to execute notebooks in the correct order, and transparency is compromised when projects do not clearly document this execution order.</p>
<p>The clarity of notebook outputs gives it an advantage to tools whose main purpose is to configure ordered computations (e.g., GNU Make [<xref ref-type="bibr" rid="pone.0289171.ref014">14</xref>], Snakemake [<xref ref-type="bibr" rid="pone.0289171.ref015">15</xref>], Nextflow [<xref ref-type="bibr" rid="pone.0289171.ref016">16</xref>], etc.). To benefit from both toolsets, researchers often use them in tandem to reproducibly configure the execution of a notebook collection. Further, researchers can produce graphical representations of this configuration to transparently represent the execution to the reader. However, assembling and maintaining these configurations throughout evolving projects is cumbersome. Therefore, many rapidly developing projects cannot dedicate the resources necessary for this level of transparency and reproducibility (<xref ref-type="fig" rid="pone.0289171.g001">Fig 1a</xref>).</p>
<fig id="pone.0289171.g001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0289171.g001</object-id>
<label>Fig 1</label>
<caption>
<title>Scikick workflow development use-case, practices, and features.</title>
<p><bold>a)</bold> An illustration of the problem Scikick aims to address. Left) A schematic of a rendered computational notebook with contextual descriptions accompanying code and results demonstrating the clarity of the notebook format. Centre) A minimal “notebook collection” where execution order of notebooks is undocumented and not configured, compromising both transparency and reproducibility. Right) A graphical representation of a workflow management configuration which supplements the notebook collection to execute the notebooks in the specified order. <bold>b)</bold> The illustration shows the main Scikick features used to manage a collection of notebooks throughout a project. An unstructured collection of notebooks are initially executed by Scikick to generate a structured report. New content inside the workflow, including modifications to a notebook, upstream modifications or the addition of new notebooks, are all detected by Scikick. Pending updates are computed by Scikick to generate an up-to-date report which can be easily navigated. Users repeatedly apply the modification, state management, and execution features throughout a project’s development.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0289171.g001" xlink:type="simple"/>
</fig>
<p>To simplify and improve transparency during these projects, we developed Scikick, a minimalistic command-line utility for maintaining computational notebook workflows. Scikick integrates the notebook format, workflow tools, and other elements necessary to streamline data-intensive research [<xref ref-type="bibr" rid="pone.0289171.ref017">17</xref>]. Our tool is designed to promote the maintenance of computational workflow archives that are easily inspectable by a diverse scientific readership at all project stages, conceptually extending the benefits of computational notebooks to computational workflows.</p>
</sec>
<sec id="sec002" sec-type="results">
<title>2. Results</title>
<sec id="sec003">
<title>2.1 Feature overview</title>
<p>The features of Scikick are designed to maintain structure and re-executability while performing an investigation which spans multiple computational notebooks that may depend on one-another. Notebooks are arranged into a workflow graph using Scikick’s command-line interface, implemented with Python ver. 3.6+, to update the configuration file and inspect the workflow state (<xref ref-type="fig" rid="pone.0289171.g001">Fig 1b</xref>). Notebooks are executed through Scikick’s Snakemake workflow configuration and are compiled into a static report containing all data analysis outputs. Scikick features are broadly separated into notebook, workflow, and repository management functionalities that seamlessly work together.</p>
<sec id="sec004">
<title>2.1.1 Command-line interface overview</title>
<p>The main commands for accessing this functionality are: “init”, “add”, “run”, and “status”. The “sk init” command checks for software requirements and creates an empty configuration file within the project directory. The “sk add” command is used to add notebooks and define the workflow graph. “sk run” calls on Snakemake to execute notebooks in the specified order. Then, as notebooks are modified, the “sk status” command displays which notebooks require (re)execution. Further usage information can be found within the Scikick documentation and command-line help outputs.</p>
</sec>
</sec>
<sec id="sec005">
<title>2.2 Notebook execution and metadata capture</title>
<p>To promote easy access for recording results in a notebook format, Scikick supports a plurality of file and notebook formats that are automatically executed using appropriate methods (e.g., R scripts are converted to Rmarkdown) to capture code, console, and graphical outputs in a markdown document which would otherwise go unrecorded. All notebook outputs are compiled with Rmarkdown into a cohesive final report where the report navigation, which is automatically configured by Scikick, allows readers to easily identify the notebook source file. Scikick also logs useful technical information related to each notebook into the resulting markdown files, such as software versions, user defined functions, execution time, and versioning history of the notebook. Usage of these features increases the amount of information available to readers revisiting old computational archives.</p>
</sec>
<sec id="sec006">
<title>2.3 Concurrent management of automation and reporting</title>
<p>As a project matures and more analyses are added, it is reasonable to expect that long notebooks will be broken up into many smaller notebooks [<xref ref-type="bibr" rid="pone.0289171.ref009">9</xref>] in order to focus on specific topics, reduce resource usage (e.g., memory and runtime), and simplify computing environment namespaces. Creation of notebooks which depend on one-another during this stage puts new strains on automating the workflow while also ensuring the report remains transparent. Therefore, Scikick provides simple features to define dependence between notebooks and to manage each notebook’s state. After authoring a new notebook and placing it in the workflow graph, the status of all notebooks can be verified by the user. Any pending notebook executions will run in an appropriate order to overwrite older outputs such that results represent a procedural execution of each notebook’s code. Finally, embedding notebook results and the order of notebook executions into a final report in a human-readable format allows for the report archive to be fully understood by readers (e.g., <xref ref-type="fig" rid="pone.0289171.g002">Fig 2</xref>).</p>
<fig id="pone.0289171.g002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0289171.g002</object-id>
<label>Fig 2</label>
<caption>
<title>Report and project map generated by Scikick for the single-cell RNA sequencing analysis demonstration.</title>
<p>A series of notebooks shown in the file tree under the “notebooks” directory were added to the project’s “scikick.yml” YAML configuration file using the command-line interface. The notebooks were executed to generate the displayed HTML archive (orange border) which resides in the “report” directory. A workflow graph (“Project Map”) was automatically generated by Scikick using the graphviz.dot format [<xref ref-type="bibr" rid="pone.0289171.ref018">18</xref>]. The graph illustrates the order of notebook executions, outlines the organization of the project’s source code, and allows for report navigation such that a reader can trace the provenance of results among the notebooks. Each grouping (grey box) represents a series of notebooks that were used to analyze an individual transcriptomic dataset with a final group containing two notebooks used to perform a combined analysis of the datasets. The red node represents the current notebook results page being viewed in the report. A table of contents is provided on the left for each page in the report.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0289171.g002" xlink:type="simple"/>
</fig>
</sec>
<sec id="sec007">
<title>2.4 Demonstrations and guides</title>
<p>A series of vignettes in the Scikick documentation (<xref ref-type="supplementary-material" rid="pone.0289171.s001">S1 File</xref>; <ext-link ext-link-type="uri" xlink:href="https://github.com/matthewcarlucci/scikick" xlink:type="simple">https://github.com/matthewcarlucci/scikick</ext-link>) includes a quick-start guide, a comprehensive user manual, details on methods and design, as well as a demonstration of Scikick’s capabilities through an analysis of single-cell RNA sequencing (scRNA-seq) datasets [<xref ref-type="bibr" rid="pone.0289171.ref019">19</xref>]. Here, we demonstrated how the implementation of a complex workflow involving data inspection, quality control, normalization, dimensionality reduction, and data exploration, is managed through the usage of Scikick. This allowed the pursuit of nonlinear avenues of investigation across multiple datasets and project stages and automatically embedded a navigable graph of the workflow within the archive (<xref ref-type="fig" rid="pone.0289171.g002">Fig 2</xref>).</p>
</sec>
<sec id="sec008">
<title>2.5 Project management with robust versioned archives</title>
<p>Advanced practices such as “Continuous Analysis” [<xref ref-type="bibr" rid="pone.0289171.ref020">20</xref>] provide schemes for producing verifiable end-to-end runs of computational analyses by ensuring that code can execute from start to finish within a specified software environment. Despite having verified a machine-readable workflow in this way, maintaining an archive that is also human-readable is a difficult, but necessary, complementary task [<xref ref-type="bibr" rid="pone.0289171.ref009">9</xref>]. Crucial to this practice, Scikick projects remain reader-ready throughout their development with the use of features such as a simplistic configuration and a navigable project graph (<xref ref-type="fig" rid="pone.0289171.g002">Fig 2</xref>). Additionally, Scikick projects can be stored entirely as plain text and sets a clear structure for which files are tracked with version control, further simplifying the adoption of Continuous Analysis on version control platforms (e.g., GitHub, GitLab, BitBucket, etc.). Lastly, demanding knowledge needed to use advanced computing is reduced for Scikick projects; minimal additional configuration can achieve distributed notebook executions over a cluster’s resources in a prespecified container environment (e.g., Docker [<xref ref-type="bibr" rid="pone.0289171.ref021">21</xref>], Singularity [<xref ref-type="bibr" rid="pone.0289171.ref022">22</xref>], etc.). Since all Scikick projects use the same execution and reporting methods, a single configuration of continuous analysis on a given set of computational infrastructure can be applied to all projects. We implemented such a configuration on common academic infrastructure which monitors source code for changes and re-runs scientific analysis automatically (<xref ref-type="fig" rid="pone.0289171.g003">Fig 3</xref>). Altogether, Scikick methods are sufficiently flexible to implement as part of a variety of computing infrastructure and environments.</p>
<fig id="pone.0289171.g003" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0289171.g003</object-id>
<label>Fig 3</label>
<caption>
<title>Developing Scikick projects to maturation with continuous analysis.</title>
<p><bold>a</bold>) This schematic illustration represents a configuration for an automated re-execution of a Scikick project. Local development of notebook collections with Scikick proceeds as described in <xref ref-type="fig" rid="pone.0289171.g001">Fig 1b</xref>. Upon pushing a version of the project’s source code to a remote server (GitLab), the project is executed utilizing resources of a SLURM compute cluster where each notebook is submitted in parallel as cluster jobs. To provide fixed software environments for the remote machines, Singularity containers are defined in the Scikick configuration file. The final reproducible report is stored alongside the code that produced it as a “verified report”, which is known to have executed from start to finish within the specified software environment. <bold>b</bold>) A sample of the ‘Continuous Integration’ section of GitLab shows versions of the analysis that are executed as they are “pushed” to the GitLab server, as configured in (<bold>a</bold>). Some versions encountered errors which were rapidly addressed which may have been detected much later if re-execution was not performed. Successful analysis verification runs store a final Scikick report on the server, alongside the source code that produced it, where results may be inspected at any time in the future, and further, may be precisely reproduced with usage of the specified container.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0289171.g003" xlink:type="simple"/>
</fig>
</sec>
</sec>
<sec id="sec009" sec-type="conclusions">
<title>3. Conclusion</title>
<p>Computational notebooks have provided transparency to research reporting, and yet require supporting tooling for the analysis of large-scale datasets with many investigative branches. Projects lack access to streamlined build tools to support computational notebooks, and therefore lose the reproducibility and transparency needed for auditing analyses. Scikick provides the ability to maintain clarity of data analysis and research workflow development all the way through to verified analysis archives. Scikick can be used to execute polyglot projects, and underlying tooling updates (e.g., Quarto [<xref ref-type="bibr" rid="pone.0289171.ref023">23</xref>]) may improve language agnosticism in the future. Well-structured and annotated investigative projects, supported by the use of tools like Scikick, will help improve transparency to allow for more rigorous review and thereby improve reliability of scientific works.</p>
</sec>
<sec id="sec010" sec-type="supplementary-material">
<title>Supporting information</title>
<supplementary-material id="pone.0289171.s001" mimetype="application/zip" position="float" xlink:href="info:doi/10.1371/journal.pone.0289171.s001" xlink:type="simple">
<label>S1 File</label>
<caption>
<title>Scikick 0.2.1 source code and documentation.</title>
<p>(ZIP)</p>
</caption>
</supplementary-material>
</sec>
</body>
<back>
<ack>
<p>The authors thank all of those involved in providing comments throughout the development of Scikick which provided valuable feedback for the design and usage of the tool.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="pone.0289171.ref001"><label>1</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Goodman</surname> <given-names>SN</given-names></name>, <name name-style="western"><surname>Fanelli</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Ioannidis</surname> <given-names>JPA</given-names></name>. <article-title>What does research reproducibility mean?</article-title> <source>Sci Transl Med</source>. <year>2016</year> <month>Jun</month> <day>1</day>;<volume>8</volume>(<issue>341</issue>):<fpage>341ps12</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1126/scitranslmed.aaf5027" xlink:type="simple">10.1126/scitranslmed.aaf5027</ext-link></comment> <object-id pub-id-type="pmid">27252173</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref002"><label>2</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Munafò</surname> <given-names>MR</given-names></name>, <name name-style="western"><surname>Nosek</surname> <given-names>BA</given-names></name>, <name name-style="western"><surname>Bishop</surname> <given-names>DVM</given-names></name>, <name name-style="western"><surname>Button</surname> <given-names>KS</given-names></name>, <name name-style="western"><surname>Chambers</surname> <given-names>CD</given-names></name>, <name name-style="western"><surname>du Sert</surname> <given-names>NP</given-names></name>, <etal>et al</etal>. <article-title>A manifesto for reproducible science</article-title>. <source>Nature Human Behaviour</source>. <year>2017</year> <month>Jan</month> <day>10</day>;<volume>1</volume>(<issue>1</issue>):<fpage>1</fpage>–<lpage>9</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/s41562-016-0021" xlink:type="simple">10.1038/s41562-016-0021</ext-link></comment> <object-id pub-id-type="pmid">33954258</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref003"><label>3</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Plesser</surname> <given-names>HE</given-names></name>. <article-title>Reproducibility vs. Replicability: A Brief History of a Confused Terminology</article-title>. <source>Front Neuroinform</source>. <year>2018</year>;<volume>11</volume>. Available from: <ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.3389/fninf.2017.00076" xlink:type="simple">http://dx.doi.org/10.3389/fninf.2017.00076</ext-link> <object-id pub-id-type="pmid">29403370</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref004"><label>4</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Claerbout</surname> <given-names>JF</given-names></name>, <name name-style="western"><surname>Karrenbach</surname> <given-names>M</given-names></name>. <chapter-title>Electronic documents give reproducible research a new meaning</chapter-title>. In: <source>SEG Technical Program Expanded Abstracts 1992</source>. <publisher-name>Society of Exploration Geophysicists</publisher-name>; <year>1992</year>. p. <fpage>601</fpage>–<lpage>4</lpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref005"><label>5</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Stodden</surname> <given-names>V</given-names></name>, <name name-style="western"><surname>McNutt</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Bailey</surname> <given-names>DH</given-names></name>, <name name-style="western"><surname>Deelman</surname> <given-names>E</given-names></name>, <name name-style="western"><surname>Gil</surname> <given-names>Y</given-names></name>, <name name-style="western"><surname>Hanson</surname> <given-names>B</given-names></name>, <etal>et al</etal>. <article-title>Enhancing reproducibility for computational methods</article-title>. <source>Science</source>. <year>2016</year> <month>Dec</month> <day>9</day>;<volume>354</volume>(<issue>6317</issue>):<fpage>1240</fpage>–<lpage>1</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1126/science.aah6168" xlink:type="simple">10.1126/science.aah6168</ext-link></comment> <object-id pub-id-type="pmid">27940837</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref006"><label>6</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Hutson</surname> <given-names>M.</given-names></name> <article-title>Artificial intelligence faces reproducibility crisis</article-title>. <source>Science</source>. <year>2018</year> <month>Feb</month> <day>16</day>;<volume>359</volume>(<issue>6377</issue>):<fpage>725</fpage>–<lpage>6</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1126/science.359.6377.725" xlink:type="simple">10.1126/science.359.6377.725</ext-link></comment> <object-id pub-id-type="pmid">29449469</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref007"><label>7</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Kluyver</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Ragan-Kelley</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Pérez</surname> <given-names>F</given-names></name>, <name name-style="western"><surname>Granger</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Bussonnier</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Frederic</surname> <given-names>J</given-names></name>, <etal>et al</etal>. <chapter-title>Jupyter Notebooks–a publishing format for reproducible computational workflows</chapter-title>. In: <name name-style="western"><surname>Loizides</surname> <given-names>F</given-names></name>, <name name-style="western"><surname>Scmidt</surname> <given-names>B</given-names></name>, editors. <source>Positioning and Power in Academic Publishing: Players, Agents and Agendas</source>. <publisher-name>IOS Press</publisher-name>; <year>2016</year>. p. <fpage>87</fpage>–<lpage>90</lpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref008"><label>8</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Xie</surname> <given-names>Y</given-names></name>, <name name-style="western"><surname>Allaire</surname> <given-names>JJ</given-names></name>, <name name-style="western"><surname>Grolemund</surname> <given-names>G</given-names></name>. <source>R Markdown: The Definitive Guide</source>. <publisher-name>Taylor &amp; Francis, CRC Press</publisher-name>; <year>2018</year>. <fpage>303</fpage> p.</mixed-citation></ref>
<ref id="pone.0289171.ref009"><label>9</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Rule</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Birmingham</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Zuniga</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Altintas</surname> <given-names>I</given-names></name>, <name name-style="western"><surname>Huang</surname> <given-names>SC</given-names></name>, <name name-style="western"><surname>Knight</surname> <given-names>R</given-names></name>, <etal>et al</etal>. <article-title>Ten simple rules for writing and sharing computational analyses in Jupyter Notebooks</article-title>. <source>PLoS Comput Biol</source>. <year>2019</year> <month>Jul</month>;<volume>15</volume>(<issue>7</issue>). <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1371/journal.pcbi.1007007" xlink:type="simple">10.1371/journal.pcbi.1007007</ext-link></comment> <object-id pub-id-type="pmid">31344036</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref010"><label>10</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Lau</surname> <given-names>S</given-names></name>, <name name-style="western"><surname>Drosos</surname> <given-names>I</given-names></name>, <name name-style="western"><surname>Markel</surname> <given-names>JM</given-names></name>, <name name-style="western"><surname>Guo</surname> <given-names>PJ</given-names></name>. <chapter-title>The Design Space of Computational Notebooks: An Analysis of 60 Systems in Academia and Industry</chapter-title>. In: <source>2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)</source>. <year>2020</year>. p. <fpage>1</fpage>–<lpage>11</lpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref011"><label>11</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Xie</surname> <given-names>Y.</given-names></name> <source>bookdown: Authoring Books and Technical Documents with R Markdown</source>. <edition designator="1">1st ed</edition>. <publisher-name>Chapman and Hall/CRC</publisher-name>; <year>2016</year>.</mixed-citation></ref>
<ref id="pone.0289171.ref012"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Executable Books Community. Jupyter Book [Internet]. 2020. <ext-link ext-link-type="uri" xlink:href="https://zenodo.org/record/4539666" xlink:type="simple">https://zenodo.org/record/4539666</ext-link></mixed-citation></ref>
<ref id="pone.0289171.ref013"><label>13</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Howard</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Gugger</surname> <given-names>S</given-names></name>. <article-title>Fastai: A Layered API for Deep Learning</article-title>. <source>Information</source>. <year>2020</year> <month>Feb</month> <day>16</day>;<volume>11</volume>(<issue>2</issue>):<fpage>108</fpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref014"><label>14</label><mixed-citation publication-type="book" xlink:type="simple"><name name-style="western"><surname>Gough</surname> <given-names>B.</given-names></name> <source>GNU Scientific Library Reference Manual—Third Edition</source>. <edition designator="3">3rd ed</edition>. <publisher-name>Network Theory Ltd</publisher-name>.; <year>2009</year>.</mixed-citation></ref>
<ref id="pone.0289171.ref015"><label>15</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Mölder</surname> <given-names>F</given-names></name>, <name name-style="western"><surname>Jablonski</surname> <given-names>KP</given-names></name>, <name name-style="western"><surname>Letcher</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Hall</surname> <given-names>MB</given-names></name>, <name name-style="western"><surname>Tomkins-Tinch</surname> <given-names>CH</given-names></name>, <name name-style="western"><surname>Sochat</surname> <given-names>V</given-names></name>, <etal>et al</etal>. <article-title>Sustainable data analysis with Snakemake</article-title>. <source>F1000Res</source>. <year>2021</year> <month>Jan</month> <day>18</day>;<volume>10</volume>(<issue>33</issue>):<fpage>33</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.12688/f1000research.29032.2" xlink:type="simple">10.12688/f1000research.29032.2</ext-link></comment> <object-id pub-id-type="pmid">34035898</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref016"><label>16</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Di Tommaso</surname> <given-names>P</given-names></name>, <name name-style="western"><surname>Chatzou</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Floden</surname> <given-names>EW</given-names></name>, <name name-style="western"><surname>Barja</surname> <given-names>PP</given-names></name>, <name name-style="western"><surname>Palumbo</surname> <given-names>E</given-names></name>, <name name-style="western"><surname>Notredame</surname> <given-names>C</given-names></name>. <article-title>Nextflow enables reproducible computational workflows</article-title>. <source>Nat Biotechnol</source>. <year>2017</year> <month>Apr</month> <day>11</day>;<volume>35</volume>(<issue>4</issue>):<fpage>316</fpage>–<lpage>9</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/nbt.3820" xlink:type="simple">10.1038/nbt.3820</ext-link></comment> <object-id pub-id-type="pmid">28398311</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref017"><label>17</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Reiter</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Brooks</surname> <given-names>PT</given-names></name>, <name name-style="western"><surname>Irber</surname> <given-names>L</given-names></name>, <name name-style="western"><surname>Joslin</surname> <given-names>SEK</given-names></name>, <name name-style="western"><surname>Reid</surname> <given-names>CM</given-names></name>, <name name-style="western"><surname>Scott</surname> <given-names>C</given-names></name>, <etal>et al</etal>. <article-title>Streamlining data-intensive biology with workflow systems</article-title>. <source>Gigascience</source>. <year>2021</year> <month>Jan</month> <day>13</day>;<volume>10</volume>(<issue>1</issue>). Available from: <ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.1093/gigascience/giaa140" xlink:type="simple">http://dx.doi.org/10.1093/gigascience/giaa140</ext-link> <object-id pub-id-type="pmid">33438730</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref018"><label>18</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Gansner</surname> <given-names>ER</given-names></name>, <name name-style="western"><surname>North</surname> <given-names>SC</given-names></name>. <article-title>An open graph visualization system and its applications to software engineering</article-title>. <source>Softw Pract Exp</source>. <year>2000</year> <month>Sep</month>;<volume>30</volume>(<issue>11</issue>):<fpage>1203</fpage>–<lpage>33</lpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref019"><label>19</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Amezquita</surname> <given-names>RA</given-names></name>, <name name-style="western"><surname>Lun</surname> <given-names>ATL</given-names></name>, <name name-style="western"><surname>Becht</surname> <given-names>E</given-names></name>, <name name-style="western"><surname>Carey</surname> <given-names>VJ</given-names></name>, <name name-style="western"><surname>Carpp</surname> <given-names>LN</given-names></name>, <name name-style="western"><surname>Geistlinger</surname> <given-names>L</given-names></name>, <etal>et al</etal>. <article-title>Orchestrating single-cell analysis with Bioconductor</article-title>. <source>Nat Methods</source>. <year>2019</year> <month>Dec</month> <day>2</day>;<volume>17</volume>(<issue>2</issue>):<fpage>137</fpage>–<lpage>45</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/s41592-019-0654-x" xlink:type="simple">10.1038/s41592-019-0654-x</ext-link></comment> <object-id pub-id-type="pmid">31792435</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref020"><label>20</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Beaulieu-Jones</surname> <given-names>BK</given-names></name>, <name name-style="western"><surname>Greene</surname> <given-names>CS</given-names></name>. <article-title>Reproducibility of computational workflows is automated using continuous analysis</article-title>. <source>Nat Biotechnol</source>. <year>2017</year> <month>Mar</month> <day>13</day>;<volume>35</volume>(<issue>4</issue>):<fpage>342</fpage>–<lpage>6</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/nbt.3780" xlink:type="simple">10.1038/nbt.3780</ext-link></comment> <object-id pub-id-type="pmid">28288103</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref021"><label>21</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Merkel</surname> <given-names>D.</given-names></name> <article-title>Docker: lightweight linux containers for consistent development and deployment</article-title>. <source>Linux J</source>. <year>2014</year>;<volume>2014</volume>(<issue>239</issue>):<fpage>2</fpage>.</mixed-citation></ref>
<ref id="pone.0289171.ref022"><label>22</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>Kurtzer</surname> <given-names>GM</given-names></name>, <name name-style="western"><surname>Sochat</surname> <given-names>V</given-names></name>, <name name-style="western"><surname>Bauer</surname> <given-names>MW</given-names></name>. <article-title>Singularity: Scientific containers for mobility of compute</article-title>. <source>PLoS One</source>. <year>2017</year> <month>May</month> <day>11</day>;<volume>12</volume>(<issue>5</issue>):<fpage>e0177459</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1371/journal.pone.0177459" xlink:type="simple">10.1371/journal.pone.0177459</ext-link></comment> <object-id pub-id-type="pmid">28494014</object-id></mixed-citation></ref>
<ref id="pone.0289171.ref023"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Quarto [Internet]. [cited 2023 Feb 24]. <ext-link ext-link-type="uri" xlink:href="https://quarto.org/" xlink:type="simple">https://quarto.org/</ext-link></mixed-citation></ref>
</ref-list>
</back>
<sub-article article-type="aggregated-review-documents" id="pone.0289171.r001" specific-use="decision-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pone.0289171.r001</article-id>
<title-group>
<article-title>Decision Letter 0</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Bernasconi</surname>
<given-names>Anna</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2023</copyright-year>
<copyright-holder>Anna Bernasconi</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pone.0289171" document-id-type="doi" document-type="article" id="rel-obj001" link-type="peer-reviewed-article"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>0</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">9 May 2023</named-content>
</p>
<p><!-- <div> -->PONE-D-23-11089<!-- </div> --><!-- <div> -->Scikick: a sidekick for workflow clarity and reproducibility during extensive data analysis<!-- </div> --><!-- <div> -->PLOS ONE</p>
<p>Dear Dr. Oh,</p>
<p>Thank you for submitting your manuscript to PLOS ONE. After careful consideration, we feel that it has merit but does not fully meet PLOS ONE’s publication criteria as it currently stands. Therefore, we invite you to submit a revised version of the manuscript that addresses the points raised during the review process.</p>
<p>Please submit your revised manuscript by Jun 23 2023 11:59PM. If you will need more time than this to complete your revisions, please reply to this message or contact the journal office at <email xlink:type="simple">plosone@plos.org</email>. When you're ready to submit your revision, log on to <ext-link ext-link-type="uri" xlink:href="https://www.editorialmanager.com/pone/" xlink:type="simple">https://www.editorialmanager.com/pone/</ext-link> and select the 'Submissions Needing Revision' folder to locate your manuscript file.</p>
<p>Please include the following items when submitting your revised manuscript:<!-- </div> --><list list-type="bullet"> <list-item><p>A rebuttal letter that responds to each point raised by the academic editor and reviewer(s). You should upload this letter as a separate file labeled 'Response to Reviewers'.</p></list-item> <list-item><p>A marked-up copy of your manuscript that highlights changes made to the original version. You should upload this as a separate file labeled 'Revised Manuscript with Track Changes'.</p></list-item> <list-item><p>An unmarked version of your revised paper without tracked changes. You should upload this as a separate file labeled 'Manuscript'.</p></list-item></list><!-- <div> -->If you would like to make changes to your financial disclosure, please include your updated statement in your cover letter. Guidelines for resubmitting your figure files are available below the reviewer comments at the end of this letter.</p>
<p>If applicable, we recommend that you deposit your laboratory protocols in protocols.io to enhance the reproducibility of your results. Protocols.io assigns your protocol its own identifier (DOI) so that it can be cited independently in the future. For instructions see: <ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/submission-guidelines#loc-laboratory-protocols" xlink:type="simple">https://journals.plos.org/plosone/s/submission-guidelines#loc-laboratory-protocols</ext-link>. Additionally, PLOS ONE offers an option for publishing peer-reviewed Lab Protocol articles, which describe protocols hosted on protocols.io. Read more information on sharing protocols at <ext-link ext-link-type="uri" xlink:href="https://plos.org/protocols?utm_medium=editorial-email&amp;utm_source=authorletters&amp;utm_campaign=protocols" xlink:type="simple">https://plos.org/protocols?utm_medium=editorial-email&amp;utm_source=authorletters&amp;utm_campaign=protocols</ext-link>.</p>
<p>We look forward to receiving your revised manuscript.</p>
<p>Kind regards,</p>
<p>Anna Bernasconi, PhD</p>
<p>Academic Editor</p>
<p>PLOS ONE</p>
<p>Journal Requirements:</p>
<p>When submitting your revision, we need you to address these additional requirements.</p>
<p>1. Please ensure that your manuscript meets PLOS ONE's style requirements, including those for file naming. The PLOS ONE style templates can be found at <ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/file?id=wjVg/PLOSOne_formatting_sample_main_body.pdf" xlink:type="simple">https://journals.plos.org/plosone/s/file?id=wjVg/PLOSOne_formatting_sample_main_body.pdf</ext-link> and </p>
<p><ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/file?id=ba62/PLOSOne_formatting_sample_title_authors_affiliations.pdf" xlink:type="simple">https://journals.plos.org/plosone/s/file?id=ba62/PLOSOne_formatting_sample_title_authors_affiliations.pdf</ext-link></p>
<p>2. Please note that PLOS ONE has specific guidelines on code sharing for submissions in which author-generated code underpins the findings in the manuscript. In these cases, all author-generated code must be made available without restrictions upon publication of the work. Please review our guidelines at <ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/materials-and-software-sharing#loc-sharing-code" xlink:type="simple">https://journals.plos.org/plosone/s/materials-and-software-sharing#loc-sharing-code</ext-link> and ensure that your code is shared in a way that follows best practice and facilitates reproducibility and reuse.</p>
<p>3. In your Data Availability statement, you have not specified where the minimal data set underlying the results described in your manuscript can be found. PLOS defines a study's minimal data set as the underlying data used to reach the conclusions drawn in the manuscript and any additional data required to replicate the reported study findings in their entirety. All PLOS journals require that the minimal data set be made fully available. For more information about our data policy, please see <ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/plosone/s/data-availability" xlink:type="simple">http://journals.plos.org/plosone/s/data-availability</ext-link>.</p>
<p>Upon re-submitting your revised manuscript, please upload your study’s minimal underlying data set as either Supporting Information files or to a stable, public repository and include the relevant URLs, DOIs, or accession numbers within your revised cover letter. For a list of acceptable repositories, please see <ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/plosone/s/data-availability#loc-recommended-repositories" xlink:type="simple">http://journals.plos.org/plosone/s/data-availability#loc-recommended-repositories</ext-link>. Any potentially identifying patient information must be fully anonymized.</p>
<p>Important: If there are ethical or legal restrictions to sharing your data publicly, please explain these restrictions in detail. Please see our guidelines for more information on what we consider unacceptable restrictions to publicly sharing data: <ext-link ext-link-type="uri" xlink:href="http://journals.plos.org/plosone/s/data-availability#loc-unacceptable-data-access-restrictions" xlink:type="simple">http://journals.plos.org/plosone/s/data-availability#loc-unacceptable-data-access-restrictions</ext-link>. Note that it is not acceptable for the authors to be the sole named individuals responsible for ensuring data access.</p>
<p>We will update your Data Availability statement to reflect the information you provide in your cover letter</p>
<p>Please review your reference list to ensure that it is complete and correct. If you have cited papers that have been retracted, please include the rationale for doing so in the manuscript text, or remove these references and replace them with relevant current references. Any changes to the reference list should be mentioned in the rebuttal letter that accompanies your revised manuscript. If you need to cite a retracted article, indicate the article’s retracted status in the References list and also include a citation and full reference for the retraction notice.</p>
<p>Additional Editor Comments (if provided):</p>
<p>Dear authors the paper contributes an important work. Please carefully revise the manuscript addressing the comments of Rev. 1 and 2. Provide a revised manuscript with changes/additions highlighted in different color.</p>
<p>We will be glad to review your revised manuscript once the points have been addressed.</p>
<p>[Note: HTML markup is below. Please do not edit.]</p>
<p>Reviewers' comments:</p>
<p>Reviewer's Responses to Questions</p>
<p><!-- <font color="black"> --><bold>Comments to the Author</bold></p>
<p>1. Is the manuscript technically sound, and do the data support the conclusions?</p>
<p>The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented. <!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>Reviewer #3: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->2. Has the statistical analysis been performed appropriately and rigorously? <!-- </font> --></p>
<p>Reviewer #1: N/A</p>
<p>Reviewer #2: N/A</p>
<p>Reviewer #3: N/A</p>
<p>**********</p>
<p><!-- <font color="black"> -->3. Have the authors made all data underlying the findings in their manuscript fully available?</p>
<p>The <ext-link ext-link-type="uri" xlink:href="http://www.plosone.org/static/policies.action#sharing" xlink:type="simple">PLOS Data policy</ext-link> requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.<!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>Reviewer #3: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->4. Is the manuscript presented in an intelligible fashion and written in standard English?</p>
<p>PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.<!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>Reviewer #3: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->5. Review Comments to the Author</p>
<p>Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)<!-- </font> --></p>
<p>Reviewer #1: In this work, authors present Scikick, an interesting tool to create workflows composed by notebooks rather than from scripts or executable files as we all are used to do.</p>
<p>I have never heard about a similar tool and many times wondered how that could be done, so my overall opinion is that this is a good addition to the bioinformatics software ecosystem.</p>
<p>Authors have made a great effort to automatically run notebooks using Snakemake and provide exhaustive documentation to get started with the tool, including basic and advanced usage examples.</p>
<p>Regarding the paper, I have struggled a little bit with figure 2. I was able to fully understand it after browsing the example report online and navigating trough the different sections, so my suggestion is try improving the figure 2 legend so that readers can understand it easier. For instance, you could add a files tree of the project and briefly explain them.</p>
<p>In addition, three points:</p>
<p>- I'd suggest authors adding a new section (and maybe a figure) to explain the basic commands of the "sk" tool (init, add, status and run) as it is important for readers to see how the tool works and how dependencies are defined.</p>
<p>- Have you considered including tools or some mechanisms to obtain user-friendly readable diffs between notebook files? By default, "git diff" commands on Python notebooks are not very useful.</p>
<p>- Regarding figure 3, what does mean "verified archive"? I think that this figure can be also improved. For me, the flow would go from local development to the GitLab server and from that point the execution of the "continuous analysis" triggered. With the current image, one can think that the continuous analysis is performed in the same computer as the workflow is being developed.</p>
<p>Reviewer #2: The authors describe a command-line software package for tracking the sequence in which Jupyter notebooks are executed and "to define dependence between notebooks and to manage each notebook’s state." The goal is to prevent scientists from having to perform these tasks manually, which can be time consuming and error prone. For scientists who use notebooks, this tool may be helpful. Though in my own personal case, I have not yet found a scenario where I would use this tool.</p>
<p>The writing is clear, the software appears to be well designed, and it is open source. Below are some comments as suggestions for improving the paper.</p>
<p>- Figure 1 seems a bit superfluous to me. It attempts to provide a high-level justification for the tool, but in my opinion, it doesn't add anything to the paper beyond what is already in the text.</p>
<p>- The paper focuses mostly on justifying the need for the tool. But it provides little insight on *how* the tool works. For example, how does it collect the metadata and integrate everything? How does it integrate with snakemake? Etc. I don't think it's necessary to provide a lot more detail. But a little more would be helpful.</p>
<p>- The paper says, "Additionally, maintaining a simple project structure suitable for version control, further eases the adoption of Continuous Analysis on version control platforms (e.g., GitHub, GitLab, BitBucket, etc.)." I'm not sure if I understand exactly what this is saying. How does it support using version control?</p>
<p>- I'm probably missing it, but I don't see any explicit instructions about how to install the software. That's a pretty standard thing to see on documentation sites.</p>
<p>Reviewer #3: Computational analyses are getting a central part in an ever increasing number of scientific experiments and the amount and complexity of code that is produced is often difficult to maintain, distribute and replicate in a standard way.</p>
<p>In this manuscript the authors present a tools for easy integration, maintenance and organisation of multiple computational notebooks linked to complex analysis tasks. The tool functionalities are well structured and provide a way to add a layer of organisation to code without affecting the internal logic of existing components. The manuscript is clear and well written.</p>
<p>I think that, if adopted, the proposed tool can bring a considerable benefit to the research community.</p>
<p>**********</p>
<p><!-- <font color="black"> -->6. PLOS authors have the option to publish the peer review history of their article (<ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/editorial-and-peer-review-process#loc-peer-review-history" xlink:type="simple">what does this mean?</ext-link>). If published, this will include your full peer review and any attached files.</p>
<p>If you choose “no”, your identity will remain anonymous but your review may still be made public.</p>
<p><bold>Do you want your identity to be public for this peer review?</bold> For information about this choice, including consent withdrawal, please see our <ext-link ext-link-type="uri" xlink:href="https://www.plos.org/privacy-policy" xlink:type="simple">Privacy Policy</ext-link>.<!-- </font> --></p>
<p>Reviewer #1: <bold>Yes: </bold>Hugo López-Fernández</p>
<p>Reviewer #2: No</p>
<p>Reviewer #3: No</p>
<p>**********</p>
<p>[NOTE: If reviewer comments were submitted as an attachment file, they will be attached to this email and accessible via the submission site. Please log into your account, locate the manuscript record, and check for the action link "View Attachments". If this link does not appear, there are no attachment files.]</p>
<p>While revising your submission, please upload your figure files to the Preflight Analysis and Conversion Engine (PACE) digital diagnostic tool, <ext-link ext-link-type="uri" xlink:href="https://pacev2.apexcovantage.com/" xlink:type="simple">https://pacev2.apexcovantage.com/</ext-link>. PACE helps ensure that figures meet PLOS requirements. To use PACE, you must first register as a user. Registration is free. Then, login and navigate to the UPLOAD tab, where you will find detailed instructions on how to use the tool. If you encounter any issues or have any questions when using PACE, please email PLOS at <email xlink:type="simple">figures@plos.org</email>. Please note that Supporting Information files do not need this step.</p>
</body>
</sub-article>
<sub-article article-type="author-comment" id="pone.0289171.r002">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pone.0289171.r002</article-id>
<title-group>
<article-title>Author response to Decision Letter 0</article-title>
</title-group>
<related-object document-id="10.1371/journal.pone.0289171" document-id-type="doi" document-type="peer-reviewed-article" id="rel-obj002" link-type="rebutted-decision-letter" object-id="10.1371/journal.pone.0289171.r001" object-id-type="doi" object-type="decision-letter"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>1</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="author-response-date">21 Jun 2023</named-content>
</p>
<p>Reviewer #1:</p>
<p>Comment: Regarding the paper, I have struggled a little bit with figure 2. I was able to fully understand it after browsing the example report online and navigating through the different sections, so my suggestion is try improving the figure 2 legend so that readers can understand it easier. For instance, you could add a files tree of the project and briefly explain them.</p>
<p>Response: We have taken the reviewers suggestion to better highlight the merits of Scikick being displayed in figure 2 by including the file tree and further describing the figure (L133-L139).</p>
<p>Comment: I'd suggest authors adding a new section (and maybe a figure) to explain the basic commands of the "sk" tool (init, add, status and run) as it is important for readers to see how the tool works and how dependencies are defined.</p>
<p>Response: In our initial submission, we have included detailed information regarding the execution in our supplemental information in an effort to reduce too much technicality in the manuscript. Based on the reviewer’s feedback, we have included a new section as an overview of the command-line interface (L94-L103), yet direct to the documentation for longer form tutorials and examples.</p>
<p>Comment: Have you considered including tools or some mechanisms to obtain user-friendly readable diffs between notebook files? By default, "git diff" commands on Python notebooks are not very useful.</p>
<p>Response: Thank you for the suggestion. While it is an interesting idea, we think it is beyond the scope of Scikick. There are some dedicated tools to specifically address this challenging issue (e.g., <ext-link ext-link-type="uri" xlink:href="https://nbdime.readthedocs.io/en/latest/" xlink:type="simple">https://nbdime.readthedocs.io/en/latest/</ext-link>), and we feel these specialty tools and others like it will work in tandem with Scikick.</p>
<p>Comment: Regarding figure 3, what does mean "verified archive"? I think that this figure can be also improved. For me, the flow would go from local development to the GitLab server and from that point the execution of the "continuous analysis" triggered. With the current image, one can think that the continuous analysis is performed in the same computer as the workflow is being developed.</p>
<p>Response: We have replaced “verified archive” in Figure 3 with “GitLab Repository” in order to avoid the possible misunderstanding pointed out by the reviewer. We also have clarified what we mean by “verified” throughout the revised manuscript (L160-L161; L188-L190). </p>
<p>Reviewer #2: </p>
<p>Comment: Figure 1 seems a bit superfluous to me. It attempts to provide a high-level justification for the tool, but in my opinion, it doesn't add anything to the paper beyond what is already in the text.</p>
<p>Response: We agree with the reviewer that it is somewhat repetitive to what is described in the main text. However, we believe that an overview may serve a similar role to graphical abstracts for those who are trying to rapidly process information, as a visual aid.</p>
<p>Comment: The paper focuses mostly on justifying the need for the tool. But it provides little insight on *how* the tool works. For example, how does it collect the metadata and integrate everything? How does it integrate with snakemake? Etc. I don't think it's necessary to provide a lot more detail. But a little more would be helpful.</p>
<p>Response: Much of this information was included as supplemental information (found in the documentation “core design”) or was custom code that would be trivial to explain (e.g. “sys.time” for logging runtime). We used the article to highlight the need for tools like Scikick and the utility they add (i.e., the why rather than the how). We have made additions to the manuscript where appropriate to better allude to this content and to the underlying architecture of the software (L91; L109; L110; L112; L133-L136; L165-L166). </p>
<p>Comment: The paper says, "Additionally, maintaining a simple project structure suitable for version control, further eases the adoption of Continuous Analysis on version control platforms (e.g., GitHub, GitLab, BitBucket, etc.)." I'm not sure if I understand exactly what this is saying. How does it support using version control?</p>
<p>Response: This sentence combined too many concepts and has now been expanded for clarity (L165-L167).  </p>
<p>Comment: I'm probably missing it, but I don't see any explicit instructions about how to install the software. That's a pretty standard thing to see on documentation sites.</p>
<p>Response: The installation instructions should have been found on the homepage (<ext-link ext-link-type="uri" xlink:href="https://petronislab.camh.ca/pub/scikick" xlink:type="simple">https://petronislab.camh.ca/pub/scikick</ext-link>). We have changed this link from “Start using Scikick” to “Installation and Usage” to avoid confusion and have added a “Quick-Start” installation to the GitHub homepage to further improve accessibility.</p>
<supplementary-material id="pone.0289171.s002" mimetype="application/vnd.openxmlformats-officedocument.wordprocessingml.document" position="float" xlink:href="info:doi/10.1371/journal.pone.0289171.s002" xlink:type="simple">
<label>Attachment</label>
<caption>
<p>Submitted filename: <named-content content-type="submitted-filename">response_to_the_reviewers_comments.docx</named-content></p>
</caption>
</supplementary-material>
</body>
</sub-article>
<sub-article article-type="aggregated-review-documents" id="pone.0289171.r003" specific-use="decision-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pone.0289171.r003</article-id>
<title-group>
<article-title>Decision Letter 1</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Bernasconi</surname>
<given-names>Anna</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2023</copyright-year>
<copyright-holder>Anna Bernasconi</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pone.0289171" document-id-type="doi" document-type="article" id="rel-obj003" link-type="peer-reviewed-article"/>
<custom-meta-group>
<custom-meta>
<meta-name>Submission Version</meta-name>
<meta-value>1</meta-value>
</custom-meta>
</custom-meta-group>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">13 Jul 2023</named-content>
</p>
<p>Scikick: a sidekick for workflow clarity and reproducibility during extensive data analysis</p>
<p>PONE-D-23-11089R1</p>
<p>Dear Dr. Oh,</p>
<p>We’re pleased to inform you that your manuscript has been judged scientifically suitable for publication and will be formally accepted for publication once it meets all outstanding technical requirements.</p>
<p>Within one week, you’ll receive an e-mail detailing the required amendments. When these have been addressed, you’ll receive a formal acceptance letter and your manuscript will be scheduled for publication.</p>
<p>An invoice for payment will follow shortly after the formal acceptance. To ensure an efficient process, please log into Editorial Manager at <ext-link ext-link-type="uri" xlink:href="http://www.editorialmanager.com/pone/" xlink:type="simple">http://www.editorialmanager.com/pone/</ext-link>, click the 'Update My Information' link at the top of the page, and double check that your user information is up-to-date. If you have any billing related questions, please contact our Author Billing department directly at <email xlink:type="simple">authorbilling@plos.org</email>.</p>
<p>If your institution or institutions have a press office, please notify them about your upcoming paper to help maximize its impact. If they’ll be preparing press materials, please inform our press team as soon as possible -- no later than 48 hours after receiving the formal acceptance. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information, please contact <email xlink:type="simple">onepress@plos.org</email>.</p>
<p>Kind regards,</p>
<p>Anna Bernasconi, PhD</p>
<p>Academic Editor</p>
<p>PLOS ONE</p>
<p>Additional Editor Comments (optional):</p>
<p>Dear authors,</p>
<p>your revised manuscript has been re-assessed by two reviewers and myself. We gladly recommend the paper for acceptance.</p>
<p>Reviewers' comments:</p>
<p>Reviewer's Responses to Questions</p>
<p><!-- <font color="black"> --><bold>Comments to the Author</bold></p>
<p>1. If the authors have adequately addressed your comments raised in a previous round of review and you feel that this manuscript is now acceptable for publication, you may indicate that here to bypass the “Comments to the Author” section, enter your conflict of interest statement in the “Confidential to Editor” section, and submit your "Accept" recommendation.<!-- </font> --></p>
<p>Reviewer #1: All comments have been addressed</p>
<p>Reviewer #2: All comments have been addressed</p>
<p>**********</p>
<p><!-- <font color="black"> -->2. Is the manuscript technically sound, and do the data support the conclusions?</p>
<p>The manuscript must describe a technically sound piece of scientific research with data that supports the conclusions. Experiments must have been conducted rigorously, with appropriate controls, replication, and sample sizes. The conclusions must be drawn appropriately based on the data presented. <!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->3. Has the statistical analysis been performed appropriately and rigorously? <!-- </font> --></p>
<p>Reviewer #1: N/A</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->4. Have the authors made all data underlying the findings in their manuscript fully available?</p>
<p>The <ext-link ext-link-type="uri" xlink:href="http://www.plosone.org/static/policies.action#sharing" xlink:type="simple">PLOS Data policy</ext-link> requires authors to make all data underlying the findings described in their manuscript fully available without restriction, with rare exception (please refer to the Data Availability Statement in the manuscript PDF file). The data should be provided as part of the manuscript or its supporting information, or deposited to a public repository. For example, in addition to summary statistics, the data points behind means, medians and variance measures should be available. If there are restrictions on publicly sharing data—e.g. participant privacy or use of data from a third party—those must be specified.<!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->5. Is the manuscript presented in an intelligible fashion and written in standard English?</p>
<p>PLOS ONE does not copyedit accepted manuscripts, so the language in submitted articles must be clear, correct, and unambiguous. Any typographical or grammatical errors should be corrected at revision, so please note any specific errors here.<!-- </font> --></p>
<p>Reviewer #1: Yes</p>
<p>Reviewer #2: Yes</p>
<p>**********</p>
<p><!-- <font color="black"> -->6. Review Comments to the Author</p>
<p>Please use the space provided to explain your answers to the questions above. You may also include additional comments for the author, including concerns about dual publication, research ethics, or publication ethics. (Please upload your review as an attachment if it exceeds 20,000 characters)<!-- </font> --></p>
<p>Reviewer #1: All comments have been addressed so the paper can be accepted now. I do not have anything else to add.</p>
<p>Reviewer #2: I have no additional comments.This form is asking me to write a statement that is at least 100 characters long, but I have nothing else to say... :)</p>
<p>**********</p>
<p><!-- <font color="black"> -->7. PLOS authors have the option to publish the peer review history of their article (<ext-link ext-link-type="uri" xlink:href="https://journals.plos.org/plosone/s/editorial-and-peer-review-process#loc-peer-review-history" xlink:type="simple">what does this mean?</ext-link>). If published, this will include your full peer review and any attached files.</p>
<p>If you choose “no”, your identity will remain anonymous but your review may still be made public.</p>
<p><bold>Do you want your identity to be public for this peer review?</bold> For information about this choice, including consent withdrawal, please see our <ext-link ext-link-type="uri" xlink:href="https://www.plos.org/privacy-policy" xlink:type="simple">Privacy Policy</ext-link>.<!-- </font> --></p>
<p>Reviewer #1: <bold>Yes: </bold>Hugo López-Fernández</p>
<p>Reviewer #2: <bold>Yes: </bold>Stephen Piccolo</p>
<p>**********</p>
</body>
</sub-article>
<sub-article article-type="editor-report" id="pone.0289171.r004" specific-use="acceptance-letter">
<front-stub>
<article-id pub-id-type="doi">10.1371/journal.pone.0289171.r004</article-id>
<title-group>
<article-title>Acceptance letter</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name name-style="western">
<surname>Bernasconi</surname>
<given-names>Anna</given-names>
</name>
<role>Academic Editor</role>
</contrib>
</contrib-group>
<permissions>
<copyright-year>2023</copyright-year>
<copyright-holder>Anna Bernasconi</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<related-object document-id="10.1371/journal.pone.0289171" document-id-type="doi" document-type="article" id="rel-obj004" link-type="peer-reviewed-article"/>
</front-stub>
<body>
<p>
<named-content content-type="letter-date">18 Jul 2023</named-content>
</p>
<p>PONE-D-23-11089R1 </p>
<p>Scikick: a sidekick for workflow clarity and reproducibility during extensive data analysis </p>
<p>Dear Dr. Oh:</p>
<p>I'm pleased to inform you that your manuscript has been deemed suitable for publication in PLOS ONE. Congratulations! Your manuscript is now with our production department. </p>
<p>If your institution or institutions have a press office, please let them know about your upcoming paper now to help maximize its impact. If they'll be preparing press materials, please inform our press team within the next 48 hours. Your manuscript will remain under strict press embargo until 2 pm Eastern Time on the date of publication. For more information please contact <email xlink:type="simple">onepress@plos.org</email>.</p>
<p>If we can help with anything else, please email us at <email xlink:type="simple">plosone@plos.org</email>. </p>
<p>Thank you for submitting your work to PLOS ONE and supporting open access. </p>
<p>Kind regards, </p>
<p>PLOS ONE Editorial Office Staff</p>
<p>on behalf of</p>
<p>Dr. Anna Bernasconi </p>
<p>Academic Editor</p>
<p>PLOS ONE</p>
</body>
</sub-article>
</article>