<?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.24956.1</article-id>
            <article-categories>
                <subj-group subj-group-type="heading">
                    <subject>Software Tool Article</subject>
                </subj-group>
                <subj-group>
                    <subject>Articles</subject>
                </subj-group>
            </article-categories>
            <title-group>
                <article-title>gprofiler2 -- an R package for gene list functional enrichment analysis and namespace conversion toolset g:Profiler</article-title>
                <fn-group content-type="pub-status">
                    <fn>
                        <p>[version 1; peer review: 1 approved with reservations]</p>
                    </fn>
                </fn-group>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Kolberg</surname>
                        <given-names>Liis</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Formal Analysis</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Original Draft Preparation</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Raudvere</surname>
                        <given-names>Uku</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Data Curation</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Kuzmin</surname>
                        <given-names>Ivan</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Methodology</role>
                    <role content-type="http://credit.niso.org/">Software</role>
                    <role content-type="http://credit.niso.org/">Visualization</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="no">
                    <name>
                        <surname>Vilo</surname>
                        <given-names>Jaak</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Resources</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <contrib contrib-type="author" corresp="yes">
                    <name>
                        <surname>Peterson</surname>
                        <given-names>Hedi</given-names>
                    </name>
                    <role content-type="http://credit.niso.org/">Conceptualization</role>
                    <role content-type="http://credit.niso.org/">Funding Acquisition</role>
                    <role content-type="http://credit.niso.org/">Project Administration</role>
                    <role content-type="http://credit.niso.org/">Supervision</role>
                    <role content-type="http://credit.niso.org/">Writing &#x2013; Review &amp; Editing</role>
                    <xref ref-type="corresp" rid="c1">a</xref>
                    <xref ref-type="aff" rid="a1">1</xref>
                </contrib>
                <aff id="a1">
                    <label>1</label>Institute of Computer Science, University of Tartu, Tartu, Tartumaa, 51009, Estonia</aff>
            </contrib-group>
            <author-notes>
                <corresp id="c1">
                    <label>a</label>
                    <email xlink:href="mailto:hedi.peterson@ut.ee">hedi.peterson@ut.ee</email>
                </corresp>
                <fn fn-type="conflict">
                    <p>No competing interests were disclosed.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>15</day>
                <month>7</month>
                <year>2020</year>
            </pub-date>
            <pub-date pub-type="collection">
                <year>2020</year>
            </pub-date>
            <volume>9</volume>
            <elocation-id>ELIXIR-709</elocation-id>
            <history>
                <date date-type="accepted">
                    <day>3</day>
                    <month>7</month>
                    <year>2020</year>
                </date>
            </history>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2020 Kolberg L et al.</copyright-statement>
                <copyright-year>2020</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/9-709/pdf"/>
            <abstract>
                <p>g:Profiler (
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler">https://biit.cs.ut.ee/gprofiler</ext-link>) is a widely used gene list functional profiling and namespace conversion toolset that has been contributing to reproducible biological data analysis already since 2007. Here we introduce the accompanying R package, 
                    <bold>gprofiler2</bold>, developed to facilitate programmatic access to g:Profiler computations and databases via REST API. The 
                    <bold>gprofiler2</bold> package provides an easy-to-use functionality that enables researchers to incorporate functional enrichment analysis into automated analysis pipelines written in R. The package also implements interactive visualisation methods to help interpreting the enrichment results and illustrating them for publications. In addition, 
                    <bold>gprofiler2</bold> gives access to the versatile gene/protein identifier conversion functionality in g:Profiler enabling to map between hundreds of different identifier types or orthologous species. The 
                    <bold>gprofiler2</bold> package is freely available at the 
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/gprofiler2/index.html">CRAN repository</ext-link>.</p>
            </abstract>
            <kwd-group kwd-group-type="author">
                <kwd>g:Profiler</kwd>
                <kwd>R package</kwd>
                <kwd>functional enrichment analysis</kwd>
                <kwd>identifier mapping</kwd>
                <kwd>Gene Ontology</kwd>
                <kwd>pathways</kwd>
            </kwd-group>
            <funding-group>
                <award-group id="fund-1" xlink:href="http://dx.doi.org/10.13039/501100002301">
                    <funding-source>Eesti Teadusagentuur</funding-source>
                    <award-id>PSG59</award-id>
                    <award-id>IUT34-4</award-id>
                </award-group>
                <award-group id="fund-2" xlink:href="http://dx.doi.org/10.13039/100011102">
                    <funding-source>Seventh Framework Programme</funding-source>
                    <award-id>ELIXIR2014-2020.4.01.16-0271</award-id>
                </award-group>
                <award-group id="fund-3" xlink:href="http://dx.doi.org/10.13039/501100008530">
                    <funding-source>European Regional Development Fund</funding-source>
                    <award-id>EXCITE</award-id>
                </award-group>
                <funding-statement>This work was supported by the Estonian Research Council grants (IUT34-4;PSG59); the European Regional Development Fund for CoE of Estonian ICT research EXCITE projects; and Project No 2014-2020.4.01.16-0271, ELIXIR.</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>Interpretation of gene lists is a key step in numerous biological data analysis workflows, such as differential gene expression analysis and co-expression clustering of RNA-seq or microarray data. Usually this involves associating these gene lists with previous knowledge from well curated data sources of biological processes and pathways. However, as the knowledge-bases are constantly changing, keeping the associations up to date requires careful data management. Handling numerous databases, especially when using different gene identifier types, can be a very time-consuming process for researchers.</p>
            <p>g:Profiler (
                <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler">https://biit.cs.ut.ee/gprofiler</ext-link>) is a popular web toolset that helps to handle gene lists from various biological and biomedical studies of more than 600 species and strains, including vertebrates, plants, fungi, insects and parasites
                <sup>
                    <xref ref-type="bibr" rid="ref-1">1</xref>,
                    <xref ref-type="bibr" rid="ref-2">2</xref>
                </sup>. g:Profiler&#x2019;s best known functionality is the over-representation analysis to identify significantly enriched biological functions and pathways obtained from well established data sources which include, among others, Gene Ontology (GO)
                <sup>
                    <xref ref-type="bibr" rid="ref-3">3</xref>
                </sup>, KEGG
                <sup>
                    <xref ref-type="bibr" rid="ref-4">4</xref>
                </sup> and Reactome
                <sup>
                    <xref ref-type="bibr" rid="ref-5">5</xref>
                </sup>. The information about genes, identifier types and GO term associations in g:Profiler is mostly based on Ensembl databases
                <sup>
                    <xref ref-type="bibr" rid="ref-6">6</xref>
                </sup> including data from Ensembl Genomes, fungi, plants and metazoa specific versions of Ensembl. g:Profiler follows Ensembl&#x2019;s quarterly update cycle while keeping the access to previous data versions as archives for reproducibility. The parasite specific data is included from the WormBase
                <sup>
                    <xref ref-type="bibr" rid="ref-7">7</xref>
                </sup>.</p>
            <p>Providing users with fast and easy access has been the main goal of g:Profiler developers. Since 2007, g:Profiler has been in constant development and with the recent update in 2019 a new accompanying R package, 
                <bold>gprofiler2</bold>, was developed
                <sup>
                    <xref ref-type="bibr" rid="ref-8">8</xref>
                </sup>. The R package relies on the g:Profiler REST API requests providing an easy programmatic access to the same functionalities as in the web tool without performing heavy computations and mappings in R. While there are other popular R packages for functional enrichment analysis, such as 
                <monospace>topGO</monospace>
                <sup>
                    <xref ref-type="bibr" rid="ref-9">9</xref>
                </sup> and 
                <monospace>clusterProfiler</monospace>
                <sup>
                    <xref ref-type="bibr" rid="ref-10">10</xref>
                </sup>, 
                <bold>gprofiler2</bold>, unlike the others, provides access to numerous annotation data sources with a single query without requiring to download any of these sources to a local computer. Furthermore, the mapping between different gene identifiers is automatic and the input can be a mixed list of identifiers. g:Profiler&#x2019;s continuous development and flexibility of usage has been recognised by the European Life Science Infrastructure ELIXIR, which has selected it as one of its 
                <ext-link ext-link-type="uri" xlink:href="https://elixir-europe.org/platforms/interoperability/rirs">Recommended Interoperability Resources</ext-link>.</p>
            <p>g:Profiler development team encourages and supports external tools and packages to use either 
                <bold>gprofiler2</bold> package or the public API to be part of their workflows. For example, 
                <monospace>RCAS</monospace> Bioconductor package
                <sup>
                    <xref ref-type="bibr" rid="ref-11">11</xref>
                </sup> includes 
                <bold>gprofiler2</bold> for functional analysis of transcriptomic regions detected by different high-throughput experiments. Single-cell mapper package (
                <monospace>scMappR</monospace>)
                <sup>
                    <xref ref-type="bibr" rid="ref-12">12</xref>
                </sup> analyses cell-type specific gene lists with 
                <bold>gprofiler2</bold>. 
                <monospace>OmnipathR</monospace>
                <sup>
                    <xref ref-type="bibr" rid="ref-13">13</xref>
                </sup> suggests using 
                <bold>gprofiler2</bold> for enrichment analysis of protein complexes. Gene Co-expression Network analysis pipeline (
                <ext-link ext-link-type="uri" xlink:href="https://github.com/Kumquatum/GWENA">GWENA</ext-link>) uses 
                <bold>gprofiler2</bold> in their pipeline for functional enrichment of co-expressed gene modules. A Nextflow differential gene expression analysis 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/qbic-pipelines/rnadeseq">pipeline</ext-link> includes 
                <bold>gprofiler2</bold> for pathway analysis.</p>
            <p>Here we demonstrate how to conveniently incorporate the 
                <bold>gprofiler2</bold> R package into bioinformatics analysis pipelines using differential gene expression analysis as an example.</p>
        </sec>
        <sec sec-type="methods">
            <title>Methods</title>
            <sec>
                <title>Implementation</title>
                <p>Inherently, 
                    <bold>gprofiler2</bold>
                    <sup>
                        <xref ref-type="bibr" rid="ref-8">8</xref>
                    </sup> is a collection of wrapper functions in R that simplify sending POST requests to the g:Profiler REST API using the 
                    <monospace>RCurl</monospace> package
                    <sup>
                        <xref ref-type="bibr" rid="ref-14">14</xref>
                    </sup>. This means that all the annotation data sources and computations are centralised in a single well-maintained server and therefore the results from both the web tool and R package are guaranteed to be identical. Relying on the central API also simplifies the maintenance of the g:Profiler interfaces and enables the R users to get access to the most up-to-date data without having to download the heavy annotation data files to their own devices.</p>
                <p>There are four main API wrapper functions in 
                    <bold>gprofiler2</bold>:</p>
                <list list-type="bullet">
                    <list-item>
                        <p>
                            <monospace>gost</monospace> for functional enrichment analysis</p>
                    </list-item>
                    <list-item>
                        <p>
                            <monospace>gconvert</monospace> for mapping gene identifiers between different namespaces</p>
                    </list-item>
                    <list-item>
                        <p>
                            <monospace>gorth</monospace> for mapping orthologous genes across species</p>
                    </list-item>
                    <list-item>
                        <p>
                            <monospace>gsnpense</monospace> for mapping SNP rs-IDs to chromosome positions, genes and variant effects.</p>
                    </list-item>
                </list>
                <p>In addition to fetching the results from the API, 
                    <bold>gprofiler2</bold> uses the packages 
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/package=ggplot2">ggplot2</ext-link>
                    <sup>
                        <xref ref-type="bibr" rid="ref-15">15</xref>
                    </sup> and 
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/package=plotly">plotly</ext-link>
                    <sup>
                        <xref ref-type="bibr" rid="ref-16">16</xref>
                    </sup> to provide visualisations for enrichment results that are similar to the web tool ones. Using 
                    <monospace>ggplot2</monospace> allows users to customise the visualisations by adding or removing graphical layers, and to adjust the quality of images for publication.</p>
                <p>This article was written using R version 3.6.1 (2019-07-05) and 
                    <bold>gprofiler2</bold> version 0.1.9.</p>
            </sec>
            <sec>
                <title>Operation</title>
                <p>The 
                    <bold>gprofiler2</bold> R package is 
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/package=gprofiler2">available from CRAN</ext-link> and works on R versions 3.5 and above. The package also includes a detailed 
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/gprofiler2/vignettes/gprofiler2.html">vignette</ext-link>.</p>
                <p>The package can be installed from CRAN:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># install from CRAN</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">install.packages</styled-content>(
                        <styled-content style="color:#4F9905">"gprofiler2"</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># load the package</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">library</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gprofiler2)</styled-content>
                    </preformat>
                </p>
            </sec>
            <sec>
                <title>Input description</title>
                <p>The most popular functionality of g:Profiler is functional enrichment analysis provided by the g:GOSt tool that performs over-representation analysis using hypergeometric test. This functionality is available in 
                    <bold>gprofiler2</bold> under the function 
                    <monospace>gost</monospace>. The required inputs for this function are a vector of gene identifiers, 
                    <monospace>query</monospace>, and the name of the corresponding 
                    <monospace>organism</monospace> which is constructed by concatenating the first letter of the genus name and the specific epithet, e.g. 
                    <italic toggle="yes">hsapiens</italic> for human genes. The full list of supported species and strains, 641 in total, is available on the 
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler/page/organism-list">g:Profiler web page</ext-link>.</p>
                <p>The query vector can include mixed types of gene/protein identifiers, SNP rs-IDs, chromosomal intervals or term IDs. Accepting a mixture of IDs is a unique feature that skips time-consuming manual steps of converting between different identifier types required by other functional enrichment tools. However, in case of analysing numeric identifiers (e.g. Entrez IDs) the user should specify the namespace using the 
                    <monospace>numeric_ns</monospace> parameter. The same description of input 
                    <monospace>query</monospace> and 
                    <monospace>organism</monospace> holds for the three other functions in 
                    <bold>gprofiler2</bold>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">gostres =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>(
                        <styled-content style="color:#204A87">query = c</styled-content>(
                        <styled-content style="color:#4F9905">"X:1000:1000000"</styled-content>, 
                        <styled-content style="color:#4F9905">"rs17396340"</styled-content>, 
                        <styled-content style="color:#4F9905">"GO:0005005"</styled-content>,
		           
                        <styled-content style="color:#4F9905">"ENSG00000156103"</styled-content>, 
                        <styled-content style="color:#4F9905">"NLRP1"</styled-content>, 
                        <styled-content style="color:#4F9905">"3837"</styled-content>),
               
                        <styled-content style="font-size:15px;color:#214A87">organism</styled-content> = 
                        <styled-content style="color:#4F9905">"hsapiens"</styled-content>,
               
                        <styled-content style="font-size:15px;color:#214A87">numeric_ns</styled-content> = 
                        <styled-content style="color:#4F9905">"ENTREZGENE_ACC"</styled-content>)
</preformat>
                </p>
                <p>Several additional parameters in the 
                    <monospace>gost</monospace> function help to perform the analysis according to specific needs, including custom statistical options such as background definition, statistical significance threshold, method for multiple testing correction and testing for under-representation. Also, additional information like GO evidence codes and genes belonging to the intersection between the input list and the functional term is available.</p>
            </sec>
            <sec>
                <title>Annotation databases</title>
                <p>g:Profiler&#x2019;s in-house database includes only reliable annotation data sources that are regularly updated such as Gene Ontology (GO)
                    <sup>
                        <xref ref-type="bibr" rid="ref-3">3</xref>
                    </sup>, KEGG
                    <sup>
                        <xref ref-type="bibr" rid="ref-4">4</xref>
                    </sup>, Reactome
                    <sup>
                        <xref ref-type="bibr" rid="ref-5">5</xref>
                    </sup>, WikiPathways
                    <sup>
                        <xref ref-type="bibr" rid="ref-17">17</xref>
                    </sup>, miRTarBase
                    <sup>
                        <xref ref-type="bibr" rid="ref-18">18</xref>
                    </sup>, TRANSFAC
                    <sup>
                        <xref ref-type="bibr" rid="ref-19">19</xref>
                    </sup>, Human Protein Atlas
                    <sup>
                        <xref ref-type="bibr" rid="ref-20">20</xref>
                    </sup>, protein complexes from CORUM
                    <sup>
                        <xref ref-type="bibr" rid="ref-21">21</xref>
                    </sup> and Human Phenotype Ontology
                    <sup>
                        <xref ref-type="bibr" rid="ref-22">22</xref>
                    </sup>. By default, all the data sources in g:Profiler database are used for the analysis in 
                    <bold>gprofiler2</bold>, but a specific selection can be made with the 
                    <monospace>sources</monospace> parameter of the 
                    <monospace>gost</monospace> function. In order to enable more flexibility, users can also use their own annotation data. The custom source can be uploaded in a Gene Matrix Transposed (GMT) file format. This feature is further described in the next section.</p>
            </sec>
        </sec>
        <sec>
            <title>Use case</title>
            <p>Differential gene expression analysis determines lists of genes that show changes in expression between different conditions, cell types, time points, etc. Functional enrichment analysis using the 
                <bold>gprofiler2</bold> package
                <sup>
                    <xref ref-type="bibr" rid="ref-8">8</xref>
                </sup> helps to interpret these gene lists.</p>
            <p>Here we demonstrate the main functionality of 
                <bold>gprofiler2</bold> by following an analysis example from the existing RNA-seq Bioconductor workflow
                <sup>
                    <xref ref-type="bibr" rid="ref-23">23</xref>
                </sup> that uses the popular 
                <monospace>DESeq2</monospace> package
                <sup>
                    <xref ref-type="bibr" rid="ref-24">24</xref>
                </sup> for differential analysis. The example RNA-seq data are obtained from the 
                <monospace>airway</monospace> package
                <sup>
                    <xref ref-type="bibr" rid="ref-25">25</xref>
                </sup> that comprises data from experiment where airway smooth muscle cells were treated with dexamethasone.</p>
            <p>
                <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                    <styled-content style="font-size:15px;color:#214A87">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000">(DESeq2)</styled-content>

                    <styled-content style="font-size:15px;color:#214A87">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000">(airway)</styled-content>

                    <styled-content style="font-size:15px;color:#214A87">library</styled-content>
                    <styled-content style="font-size:15px;color:#000000">(gprofiler2)</styled-content>
</preformat>
</p>
            <sec>
                <title>Functional enrichment of differentially expressed genes</title>
                <p>First, we will detect the list of genes that are differentially regulated when stimulated with dexamethasone and then we will use the function 
                    <monospace>gost</monospace> from 
                    <bold>gprofiler2</bold> to find the biological functions and pathways that are significantly enriched in this gene set.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># load the airway data</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">data</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(airway)</styled-content>

                        <styled-content style="font-size:15px;color:#8F5903"># construct the DESeqDataSet object</styled-content>

                        <styled-content style="font-size:15px;color:#000000">ddsMat</styled-content> = 
                        <styled-content style="font-size:15px;color:#214A87">DESeqDataSetFromMatrix</styled-content>(
                        <styled-content style="font-size:15px;color:#214A87">countData = assay</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(airway),</styled-content>
			            
                        <styled-content style="font-size:15px;color:#214A87">colData = colData</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(airway),</styled-content>
			            
                        <styled-content style="font-size:15px;color:#214A87">design =</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">
                            <sup>~</sup>
                        </styled-content> cell 
                        <styled-content style="font-size:15px;color:#CF5C00">+</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">dex</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># run DESeq2 pipeline</styled-content>
dds = 
                        <styled-content style="font-size:15px;color:#214A87">DESeq</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">ddsMat</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># get the results</styled-content>
results = 
                        <styled-content style="font-size:15px;color:#214A87">results</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">dds</styled-content>, 
                        <styled-content style="font-size:15px;color:#214A87">contrast = c</styled-content>(
                        <styled-content style="color:#4F9905">"dex", "trt", "untrt"</styled-content>),
                   
                        <styled-content style="font-size:15px;color:#214A87">alpha =</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">0.05</styled-content>, 
                        <styled-content style="font-size:15px;color:#214A87">lfcThreshold =</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">1</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># keep only the significant genes</styled-content>
results_sig = 
                        <styled-content style="font-size:15px;color:#214A87">subset</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">results, padj</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">&lt;</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">0.05</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># get the significant up-regulated genes</styled-content>

                        <styled-content style="font-size:15px;color:#000000">up</styled-content> = 
                        <styled-content style="font-size:15px;color:#214A87">subset</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">results_sig, log2FoldChange</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">&gt;</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">0</styled-content>)

                        <styled-content style="font-size:15px;color:#8F5903"># get the significant down-regulated genes</styled-content>

                        <styled-content style="font-size:15px;color:#000000">down</styled-content> = 
                        <styled-content style="font-size:15px;color:#214A87">subset</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">results_sig, log2FoldChange</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">&lt;</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">0</styled-content>)</preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># enrichment analysis</styled-content>
gp_up = 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>(
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">up</styled-content>), 
                        <styled-content style="font-size:15px;color:#214A87">organism</styled-content> = 
                        <styled-content style="color:#4F9905">"hsapiens"</styled-content>)
gp_down = 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>(
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">down</styled-content>), 
                        <styled-content style="font-size:15px;color:#214A87">organism</styled-content> = 
                        <styled-content style="color:#4F9905">"hsapiens"</styled-content>) </preformat>
                </p>
                <p>The output of the gost function is a named list where the element 
                    <monospace>result</monospace> includes a data frame with the enriched functions and related statistics; and the element 
                    <monospace>meta</monospace> includes relevant metadata for reproducing these results.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">head</styled-content>(
                        <styled-content style="font-size:15px;color:#000000">gp_up</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">result</styled-content>)</preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">##      query significant     p_value term_size query_size intersection_size
## 1  query_1        TRUE 0.001414822      9455        124                92
## 2  query_1        TRUE 0.003848846        14        124                 4
## 3  query_1        TRUE 0.003848846        14        124                 4
## 4  query_1        TRUE 0.006923191        16        124                 4
## 5  query_1        TRUE 0.006923191        16        124                 4
## 6  query_1        TRUE 0.012886939      1024        124                21
##     precision      recall    term_id source                            term_name
## 1  0.74193548 0.009730301 GO:0050896  GO:BP                 response to stimulus
## 2  0.03225806 0.285714286 GO:0010273  GO:BP         detoxification of copper ion
## 3  0.03225806 0.285714286 GO:1990169  GO:BP        stress response to copper ion
## 4  0.03225806 0.250000000 GO:0097501  GO:BP         stress response to metal ion
## 5  0.03225806 0.250000000 GO:0061687  GO:BP detoxification of inorganic compound
## 6  0.16935484 0.020507812 GO:0009725  GO:BP                   response to hormone
##    effective_domain_size source_order                parents
## 1                  17906        15742             GO:0008150
## 2                  17906         4576 GO:0061687, GO:1990169
## 3                  17906        29137 GO:0046688, GO:0097501
## 4                  17906        22329 GO:0006950, GO:0010038
## 5                  17906        18680             GO:0098754
## 6                  17906         4118 GO:0009719, GO:0010033</styled-content>
                    </preformat>
                </p>
            </sec>
            <sec>
                <title>Accounting for the order of genes in enrichment analysis</title>
                <p>For cases where the list of interesting genes can be ranked by some biologically meaningful measure, such as P-value or fold change in differential analysis, g:Profiler provides an ordered query option that takes the ranking into account when performing enrichment tests. The testing is then performed iteratively, starting from the first gene and sequentially adding genes one by one. For every term, the smallest enrichment P-value is reported along with the corresponding gene list size. Consequently, for different terms the query size can vary, especially as the broader terms can be enriched for larger lists only. This option is very similar to the idea of the GSEA analysis method
                    <sup>
                        <xref ref-type="bibr" rid="ref-26">26</xref>
                    </sup>.</p>
                <p>For example, to perform ordered query using 
                    <bold>gprofiler2</bold> we first rearrange the list of up-regulated genes based on the log
                    <sub>2</sub> fold change values so that the first gene in the list has the highest value. Next we use this ordered list as a query in the 
                    <monospace>gost</monospace> function and set the parameter 
                    <monospace>ordered_query = TRUE</monospace>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># order genes by log2FC</styled-content>

                        <styled-content style="font-size:15px;color:#000000">up_ordered = up[</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">order</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(up</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">log2FoldChange,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">decreasing =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000">),]</styled-content>

                        <styled-content style="font-size:15px;color:#8F5903"># ordered enrichment analysis</styled-content>

                        <styled-content style="font-size:15px;color:#000000">gp_up_ordered =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(up_ordered),</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">organism =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"hsapiens"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content>
		        
                        <styled-content style="font-size:15px;color:#214A87">ordered_query =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">TRUE</styled-content>)

                        <styled-content style="font-size:15px;color:#214A87">head</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gp_up_ordered</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">result,</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">8</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">##     query significant      p_value term_size query_size intersection_size
## 1 query_1        TRUE 0.0006617979        14         80         	   4
## 2 query_1        TRUE 0.0006617979        14         80        	   4
## 3 query_1        TRUE 0.0011951178        16         80         	   4
## 4 query_1        TRUE 0.0011951178        16         80          	   4
## 5 query_1        TRUE 0.0047065333        22         80          	   4
## 6 query_1        TRUE 0.0080566224        25         80          	   4
## 7 query_1        TRUE 0.0132789677       106        120        	   7
## 8 query_1        TRUE 0.0159695023       109        120            	   7
##    precision     recall    term_id source                            term_name
## 1 0.05000000 0.28571429 GO:1990169  GO:BP 	    stress response to copper ion
## 2 0.05000000 0.28571429 GO:0010273  GO:BP 	     detoxification of copper ion
## 3 0.05000000 0.25000000 GO:0097501  GO:BP	     stress response to metal ion
## 4 0.05000000 0.25000000 GO:0061687  GO:BP detoxification of inorganic compound
## 5 0.05000000 0.18181818 GO:0071294  GO:BP 	    cellular response to zinc ion
## 6 0.05000000 0.16000000 GO:0071280  GO:BP   	  cellular response to copper ion
## 7 0.05833333 0.06603774 GO:0003300  GO:BP 	       cardiac muscle hypertrophy
## 8 0.05833333 0.06422018 GO:0014897  GO:BP	      striated muscle hypertrophy
##   effective_domain_size source_order                parents
## 1 	   	     17906        29137 GO:0046688, GO:0097501
## 2 	             17906	   4576 GO:0061687, GO:1990169
## 3	             17906	  22329 GO:0006950, GO:0010038
## 4	             17906	  18680 	    GO:0098754
## 5	             17906 	  19684 GO:0010043, GO:0071248
## 6	             17906 	  19670 GO:0046688, GO:0071248
## 7	             17906	   1905 	    GO:0014897
## 8 	             17906	   5377 	    GO:0014896</styled-content>
                    </preformat>
                </p>
                <p>The resulting data frame is in the same format as shown previously. Only the size of the query in the table can vary as the algorithm detects the most significant cutting point from the input gene list considering every function separately.</p>
            </sec>
            <sec>
                <title>Visualisation of functional enrichment results</title>
                <p>Different visualisations are useful to summarise and interpret functional enrichment results. With the recent update, g:Profiler introduced an alternative way for visualising functional terms, a Manhattan plot. On this plot, the x-axis shows the terms and y-axis shows the enrichment P-values on &#x2212; log
                    <sub>10</sub> scale. Each circle on this plot corresponds to a single term. The circles are colored according to the annotation source and size-scaled according to the total number of genes annotated to the corresponding term. The locations on the x-axis are always fixed and ordered in a way that the terms from the same GO subtree are located closer to each other. This helps to highlight different enriched GO sub-branches as they form peaks in the Manhattan plot and makes plots from different queries easily comparable. For the same reason, by default the values on the y-axis are capped to a maximum value of 16 that corresponds to P-value less than 10
                    <sup>&#x2212;16</sup> . The same default threshold is also used in the statistical tests in R. This selection can be switched off to show the P-values in a wider scale range.</p>
                <p>Interactive graphs are common in web tools and therefore the Manhattan plot in g:Profiler web interface also provides several interactive features to facilitate data exploration and enables to export the visualisations as high-quality image files. Mimicking the g:Profiler web interface, the Manhattan plot in 
                    <bold>gprofiler2</bold> is implemented in the function 
                    <monospace>gostplot</monospace> that uses the resulting object from the 
                    <monospace>gost</monospace> function as an input. As a unique feature, compared to other similar packages, the parameter 
                    <monospace>interactive</monospace> enables to switch between interactive 
                    <monospace>plotly</monospace> graph for browsing or static 
                    <monospace>ggplot</monospace> graph for saving as an image file. The parameter 
                    <monospace>capped</monospace> enables to turn off the upper limit of y-axis.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">p =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gp_up,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">interactive =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
                <p>After exploring the interactive graph and deciding on the story to tell about the results, the user can compose a publishable figure that highlights the most important terms using the function 
                    <monospace>publish_gostplot</monospace> and defining the relevant terms in the parameter 
                    <monospace>highlight_terms</monospace>. The chosen terms are indicated with numbers on the plot and corresponding statistics are shown in the table below the Manhattan plot. For example, the enrichment results for up-regulated genes are shown in 
                    <xref ref-type="fig" rid="f1">Figure 1</xref>. The Manhattan plot can be saved as an image file (PNG, PDF, JPEG, etc) specified by the 
                    <monospace>filename</monospace> parameter.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">p1 =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gp_up,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">interactive =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">publish_gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(p1,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">highlight_terms = c</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"GO:0050896"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"KEGG:04978"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content>
					     
                        <styled-content style="font-size:15px;color:#4F9905">"REAC:R-HSA-5661231"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"WP:WP3286"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">))</styled-content>
                    </preformat>
                </p>
                <fig fig-type="figure" id="f1" orientation="portrait" position="float">
                    <label>Figure 1. </label>
                    <caption>
                        <title>Manhattan plot of g:Profiler enrichment results.</title>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/27533/f078f444-2600-412e-9ca0-8f5354fde249_figure1.gif"/>
                </fig>
                <p>As the resulting plot is a standard 
                    <monospace>ggplot</monospace> object, it is easy to further customise the graphs by adding graphical layers or textual annotations.</p>
            </sec>
            <sec>
                <title>Analysing multiple gene lists</title>
                <p>Above we were analysing the up- and down-regulated gene lists separately, but the 
                    <monospace>gost</monospace> function also works with a (named) list of multiple gene vectors that enables to keep all the results in a single object and to easily compare different groups.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">multi_gp =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">list</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"up-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(up),</styled-content>
	  
                        <styled-content style="font-size:15px;color:#4F9905">"down-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(down)))</styled-content>
                    </preformat>
                </p>
                <p>In this case, the resultant data frame is in a so-called &#x201c;long format&#x201d; where the column 
                    <monospace>query</monospace> includes the names of corresponding input vectors to differentiate between them. Alternative option is to set 
                    <monospace>multi_query = TRUE</monospace> which, in case of multiple gene lists, returns results as a comparison table in a &#x201c;wide format&#x201d;. That is, the rows are concatenated by terms and query statistics are shown in cells as vectors, e.g. the 
                    <monospace>p_values</monospace> column includes a vector of corresponding P-values from all the input queries, even the insignificant ones.</p>
                <p>Results from multiple gene lists can also be used for plotting. The function 
                    <monospace>gostplot</monospace> detects the case of multiple queries and plots the Manhattan plots under each other for comparison. The example enrichment results are shown in 
                    <xref ref-type="fig" rid="f2">Figure 2</xref>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">p2 =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(multi_gp,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">interactive =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903;">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">publish_gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(p2,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">highlight_terms = c</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"GO:0099699"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"GO:0050896"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"KEGG:04978"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
					
                        <styled-content style="font-size:15px;color:#4F9905;">"REAC:R-HSA-5661231"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"WP:WP3286"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
					
                        <styled-content style="font-size:15px;color:#4F9905;">"GO:1990169"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">))</styled-content>
                    </preformat>
                </p>
                <fig fig-type="figure" id="f2" orientation="portrait" position="float">
                    <label>Figure 2. </label>
                    <caption>
                        <title>Visualisation of g:Profiler enrichment results to compare multiple gene lists.</title>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/27533/f078f444-2600-412e-9ca0-8f5354fde249_figure2.gif"/>
                </fig>
            </sec>
            <sec>
                <title>Sending analysis from R to g:Profiler web interface</title>
                <p>The same enrichment results can also be viewed in the g:Profiler web tool. The user can generate a dedicated short-link by setting the parameter 
                    <monospace>as_short_link = TRUE</monospace> in the 
                    <monospace>gost</monospace> function which then returns the short-link to g:Profiler web tool instead of a data frame. This is a useful feature for sharing the results quickly with colleagues or to accompany a publication without the peers having to run the full analysis code in R.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">multi_gp_link =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">list</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"up-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(up),</styled-content>
	   
                        <styled-content style="font-size:15px;color:#4F9905;">"down-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(down)),</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">as_short_link =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903;">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    </preformat>
                </p>
                <p>In this case, the variable 
                    <monospace>multi_gp_link</monospace> is a character string that corresponds to a stable short-link to these enrichment results: 
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gplink/l/0wgtcERnQT">https://biit.cs.ut.ee/gplink/l/0wgtcERnQT</ext-link>.</p>
            </sec>
            <sec>
                <title>Mapping between gene identifiers with 
                    <monospace>gconvert</monospace>
                </title>
                <p>Another common but tedious task in handling gene lists is mapping between different identifiers. The function 
                    <monospace>gconvert</monospace> helps to easily solve this issue and translates the given input identifiers to some other user defined namespace together with gene names and descriptions. The function is able to map between at least 30 different namespaces for more than 190 species. All available namespaces for different organisms are listed on the 
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler/page/namespaces-list">g:Profiler page</ext-link>.</p>
                <p>As an example we will convert the Ensembl IDs in our differential expression results to numeric Entrez IDs with 
                    <monospace>gconvert</monospace>. The function takes a vector of gene identifiers as an input and returns a data frame that includes a column with target identifiers together with the names and descriptions for the input genes.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">results_genes =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">gconvert</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results),</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">organism =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"hsapiens"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
			     
                        <styled-content style="font-size:15px;color:#214A87;">target =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"ENTREZGENE_ACC"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">filter_na =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903;">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">head</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results_genes)</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">##   input_number           input target_number  target     name
## 1 		1 ENSG00000000003           1.1    7105   TSPAN6
## 2 		2 ENSG00000000005           2.1   64102     TNMD
## 3 		3 ENSG00000000419           3.1    8813     DPM1
## 4 		4 ENSG00000000457           4.1   57147    SCYL3
## 5 		5 ENSG00000000460           5.1   55732 C1orf112
## 6 		6 ENSG00000000938           6.1    2268      FGR
## 										        description
## 1 						  tetraspanin 6 [Source:HGNC Symbol;Acc:HGNC:11858]
## 2 						    tenomodulin [Source:HGNC Symbol;Acc:HGNC:17757]
## 3 dolichyl-phosphate mannosyltransferase subunit 1, catalytic [Source:HGNC Symbol;Acc:HGNC:3005]
## 4 				       SCY1 like pseudokinase 3 [Source:HGNC Symbol;Acc:HGNC:19285]
## 5 			    chromosome 1 open reading frame 112 [Source:HGNC Symbol;Acc:HGNC:25565]
## 6 		  FGR proto-oncogene, Src family tyrosine kinase [Source:HGNC Symbol;Acc:HGNC:3697]
## 	     namespace
## 1 ARRAYEXPRESS,ENSG
## 2 ARRAYEXPRESS,ENSG
## 3 ARRAYEXPRESS,ENSG
## 4 ARRAYEXPRESS,ENSG
## 5 ARRAYEXPRESS,ENSG
## 6 ARRAYEXPRESS,ENSG</styled-content>
                    </preformat>
                </p>
                <p>The users can add this information to the differential expression results data frame and save it to a tab separated text file to include as a supplementary file in their article, for example.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">results_df =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">as.data.frame</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results)</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">results_df</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">Ensembl_id =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results_df)</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">results_df = results_df[</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">order</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results_df</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">padj),]</styled-content>


                        <styled-content style="font-size:15px;color:#8F5903;"># add the gene names</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">results_df =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">merge</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results_df,
		   results_genes[,</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"input"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"target"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"name"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"description"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)],</styled-content>
		      
                        <styled-content style="font-size:15px;color:#214A87;">by.x =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"Ensembl_id"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">by.y =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"input"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>


                        <styled-content style="font-size:15px;color:#8F5903;"># save the results to a tsv file</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">write.table</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(results_df,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">file =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"DESeq2_results.tsv"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">sep =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"\t"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
              
                        <styled-content style="font-size:15px;color:#214A87;">quote =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">F,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">row.names =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">F)</styled-content>
                    </preformat>
                </p>
            </sec>
            <sec>
                <title>Using custom annotations</title>
                <p>While g:Profiler enables to analyse genes from numerous organisms using high-quality annotation databases, there is still a need for custom data functionality for researchers interested in non-model organisms, that are not annotated in the Ensembl database, or in some specific, not so widespread annotation resource. In g:Profiler, this is solved by enabling users to upload custom annotation files in the GMT file format, which is essentially a tab delimited text file where every row describes a function by its identifier, description, and the genes annotated in this function. Here it is important to note that in case of custom annotation files, all the identifiers not present in the GMT file will be ignored in the analysis.</p>
                <p>For example, to use the gene-disease association data from the DisGeNET database
                    <sup>
                        <xref ref-type="bibr" rid="ref-27">27</xref>
                    </sup> for enrichment analysis, the user can upload the GMT file in R using the 
                    <monospace>upload_GMT_file</monospace> function that returns a unique token for the file which can then be used as a value for the 
                    <monospace>organism</monospace> argument in the 
                    <monospace>gost</monospace> function.</p>
                <p>First, we use R utility function 
                    <monospace>download.file</monospace> to download an annotation 
                    <ext-link ext-link-type="uri" xlink:href="https://www.disgenet.org/static/disgenet_ap1/files/downloads/gmt_files/disgenet.curated.v7.symbols.gmt">GMT file</ext-link> from DisGeNET into a file in the working directory and name it &#x201c;DisGeNET.gmt&#x201d;.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903;"># download the GMT file from DisGeNET</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">gmturl =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">file.path</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"http://www.disgenet.org"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
		     
                        <styled-content style="font-size:15px;color:#4F9905;">"static/disgenet_ap1/files/downloads/gmt_files"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
		     
                        <styled-content style="font-size:15px;color:#4F9905;">"disgenet.curated.v7.symbols.gmt"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">download.file</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">url =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">gmturl,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">destfile =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">"DisGeNET.gmt"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    </preformat>
                </p>
                <p>Now, when we have the file in our local environment, we can upload it to g:Profiler with the 
                    <monospace>upload_GMT_file function</monospace>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">token =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">upload_GMT_file</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#204A87;">gmtfile =</styled-content> 
                        <styled-content style="font-size:15px;color:#4E9A06;">"DisGeNET.gmt"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#8F5902;"># save this token to your notes for enrichment analysis</styled-content>
                    </preformat>
                </p>
                <p>The result of this upload is a unique token (in this case "gp_goJy_Ej2J_rPc") which should be saved by the user for future use. In order to find the enriched diseases in our gene list, we will use the token as a value for the 
                    <monospace>organism</monospace> in the 
                    <monospace>gost</monospace> function. As the DisGeNET database file includes gene symbols and not Ensembl identifiers, we first use 
                    <monospace>gconvert</monospace> to map our Ensembl IDs to gene names and use these as the input for the enrichment analysis.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">up_names =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">gconvert</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#204A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(up))</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">down_names =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">gconvert</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#204A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(down))</styled-content>


                        <styled-content style="font-size:15px;color:#000000;">custom_gp =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#204A87;">list</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4E9A06;">"up-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">= up_names</styled-content>
                        <styled-content style="font-size:15px;color:#CE5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">name,</styled-content>
                       
                        <styled-content style="font-size:15px;color:#4E9A06;">"down-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">= down_names</styled-content>
                        <styled-content style="font-size:15px;color:#CE5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">name),</styled-content>
      
                        <styled-content style="font-size:15px;color:#204A87;">organism =</styled-content> 
                        <styled-content style="font-size:15px;color:#4E9A06;">"gp__goJy_Ej2J_rPc"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    </preformat>
                </p>
                <p>The custom data source results can also be plotted using the Manhattan plots (
                    <xref ref-type="fig" rid="f3">Figure 3</xref>).</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">p =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(custom_gp,</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">interactive =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5902;">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">pal = list</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4E9A06;">"DisGeNET"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000;">=</styled-content> 
                        <styled-content style="font-size:15px;color:#4E9A06;">"salmon"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">))</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">pp =</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">publish_gostplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(p,</styled-content> 
                        <styled-content style="font-size:15px;color:#204A87;">highlight_terms = c</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4E9A06;">"C0011603"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4E9A06;">"C0014175"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">))</styled-content>
                    </preformat>
                </p>
                <fig fig-type="figure" id="f3" orientation="portrait" position="float">
                    <label>Figure 3. </label>
                    <caption>
                        <title>Manhattan plot of g:Profiler enrichment results using DisGeNET database loaded from a custom GMT file.</title>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/27533/f078f444-2600-412e-9ca0-8f5354fde249_figure3.gif"/>
                </fig>
                <p>As the 
                    <bold>gprofiler2</bold> R package and the web tool are in sync, this token will also work for the analysis in the web tool and can be inserted under the section &#x201c;Bring your own data (Custom GMT)&#x201d;. And vice versa, the token obtained from the web tool will work in the R package without uploading the data again. Thus, in order to analyse multiple gene lists with the same data source, the user needs to upload the file only once and can use the given token from then on. Furthermore, analysing multiple custom sources at once is enabled with the upload of a ZIP archive that includes multiple GMT files. GMT file names are used as the names for the data sources in the results and colored independently in the Manhattan plot.</p>
            </sec>
            <sec>
                <title>Mapping orthologous genes with 
                    <monospace>gorth</monospace>
                </title>
                <p>Sometimes, in order to further investigate the interesting set of differential genes in human, researchers need to perform additional experiments on model organisms such as mice. This requires finding the corresponding orthologs of these interesting genes from other species. Another use for orthologous genes is the possibility to transfer the extensive knowledge from well studied organisms to less studied species.</p>
                <p>Mapping orthologous genes between species in g:Profiler is enabled by the g:Orth tool and in the 
                    <bold>gprofiler2</bold> package the access is wrapped into the function 
                    <monospace>gorth</monospace>. The function works very similarly to 
                    <monospace>gconvert</monospace>, only in this case the user has to define corresponding 
                    <monospace>source_organism</monospace> and 
                    <monospace>target_organism</monospace>. For example, the following code maps the detected up-regulated gene identifiers to corresponding mice genes.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">mouse_genes = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">gorth</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(up), </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">source_organism = </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"hsapiens"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">                        target_organism = </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"mmusculus"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)
</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">head</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(mouse_genes)</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">##   input_number           input      input_ensg ensg_number ortholog_name
## 1            1 ENSG00000035664 ENSG00000035664       1.1.1         Dapk2
## 2            2 ENSG00000046653 ENSG00000046653       2.1.1         Gpm6b
## 3            3 ENSG00000060718 ENSG00000060718       3.1.1       Col11a1
## 4            4 ENSG00000068383 ENSG00000068383       4.1.1        Inpp5a
## 5            5 ENSG00000068831 ENSG00000068831       5.1.1       Rasgrp2
## 6            6 ENSG00000070404 ENSG00000070404       6.1.1         Fstl3
##        ortholog_ensg
## 1 ENSMUSG00000032380
## 2 ENSMUSG00000031342
## 3 ENSMUSG00000027966
## 4 ENSMUSG00000025477
## 5 ENSMUSG00000032946
## 6 ENSMUSG00000020325
##                                                                  description
## 1      death-associated protein kinase 2 [Source:MGI Symbol;Acc:MGI:1341297]
## 2                        glycoprotein m6b [Source:MGI Symbol;Acc:MGI:107672]
## 3               collagen, type XI, alpha 1 [Source:MGI Symbol;Acc:MGI:88446]
## 4 inositol polyphosphate-5-phosphatase A [Source:MGI Symbol;Acc:MGI:2686961]
## 5        RAS, guanyl releasing protein 2 [Source:MGI Symbol;Acc:MGI:1333849]
## 6                     follistatin-like 3 [Source:MGI Symbol;Acc:MGI:1890391]</styled-content>
                    </preformat>
                </p>
                <p>This function returns a data frame that includes the input and target identifiers, and also the ortholog names and descriptions.</p>
            </sec>
            <sec>
                <title>Integrating with external tools for visualisations</title>
                <p>
                    <bold>
                        <italic toggle="yes">Plots from 
                            <monospace>enrichplot</monospace>
                        </italic>
                    </bold>. Since the output of the 
                    <monospace>gost</monospace> function is stored in a standard data frame format, it is easy to alter it for custom visualisations using 
                    <monospace>ggplot2</monospace>, 
                    <monospace>enrichplot</monospace>
                    <sup>
                        <xref ref-type="bibr" rid="ref-28">28</xref>
                    </sup>, 
                    <monospace>clusterProfiler</monospace>
                    <sup>
                        <xref ref-type="bibr" rid="ref-10">10</xref>
                    </sup> or any other similar package. Here we demonstrate how to convert the results from multiple gene lists into 
                    <monospace>enrichResult</monospace> and 
                    <monospace>compareClusterResult</monospace> objects required by the visualisations methods implemented in the 
                    <monospace>enrichplot</monospace> package. Similar approach also works for a single query.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5902;"># loading the additional packages</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(clusterProfiler)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(enrichplot)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">library</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(DOSE) </styled-content>
                        <styled-content style="font-size:15px;color:#8F5903;"># needed to convert to enrichResult object</styled-content>



                        <styled-content style="font-size:15px;color:#000000;">up_names = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">gconvert</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(up))</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">down_names = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">gconvert</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(down))</styled-content>


                        <styled-content style="font-size:15px;color:#8F5903;"># enrichment analysis using gene names</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">multi_gp = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">list</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"up-regulated" </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">= up_names</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">name,
</styled-content>          
                        <styled-content style="font-size:15px;color:#4F9905;">"down-regulated" </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">= down_names</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">name), </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">multi_query = </styled-content>
                        <styled-content style="font-size:15px;color:#8F5903;">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">evcodes =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903;">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>


                        <styled-content style="font-size:15px;color:#8F5903;"># modify the g:Profiler data frame</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">gp_mod = multi_gp</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">result[,</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"query"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"source"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"term_id"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content>
                                
                        <styled-content style="font-size:15px;color:#4F9905;">"term_name"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">p_value"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905;">query_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                                
                        <styled-content style="font-size:15px;color:#4F9905;">"intersection_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"term_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                                
                        <styled-content style="font-size:15px;color:#4F9905;">"effective_domain_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"intersection"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)]</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">
gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">GeneRatio = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">paste0</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">intersection_size, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;"> "/"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">query_size)</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000;">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">BgRatio = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">paste0</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">term_size, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"/"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">effective_domain_size)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(gp_mod) = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">c</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"Cluster"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"Category"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"ID"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"Description"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"p.adjust"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                    
                        <styled-content style="font-size:15px;color:#4F9905;">"query_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"Count"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"term_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"effective_domain_size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                    
                        <styled-content style="font-size:15px;color:#4F9905;">"geneID"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"GeneRatio"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"BgRatio"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">geneID = </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">gsub</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">","</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"/"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">geneID)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87;">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">gp_mod) = gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00;">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">ID</styled-content>


                        <styled-content style="font-size:15px;color:#8F5902;"># define as compareClusterResult object</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">gp_mod_cluster =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">new</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"compareClusterResult"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">compareClusterResult = </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">gp_mod)</styled-content>


                        <styled-content style="font-size:15px;color:#8F5902;"># define as enrichResult object</styled-content>

                        <styled-content style="font-size:15px;color:#000000;">gp_mod_enrich  =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">new</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"enrichResult"</styled-content>, 
                        <styled-content style="font-size:15px;color:#214A87;">result = </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">gp_mod)</styled-content>
                    </preformat>
                </p>
                <p>After creating an instance of the 
                    <monospace>enrichResult</monospace> or 
                    <monospace>compareClusterResult</monospace> (for multiple gene lists) class from the gost result, this object can be used as an input for the visualisation functions from 
                    <monospace>enrichplot</monospace> and 
                    <monospace>clusterProfiler</monospace> that are suitable for over-representation analysis such as 
                    <monospace>dotplot</monospace>, 
                    <monospace>barplot</monospace>, 
                    <monospace>cnetplot</monospace>, 
                    <monospace>upsetplot</monospace>, 
                    <monospace>emapplot</monospace>, etc. 
                    <xref ref-type="fig" rid="f4">Figure 4</xref> shows the dot plot for results in a 
                    <monospace>compareClusterResult</monospace> object.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">

                        <styled-content style="font-size:15px;color:#214A87;">enrichplot::dotplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(gp_mod_cluster)</styled-content>
                    </preformat>
                </p>
                <fig fig-type="figure" id="f4" orientation="portrait" position="float">
                    <label>Figure 4. </label>
                    <caption>
                        <title>Dot plot of g:Profiler enrichment results using 
                            <italic toggle="yes">enrichplot</italic>.</title>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/27533/f078f444-2600-412e-9ca0-8f5354fde249_figure4.gif"/>
                </fig>
                <p>As these plots are 
                    <monospace>ggplot</monospace> objects, using 
                    <monospace>ggplot2</monospace> layers allows further customisation of the visualisations as shown in 
                    <xref ref-type="fig" rid="f5">Figure 5</xref>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87;">barplot</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(gp_mod_enrich,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87;">showCategory =</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">40</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">, </styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">font.size =</styled-content> 
                        <styled-content style="font-size:15px;color:#0000CF">16</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">+</styled-content> 
  
                        <styled-content style="font-size:15px;color:#000000;">ggplot2</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">::</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">facet_grid</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">
                            <sup>~</sup>
                        </styled-content>
                        <styled-content style="font-size:15px;color:#000000;">Cluster)</styled-content> 
                        <styled-content style="font-size:15px;color:#CF5C00">+</styled-content>
  
                        <styled-content style="font-size:15px;color:#000000;">ggplot2</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">::</styled-content>
                        <styled-content style="font-size:15px;color:#214A87;">ylab</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905;">"Intersection size"</styled-content>
                        <styled-content style="font-size:15px;color:#000000;">)</styled-content>
                    </preformat>
                </p>
                <fig fig-type="figure" id="f5" orientation="portrait" position="float">
                    <label>Figure 5. </label>
                    <caption>
                        <title>Bar plots of g:Profiler enrichment results using 
                            <italic toggle="yes">enrichplot</italic>.</title>
                    </caption>
                    <graphic orientation="portrait" position="float" xlink:href="https://f1000research-files.f1000.com/manuscripts/27533/f078f444-2600-412e-9ca0-8f5354fde249_figure5.gif"/>
                </fig>
                <p>In order to use the 
                    <monospace>browseKEGG</monospace> function to open KEGG pathway browser, the pathway IDs should be transformed according to the organism. In case of human pathways, the prefix 
                    <italic toggle="yes">KEGG</italic> should be replaced with 
                    <italic toggle="yes">hsa</italic>. The full list of organisms and their prefixes is available from the 
                    <ext-link ext-link-type="uri" xlink:href="https://www.kegg.jp/kegg/catalog/org_list.html">KEGG home page</ext-link>.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">ID[gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">Category</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">==</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"KEGG"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">] =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gsub</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"KEGG:"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"hsa"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content>
	                                       
                        <styled-content style="font-size:15px;color:#000000">gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">ID[gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">Category</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">==</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"KEGG"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">],</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">""</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gp_mod) = gp_mod</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">ID</styled-content>

                        <styled-content style="font-size:15px;color:#8F5903"># define as enrichResult object</styled-content>

                        <styled-content style="font-size:15px;color:#000000">gp_mod_enrich =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">new</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"enrichResult"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">result =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">gp_mod)</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">clusterProfiler::browseKEGG</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gp_mod_enrich,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">pathID =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"hsa04750"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
                <p>This command will open the KEGG browser page for the pathway 
                    <ext-link ext-link-type="uri" xlink:href="https://www.kegg.jp/kegg-bin/show_pathway?hsa04750/PLA2G4A/PIK3R3/ADCY8/ADCY1/BDKRB2">Inflammatory mediator regulation of TRP channels</ext-link>.</p>
            </sec>
            <sec>
                <title>Using g:Profiler results in EnricmentMap</title>
                <p>The functional enrichment results from the 
                    <monospace>gost</monospace> function can be modified in order to save them into a Generic Enrichment Map (GEM) file format that is compatible with the EnrichmentMap application in Cytoscape
                    <sup>
                        <xref ref-type="bibr" rid="ref-29">29</xref>
                    </sup>. This app helps to visualise enrichment results as a highly customisable network where nodes represent enriched terms and edges represent their mutual overlap.</p>
                <p>In case of a single query, the GEM file can be generated with the following lines of code. The parameter value 
                    <monospace>evcodes = TRUE</monospace> is important for obtaining the intersection column with corresponding gene IDs in the query that are annotated to the term.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">gostres =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">gost</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">query = list</styled-content>(
                        <styled-content style="font-size:15px;color:#4F9905">"up-regulated"</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">=</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">row.names</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(up)),</styled-content>
                  
                        <styled-content style="font-size:15px;color:#214A87">evcodes =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">TRUE</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">multi_query =</styled-content> 
                        <styled-content style="font-size:15px;color:#8F5903">FALSE</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content>
                  
                        <styled-content style="font-size:15px;color:#214A87">sources = c</styled-content>(
                        <styled-content style="font-size:15px;color:#4F9905">"GO"</styled-content>, 
                        <styled-content style="font-size:15px;color:#4F9905">"REAC"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"MIRNA"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"CORUM"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"HP"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"HPA"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"WP"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">))</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">gem = gostres</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">result[,</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">c</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"term_id"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"term_name"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"p_value"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"intersection"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)]</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">colnames</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gem) =</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">c</styled-content>(
                        <styled-content style="font-size:15px;color:#4F9905">"GO.ID"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"Description"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"p.Val"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"Genes"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
gem
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">FDR = gem</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">p.Val
gem</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">Phenotype =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"+1"</styled-content>

                        <styled-content style="font-size:15px;color:#000000">gem = gem[,</styled-content>
                        <styled-content style="font-size:15px;color:#214A87">c</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"GO.ID"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"Description"</styled-content>, 
                        <styled-content style="font-size:15px;color:#4F9905">"p.Val"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"FDR"</styled-content>, 
                        <styled-content style="font-size:15px;color:#4F9905">"Phenotype"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"Genes"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)]</styled-content>

                        <styled-content style="font-size:15px;color:#8F5903"># saving the GEM file</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">write.table</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(gem,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">file =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"gProfiler_gem.txt"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">sep =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"\t"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">quote =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">F,</styled-content> 
                        <styled-content style="font-size:15px;color:#214A87">row.names =</styled-content> 
                        <styled-content style="font-size:15px;color:#000000">F)</styled-content>
                    </preformat>
                </p>
                <p>In the EnrichmentMap the user can set the &#x201c;Analysis Type&#x201d; parameter as 
                    <italic toggle="yes">Generic/gProfiler</italic> and upload the required files: GEM file with enrichment results (input field &#x201c;Enrichments&#x201d;) and GMT file that defines the annotations (input field &#x201c;GMT&#x201d;). Both of these files have to include gene identifiers from the same namespace for the EnrichmentMap to work.</p>
                <p>The GMT files used by g:Profiler are downloadable from the web page under the &#x201c;Data sources&#x201d; section. Only the GMT files of KEGG and Transfac are not available as the sharing is restricted by data source licenses.</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># download GMT file for these results</styled-content>

                        <styled-content style="font-size:15px;color:#214A87">download.file</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
  
                        <styled-content style="font-size:15px;color:#214A87">url =</styled-content> 
                        <styled-content style="font-size:15px;color:#4F9905">"http://biit.cs.ut.ee/gprofiler/static/gprofiler_full_hsapiens.ENSG.gmt"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
            </sec>
            <sec>
                <title>Reproducibility</title>
                <p>The demand for better reproducibility of computational analyses is constantly growing
                    <sup>
                        <xref ref-type="bibr" rid="ref-30">30</xref>
                    </sup>. In bioinformatics analysis, many different tools and databases are combined in order to detect relevant findings. This adds an extra layer of complexity which often leads to reproducibility issues. Because of this, since 2011 all the past releases of g:Profiler are maintained and kept usable to ensure reproducibility and transparency of enrichment analysis results. The users can cite the exact extract of the annotation database and the state of the implementation by stating the version number in their research. In 
                    <bold>gprofiler2</bold>, this is available, along with other query information, from the metadata of 
                    <monospace>gost</monospace> enrichment results:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#8F5903"># get g:Profiler version</styled-content>

                        <styled-content style="font-size:15px;color:#000000">multi_gp</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">meta</styled-content>
                        <styled-content style="font-size:15px;color:#CF5C00">$</styled-content>
                        <styled-content style="font-size:15px;color:#000000">version</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">## [1] "e99_eg46_p14_f929183"</styled-content>
                    </preformat>
                </p>
                <p>The version number notes that the results were obtained using the state of the database that includes data from Ensembl release 99, Ensembl Genomes release 46 and WormBase ParaSite release 14, and the g:Profiler codebase with the Git revision number f929183. The version number together with the details of applied parameters (available from 
                    <monospace>multi_gp$meta$query_metadata</monospace>) is enough to reproduce the results.</p>
                <p>In order to reproduce the results obtained with a specific version, one can change the data version using the function 
                    <monospace>set_base_url</monospace>:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">set_base_url</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"http://biit.cs.ut.ee/gprofiler_archive3/e99_eg46_p14"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
                <p>All the past versions and their URLs are available at 
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler/page/archives">https://biit.cs.ut.ee/gprofiler/page/archives</ext-link>. 
                    <bold>gprofiler2</bold> works with versions e94_eg41_p11 and higher, earlier versions are still accessible using the deprecated R package 
                    <bold>gProfileR</bold>.</p>
                <p>Function 
                    <monospace>set_base_url</monospace> also gives access to the most recent developments and data updates of g:Profiler available at the Beta version:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">set_base_url</styled-content>
                        <styled-content style="font-size:15px;color:#000000">(</styled-content>
                        <styled-content style="font-size:15px;color:#4F9905">"http://biit.cs.ut.ee/gprofiler_beta"</styled-content>
                        <styled-content style="font-size:15px;color:#000000">)</styled-content>
                    </preformat>
                </p>
                <p>In order to determine the current g:Profiler URL used for the analysis one can use the function 
                    <monospace>get_base_url</monospace>:</p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#214A87">get_base_url</styled-content>
                        <styled-content style="font-size:15px;color:#000000">()</styled-content>
                    </preformat>
                </p>
                <p>
                    <preformat orientation="portrait" position="float" preformat-type="computer code" xml:space="preserve">
                        <styled-content style="font-size:15px;color:#000000">## [1] "http://biit.cs.ut.ee/gprofiler_beta"</styled-content>
                    </preformat>
                </p>
            </sec>
        </sec>
        <sec sec-type="conclusions">
            <title>Conclusion</title>
            <p>We presented the 
                <bold>gprofiler2</bold> R package
                <sup>
                    <xref ref-type="bibr" rid="ref-8">8</xref>
                </sup> that is one of the programmatic access points to the widely used 
                <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler">g:Profiler web toolset</ext-link> for gene list functional enrichment analysis and identifier conversion. This package enables effective integration of g:Profiler functionalities in various bioinformatics pipelines and tools written in R without the need of searching and downloading several data files. The suite of functions in 
                <bold>gprofiler2</bold> are implemented with the importance of analysis reproducibility and interoperability with other tools in mind. In addition, the package provides a way to easily create or customise the enrichment plots using the existing visualisation packages in R. For the researchers who prefer to perform their computational analysis pipelines through the web we have wrapped the 
                <bold>gprofiler2</bold> package as a tool for the Galaxy platform
                <sup>
                    <xref ref-type="bibr" rid="ref-31">31</xref>
                </sup>.</p>
            <p>It is important to note that using 
                <bold>gprofiler2</bold> for functional enrichment analysis is not limited to the use case of differential gene expression analysis. The package is useful whenever there is a set of genes/proteins/SNPs the user wants to characterise with biological functions or to convert to another namespace.</p>
        </sec>
        <sec>
            <title>Data availability</title>
            <p>All data underlying the results are available as part of the article and no additional source data are required.</p>
        </sec>
        <sec>
            <title>Software availability</title>
            <p>
                <bold>R package gprofiler2 is available from CRAN:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/package=gprofiler2">https://cran.r-project.org/package=gprofiler2</ext-link>.</p>
            <p>
                <bold>Source code available from:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://gl.cs.ut.ee/biit/r-gprofiler2">https://gl.cs.ut.ee/biit/r-gprofiler2</ext-link>.</p>
            <p>
                <bold>Archived source code at time of publication:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.5281/zenodo.3919795">https://doi.org/10.5281/zenodo.3919795</ext-link>
                <sup>
                    <xref ref-type="bibr" rid="ref-8">8</xref>
                </sup>.</p>
            <p>
                <bold>License:</bold> 
                <ext-link ext-link-type="uri" xlink:href="https://gl.cs.ut.ee/biit/r-gprofiler2/blob/master/LICENSE">GNU General Public License v2.0</ext-link>.</p>
        </sec>
    </body>
    <back>
        <sec>
            <title>Author information</title>
            <p>LK, UR and IK implemented the package. LK and HP wrote the article. HP and JV supervised the development.</p>
        </sec>
        <ack>
            <title>Acknowledgments</title>
            <p>We would like to thank Kaur Alasoo for critically reading the manuscript.</p>
        </ack>
        <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>Reimand</surname>
                            <given-names>J</given-names>
                        </name>

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

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

                        <etal/>
</person-group>:
                    <article-title>g:profiler - a web-based toolset for functional profiling of gene lists from large-scale experiments.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2007</year>;<volume>35</volume>(<issue>suppl_ 2</issue>):<fpage>W193</fpage>&#x2013;<lpage>W200</lpage>.
                    <pub-id pub-id-type="pmid">17478515</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkm226</pub-id>
                    <pub-id pub-id-type="pmcid">1933153</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>Raudvere</surname>
                            <given-names>U</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Kuzmin</surname>
                            <given-names>I</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>g:profiler: a web server for functional enrichment analysis and conversions of gene lists (2019 update).</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2019</year>;<volume>47</volume>(<issue>W1</issue>):<fpage>W191</fpage>&#x2013;<lpage>W198</lpage>.
                    <pub-id pub-id-type="pmid">31066453</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkz369</pub-id>
                    <pub-id pub-id-type="pmcid">6602461</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-3">
                <label>3</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

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

                        <name name-style="western">
                            <surname>Ball</surname>
                            <given-names>CA</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Blake</surname>
                            <given-names>JA</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Gene Ontology: Tool for the Unification of Biology. The Gene Ontology Consortium.</article-title>
                    <source>

                        <italic toggle="yes">Nat Genet.</italic>
</source>
                    <year>2000</year>;<volume>25</volume>(<issue>1</issue>):<fpage>25</fpage>&#x2013;<lpage>29</lpage>.
                    <pub-id pub-id-type="pmid">10802651</pub-id>
                    <pub-id pub-id-type="doi">10.1038/75556</pub-id>
                    <pub-id pub-id-type="pmcid">3037419</pub-id>
                </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>Kanehisa</surname>
                            <given-names>M</given-names>
                        </name>

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

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

                        <etal/>
</person-group>:
                    <article-title>New approach for understanding genome variations in kegg.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2019</year>;<volume>47</volume>(<issue>D1</issue>):<fpage>D590</fpage>&#x2013;<lpage>D595</lpage>.
                    <pub-id pub-id-type="pmid">30321428</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gky962</pub-id>
                    <pub-id pub-id-type="pmcid">6324070</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>Fabregat</surname>
                            <given-names>A</given-names>
                        </name>

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

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

                        <etal/>
</person-group>:
                    <article-title>The reactome pathway knowledgebase.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2018</year>;<volume>46</volume>(<issue>D1</issue>):<fpage>D649</fpage>&#x2013;<lpage>D655</lpage>.
                    <pub-id pub-id-type="pmid">29145629</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkx1132</pub-id>
                    <pub-id pub-id-type="pmcid">5753187</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-6">
                <label>6</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Yates</surname>
                            <given-names>AD</given-names>
                        </name>

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

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

                        <etal/>
</person-group>:
                    <article-title>Ensembl 2020.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2020</year>;<volume>48</volume>(<issue>D1</issue>):<fpage>D682</fpage>&#x2013;<lpage>D688</lpage>.
                    <pub-id pub-id-type="pmid">31691826</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkz966</pub-id>
                    <pub-id pub-id-type="pmcid">7145704</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-7">
                <label>7</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Howe</surname>
                            <given-names>KL</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Bolt</surname>
                            <given-names>BJ</given-names>
                        </name>

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

                        <etal/>
</person-group>:
                    <article-title>Wormbase parasite- a comprehensive resource for helminth genomics.</article-title>
                    <source>

                        <italic toggle="yes">Mol Biochem Parasitol.</italic>
</source>
                    <year>2017</year>;<volume>215</volume>:<fpage>2</fpage>&#x2013;<lpage>10</lpage>.
                    <pub-id pub-id-type="pmid">27899279</pub-id>
                    <pub-id pub-id-type="doi">10.1016/j.molbiopara.2016.11.005</pub-id>
                    <pub-id pub-id-type="pmcid">5486357</pub-id>
                </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>Kolberg</surname>
                            <given-names>L</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Raudvere</surname>
                            <given-names>U</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Kuzmin</surname>
                            <given-names>I</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>gprofiler2 R package (version 0.1.9)</article-title>.<year>2020</year>.
                    <ext-link ext-link-type="uri" xlink:href="http://www.doi.org/10.5281/zenodo.3919795">http://www.doi.org/10.5281/zenodo.3919795</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-9">
                <label>9</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Alexa</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Rahnenfuhrer</surname>
                            <given-names>J</given-names>
                        </name>
</person-group>:
                    <article-title>topGO: Enrichment Analysis for Gene Ontology.</article-title>R package version 2.38.1.<year>2019</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://rdrr.io/bioc/topGO/">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>Yu</surname>
                            <given-names>G</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Wang</surname>
                            <given-names>LG</given-names>
                        </name>

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

                        <etal/>
</person-group>:
                    <article-title>clusterProfiler: an R Package for Comparing Biological Themes Among Gene Clusters.</article-title>
                    <source>

                        <italic toggle="yes">OMICS.</italic>
</source>
                    <year>2012</year>;<volume>16</volume>(<issue>5</issue>):<fpage>284</fpage>&#x2013;<lpage>287</lpage>.
                    <pub-id pub-id-type="pmid">22455463</pub-id>
                    <pub-id pub-id-type="doi">10.1089/omi.2011.0118</pub-id>
                    <pub-id pub-id-type="pmcid">3339379</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-11">
                <label>11</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Uyar</surname>
                            <given-names>B</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Yusuf</surname>
                            <given-names>D</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Wurmus</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Rcas: an rna centric annotation system for transcriptome-wide regions of interest.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2017</year>;<volume>45</volume>(<issue>10</issue>):<fpage>e91</fpage>.
                    <pub-id pub-id-type="pmid">28334930</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkx120</pub-id>
                    <pub-id pub-id-type="pmcid">5449606</pub-id>
                </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>Sokolowski</surname>
                            <given-names>D</given-names>
                        </name>

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

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

                        <etal/>
</person-group>:
                    <article-title>scMappR: Single Cell Mapper.</article-title>R package version 0.1.1.<year>2020</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://CRAN.R-project.org/package=scMappR">Reference Source</ext-link>
                </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>Valdeolivas</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Turei</surname>
                            <given-names>D</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Gabor</surname>
                            <given-names>A</given-names>
                        </name>
</person-group>:
                    <article-title>Omnipathr: Import omnipath network.</article-title>
                    <source>

                        <italic toggle="yes">Bioconductor Package.</italic>
</source>
                    <year>2019</year>.
                    <pub-id pub-id-type="doi">10.18129/B9.bioc.OmnipathR</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>Lang</surname>
                            <given-names>DT</given-names>
                        </name>
</person-group>:
                    <article-title>RCurl: General Network (HTTP/FTP/...) Client Interface for R</article-title>.<year>2020</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://cran.r-project.org/web/packages/RCurl/index.html">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-15">
                <label>15</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Wickham</surname>
                            <given-names>H</given-names>
                        </name>
</person-group>:
                    <article-title>ggplot2: Elegant Graphics for Data Analysis.</article-title>Springer-Verlag New York.<year>2016</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://ggplot2.tidyverse.org">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-16">
                <label>16</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Sievert</surname>
                            <given-names>C</given-names>
                        </name>
</person-group>:
                    <article-title>Interactive Web-Based Data Visualization with R plotly, and shiny.</article-title>Chapman and Hall/CRC.<year>2020</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://plotly-r.com">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-17">
                <label>17</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Slenter</surname>
                            <given-names>DN</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Hanspers</surname>
                            <given-names>K</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Wikipathways: a multifaceted pathway database bridging metabolomics to other omics research.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2018</year>;<volume>46</volume>(<issue>D1</issue>):<fpage>D661</fpage>&#x2013;<lpage>D667</lpage>.
                    <pub-id pub-id-type="pmid">29136241</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkx1064</pub-id>
                    <pub-id pub-id-type="pmcid">5753270</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-18">
                <label>18</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Chou</surname>
                            <given-names>CH</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Yang</surname>
                            <given-names>CD</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>mirtarbase update 2018: a resource for experimentally validated microrna-target interactions.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2018</year>;<volume>46</volume>(<issue>D1</issue>):<fpage>D296</fpage>&#x2013;<lpage>D302</lpage>.
                    <pub-id pub-id-type="pmid">29126174</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkx1067</pub-id>
                    <pub-id pub-id-type="pmcid">5753222</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-19">
                <label>19</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Matys</surname>
                            <given-names>V</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Kel-Margoulis</surname>
                            <given-names>OV</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Fricke</surname>
                            <given-names>E</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>TRANSFAC&#x00ae; and its module TRANSCompel&#x00ae;: transcriptional gene regulation in eukaryotes.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2006</year>;<volume>34</volume>(<issue>Database issue</issue>):<fpage>D108</fpage>&#x2013;<lpage>D110</lpage>.
                    <pub-id pub-id-type="pmid">16381825</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkj143</pub-id>
                    <pub-id pub-id-type="pmcid">1347505</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-20">
                <label>20</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Uhl&#x00e9;n</surname>
                            <given-names>M</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Hallstr&#x00f6;m</surname>
                            <given-names>BM</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Proteomics. Tissue-based Map of the Human Proteome.</article-title>
                    <source>

                        <italic toggle="yes">Science.</italic>
</source>
                    <year>2015</year>;<volume>347</volume>(<issue>6220</issue>):<fpage>1260419</fpage>.
                    <pub-id pub-id-type="pmid">25613900</pub-id>
                    <pub-id pub-id-type="doi">10.1126/science.1260419</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-21">
                <label>21</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Ruepp</surname>
                            <given-names>A</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Waegele</surname>
                            <given-names>B</given-names>
                        </name>

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

                        <etal/>
</person-group>:
                    <article-title>Corum: the comprehensive resource of mammalian protein complexes&#x2014; 2009.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2010</year>;<volume>38</volume>(<issue>suppl_ 1</issue>):<fpage>D497</fpage>&#x2013;<lpage>D501</lpage>.
                    <pub-id pub-id-type="pmid">19884131</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkp914</pub-id>
                    <pub-id pub-id-type="pmcid">2808912</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-22">
                <label>22</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>K&#x00f6;hler</surname>
                            <given-names>S</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Vasilevsky</surname>
                            <given-names>N</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Expansion of the human phenotype ontology (hpo) knowledge base and resources.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2019</year>;<volume>47</volume>(<issue>D1</issue>):<fpage>D1018</fpage>&#x2013;<lpage>D1027</lpage>.
                    <pub-id pub-id-type="pmid">30476213</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gky1105</pub-id>
                    <pub-id pub-id-type="pmcid">6324074</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-23">
                <label>23</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Love</surname>
                            <given-names>MI</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Kim</surname>
                            <given-names>V</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title> RNA-Seq workflow: gene-level exploratory analysis and differential expression [version 1; peer review: 2 approved].</article-title>
                    <source>

                        <italic toggle="yes">F1000Res.</italic>
</source>
                    <year>2015</year>;<volume>4</volume>:<fpage>1070</fpage>.
                    <pub-id pub-id-type="pmid">26674615</pub-id>
                    <pub-id pub-id-type="doi">10.12688/f1000research.7035.1</pub-id>
                    <pub-id pub-id-type="pmcid">4670015</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-24">
                <label>24</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Love</surname>
                            <given-names>MI</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Anders</surname>
                            <given-names>S</given-names>
                        </name>
</person-group>:
                    <article-title>Moderated estimation of fold change and dispersion for rna-seq data with deseq2.</article-title>
                    <source>

                        <italic toggle="yes">Genome Biol.</italic>
</source>
                    <year>2014</year>;<volume>15</volume>(<issue>12</issue>):<fpage>550</fpage>.
                    <pub-id pub-id-type="pmid">25516281</pub-id>
                    <pub-id pub-id-type="doi">10.1186/s13059-014-0550-8</pub-id>
                    <pub-id pub-id-type="pmcid">4302049</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-25">
                <label>25</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Himes</surname>
                            <given-names>BE</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Jiang</surname>
                            <given-names>X</given-names>
                        </name>

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

                        <etal/>
</person-group>:
                    <article-title>RNA-Seq Transcriptome Profiling Identifies 
                        <italic toggle="yes">CRISPLD2</italic> as a Glucocorticoid Responsive Gene that Modulates Cytokine Function in Airway Smooth Muscle Cells.</article-title>
                    <source>

                        <italic toggle="yes">PLoS  One.</italic>
</source>
                    <year>2014</year>;<volume>9</volume>(<issue>6</issue>):<fpage>e99625</fpage>.
                    <pub-id pub-id-type="pmid">24926665</pub-id>
                    <pub-id pub-id-type="doi">10.1371/journal.pone.0099625</pub-id>
                    <pub-id pub-id-type="pmcid">4057123</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-26">
                <label>26</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Subramanian</surname>
                            <given-names>A</given-names>
                        </name>

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

                        <name name-style="western">
                            <surname>Mootha</surname>
                            <given-names>VK</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Gene set enrichment analysis: a knowledge- based approach for interpreting genome-wide expression profiles.</article-title>
                    <source>

                        <italic toggle="yes">Proc Natl Acad Sci U S A.</italic>
</source>
                    <year>2005</year>;<volume>102</volume>(<issue>43</issue>):<fpage>15545</fpage>&#x2013;<lpage>15550</lpage>.
                    <pub-id pub-id-type="pmid">16199517</pub-id>
                    <pub-id pub-id-type="doi">10.1073/pnas.0506580102</pub-id>
                    <pub-id pub-id-type="pmcid">1239896</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-27">
                <label>27</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Pi&#x00f1;ero</surname>
                            <given-names>J</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Ram&#x00ed;rez-Anguita</surname>
                            <given-names>JM</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Sa&#x00fc;ch-Pitarch</surname>
                            <given-names>J</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>The disgenet knowledge platform for disease genomics: 2019 update.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2020</year>;<volume>48</volume>(<issue>D1</issue>):<fpage>D845</fpage>&#x2013;<lpage>D855</lpage>.
                    <pub-id pub-id-type="pmid">31680165</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gkz1021</pub-id>
                    <pub-id pub-id-type="pmcid">7145631</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-28">
                <label>28</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Yu</surname>
                            <given-names>S</given-names>
                        </name>
</person-group>:
                    <article-title>enrichplot: Visualization of Functional Enrichment Result</article-title>.<year>2019</year>.
                    <ext-link ext-link-type="uri" xlink:href="https://rdrr.io/bioc/enrichplot/">Reference Source</ext-link>
                </mixed-citation>
            </ref>
            <ref id="ref-29">
                <label>29</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Merico</surname>
                            <given-names>D</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Isserlin</surname>
                            <given-names>R</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Stueker</surname>
                            <given-names>O</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Enrichment map: a network-based method for gene-set enrichment visualization and interpretation.</article-title>
                    <source>

                        <italic toggle="yes">PLoS One.</italic>
</source>
                    <year>2010</year>;<volume>5</volume>(<issue>11</issue>):<fpage>e13984</fpage>.
                    <pub-id pub-id-type="pmid">21085593</pub-id>
                    <pub-id pub-id-type="doi">10.1371/journal.pone.0013984</pub-id>
                    <pub-id pub-id-type="pmcid">2981572</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-30">
                <label>30</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Kulkarni</surname>
                            <given-names>N</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Alessandr&#x00ec;</surname>
                            <given-names>L</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Panero</surname>
                            <given-names>R</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>Reproducible bioinformatics project: a community for reproducible bioinformatics analysis pipelines.</article-title>
                    <source>

                        <italic toggle="yes">BMC Bioinformatics.</italic>
</source>
                    <year>2018</year>;<volume>19</volume>(<issue>Suppl 10</issue>):<fpage>349</fpage>.
                    <pub-id pub-id-type="pmid">30367595</pub-id>
                    <pub-id pub-id-type="doi">10.1186/s12859-018-2296-x </pub-id>
                    <pub-id pub-id-type="pmcid">6191970</pub-id>
                </mixed-citation>
            </ref>
            <ref id="ref-31">
                <label>31</label>
                <mixed-citation publication-type="journal">
                    <person-group person-group-type="author">

                        <name name-style="western">
                            <surname>Afgan</surname>
                            <given-names>E</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Baker</surname>
                            <given-names>D</given-names>
                        </name>

                        <name name-style="western">
                            <surname>Batut</surname>
                            <given-names>B</given-names>
                        </name>

                        <etal/>
</person-group>:
                    <article-title>The galaxy platform for accessible, reproducible and collaborative biomedical analyses: 2018 update.</article-title>
                    <source>

                        <italic toggle="yes">Nucleic Acids Res.</italic>
</source>
                    <year>2018</year>;<volume>46</volume>(<issue>W1</issue>):<fpage>W537</fpage>&#x2013;<lpage>W544</lpage>.
                    <pub-id pub-id-type="pmid">29790989</pub-id>
                    <pub-id pub-id-type="doi">10.1093/nar/gky379</pub-id>
                    <pub-id pub-id-type="pmcid">6030816</pub-id>
                </mixed-citation>
            </ref>
        </ref-list>
    </back>
    <sub-article article-type="reviewer-report" id="report67235">
        <front-stub>
            <article-id pub-id-type="doi">10.5256/f1000research.27533.r67235</article-id>
            <title-group>
                <article-title>Reviewer response for version 1</article-title>
            </title-group>
            <contrib-group>
                <contrib contrib-type="author">
                    <name>
                        <surname>Willighagen</surname>
                        <given-names>Egon L.</given-names>
                    </name>
                    <xref ref-type="aff" rid="r67235a1">1</xref>
                    <role>Referee</role>
                    <uri content-type="orcid">https://orcid.org/0000-0001-7542-0286</uri>
                </contrib>
                <aff id="r67235a1">
                    <label>1</label>Department of Bioinformatics-BiGCaT, NUTRIM, Maastricht University, Maastricht, The Netherlands</aff>
            </contrib-group>
            <author-notes>
                <fn fn-type="conflict">
                    <p>
                        <bold>Competing interests: </bold>I am (co-)author if similar analysis R packages and webservice (BridgeDbR, rWikiPathways, BridgeDb webservice, WikiPathways). There is no active collaboration, but we are member of ELIXIR and BridgeDb is another Recommended Interoperability Resource. These interests are not direct and the final decision on this paper does not affect our own research.</p>
                </fn>
            </author-notes>
            <pub-date pub-type="epub">
                <day>1</day>
                <month>9</month>
                <year>2020</year>
            </pub-date>
            <permissions>
                <copyright-statement>Copyright: &#x00a9; 2020 Willighagen EL</copyright-statement>
                <copyright-year>2020</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="relatedArticleReport67235" related-article-type="peer-reviewed-article" xlink:href="10.12688/f1000research.24956.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 article describes an R package (gprofiler2) that wraps around the REST interface of a g:Profiler web service. The paper outlines the method used to access the API, and explains that providing an R API makes it easier to integrate with the functionality of other R packages. The description of the software is sufficient and complementary to the source code repository (and backed by a Zenodo archive). The examples given nicely demonstrate the functionality and I tried many of them in rstudio (some comments below). The visualisation, as is most functionality, is inherited from the website, and as such benefits from a larger user base.</p>
            <p> </p>
            <p> The choice of the combination of having the code base under version control, archiving on Zenodo, and distribution via CRAN shows high-quality standards. A test suite, unfortunately, is missing, and adding it is recommended. Furthermore, it could be interesting to explore curl as a replacement of RCurl, as I had trouble with SSL certificates with the RCurl package on Windows (but not essential).</p>
            <p> </p>
            <p> I can build the package from source. When applying a regular CRAN check on the package I get a couple of warnings and notes, but none that are affecting this paper. I left two source code suggestions: 
                <ext-link ext-link-type="uri" xlink:href="https://github.com/egonw/r-gprofiler2/pull/1">https://github.com/egonw/r-gprofiler2/pull/1</ext-link>.</p>
            <p> </p>
            <p> I also like to note that I found out that the interactive plot does not seem to work in RStudio: I only get an empty window.</p>
            <p> </p>
            <p> Regarding the content of the article, I have the following questions. First, the argument that the computation is done on a central server as an advantage depends on the use case and is not generally true. For example, it requires all information to be shared with the server, which is not possible for everyone that may be interested in the server. As such, one could imagine having a Docker with the webservice and method parameters in the R package to interact with servers with a different domain or IP address. This is, however, just a future feature request.</p>
            <p> </p>
            <p> Second, regarding the data used in the functionality, I have three questions. How is the ordering of pathways in for KEGG, Reactome, and WikiPathways defined? For Reactome, I can imagine their own hierarchy is used. What about KEGG and WikiPathways? Is the Pathway Ontology used for the latter? A similar question applies when using custom GMT files? The ordering is then defined by the other in the file, I assume? Finally, in the Reproducibility section, but it is not clear to me why version information is not given for the data GO, KEGG, Reactome, etc. I would strongly suggest providing that information too. I would suggest clarifying the first two in the manuscript, but the last one may require additional functionality. Alternatively, the article should be clear that version information is only given for a subset of used resources.</p>
            <p> </p>
            <p> A third topic I like to ask about is the following: If g:Profile is an ELIXIR RIR, have you consider adding the option to use the Identifiers.org prefixes, e.g. "wikipathways" in addition to "WP"?</p>
            <p> </p>
            <p> Fourth, the "Use case" uses packages that need to be installed. The keep symmetry with the description of gprofiler2 itself, please consider adding install instructions for these Bioconductor packages.</p>
            <p> </p>
            <p> Last, I collected a number of small textual suggestions and have annotated these with hypothes.is: 
                <ext-link ext-link-type="uri" xlink:href="https://hyp.is/rE4tRurJEeqMHW_RYqO0xA/f1000research.com/articles/9-709">https://hyp.is/rE4tRurJEeqMHW_RYqO0xA/f1000research.com/articles/9-709</ext-link>.</p>
            <p> </p>
            <p> These suggestions include a number of title fixes in the bibliography where article titles are all converted to lower case, which looks weird for names of tools.</p>
            <p>Are the conclusions about the tool and its performance adequately supported by the findings presented in the article?</p>
            <p>Yes</p>
            <p>Is the rationale for developing the new software tool clearly explained?</p>
            <p>Yes</p>
            <p>Is the description of the software tool technically sound?</p>
            <p>Yes</p>
            <p>Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others?</p>
            <p>Yes</p>
            <p>Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool?</p>
            <p>Yes</p>
            <p>Reviewer Expertise:</p>
            <p>R packages, identifier mapping, biological pathway resources, metabolomics, cheminformatics</p>
            <p>I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above.</p>
        </body>
        <sub-article article-type="response" id="comment5946-67235">
            <front-stub>
                <contrib-group>
                    <contrib contrib-type="author">
                        <name>
                            <surname>Peterson</surname>
                            <given-names>Hedi</given-names>
                        </name>
                        <aff>University of Tartu, Estonia</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>15</day>
                    <month>9</month>
                    <year>2020</year>
                </pub-date>
            </front-stub>
            <body>
                <p>We thank the reviewer for thorough reading of the manuscript and for the suggestions to improve the gprofiler2 package and the g:Profiler tool itself. Reviewer's comments are in 
                    <bold>bold</bold> followed by our&#x00a0;responses in regular font.</p>
                <p>
                    <bold>The choice of the combination of having the code base under version control, archiving on Zenodo, and distribution via CRAN shows high-quality standards. A test suite, unfortunately, is missing, and adding it is recommended.&#x00a0;</bold>
                </p>
                <p>We agree that testing is an important part of software development. However, since the main functionality of the gprofiler2 R package is to wrap POST requests to g:Profiler API, which has an extensive test suite, then we decided to not include additional tests to the package. Nevertheless, we use the R CMD checks for the package every time we submit a new version to CRAN.&#x00a0;</p>
                <p>
                    <bold>Furthermore, it could be interesting to explore curl as a replacement of RCurl, as I had trouble with SSL certificates with the RCurl package on Windows (but not essential).</bold>
                </p>
                <p>Thank you for the suggestion. The decision to use the RCurl package was made in 2012 when development started for the first version of the g:Profiler package. Replacing this dependency now can potentially cause issues for current users and external pipelines. Therefore, at the moment, we will keep this dependency as is, but we might consider the change in future updates. We are aware of the issues related to SSL certificates on Windows and due to that we provide access to g:Profiler both with and without SSL.&#x00a0;</p>
                <p>
                    <bold>I can build the package from source. When applying a regular CRAN check on the package I get a couple of warnings and notes, but none that are affecting this paper. I left two source code suggestions: 
                        <ext-link ext-link-type="uri" xlink:href="https://github.com/egonw/r-gprofiler2/pull/1">https://github.com/egonw/r-gprofiler2/pull/1</ext-link>.</bold>
                </p>
                <p>Thank you for the suggestions, we included the suggested changes.&#x00a0;</p>
                <p>
                    <bold>I also like to note that I found out that the interactive plot does not seem to work in RStudio: I only get an empty window.</bold>
                </p>
                <p>It appears that this is a known issue with rendering interactive plotly images in the latest RStudio version (see 
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/ropensci/plotly/issues/1712">https://github.com/ropensci/plotly/issues/1712</ext-link> and 
                    <ext-link ext-link-type="uri" xlink:href="https://github.com/rstudio/rstudio/issues/7507">https://github.com/rstudio/rstudio/issues/7507</ext-link>, for example). One of the publicly proposed solutions is to reinstall RStudio. We hope this solves the interactivity issue.</p>
                <p>
                    <bold>Regarding the content of the article, I have the following questions.&#x00a0;</bold>
                </p>
                <p>
                    <bold>First, the argument that the computation is done on a central server as an advantage depends on the use case and is not generally true. For example, it requires all information to be shared with the server, which is not possible for everyone that may be interested in the server. As such, one could imagine having a Docker with the webservice and method parameters in the R package to interact with servers with a different domain or IP address. This is, however, just a future feature request.</bold>
                </p>
                <p>We agree that using a central server is problematic for users who cannot share their data. However, centralising computations enables us to maintain the g:Profiler ecosystem better and guarantees that the results from different access points (web tool, R package, Python package, Galaxy tools, custom API requests) remain consistent, which is beneficial for the users. To alleviate data sharing issue we do not store the input gene lists in g:Profiler unless the user explicitly requests their data to be stored for future access/reference via dedicated short links. This information is provided at the footer of the g:Profiler web page, and will be included within the next version of the R package (0.2.1). In addition, we added the following sentences (underlined) to the manuscript:</p>
                <p>&#x201c;Relying on the central API also simplifies the maintenance of the g:Profiler interfaces and enables the R users to get access to the most up-to-date data without having to download the heavy annotation data files to their own devices. 
                    <underline>At the same time, g:Profiler respects users&#x2019; privacy and does not store input gene lists unless the user explicitly requests their data to be stored for future reference via dedicated short links (see section &#x201c;Sending analysis from R to g:Profiler web interface&#x201d;)</underline>.&#x201d;</p>
                <p>&#x201c;In this case, the variable multi_gp_link is a character string that corresponds to a stable short-link to these enrichment results:
                    <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gplink/l/0wgtcERnQT"> https://biit.cs.ut.ee/gplink/l/0wgtcERnQT</ext-link>. 
                    <underline>We also note that the input gene lists will be stored in a database to provide short-link access.&#x201d;</underline>
                </p>
                <p>
                    <bold>Second, regarding the data used in the functionality, I have three questions.&#x00a0;</bold>
                </p>
                <p>
                    <bold>How is the ordering of pathways in for KEGG, Reactome, and WikiPathways defined? For Reactome, I can imagine their own hierarchy is used. What about KEGG and WikiPathways? Is the Pathway Ontology used for the latter?&#x00a0;</bold>
                </p>
                <p>We use the order provided by the corresponding data source for all three of them. For example, pathways from KEGG are provided in the order of their identifiers, but pathways from Reactome are ordered by the name of the pathway term. We do not currently use the Pathway Ontology for WikiPathways. Thus, the only source for which we use hierarchical ontology order in the Manhattan plot is Gene Ontology, but the x-axis positions are fixed for all of the sources. This means that the terms in the Manhattan plot do not change the position along the x-axis when the input query changes.&#x00a0;</p>
                <p>
                    <bold>A similar question applies when using custom GMT files? The ordering is then defined by the other in the file, I assume?&#x00a0;</bold>
                </p>
                <p>Yes, in case of custom GMT files, the order of the terms in the Manhattan plot is defined by their order in the GMT file. We included the following sentence (underlined) to the manuscript to clarify this:</p>
                <p>&#x201c;The custom data source results can also be plotted using the Manhattan plots (Figure 3).
                    <underline> In this case, the term position on the x-axis is defined by the order in the GMT file.</underline>&#x201d;&#x00a0; &#x00a0;</p>
                <p>
                    <bold>Finally, in the Reproducibility section, but it is not clear to me why version information is not given for the data GO, KEGG, Reactome, etc. I would strongly suggest providing that information too. I would suggest clarifying the first two in the manuscript, but the last one may require additional functionality. Alternatively, the article should be clear that version information is only given for a subset of used resources.</bold>
                </p>
                <p>Historically, g:Profiler versioning schema is based on Ensembl releases because we update our database according to their update schedule (with a time lag). The version fixes the exact extract of g:Profiler annotation database to give a point of reference for g:Profiler enrichment results and is not intended to cover all the numerous data source versions. However, we agree that the source specific version information might be useful for the users and it is available from the g:Profiler&#x2019;s web page (under the &#x201c;Data sources&#x201d; section there is a link &#x201c;Show data versions&#x201d;). We included this information to the revised manuscript. Furthermore, based on this suggestion, we also added a new function get_version_info(organism) to the R package that will enable users to obtain the versions of all the data sources used for the set g:Profiler version and organism. The function is already in the source code repository 
                    <ext-link ext-link-type="uri" xlink:href="https://gl.cs.ut.ee/biit/r-gprofiler2">https://gl.cs.ut.ee/biit/r-gprofiler2</ext-link>, but currently works only for the Beta version, i.e. if set_base_url(&#x201c;
                    <ext-link ext-link-type="uri" xlink:href="http://biit.cs.ut.ee/gprofiler_beta">http://biit.cs.ut.ee/gprofiler_beta</ext-link>&#x201d;). This functionality will be included in the next CRAN release of the gprofiler2 R package (0.2.1).&#x00a0;&#x00a0;</p>
                <p>The amendments in the section &#x201c;Reproducibility&#x201d; to clarify the g:Profiler version info are underlined in the excerpt below.&#x00a0;</p>
                <p>&#x201c;The 
                    <underline>g:Profiler specific </underline>version number notes that the results were obtained using the state of the database that includes data from Ensembl release 99, Ensembl Genomes release 46 and WormBase ParaSite release 14, 
                    <underline>among other sources,</underline> and the g:Profiler codebase with the Git revision number f929183. The version number together with the details of applied parameters (available from multi_gp$meta$query_metadata) is enough to reproduce the 
                    <underline>enrichment</underline> results in g:Profiler. 
                    <underline>A more detailed information about the data source versions in a given g:Profiler version is available from the g:Profiler web page 
                        <ext-link ext-link-type="uri" xlink:href="https://biit.cs.ut.ee/gprofiler">https://biit.cs.ut.ee/gprofiler</ext-link> under the link &#x201c;Show data versions&#x201d; in the &#x201c;Data sources&#x201d; section.</underline>&#x201c;&#x00a0;</p>
                <p>
                    <bold>A third topic I like to ask about is the following: If g:Profile is an ELIXIR RIR, have you consider adding the option to use the Identifiers.org prefixes, e.g. "wikipathways" in addition to "WP"?</bold>
                </p>
                <p>We have not considered the option to use the 
                    <ext-link ext-link-type="uri" xlink:href="https://identifiers.org/">identifiers.org</ext-link> prefixes at the moment. Currently all the terms are linked inside the g:Profiler toolset and no external links are provided. However, we thank the reviewer for this suggestion and we will consider it for further g:Profiler releases.</p>
                <p>
                    <bold>Fourth, the "Use case" uses packages that need to be installed. The keep symmetry with the description of gprofiler2 itself, please consider adding install instructions for these Bioconductor packages.</bold>
                </p>
                <p>We included the suggested installation instructions in the revised version of the manuscript.&#x00a0;</p>
                <p>
                    <bold>Last, I collected a number of small textual suggestions and have annotated these with hypothes.is: 
                        <ext-link ext-link-type="uri" xlink:href="https://hyp.is/rE4tRurJEeqMHW_RYqO0xA/f1000research.com/articles/9-709">https://hyp.is/rE4tRurJEeqMHW_RYqO0xA/f1000research.com/articles/9-709</ext-link>.&#x00a0;These suggestions include a number of title fixes in the bibliography where article titles are all converted to lower case, which looks weird for names of tools.</bold>
                </p>
                <p>Thank you very much for noticing the issues from bibliography parsing. We updated the manuscript according to the suggestions.</p>
            </body>
        </sub-article>
    </sub-article>
</article>
