<?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.9821.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>
                        <subject>Bioinformatics</subject>
                    </subj-group>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>A guide and best practices for R/Bioconductor tool integration in Galaxy</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 1; peer review: 1 approved, 1 approved with reservations]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Turaga</surname>
                        <given-names>Nitesh</given-names>
                    </name>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Freeberg</surname>
                        <given-names>Mallory A.</given-names>
                    </name>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Baker</surname>
                        <given-names>Dannon</given-names>
                    </name>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Chilton</surname>
                        <given-names>John</given-names>
                    </name>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <collab>Galaxy Team</collab>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Nekrutenko</surname>
                        <given-names>Anton</given-names>
                    </name>
                    <xref ref-type="aff" rid="a2">2</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Taylor</surname>
                        <given-names>James</given-names>
                    </name>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>Department of Biology, Johns Hopkins University, Baltimore, USA</aff>
                <aff id="a2">
                    <label>2</label>Department of Biochemistry and Molecular Biology, Pennsylvania State University, University Park, USA</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:mallory.freeberg@gmail.com">mallory.freeberg@gmail.com</email>
                </corresp>
                <fn fn-type="con">
                    <p>NT and MAF designed and implemented the features presented with advice from DB, JC, AN, and JT. JC implemented the Planemo tool on which this work is built. NT, MAF, and DB wrote the paper. Members of the Galaxy Team developed the Galaxy framework on which this work relies and provided advice on the project. All authors have agreed to the final content.</p>
                </fn>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>24</day>
                <month>11</month>
                <year>2016</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2016</year>
            </pub-date>
            <volume>5</volume>
            <elocation-id>2757</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>21</day>
                    <month>11</month>
                    <year>2016</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2016 Turaga N et al.</copyright-statement>
                <copyright-year>2016</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/5-2757/pdf"/>
            <abstract>
                <p>Galaxy provides a web-based platform for interactive, large-scale data analyses, which integrates bioinformatics tools written in a variety of languages. A substantial number of these tools are written in the R programming language, which enables powerful analysis and visualization of complex data. The Bioconductor Project provides access to these open source R tools and currently contains over 1200 R packages. While some R/Bioconductor tools are currently available in Galaxy, scientific research communities would benefit greatly if they were integrated on a larger scale. Tool development in Galaxy is an early entry point for Galaxy developers, biologists, and bioinformaticians, who want to make their work more accessible to a larger community of scientists. Here, we present a guide and best practices for R/Bioconductor tool integration into Galaxy. In addition, we introduce new functionalities to existing software that resolve dependency issues and semi-automate generation of tool integration components. With these improvements, novice and experienced developers can easily integrate R/Bioconductor tools into Galaxy to make their work more accessible to the scientific community.</p>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>Interoperability</kwd>
                <kwd>Bioconductor</kwd>
                <kwd>R</kwd>
                <kwd>Galaxy</kwd>
                <kwd>Open Source</kwd>
                <kwd>Bioinformatics</kwd>
            </kwd-group>
            <funding-group>
                <funding-statement>This project is funded in part by the National Institutes of Health [U41 HG006620].</funding-statement>
                <funding-statement>
                    <italic>The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</italic>
                </funding-statement>
            </funding-group>
        </article-meta>
    </front>
    <body>
        <sec sec-type="intro">
            <title>Introduction</title>
            <p>The Bioconductor Project (
                <ext-link ext-link-type="uri" xlink:href="https://www.bioconductor.org/">https://www.bioconductor.org/</ext-link>) provides one of the largest suites of open source bioinformatics tools for analyzing genomics and biomedical data from diverse high-throughput assays, including DNA microarrays, flow cytometry, and deep sequencing
                <sup>
                    <xref ref-type="bibr" rid="ref-1">1</xref>,
                    <xref ref-type="bibr" rid="ref-2">2</xref>
                </sup>. Bioconductor has an active user community of researchers from across a spectrum of biomedical professions, who routinely analyze complex genomics datasets. Bioconductor tools and packages are primarily based on R (
                <ext-link ext-link-type="uri" xlink:href="https://www.r-project.org/">https://www.r-project.org/</ext-link>), a programming language and integrated environment developed for statistical computing and data visualization
                <sup>
                    <xref ref-type="bibr" rid="ref-3">3</xref>
                </sup>. By submitting R packages to Bioconductor, developers can easily distribute powerful statistical analysis and visualization tools, while supporting efforts towards reproducible scientific research.</p>
            <p>To further increase their usability and distribution, some R/Bioconductor tools have been integrated into Galaxy (
                <ext-link ext-link-type="uri" xlink:href="https://galaxyproject.org/">https://galaxyproject.org/</ext-link>), an open source, web-based platform for performing, reproducing, and sharing data analyses, which utilize a variety of bioinformatics tools
                <sup>
                    <xref ref-type="bibr" rid="ref-4">4</xref>,
                    <xref ref-type="bibr" rid="ref-5">5</xref>
                </sup>. R/Bioconductor tool integration into Galaxy is a multi-step process that, although straightforward, poses unique challenges for both novice and advanced tool developers. The first major challenge is identifying and installing all of the dependencies needed for an R/Bioconductor tool. Each dependency needs to be available to Galaxy through its dependency management system, called the Tool Shed (
                <ext-link ext-link-type="uri" xlink:href="https://toolshed.g2.bx.psu.edu/">https://toolshed.g2.bx.psu.edu/</ext-link>). If a dependency is not available in the Tool Shed, then it must be installed manually, which can often be difficult. The second major challenge is generating the required files/code for tool integration, which is a time-consuming process. Ensuring that the correct files are generated with correct syntax can be a frustrating task and is often the biggest hurdle for less-experienced developers. Given these issues, tool integration remains a daunting task for some developers, especially for those less familiar with command-line processes. Ideally, the R/Bioconductor tool integration process would be easy and intuitive for both novice and advanced developers.</p>
            <p>Recognizing the need to improve the R/Bioconductor tool integration process, we outline here a guide and best practices (
                <xref ref-type="table" rid="T1">Table 1</xref>) for R/Bioconductor tool integration into Galaxy. Furthermore, we highlight the addition of new functionality to Planemo (
                <ext-link ext-link-type="uri" xlink:href="http://planemo.readthedocs.io">http://planemo.readthedocs.io</ext-link>)
                <sup>
                    <xref ref-type="bibr" rid="ref-6">6</xref>
                </sup>, a suite of command-line utilities that assists in building and publishing Galaxy tools. To simplify generation of required tool integration files, we introduce a new Planemo command that creates template files based on an R/Bioconductor tool developed by the user. This new command also addresses dependency management issues by leveraging Bioconda (
                <ext-link ext-link-type="uri" xlink:href="https://bioconda.github.io">https://bioconda.github.io</ext-link>), a channel of the Conda package manager, which provides bioinformatics software
                <sup>
                    <xref ref-type="bibr" rid="ref-7">7</xref>
                </sup>. Bioconda locates specific versioned R/Bioconductor packages via BioaRchive (
                <ext-link ext-link-type="uri" xlink:href="https://bioarchive.galaxyproject.org/">https://bioarchive.galaxyproject.org/</ext-link>)
                <sup>
                    <xref ref-type="bibr" rid="ref-8">8</xref>
                </sup> and CRAN (
                <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/">https://cran.r-project.org/</ext-link>)
                <sup>
                    <xref ref-type="bibr" rid="ref-9">9</xref>
                </sup> and includes these as requirements for using the R/Bioconductor tool. These new Planemo functionalities simplify R/Bioconductor tool integration and will enable developers to focus more attention on R/Bioconductor tool development and less on tool integration into Galaxy.</p>
            <table-wrap id="T1" orientation="portrait" position="anchor">
                <label>Table 1. </label>
                <caption>
                    <title>Description of best practices for integrating R/Bioconductor tools into Galaxy.</title>
                    <p>Described in this table are eight key &#x201c;best practices&#x201d; for developing R/Bioconductor tools that will be integrated into Galaxy.</p>
                </caption>
                <table content-type="article-table" frame="hsides">
                    <tbody>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Utilize descriptive sections in Tool definition file</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">Specifically, utilize the 
                                <italic toggle="yes">test</italic> section to identify which input parameters to use to test the R command and what output to expect as a result. Also, utilize the 
                                <italic toggle="yes">help</italic> section to provide text to describe the R/Bioconductor tool and any other useful information for the user.</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Use CDATA to represent character data</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">In markup languages, such as XML, a CDATA section represents content that should be interpreted purely as character data. Using CDATA is highly recommended, for example, for text in the 
                                <italic toggle="yes">help</italic> and 
                                <italic toggle="yes">command</italic> sections of the Tool definition file.</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Choose output formats recognized by Galaxy</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">Output generated by the Custom R file should be saved in a format that is present in the list of Galaxy-recognized datatypes. By using one of these datatypes, the user can view the file in Galaxy and perform manipulations on the data using other Galaxy tools. The list of available Galaxy datatypes can be seen in the Admin panel under &#x201c;Datatypes Registry&#x201d;. Galaxy now also saves files as Rdata files, and the feature to visualize these files is under development.</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Pass command-line arguments with flags</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">In the Custom R file examples presented here, the R package 
                                <italic toggle="yes">getopt</italic> is used to add command-line arguments with flags. It is good practice to pass arguments using flags - this is currently required by 
                                <monospace>bioc_tool_init</monospace> - because parameters are explicitly defined and not inferred.</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Implement error handling</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">Handling error messages upon execution of an R script is particularly important. If an error message or any message generated by an R script is printed to stdout instead of stderr, Galaxy interprets this as the tool correctly producing an output file and does not know whether or not the tool failed. By specifically telling R to output error messages to stderr, Galaxy is able to distinguish between a failed job and a successful job. Include the following lines at the beginning of a Custom R file to send R errors to stderr and to handle UTF8 errors:</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
					
                                <monospace>## Redirect R error handling to stderr.</monospace>
					
                                <break/>
					
                                <monospace>options(show.error.messages=F, \</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;error=function(){cat(geterrmessage(), \</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;file=stderr());q("no",1,F)})</monospace>
					
                                <break/>
					
                                <monospace>## Avoid crashing Galaxy with a UTF8 error on German LC settings.</monospace>
					
                                <break/>
					
                                <monospace>loc &lt;- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")</monospace>
				</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Avoid flooding stdout</bold>
				</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">It is recommended to suppress messages to stdout when loading R/Bioconductor packages. To do this, include the following lines in the Custom R file:</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
					
                                <monospace>## Load required libraries without seeing messages</monospace>
					
                                <break/>
					
                                <monospace>suppressPackageStartupMessages({</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;library("getopt")</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;library("affy")</monospace>
					
                                <break/>
					
                                <monospace>})</monospace>
				</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Allow verbose output for debugging</bold>
				</td>
                        </tr>
                        <tr>
                            <td align="left" colspan="1" rowspan="1">Toggle verbose outputs via the Custom R file and 
                                <italic toggle="yes">getopt</italic> package to allow for easier debugging. Intermittent status messages can also be written while the R script is processing large datasets. This allows the Custom R file to be usable outside of Galaxy as well. The example below includes a statement to print the defined parameters, which will be viewable in the history panel upon execution of tool.</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
					
                                <monospace>## Invoke by executing "Rscript my_r_tool_again.R --verbose TRUE"</monospace>
					
                                <break/>
					
                                <monospace>option_specifications &lt;- matrix( \</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;c("verbose", "v", 2, "logical"), \</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;byrow=TRUE, ncol=4)</monospace>
					
                                <break/>
					
                                <monospace>options &lt;- getopt(option_specifications)</monospace>
					
                                <break/>
					
                                <monospace>## Toggle verbose option</monospace>
					
                                <break/>
					
                                <monospace>if (options$verbose) {</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;cat ("Print something useful to stdout to show \</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;how script is running in Galaxy.\n")</monospace>
					
                                <break/>
					
                                <monospace>}</monospace>
				</td>
                        </tr>
                        <tr>
                            <td align="center" colspan="1" rowspan="1">
					
                                <bold>Avoid writing R code in 
                                    <monospace>&lt;configfiles&gt;</monospace>
					</bold>
				</td>
                        </tr>
                        <tr>
                            <td align="left" colspan="1" rowspan="1">It is recommended to keep the Custom R file and the Tool definition file separate and avoid placing R code in a configfiles tag within the Tool definition file. If the R code is embedded inside the Tool definition file, it cannot be used outside of Galaxy due to syntax differences and it cannot be easily tested. This following example should be avoided:</td>
                        </tr>
                        <tr>
                            <td colspan="1" rowspan="1">
					
                                <monospace># In Tool definition file, after the &lt;command&gt; tag</monospace>
					
                                <break/>
					
                                <monospace>&lt;configfiles&gt;</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&lt;configfile name="Extract expression"&gt;&lt;![CDATA[</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;# Read in data</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;inputfile &lt;- as.character(options$input)</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;data &lt;- ReadAffy(filenames = inputfile)</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;# More R code...</monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;
                                    <styled-content style="#183691;" style-type="color">]]&gt;</styled-content>
                                </monospace>
					
                                <break/>
					
                                <monospace>&#x00a0;&#x00a0;&#x00a0;&#x00a0;&#x00a0;&lt;configfile&gt;</monospace>
					
                                <break/>
					
                                <monospace>&lt;configfiles&gt;</monospace>
				</td>
                        </tr>
                    </tbody>
                </table>
            </table-wrap>
        </sec>
        <sec sec-type="methods">
            <title>Methods</title>
            <p>Here, we present a complete guide for developers to integrate an R/Bioconductor tool into Galaxy. We first describe the necessary components for wrapping an R/Bioconductor tool in Galaxy. Next, we outline the steps required for integrating the tool components into Galaxy, testing the tool, and executing the tool. Finally, we describe a simplified integration process using the new Planemo command, 
                <monospace>bioc_tool_init</monospace>. The instructions provided in this guide assume that the developer has system access to Galaxy source code files (
                <italic toggle="yes">e.g.</italic> using a local instance or cloud-based instance of Galaxy), has an active Internet connection, and has installed the Planemo python package (v0.35.0 or later; 
                <ext-link ext-link-type="uri" xlink:href="https://pypi.python.org/pypi/planemo/">https://pypi.python.org/pypi/planemo/</ext-link>)
                <sup>
                    <xref ref-type="bibr" rid="ref-6">6</xref>
                </sup>. Furthermore, the user must have installed any packages that are dependencies for the R/Bioconductor tool being integrated.</p>
            <sec>
                <title>Tool components and structure</title>
                <p>An R/Bioconductor Galaxy tool is defined by four major components. The first component is a 
                    <italic toggle="yes">Tool definition file</italic> (Tool wrapper) in XML format, which provides the interface between Galaxy and the R/Bioconductor tool being integrated. The second component is a 
                    <italic toggle="yes">Custom R file</italic>, which calls the R/Bioconductor tool(s) to perform a particular analysis. The third component is a 
                    <italic toggle="yes">Tool dependency file</italic>, which tells Galaxy where to find the required tool dependencies. The fourth component is the 
                    <italic toggle="yes">Test data</italic> directory, which includes both input and output files that will be used to test the Custom R file. These four components should be organized using the following directory structure:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;">example_tool/
&#x251c;&#x2500;&#x2500; my_tool.R # Custom R file
&#x251c;&#x2500;&#x2500; my_tool.xml # Tool definition file
&#x251c;&#x2500;&#x2500; tool_dependencies.xml # Tool dependency file
&#x251c;&#x2500;&#x2500; test_data/ # Test data directory
&#x2502;   &#x251c;&#x2500;&#x2500; test_input.fq # Example fastq input file
&#x2502;   &#x251c;&#x2500;&#x2500; test_output.txt # Example output text file
&#x2502;   &#x2514;&#x2500;&#x2500; ... # Additional input or output files</styled-content>
                    </preformat>
                </p>
                <p>
                    <bold>
                        <italic toggle="yes">Tool definition file</italic>
                    </bold>. The Tool definition file informs Galaxy how to handle parameters in the Custom R file. The value given to &#x201c;name&#x201d; in the file header appears in the Galaxy tool panel and should be set to a meaningful short description of what the tool does. The minimal structure of the Tool definition file contains seven key sections. The 
                    <italic toggle="yes">requirements</italic> section defines the tool dependencies needed to run the R script, and includes the version of R used to develop the tool. The 
                    <italic toggle="yes">command</italic> section defines the R command that is executed in Galaxy via the R interpreter. Importantly, input and output parameters are denoted as 
                    <monospace>$input1</monospace>, 
                    <monospace>$input2</monospace>, ... and 
                    <monospace>$output1</monospace>, 
                    <monospace>$output2</monospace>, ..., respectively, and the full path to the Custom R file is essential. The 
                    <italic toggle="yes">inputs</italic> section establishes how input parameters given to the Custom R file appear in Galaxy, while the 
                    <italic toggle="yes">outputs</italic> section defines the name and format of output files generated by the Custom R file. Each input and output parameter requires its own entry in the Tool definition file, and the values assigned to &#x201c;name&#x201d; should match those in the command section. The 
                    <italic toggle="yes">tests</italic> section defines the input parameters needed to test the R command and what output to expect as a result. This section is important for tool testing and debugging. The 
                    <italic toggle="yes">help</italic> section should be used to describe the R/Bioconductor tool and will appear at the bottom of the Galaxy tool form. Finally, appropriate references for the tool can be provided using the 
                    <italic toggle="yes">citations</italic> section. References can be cited, for example, using a DOI or a BibTeX entry. An example Tool definition file for an R/Bioconductor tool that enumerates 
                    <italic toggle="yes">k</italic>-mers in a fastq file is available as 
                    <xref ref-type="other" rid="SM1">Supplementary File 1</xref>. This tool will subsequently be referred to as &#x201c;Kmer_enumerate&#x201d; and will be referenced throughout the remaining sections of this guide.</p>
                <p>
                    <bold>
                        <italic toggle="yes">Custom R file</italic>
                    </bold>. The Custom R file establishes the R environment and informs Galaxy what R command(s) to execute. The first section of this file contains a header of information that handles error messages, loads required R libraries, and parses options. These requirements are needed for every R/Bioconductor tool being integrated; however, the list of imported R libraries will be specific to each tool. The next section defines the list of parameters to pass to the R command, including input and output parameters. Each parameter, if using the getopt command line parsing library, requires a unique name, a unique single letter designation, a flag indicating whether the parameter is required (0=no argument; 1=required; 2=optional), and the parameter type (
                    <italic toggle="yes">e.g.</italic> character, integer, float). Optionally, variable names and values can be printed to standard output (stdout), which can be viewed in Galaxy when the tool executes. While not required, these printed statements can assist in debugging and inform whether the R/Bioconductor tool was executed correctly. The final section contains the R command(s) needed to execute the R/Bioconductor tool. A Custom R file for the Kmer_enumerate tool is available as 
                    <xref ref-type="other" rid="SM1">Supplementary File 2</xref>. This tool uses the R/Bioconductor package seqTools
                    <sup>
                        <xref ref-type="bibr" rid="ref-10">10</xref>
                    </sup> to read in a fastq file of DNA sequences, count the number of 
                    <italic toggle="yes">k</italic>-mers in the sequences where the value 
                    <italic toggle="yes">k</italic> is supplied by the user, and output the 
                    <italic toggle="yes">k</italic>-mers and their counts.</p>
                <p>Unlike running standalone R scripts in the command line or using a graphical interface, it is not necessary to define the working directory (
                    <italic toggle="yes">e.g.</italic> using 
                    <monospace>setwd()</monospace>) in the Custom R file. By default, Galaxy executes the R script in the same directory where the files are located. Similarly, Galaxy writes output files to the same directory, which enables the results to be displayed in the Galaxy history panel. Before attempting to integrate an R/Bioconductor tool, it is strongly recommended to test the Custom R file as a standalone script. For example, the Kmer_enumerate Custom R file can be executed in the command line using the following (test input and output files are available as 
                    <xref ref-type="other" rid="SM1">Supplemental File 3</xref> and 
                    <xref ref-type="other" rid="SM1">Supplemental File 4</xref>, respectively):</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;">cd /path/to/example_seqTools/
Rscript my_seqTools_tool.R \
     --input1 test_data/test_input.fq \ 
     --input2 2 \
     --output test_data/test_output.txt</styled-content>
                    </preformat>
                </p>
                <p>
                    <bold>
                        <italic toggle="yes">Tool dependency file</italic>
                    </bold>. The Tool dependency XML file informs Galaxy where to find the required tool dependencies and should explicitly reference each of the requirements listed in the Tool definition file. It is important to differentiate between the requirements tag in the Tool definition file and the Tool dependency file: the Tool definition file identifies 
                    <italic toggle="yes">what</italic> dependencies are needed, and the Tool dependency file identifies 
                    <italic toggle="yes">where</italic> to get the dependencies. For example, many of the required tools - R/Bioconductor or otherwise - are available in the Galaxy Tool Shed. In the Tool dependency file, each requirement is listed under its own repository tag with its &#x201c;name&#x201d; and &#x201c;owner&#x201d; parameters as they appear in the Tool Shed. Available Tool Shed tools can viewed at 
                    <ext-link ext-link-type="uri" xlink:href="https://toolshed.g2.bx.psu.edu/">https://toolshed.g2.bx.psu.edu/</ext-link>. A Tool dependency file for Kmer_enumerate is supplied as 
                    <xref ref-type="other" rid="SM1">Supplementary File 5</xref>.</p>
                <p>
                    <bold>
                        <italic toggle="yes">Test data.</italic>
                    </bold> The Test data directory includes data file(s) intended as input to test the R script and any expected output data file(s). During testing, Galaxy runs the R/Bioconductor tool with the input files in the test data directory and compares the output with the output file(s) in the same directory to ensure that the tool is producing expected results. As an added benefit, including testing data for the tool provides an example for other users of the data formats needed to run the tool.</p>
                <p>For tools that output plots, generating test data becomes an issue. To test whether R figures and plots are generated correctly, they should be saved as PNG files instead of PDF. Saving plots and figures as PDF files is a common practice in R/Bioconductor packages, but when PDF files are generated, they are time-stamped. Galaxy will not consider two PDFs identical - even if they display the same image - if they were generated at different times and thus have different timestamps.</p>
            </sec>
            <sec>
                <title>Tool integration</title>
                <p>The following steps outline how to integrate the new R/Bioconductor tool into Galaxy after the tool files have been generated:</p>
                <p>
                    <italic toggle="yes">Step 1</italic>: Assemble the Tool definition file, Custom R file, Tool dependency file, and Test data directory with test data files in a single directory. Update the Tool definition file to provide the full path where appropriate. Alternatively, if the tool directory is saved in the 
                    <monospace>$GALAXY_ROOT/tools/</monospace> directory, a relative path is sufficient.</p>
                <p>
                    <italic toggle="yes">Step 2</italic>: Copy the Tool configuration file 
                    <monospace>tool_conf.xml.sample,</monospace> if it does not already exist, and save it as 
                    <monospace>tool_conf.xml</monospace>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;">cp $GALAXY_ROOT/config/tool_conf.xml.sample \
     $GALAXY_ROOT/config/tool_conf.xml</styled-content>
                    </preformat>
                </p>
                <p>
                    <italic toggle="yes">Step 3</italic>: Modify 
                    <monospace>tool_conf.xml</monospace> by adding a new section under which the integrated tool will exist. The value given to &#x201c;name&#x201d; in the Tool configuration file will appear in the tool panel, and the value given to &#x201c;name&#x201d; in the Tool definition file will appear under this new section. Provide the full path to the Tool definition file if the tool directory is not in 
                    <monospace>$GALAXY_ROOT/tools/</monospace>. Otherwise, the relative path is sufficient.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;">&lt;section id="testingtools" name="Testing Tools"&gt;
     &lt;!-- Full path: --&gt;
     &lt;tool file="/path/to/example_seqTools/my_seqTools_tool.xml" /&gt;
     &lt;!-- Relative path: --&gt;
     &lt;tool file="example_seqTools/my_seqTools_tool.xml" /&gt;
&lt;/section&gt;</styled-content>
                    </preformat>
                </p>
                <p>
                    <italic toggle="yes">Step 4</italic>: Restart Galaxy to integrate the modified 
                    <monospace>tool_conf.xml</monospace> file.</p>
            </sec>
            <sec>
                <title>Tool testing and execution</title>
                <p>Including test cases for newly integrated tools - while not strictly required - is highly recommended because it enables easier debugging and ensures that the tool is working as expected. To test, for example, the Kmer_enumerate tool, first upload the testing input file (
                    <monospace>test_input.fq.gz</monospace>) to Galaxy. Choose the Kmer_enumerate tool from the tool panel, update the input file and 
                    <italic toggle="yes">k</italic>-mer parameters, and execute the tool. In this example, when Kmer_enumerate is executed, 
                    <monospace>test_input.fq.gz</monospace> is passed by the 
                    <monospace>--input1</monospace> argument and the 
                    <italic toggle="yes">k</italic>-mer value is passed by the 
                    <monospace>--input2</monospace> argument in the Tool definition file to the Custom R file. The Custom R file executes and sends the results back to the Tool definition file. The output of the tool is then available for viewing in the Galaxy history panel. Since Galaxy interprets any output written to standard error (stderr) as a failed job, it is important that developers ensure that any output (
                    <italic toggle="yes">e.g.</italic> files, messages) generated by the R script is sent to stdout and not stderr.</p>
                <p>When the developer is satisfied that the integrated tool executes correctly, the tool is ready to be used for data analysis. At this point, the newly integrated R/Bioconductor tool can be published in the Galaxy Tool Shed, so that it will be available to the Galaxy community. Detailed instructions for how to submit tools for publishing in the Galaxy Tool Shed can be found online at 
                    <ext-link ext-link-type="uri" xlink:href="http://planemo.readthedocs.io/en/latest/publishing.html">http://planemo.readthedocs.io/en/latest/publishing.html</ext-link>.</p>
            </sec>
        </sec>
        <sec>
            <title>Use cases</title>
            <p>The above guide outlines a straightforward approach for integrating a relatively simple R/Bioconductor tool into Galaxy. However, generating the Tool definition XML file and ensuring all required dependencies, which are available to Galaxy, remain a difficult task. To simplify R/Bioconductor tool integration and address these remaining challenges, we have added a new command to Planemo v0.34.1, a suite of command-line utilities to assist in building and publishing Galaxy tools. We also take advantage of the package manager Conda v4.2.4 and, specifically, the Bioconda channel
                <sup>
                    <xref ref-type="bibr" rid="ref-11">11</xref>
                </sup> of Conda, which distributes bioinformatics-related software. The new Planemo command, 
                <monospace>bioc_tool_init</monospace>, creates a Bioconda recipe of all dependencies for the given R/Bioconductor tool and writes the path to this recipe to the Tool definition file. This command eliminates the need for recursively parsing the R/Bioconductor dependency tree to create the Tool dependency file. Further, this approach has the added benefit of creating an artifact, which, while created to use with a Galaxy tool, is potentially useful outside of Galaxy by anyone using Bioconda. Additional arguments to the 
                <monospace>bioc_tool_init</monospace> command specifically address R/Bioconductor tool integration and are described in the two use cases below.</p>
            <p>The 
                <monospace>bioc_tool_init</monospace> command functions by invoking another new Planemo command, 
                <monospace>bioc_conda_recipe_init</monospace>. In this command, Bioconda uses BioaRchive v2.35.0, a Bioconductor package version archive, to retrieve the correct package versions if they exist. The 
                <monospace>bioconductor_skeleton.py</monospace> script has been modified to not only find missing R/Bioconductor package dependencies, but also create them in the local Bioconda repository specified by the user. BioaRchive improves reproducibility of the Bioconda recipes of different versions of the same Bioconductor package.</p>
            <p>Here, we describe how to generate a Tool definition file using 
                <monospace>bioc_tool_init</monospace> for a Custom R script that uses the R/Bioconductor package affy v1.52.0
                <sup>
                    <xref ref-type="bibr" rid="ref-12">12</xref>
                </sup>. We assume that the user has installed Planemo (v0.35.0 or newer) along with the requirements for the software and has git configured with the appropriate ssh keys (
                <ext-link ext-link-type="uri" xlink:href="https://help.github.com/articles/generating-an-ssh-key/">https://help.github.com/articles/generating-an-ssh-key/</ext-link>). We first describe the simplest integration scheme (Case 1) requiring only one parameter, followed by more complex integration schemes (Case 2) with multiple parameters.</p>
        </sec>
        <sec>
            <title>Case 1: Generating a Tool definition file and Bioconda recipe with a single parameter</title>
            <p>The following command is the simplest way to generate a Tool definition file and Bioconda recipe for integrating a Custom R file in Galaxy (
                <xref ref-type="other" rid="SM1">Supplementary File 6</xref>&#x2013;
                <xref ref-type="other" rid="SM1">Supplementary File 9</xref>). This tool, subsequently referred to as &#x201c;Extract_expression&#x201d;, implements the affy package to extract probe expression levels from an Agilent CEL file generated by a microarray experiment.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;">planemo bioc_tool_init \
     --command "Rscript /path/to/my_affy_tool.R \
          --input test_input.CEL \
          --output test_output.txt"</styled-content>
                </preformat>
            </p>
            <p>Only the 
                <monospace>--command</monospace> option is required here because all of the necessary information for building and running the tool is present in the Rscript call. The full path to the Custom R file should be given so that the Tool definition file can correctly locate it. In addition, extensions for all 
                <monospace>--input</monospace> and 
                <monospace>--output</monospace> files are also required, as they are needed to populate the format parameter in the inputs and outputs tags in the Tool definition file. The key to this usage of the 
                <monospace>bioc_tool_init</monospace> command is that the R command given to 
                <monospace>--command</monospace> successfully executes in the command line. The example input
                <sup>
                    <xref ref-type="bibr" rid="ref-13">13</xref>
                </sup> and output files used here are available as 
                <xref ref-type="other" rid="SM1">Supplementary File 10</xref> and 
                <xref ref-type="other" rid="SM1">Supplementary File 11</xref>, respectively. In a similarly simple example, each parameter in the Rscript command can be given to 
                <monospace>bioc_tool_init</monospace> using the following arguments:</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;">planemo bioc_tool_init \
     --rscript /path/to/my_affy_tool.R \
     --input test_input.CEL \
     --output test_output.txt</styled-content>
                </preformat>
            </p>
            <p>In both examples, the 
                <monospace>bioc_tool_init</monospace> command first clones the Bioconda repository in the home directory and creates a new recipe for each dependency in 
                <monospace>$HOME/bioconda-recipes/recipes/</monospace> if it does not exist. This allows the user to have a local copy of the recipe and all of the Bioconda package dependencies for that recipe. The 
                <monospace>bioc_tool_init</monospace> command then creates a new Tool definition file, 
                <monospace>my_affy_tool.xml</monospace>, in the current directory with the newly generated Bioconda recipe as a requirement. The 
                <monospace>bioc_tool_init</monospace> command is used to create, not update, the dependency requirements and provide a suitable blueprint for the Tool definition file. Semi-automated creation of the Tool definition XML file enables users to quickly generate usable code for R/Bioconductor tool integration.</p>
        </sec>
        <sec>
            <title>Case 2: Generating a Tool definition file and Bioconda recipe with a multiple parameters</title>
            <p>Additional options are available for 
                <monospace>bioc_tool_init</monospace> and are strongly recommended for generating a tool that follows Galaxy tool development best practices. For example, the 
                <monospace>--name</monospace> option sets the name that will appear in the Galaxy tool panel (defaults to the name of the Tool definition file) and should be a brief statement of what the tool does. The 
                <monospace>--description</monospace> option provides additional information about the tool&#x2019;s function and appears immediately after the tool name in the tool panel. The 
                <monospace>--help_text</monospace> option populations a field in the Galaxy tool form that provides additional information about what the tool does. Finally, developers should utilize the 
                <monospace>--doi</monospace> option to include citation information for the tool in the tool form. An exhaustive list of available arguments can be found by using 
                <monospace>planemo bioc_tool_init --help</monospace>. The following is an example command to generate the Tool definition file and Bioconda recipe for the Extract_expression tool:</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;">planemo bioc_tool_init \
     --command "Rscript /path/to/my_affy_tool.R \
          --input test_input.CEL \
          --output test_output.txt" \
     --name "Extract Expression" \
     --description " values from CEL Agilent microarray data" \
     --help_text "This tool reads in Agilent CEL data and \ 
          outputs probe expression values." \
     --doi "10.1093/bioinformatics/btg405" \
     --tool my_affy_tool_Case2.xml</styled-content>
                </preformat>
            </p>
            <p>Using this command, the tool dependencies and requirements in 
                <monospace>my_affy_tool.R</monospace> are automatically written to the Tool definition file (
                <xref ref-type="other" rid="SM1">Supplementary File 12</xref>). As in Case 1, appropriate input and output data formats are inferred from the 
                <monospace>--input</monospace> and 
                <monospace>--output</monospace> arguments given to 
                <monospace>--command</monospace>. It is important to note that the Tool definition file and the Bioconda recipe generated by the 
                <monospace>planemo bioc_tool_init</monospace> command are meant to be working, usable code for tool integration. However, the files are not 100% complete in terms of following best practices for Galaxy tool development, and may require additional work to reach the standards for which Galaxy tools are published to the Tool Shed. Galaxy R/Bioconductor tool developers are strongly encouraged to meet best practice standards for any tool.</p>
        </sec>
        <sec sec-type="discussion">
            <title>Discussion</title>
            <p>Integrating R/Bioconductor tools into Galaxy can be challenging for both novice and advanced tool developers, but it is an important part of increasing the availability and reproducibility of research tools for the scientific community. We provide here a complete guide for R/Bioconductor tool integration that includes: (1) a description of the components needed to integrate the tool, (2) step-by-step instructions for incorporating the tool components into Galaxy, (3) examples of how to use the new 
                <monospace>bioc_tool_init</monospace> Planemo command for easier tool integration, and (4) best practices for R/Bioconductor tool integration. A more detailed guide for R/Bioconductor tool integration into Galaxy is available on GitHub at 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/nturaga/bioc-galaxy-integration/blob/master/README.md">https://github.com/nturaga/bioc-galaxy-integration/blob/master/README.md</ext-link>. By providing a way to semi-automate the integration process, we hope that R/Bioconductor tool developers can focus more on developing new and essential tools rather than on how to integrate them into Galaxy.</p>
            <p>A key feature of the simplified tool integration method described in this work is the addition of the 
                <monospace>bioc_tool_init</monospace> command to Planemo. This new capability specifically improves tool integration for developers in two ways. First, the 
                <monospace>bioc_tool_init</monospace> command generates nearly complete Tool dependency files and Bioconda recipes by directly parsing the Custom R script being integrated, eliminating the need for developers to manually update the correct tool names and versions in all the tool files. Second, the 
                <monospace>bioc_tool_init</monospace> command alleviates dependency management issues by recursively identifying and installing all required tool dependencies using Bioconda. This ensures that tool dependencies are compatible with and accessible across different platforms and eliminates the need for developers to manually install all required dependencies. We hope that these improvements will encourage more R/Bioconductor tool developers to share and publish their tools on Galaxy.</p>
            <p>Future work for improving ease of R/Bioconductor tool integration into Galaxy includes improving the 
                <monospace>bioc_tool_init</monospace> command to automate more tasks. For example, we are currently working on a functionality that automatically generates example test cases to include in the Tool definition XML file. We are also working on extending the 
                <monospace>bioc_tool_init</monospace> command to handle integration of multiple R/Bioconductor functions by passing a formatted text file to 
                <monospace>bioc_tool_init</monospace>. We are also working on a Planemo command that automatically submits a wrapped R/Bioconductor tool to the public Tool Shed. Finally, development of a Planemo command that can automatically wrap an entire R/Bioconductor package based on a published vignette would be ideal for quickly integrating and publishing Galaxy-wrapped tools. These and other improvement are currently undergoing development.</p>
        </sec>
        <sec>
            <title>Data and software availability</title>
            <p>Automated build available from: 
                <ext-link ext-link-type="uri" xlink:href="https://hub.docker.com/r/nitesh1989/bioc-galaxy-integration/">https://hub.docker.com/r/nitesh1989/bioc-galaxy-integration/</ext-link>
            </p>
            <p>Latest source code: 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/nturaga/bioc-galaxy-integration">https://github.com/nturaga/bioc-galaxy-integration</ext-link>
            </p>
            <p>Archived source code as at the time of publication: DOI, 
                <ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.5281/zenodo.166551">10.5281/zenodo.166551</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref-14">14</xref>
                </sup>
            </p>
            <p>License: Academic Free License version 3.0</p>
            <p>More information on tool building in Galaxy and additional best practices are available at 
                <ext-link ext-link-type="uri" xlink:href="http://planemo.readthedocs.io/en/latest/writing.html">http://planemo.readthedocs.io/en/latest/writing.html</ext-link>. Planemo documentation can be found at 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/galaxyproject/planemo">https://github.com/galaxyproject/planemo</ext-link>.</p>
        </sec>
    </body>
    <back>
        <ack>
            <title>Acknowledgments</title>
            <p>We are grateful to the Galaxy Team (
                <ext-link ext-link-type="uri" xlink:href="https://wiki.galaxyproject.org/GalaxyTeam">https://wiki.galaxyproject.org/GalaxyTeam</ext-link>) and the developer community for the Galaxy Framework for their guidance on this project. We would also like to thank the developers of Bioconda for providing a great service to the community. We give special mention to Ryan Dale for developing the script to create Bioconda recipes for Bioconductor packages. We also thank the contributors of BioaRchive.</p>
        </ack>
        <sec id="SM1" sec-type="supplementary-material">
            <title>Supplementary files</title>
            <p>
                <bold>Supplementary File 1: Tool definition file for Kmer_enumerate.</bold> An example Tool definition file for the Kmer_enumerate tool, which enumerates 
                <italic toggle="yes">k</italic>-mers in a fastq file. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/ac7cdb01-ffae-4618-8593-7f3c9883086a.xml">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 2: Custom R file for Kmer_enumerate.</bold> An example Custom R file for the Kmer_enumerate tool. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/24f1a375-3dbc-4194-bbfe-1ea0c991816c.R">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 3: Input for Kmer_enumerate.</bold> An example input fastq file for the Kmer_enumerate tool. This fastq formatted file has been compressed with gzip. The file must be uncompressed (using gunzip) before it can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/554b4c96-5675-4b62-825c-1e0461b2ca68.gz">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 4: Output for Kmer_enumerate.</bold> An example output text file for the Kmer_enumerate tool. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/1dcad42d-df9b-4eb1-8d4f-0ea92808c8a8.txt">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 5: Tool dependencies for Kmer_enumerate.</bold> An example Tool dependencies file for the Kmer_enumerate tool. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/0bb5956b-74e8-4e25-93a7-980e8efc3f5e.xml">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 6: Tool definition file for Extract_expression Case 1.</bold> An example Tool definition file for the Extract_expression tool created using Case 1. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/b286650c-b937-4ed5-8fc9-27a418eaf6a7.xml">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 7: Yaml file for Extract_expression.</bold> An example Bioconda recipe yaml file for the Extract_expression tool created using Case 1. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/4299492c-27f5-4f90-9d49-e1592122680e.yaml">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 8: Bash file for Extract_expression.</bold> An example Bioconda recipe bash file for the Extract_expression tool created using Case 1. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/451ae45f-68cc-47ac-af8f-09622f482e55.sh">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 9: Custom R file for Extract_expression.</bold> An example Custom R file for the Extract_expression tool created using Case 1. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/ca7b3e4a-37fd-4604-b0fc-30f6413a209f.R">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 10: Input CEL file for Extract_expression.</bold> An example input CEL file for the Extract_expression tool
                <sup>
                    <xref ref-type="bibr" rid="ref-13">13</xref>
                </sup>. This file is a binary data file created by Affymetrix DNA microarray image analysis software, so it cannot be viewed with a text editor. The contents of this CEL file can be accessed in R via the readAffy() function of the affy Bioconductor package
                <sup>
                    <xref ref-type="bibr" rid="ref-12">12</xref>
                </sup>.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/8ea4b28b-0a0b-4a44-8545-f55f0ddcdb01.CEL">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 11: Output for Extract_expression.</bold> An example output text file for the Extract_expression tool. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/99580822-2d68-44ad-8d99-0e38aa923246.txt">Click here to access the data</ext-link>.</p>
            <p>
                <bold>Supplementary File 12: Tool definition file Extract_expression Case 2.</bold> An example Tool definition file for the Extract_expression tool created using Case 2. This file can be opened with any text editor.</p>
            <p>
                <ext-link ext-link-type="uri" xlink:href="https://f1000researchdata.s3.amazonaws.com/supplementary/9821/572cd8ee-78aa-4443-93cd-7715e3e89b4a.xml">Click here to access the data</ext-link>.</p>
        </sec>
        <ref-list>
            <ref id="ref-1">
                <label>1</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Huber</surname>
                            <given-names>W</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Carey</surname>
                            <given-names>VJ</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Gentleman</surname>
                            <given-names>R</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Orchestrating high-throughput genomic analysis with Bioconductor.</article-title>
                    <source>
						
                        <italic toggle="yes">Nat Methods.</italic>
					</source>
                    <year>2015</year>;<volume>12</volume>(<issue>2</issue>):<fpage>115</fpage>&#x2013;<lpage>121</lpage>.
                    <pub-id pub-id-type="pmid">25633503</pub-id>
                    <pub-id pub-id-type="doi">10.1038/nmeth.3252</pub-id>
                    <pub-id pub-id-type="pmcid">4509590</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-2">
                <label>2</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Gentleman</surname>
                            <given-names>RC</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Carey</surname>
                            <given-names>VJ</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Bates</surname>
                            <given-names>DM</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Bioconductor: open software development for computational biology and bioinformatics.</article-title>
                    <source>
						
                        <italic toggle="yes">Genome Biol.</italic>
					</source>
                    <year>2004</year>;<volume>5</volume>(<issue>10</issue>):<fpage>R80</fpage>.
                    <pub-id pub-id-type="pmid">15461798</pub-id>
                    <pub-id pub-id-type="doi">10.1186/gb-2004-5-10-r80</pub-id>
                    <pub-id pub-id-type="pmcid">545600</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-3">
                <label>3</label>
                <mixed-citation publication-type="journal">
                    <collab>R Core Team</collab>:
                    <article-title>R: A language and environment for statistical computing</article-title>. R Foundation for Statistical Computing, Vienna, Austria.<year>2015</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://www.R-project.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-4">
                <label>4</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Giardine</surname>
                            <given-names>B</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Riemer</surname>
                            <given-names>C</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Hardison</surname>
                            <given-names>RC</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Galaxy: a platform for interactive large-scale genome analysis.</article-title>
                    <source>
						
                        <italic toggle="yes">Genome Res.</italic>
					</source>
                    <year>2005</year>;<volume>15</volume>(<issue>10</issue>):<fpage>1451</fpage>&#x2013;<lpage>1455</lpage>.
                    <pub-id pub-id-type="pmid">16169926</pub-id>
                    <pub-id pub-id-type="doi">10.1101/gr.4086505</pub-id>
                    <pub-id pub-id-type="pmcid">1240089</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-5">
                <label>5</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Goecks</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Nekrutenko</surname>
                            <given-names>A</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Taylor</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Galaxy: a comprehensive approach for supporting accessible, reproducible, and transparent computational research in the life sciences.</article-title>
                    <source>
						
                        <italic toggle="yes">Genome Biol.</italic>
					</source>
                    <year>2010</year>;<volume>11</volume>(<issue>8</issue>):<fpage>R86</fpage>.
                    <pub-id pub-id-type="pmid">20738864</pub-id>
                    <pub-id pub-id-type="doi">10.1186/gb-2010-11-8-r86</pub-id>
                    <pub-id pub-id-type="pmcid">2945788</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-6">
                <label>6</label>
                <mixed-citation publication-type="journal">
                    <article-title>Planemo</article-title>. GitHub. Cited 12 Oct 2016.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/galaxyproject/planemo">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-7">
                <label>7</label>
                <mixed-citation publication-type="journal">
                    <article-title>Conda</article-title>. GitHub. Cited 12 Oct 2016.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/conda/conda">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-8">
                <label>8</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Turaga</surname>
                            <given-names>N</given-names>
                        </name>
					</person-group>:
                    <article-title>bioaRchive: enabling reproducibility of Bioconductor based analyses [v1; not peer reviewed].</article-title>
                    <source>
						
                        <italic toggle="yes">F1000Res.</italic>
					</source>
                    <year>2015</year>;<volume>4</volume>(<issue>ISCB Comm J</issue>):<fpage>370(poster)</fpage>.
                    <pub-id pub-id-type="doi">10.7490/f1000research.1110119.1 </pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-9">
                <label>9</label>
                <mixed-citation publication-type="journal">
                    <collab>CRAN</collab>:
                    <article-title>The Comprehensive R Archive Network</article-title>. Cited 12 Oct 2016.
                    <ext-link ext-link-type="uri" xlink:href="https://CRAN.R-project.org/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-10">
                <label>10</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Kaisers</surname>
                            <given-names>W</given-names>
                        </name>
					</person-group>:
                    <article-title>seqTools: Analysis of nucleotide, sequence and quality content on fastq files.</article-title>R package version 1.6.0.<year>2013</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://bioconductor.statistik.tu-dortmund.de/packages/3.3/bioc/manuals/seqTools/man/seqTools.pdf">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-11">
                <label>11</label>
                <mixed-citation publication-type="journal">
                    <article-title>Bioconda</article-title>. GitHub. Cited 12 Oct 2016.
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/bioconda">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-12">
                <label>12</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Gautier</surname>
                            <given-names>L</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Cope</surname>
                            <given-names>L</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Bolstad</surname>
                            <given-names>BM</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>affy--analysis of 
                        <italic toggle="yes">Affymetrix GeneChip</italic> data at the probe level.</article-title>
                    <source>
						
                        <italic toggle="yes">Bioinformatics.</italic>
					</source>
                    <year>2004</year>;<volume>20</volume>(<issue>3</issue>):<fpage>307</fpage>&#x2013;<lpage>315</lpage>.
                    <pub-id pub-id-type="pmid">14960456</pub-id>
                    <pub-id pub-id-type="doi">10.1093/bioinformatics/btg405</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-13">
                <label>13</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Havis</surname>
                            <given-names>E</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Bonnin</surname>
                            <given-names>MA</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Olivera-Martinez</surname>
                            <given-names>I</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Transcriptomic analysis of mouse limb tendon cells during development.</article-title>
                    <source>
						
                        <italic toggle="yes">Development.</italic>
					</source>
                    <year>2014</year>;<volume>141</volume>(<issue>19</issue>):<fpage>3683</fpage>&#x2013;<lpage>3696</lpage>.
                    <pub-id pub-id-type="pmid">25249460</pub-id>
                    <pub-id pub-id-type="doi">10.1242/dev.108654</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-14">
                <label>14</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">
						
                        <name name-style="western">
                            <surname>Chilton</surname>
                            <given-names>J</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Cock</surname>
                            <given-names>P</given-names>
                        </name>
						
                        <name name-style="western">
                            <surname>Rasche</surname>
                            <given-names>E</given-names>
                        </name>
						
                        <etal/>
					</person-group>:
                    <article-title>Galaxy Planemo 0.35.0 [Data set].</article-title>
                    <source>
						
                        <italic toggle="yes">Zenodo.</italic>
					</source>
                    <year>2016</year>.
                    <ext-link ext-link-type="uri" xlink:href="http://dx.doi.org/10.5281/zenodo.166551">Data Source</ext-link>
                </mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report18534">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.10589.r18534</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Noushmehr</surname>
                        <given-names>Houtan</given-names>
                    </name>
                    <xref ref-type="aff" rid="r18534a1">1</xref>
                    <xref ref-type="aff" rid="r18534a2">2</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0003-4051-8114</uri>
                </contrib>
                <contrib contrib-type="author">
                    <name>
                        <surname>Silva</surname>
                        <given-names>Tiago</given-names>
                    </name>
                    <xref ref-type="aff" rid="r18534a2">2</xref>
                    <role>Co-referee</role>
                </contrib>
                <aff id="r18534a1">
                    <label>1</label>Department of Neurosurgery, Henry Ford Hospital, Detroit, MI, USA</aff>
                <aff id="r18534a2">
                    <label>2</label>OMICS Laboratory, Department of Genetics, Ribeir&#x00e3;o Preto Medical School, University of S&#x00e3;o Paulo, S&#x00e3;o Paulo, Brazil</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>28</day>
                <month>12</month>
                <year>2016</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2016 Noushmehr H and Silva T</copyright-statement>
                <copyright-year>2016</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="relatedArticleReport18534" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.9821.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>The manuscript by Turaga 
                <italic>et al.</italic> is a useful guide for novice and advanced users of R/Bioconductor and Galaxy to incorporate any R/Bioconductor packages within the popular Galaxy software. We believe that by allowing users to integrate any Bioconductor package within Galaxy will add enormous utility&#x00a0;and advancement for any analyst. We envision users with little experience with R/Bioconductor would eventually be able to seek support to integrate any new Bioconductor package and thus incorporate the workflow within their data analysis pipeline within Galaxy. The authors have done an excellent job by highlighting several key best practices to achieve a reliable integration as well as the necessary structure to integrate a new BioC packages with example files highlighted within their supplemental data. This integration is explained through two distinct processes; A manual version and a semi-automated process that utilizes the tool Planemo (
                <ext-link ext-link-type="uri" xlink:href="https://github.com/galaxyproject/planemo/issues/493">https://github.com/galaxyproject/planemo</ext-link>), a command-line suite of tool to assist in developing tools for the Galaxy Project. The authors envision a more streamlined version of their tool with subsequent improvements, and the expectations will eventually lead to a larger base of users (little and no experience in R to advanced users).</p>
            <p> </p>
            <p> The text is well-written and is well structured, and we were able to follow the manual integration. However, due in part to a non-working version of the latest build from the GitHub repository, we were unable to implement the planemo tool `bioc_tool_init` and thus we can not provide a thorough evaluation of the tool. We expect that once the tool is available, we can provide a proper evaluation by integrating a random&#x00a0;BioC package.</p>
            <p> </p>
            <p> Some minor points: 
                <list list-type="order">
                    <list-item>
                        <p>In the tool dependency file description, we were unable to understand how and where one would obtain the name and owner of each dependency. For example, we were unable to find the name and owner of seqTools in 
                            <ext-link ext-link-type="uri" xlink:href="https://toolshed.g2.bx.psu.edu/">https://toolshed.g2.bx.psu.edu/</ext-link>.</p>
                    </list-item>
                    <list-item>
                        <p>In the tool integration section,&#x00a0;the code has the full path and the relative path for the file in the section. We feel this is redundant. Please consider modifying the code.</p>
                        <p> https://gist.github.com/tiagochst/a7b0ff56a864ca1ae2d5eaeaee82db9b</p>
                    </list-item>
                    <list-item>
                        <p>This issue is probably not the author's fault, but the supplementary files do not possess the same name as the example. For this&#x00a0;reason, the user has to download and rename them to execute the guide. Maybe adding a compressed zip with the correct names would help.</p>
                    </list-item>
                </list> </p>
            <p> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=</p>
            <p> </p>
            <p> Major problems:</p>
            <p> </p>
            <p> Planemo: `bioc_tool_init` unavailable</p>
            <p> As explained in the methods section we were able to install the latest version of Planemo (0.36.1). However, the command `bioc_tool_init` was unavailable and thus we were unable to evaluate the command by testing it with our packages. We followed the following instructions posted here:&#x00a0;
                <ext-link ext-link-type="uri" xlink:href="https://github.com/galaxyproject/planemo">https://github.com/galaxyproject/planemo</ext-link>&#x00a0;(Here is a screenshot of the version and the problem we experienced during install&#x00a0;
                <ext-link ext-link-type="uri" xlink:href="https://goo.gl/kyh33j">https://goo.gl/kyh33j</ext-link>).&#x00a0;If further steps are required to install the `bioc_tool_init` function, we feel it should be well documented either in git or this manuscript. Due to its unavailability to test and confirm it's practicality, we are unable to accept this MS in its current form for publication. Once the tool is available, we can provide a complete evaluation.</p>
            <p>Reviewer Expertise:</p>
            <p>NA</p>
            <p>We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however we have significant reservations, as outlined above.</p>
        </body>
        <sub-article article-type="response" id="comment2418-18534">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Freeberg</surname>
                            <given-names>Mallory</given-names>
                        </name>
                        <aff>John Hopkins University, USA</aff>
                    </contrib>
                </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>9</day>
                    <month>1</month>
                    <year>2017</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your insightful and useful feedback!</p>
                <p> </p>
                <p> We are in the process of addressing the minor concerns and issues raised here and will be releasing a version 2 of the manuscript shortly. We look forward to hearing about your experience wrapping an R/BioC tool in Galaxy!</p>
                <p> </p>
                <p> In the meantime, we have addressed your major concern of the bioc_tool_init command not being installed with Planemo. You should be able to see this command now by installing Planemo via pip or GitHub.</p>
                <p> </p>
                <p> Again, thank you for your feedback!</p>
                <p> </p>
                <p> Best,</p>
                <p> Mallory</p>
            </body>
        </sub-article>
    </sub-article>
    <sub-article article-type="reviewer-report" id="report18535">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.10589.r18535</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Stewart</surname>
                        <given-names>Paul A.</given-names>
                    </name>
                    <xref ref-type="aff" rid="r18535a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0003-0882-308X</uri>
                </contrib>
                <contrib contrib-type="author">
                    <name>
                        <surname>Rohlsen</surname>
                        <given-names>Dekai</given-names>
                    </name>
                    <xref ref-type="aff" rid="r18535a1">1</xref>
                    <role>Co-referee</role>
                </contrib>
                <aff id="r18535a1">
                    <label>1</label>Department of Thoracic Oncology, H. Lee Moffitt Cancer Center &amp; Research Institute, Tampa, FL, 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>21</day>
                <month>12</month>
                <year>2016</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2016 Stewart PA and Rohlsen D</copyright-statement>
                <copyright-year>2016</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="relatedArticleReport18535" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.9821.1"/>
            <custom-meta-group>
                <custom-meta>
                    <meta-name>recommendation</meta-name>
                    <meta-value>approve</meta-value>
                </custom-meta>
            </custom-meta-group>
        </front-stub>
        <body>
            <p>This manuscript, as the title implies, presents a guide and best practices for Bioconductor tool integration into the Galaxy web environment. Some Bioconductor tools have been integrated into Galaxy, but there are still a number of tools that are not supported and need to be installed by a Galaxy administrator in a multi-step process. The two biggest challenges for any type of tool integration are introduced: installation of all tool dependencies and correctly generating tool component files. The authors provide a table of best practices to help address these challenges, but more importantly the authors introduce Planemo, a wonderful command-line utility suite, which greatly aids in the creation and publishing of Galaxy tools.</p>
            <p> </p>
            <p> The 
                <bold>Methods</bold> section does an excellent job at providing a guide for integrating Bioconductor tools, and the 
                <bold>Use cases</bold> section, together with sample commands and provided supplementary files, shows the reader the benefits and ease of use of the Planemo suite. We have tested the provided sample files and code, and it behaves as described in our hands.</p>
            <p> </p>
            <p> The manuscript is very well written and will serve as a great reference for seasoned developers wishing to integrate R/Bioconductor tools into Galaxy, and the clearly written explanations as well as use cases will help ease newcomers into working with Galaxy. All examples provided are with R/Bioconductor, but this content could easily be used as a manual integrating other tools or command line scripts outside of Bioconductor. This is a great development for Galaxy documentation, and we are happy to recommend the article for approval.</p>
            <p>Reviewer Expertise:</p>
            <p>NA</p>
            <p>We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.</p>
        </body>
        <sub-article article-type="response" id="comment2419-18535">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Freeberg</surname>
                            <given-names>Mallory</given-names>
                        </name>
                        <aff>John Hopkins University, USA</aff>
                    </contrib>
                </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>9</day>
                    <month>1</month>
                    <year>2017</year>
                </pub-date>
            </front-stub>
            <body>
                <p>Thank you for your insightful and useful feedback!</p>
                <p> </p>
                <p> We are thrilled that our use cases and sample files worked for you. We are planning some improvements to the manuscript and will release a version 2 shortly.</p>
                <p> </p>
                <p> Cheers,</p>
                <p> Mallory</p>
            </body>
        </sub-article>
    </sub-article>
</article>
